From 5911a5ced96f0c7d0ebc0395577f8e2b6c93ba9f Mon Sep 17 00:00:00 2001 From: wahyun Date: Wed, 24 Jul 2024 17:49:58 +0700 Subject: [PATCH] fix: project expenditure update label, and value --- .../Controllers/DashboardBoDController.php | 90 +++++++++---------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/app/Http/Controllers/DashboardBoDController.php b/app/Http/Controllers/DashboardBoDController.php index 4c32b41..bf47cf8 100644 --- a/app/Http/Controllers/DashboardBoDController.php +++ b/app/Http/Controllers/DashboardBoDController.php @@ -32,51 +32,48 @@ class DashboardBoDController extends Controller { $totalExpenditure = $totalInvoice = $totalPaidInvoice = 0; - $totalBudgets = null; - $role = urldecode($role_name); - if (!empty($all_project) || $role === "Super Admin") { - $totalBudgets = Project::sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); - } else { - $totalBudgets = Project::where('created_by_id', $hierarchy) - ->sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); - } - $totalBudgets = Project::sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); - $projects = null; - - if (!empty($all_project) || $role === "Super Admin") { - $projects = Project::get(); - } else { - $projects = Project::where('created_by_id', $hierarchy) - ->get(); - } - - foreach ($projects as $project) { - $project->expenses = 0; - $resp = null; - if ($project->kode_sortname != "") { - - // $resp = $this->getInvoiceIntegration($project->kode_sortname); - // $cost = $resp->data->total_cost ?? 0; - // $cost = substr($cost, 0, strpos($cost, ".")); - $cost = 0; - $totalExpenditure = 0; - $totalInvoice = 0; - $totalPaidInvoice = 0; - - // $totalExpenditure += (int) $cost; - // $totalInvoice += $resp->data->total_invoice_amount ?? 0; - // $totalPaidInvoice += $resp->data->total_invoice_paid_amount ?? 0; - } - } - - return response()->json([ - 'data' => [ - 'total_budget' => (int) $totalBudgets ?? 0, - 'total_expenditure' => $totalExpenditure, - 'total_invoice' => $totalInvoice, - 'total_paid_invoice' => $totalPaidInvoice, - ] - ], 200); + $totalBudgets = []; + $projects = []; + $role = urldecode($role_name); + + if ($all_project) { + $totalBudgets = Project::select( + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(rencana_biaya, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_rencana_biaya'), + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(value_proyek, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_value_proyek'), + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(income_year, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_income_year') + )->first(); + $projects = Project::get(); + Log::info(['dataTotal' => $totalBudgets]); + } else { + $totalBudgets = Project::where('created_by_id', $hierarchy) + ->select( + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(rencana_biaya, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_rencana_biaya'), + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(value_proyek, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_value_proyek'), + DB::raw('SUM(CAST(COALESCE(NULLIF(REPLACE(income_year, \'.\', \'\'), \'\'), \'0\') AS DOUBLE PRECISION)) AS total_income_year') + )->first(); + $projects = Project::where('created_by_id', $hierarchy)->get(); + } + + foreach ($projects as $project) { + $project->expenses = 0; + if ($project->kode_sortname != "") { + $cost = 0; + $totalExpenditure = 0; + $totalInvoice = 0; + $totalPaidInvoice = 0; + } + } + + return response()->json([ + 'data' => [ + 'total_budget' => (int) ($totalBudgets->total_rencana_biaya ?? 0), + 'total_expenditure' => $totalExpenditure, + 'total_invoice' => $totalInvoice, + 'total_paid_invoice' => $totalPaidInvoice, + 'total_value_proyek' => $totalBudgets->total_value_proyek ?? 0, + 'total_income_year' => $totalBudgets->total_income_year ?? 0 + ] + ], 200); } public function getDetailExpenditureColor($role_name) @@ -460,8 +457,7 @@ class DashboardBoDController extends Controller public function getDetailExpenditure($all_project, $hierarchy, $role_name) { - // $year = $this->interpolateYear($year); - $projects = null; + $projects = []; if ($all_project) { $projects = Project::orderBy('id', 'desc') ->get();