Files
MKM/app/Models/Branch.php
2024-08-11 20:03:49 +08:00

72 lines
1.6 KiB
PHP

<?php
namespace App\Models;
use App\Observers\BranchObserver;
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Znck\Eloquent\Traits\BelongsToThrough;
#[ObservedBy(BranchObserver::class)]
class Branch extends Model
{
use BelongsToThrough;
use HasFactory;
protected $guarded = [];
/**
* Get the client that owns the Branch
*/
public function client(): BelongsTo
{
return $this->belongsTo(Client::class);
}
public function getCurrentSeriesAttribute()
{
if ($this->series()->count() > 0) {
return $this->series()->orderBy('id', 'desc')->first()->series;
}
return null;
}
/**
* Get all of the series for the Branch
*/
public function series(): HasMany
{
return $this->hasMany(Series::class);
}
/**
* Get all of the sales for the Branch
*/
public function sales(): HasMany
{
return $this->hasMany(Sale::class);
}
/**
* Get all of the expenses for the Branch
*/
public function expenses(): HasMany
{
return $this->hasMany(Expense::class);
}
public function balances(): HasMany
{
return $this->hasMany(Balance::class);
}
public function accounts(): \Znck\Eloquent\Relations\BelongsToThrough
{
return $this->belongsToThrough(Account::class, Balance::class);
}
}