Files
GSB-Construction/Modules/MaterialLogistics/app/Models/MaterialRequirement.php

45 lines
1.0 KiB
PHP

<?php
namespace Modules\MaterialLogistics\Models;
use Modules\MasterData\Models\Material;
use Modules\MasterData\Models\MaterialGroup;
use App\Traits\HasPublicIdentifier;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Modules\ProjectManagement\Models\Project;
class MaterialRequirement extends Model
{
use HasPublicIdentifier;
protected $fillable = [
'project_id', 'task_id', 'material_id',
'required_qty', 'unit_cost_at_booking', 'status',
];
protected function casts(): array
{
return [
'required_qty' => 'decimal:2',
'unit_cost_at_booking' => 'decimal:2',
];
}
public function project(): BelongsTo
{
return $this->belongsTo(Project::class);
}
public function material(): BelongsTo
{
return $this->belongsTo(Material::class);
}
public function getTotalCostAttribute(): float
{
return (float) $this->required_qty * (float) $this->unit_cost_at_booking;
}
}