More product cleanup

This commit is contained in:
2023-05-05 22:05:42 +10:00
parent dc74a064ba
commit 691180b3f0
7 changed files with 109 additions and 87 deletions

View File

@@ -7,11 +7,11 @@ use Illuminate\Support\Arr;
use Leenooks\Traits\ScopeActive;
use App\Models\{Invoice,SupplierDetail};
use App\Traits\{ProductDetails,SiteID};
use App\Traits\SiteID;
abstract class Type extends Model
{
use SiteID,ScopeActive,ProductDetails;
use SiteID,ScopeActive;
/* RELATIONS */
@@ -58,21 +58,14 @@ abstract class Type extends Model
return static::category_name;
}
/**
* This contract term is the highest of
* + The defined contract_term
* + The default months in a billing interval
*
* @return int
*/
public function getContractTermAttribute(): int
final public function getContractTermAttribute(?int $val): int
{
return max(Invoice::billing_period(static::getBillingIntervalAttribute()),Arr::get($this->attributes,'contract_term',0));
return $val ?: 1;
}
public function getMinCostAttribute(): float
{
return $this->attributes['setup_cost']+$this->attributes['base_cost']*Invoice::billing_term($this->getContractTermAttribute(),$this->getBillingIntervalAttribute());
return $this->setup_cost+$this->base_cost*$this->contract_term;
}
public function getNameAttribute(): string