Additional Changes
Some checks failed
Tests / PHP 8.3 (push) Has been cancelled
Tests / PHP 8.4 (push) Has been cancelled
Tests / PHP 8.5 (push) Has been cancelled

This commit is contained in:
2026-06-02 22:04:03 +08:00
parent e6a9a80c32
commit 64d4b331a8
151 changed files with 15070 additions and 945 deletions

View File

@@ -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),
];
}