Additional Changes
This commit is contained in:
@@ -60,10 +60,43 @@ class ApprovalController extends Controller
|
||||
$approvalChain->approvable->load('items');
|
||||
}
|
||||
|
||||
$totalCost = $approvalChain->approvable->total_cost ?? 0;
|
||||
if ($approvalChain->approvable instanceof \Modules\ProjectManagement\Models\Project) {
|
||||
$project = $approvalChain->approvable;
|
||||
$project->load([
|
||||
'materialsEstimates',
|
||||
'tasks.taskLabors.labor',
|
||||
'tasks.taskEquipments.equipment',
|
||||
]);
|
||||
|
||||
$materialsCost = $project->materialsEstimates->reduce(function ($sum, $est) {
|
||||
return $sum + ($est->estimated_qty * $est->unit_cost);
|
||||
}, 0);
|
||||
|
||||
$laborCost = 0;
|
||||
foreach ($project->tasks as $task) {
|
||||
foreach ($task->taskLabors as $tl) {
|
||||
$laborCost += ($tl->estimated_hours * ($tl->labor->hourly_rate ?? 0));
|
||||
}
|
||||
}
|
||||
|
||||
$equipmentCost = 0;
|
||||
foreach ($project->tasks as $task) {
|
||||
foreach ($task->taskEquipments as $te) {
|
||||
$equipmentCost += ($te->estimated_hours * ($te->equipment->hourly_rate ?? 0));
|
||||
}
|
||||
}
|
||||
|
||||
$totalCost = $materialsCost + $laborCost + $equipmentCost;
|
||||
}
|
||||
|
||||
$breakdownData = [
|
||||
'document_number' => $approvalChain->approvable->document_number ?? $approvalChain->approvable->po_number ?? null,
|
||||
'total_cost' => $approvalChain->approvable->total_cost ?? 0,
|
||||
'notes' => $approvalChain->approvable->notes ?? null,
|
||||
'document_number' => $approvalChain->approvable->document_number
|
||||
?? $approvalChain->approvable->po_number
|
||||
?? ($approvalChain->approvable instanceof \Modules\ProjectManagement\Models\Project ? $approvalChain->approvable->code : null),
|
||||
'total_cost' => $totalCost,
|
||||
'notes' => $approvalChain->approvable->notes
|
||||
?? ($approvalChain->approvable instanceof \Modules\ProjectManagement\Models\Project ? $approvalChain->approvable->description : null),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user