From 6e66ad594ebd74974dc5397dcb133729aaeef3d2 Mon Sep 17 00:00:00 2001 From: farhantock Date: Thu, 11 Jan 2024 22:47:13 +0700 Subject: [PATCH] update filter project --- .../Controllers/DashboardBoDController.php | 82 +++++++++---------- 1 file changed, 40 insertions(+), 42 deletions(-) diff --git a/app/Http/Controllers/DashboardBoDController.php b/app/Http/Controllers/DashboardBoDController.php index ab2a278..90a2375 100644 --- a/app/Http/Controllers/DashboardBoDController.php +++ b/app/Http/Controllers/DashboardBoDController.php @@ -122,9 +122,9 @@ class DashboardBoDController extends Controller ], 200); } - public function getTotalProjectPerScheduleHealth($year = '%') + public function getTotalProjectPerScheduleHealth() { - $year = $this->interpolateYear($year); + // $year = $this->interpolateYear($year); $return = [ 'behind-schedule' => 0, @@ -132,7 +132,7 @@ class DashboardBoDController extends Controller 'on-schedule' => 0, ]; - $projects = Project::where('mulai_proyek', 'like', $year)->get(); + $projects = Project::get(); foreach ($projects as $index => $project) { $project->scurve = MasterFunctionsHelper::getSCurve($project->id); $selisihProgress = 0; @@ -165,9 +165,9 @@ class DashboardBoDController extends Controller return response()->json(['data' => $return, 'q' => $projects], 200); } - public function getTotalProjectScheduleHealthPerDivision($year = '%') + public function getTotalProjectScheduleHealthPerDivision() { - $year = $this->interpolateYear($year); + // $year = $this->interpolateYear($year); $divisions = Divisi::whereNull('parent')->get(); foreach ($divisions as $index => $division) { @@ -175,7 +175,7 @@ class DashboardBoDController extends Controller $scheduleData = new Collection(); $behindSchedule = $warning = $onSchedule = 0; - $projects = Project::where('mulai_proyek', 'like', $year)->where('divisi_id', $division->id)->get(); + $projects = Project::where('divisi_id', $division->id)->get(); foreach ($projects as $project) { $project->scurve = MasterFunctionsHelper::getSCurve($project->id); $selisihProgress = 0; @@ -210,31 +210,30 @@ class DashboardBoDController extends Controller ], 200); } - public function getTotalProjectPerBudgetHealth($year = '%') + public function getTotalProjectPerBudgetHealth() { - $year = $this->interpolateYear($year); return response()->json([ 'data' => [ - 'overrun' => Project::where('mulai_proyek', 'like', $year)->where('budget_health', 'overrun')->count(), - 'warning' => Project::where('mulai_proyek', 'like', $year)->where('budget_health', 'warning')->count(), - 'on-budget' => Project::where('mulai_proyek', 'like', $year)->where('budget_health', 'on-budget')->count(), + 'overrun' => Project::where('budget_health', 'overrun')->count(), + 'warning' => Project::where('budget_health', 'warning')->count(), + 'on-budget' => Project::where('budget_health', 'on-budget')->count(), ] ], 200); } - private function countTotalProjectByBudgetHealthInDivision($divisi, $year, $health) + private function countTotalProjectByBudgetHealthInDivision($divisi, $health) { return Project::where('divisi_id', $divisi) - ->where('mulai_proyek', 'like', $year) + // ->where('mulai_proyek', 'like', $year) /* ->orWhere('akhir_proyek', 'like', $year) */ ->where('budget_health', $health) ->count(); } - public function getTotalProjectBudgetHealthPerDivision($year = '%') + public function getTotalProjectBudgetHealthPerDivision() { - $year = $this->interpolateYear($year); + // $year = $this->interpolateYear($year); $divisions = Divisi::select('id', 'name') ->with('children') ->whereNull('parent') @@ -242,13 +241,13 @@ class DashboardBoDController extends Controller // to do : count in more than 1 level child foreach ($divisions as $division) { $budgetData = new Collection(); - $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, $year, 'overrun'), 'overrun'); - $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, $year, 'warning'), 'warning'); - $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, $year, 'on-budget'), 'on-budget'); + $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, 'overrun'), 'overrun'); + $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, 'warning'), 'warning'); + $budgetData->prepend($this->countTotalProjectByBudgetHealthInDivision($division->id, 'on-budget'), 'on-budget'); foreach ($division->children as $d) { - $budgetData['overrun'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, $year, 'overrun'); - $budgetData['warning'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, $year, 'warning'); - $budgetData['on-budget'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, $year, 'on-budget'); + $budgetData['overrun'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, 'overrun'); + $budgetData['warning'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, 'warning'); + $budgetData['on-budget'] += $this->countTotalProjectByBudgetHealthInDivision($d->id, 'on-budget'); } unset($division->children); $division->budgetData = $budgetData; @@ -262,13 +261,13 @@ class DashboardBoDController extends Controller ], 200); } - public function getTotalProjectPerPhase($year = '%') + public function getTotalProjectPerPhase() { - $year = $this->interpolateYear($year); + // $year = $this->interpolateYear($year); $projectPhases = ProjectPhase::orderBy('order')->get(); foreach ($projectPhases as $phase) { $phase->totalProject = Project::where('phase_id', $phase->id) - ->where('mulai_proyek', 'like', $year) + // ->where('mulai_proyek', 'like', $year) /* ->orWhere('akhir_proyek', 'like', $year) */ ->count(); } @@ -279,16 +278,16 @@ class DashboardBoDController extends Controller ], 200); } - private function countTotalProjectInDivision($id, $year) + private function countTotalProjectInDivision($id) { return Project::where('divisi_id', $id) - ->where('mulai_proyek', 'like', $year) + // ->where('mulai_proyek', 'like', $year) ->count(); } - public function getTotalProjectPerDivision($year = '%') + public function getTotalProjectPerDivision() { - $year = $this->interpolateYear($year); + // $year = $this->interpolateYear($year); $divisions = Divisi::select('id', 'name', 'parent', 'color') ->with('children') @@ -297,9 +296,9 @@ class DashboardBoDController extends Controller // to do : count in more than 1 level child foreach ($divisions as $v) { - $v->total = $this->countTotalProjectInDivision($v->id, $year); + $v->total = $this->countTotalProjectInDivision($v->id); foreach ($v->children as $d) { - $v->total += $this->countTotalProjectInDivision($d->id, $year); + $v->total += $this->countTotalProjectInDivision($d->id); } unset($v->children); } @@ -309,20 +308,18 @@ class DashboardBoDController extends Controller ], 200); } - private function countTotalProjectValueInDivision($id, $year) + private function countTotalProjectValueInDivision($id) { return Project::select(DB::raw("SUM(CAST(REPLACE(rencana_biaya, ',', '.') AS DOUBLE PRECISION))")) - ->where('mulai_proyek', 'like', $year) + // ->where('mulai_proyek', 'like', $year) /* ->orWhere('akhir_proyek', 'like', $year) */ ->where('divisi_id', $id) ->pluck('sum') ->first(); } - public function getTotalProjectValuePerDivision($year = '%') + public function getTotalProjectValuePerDivision() { - $year = $this->interpolateYear($year); - $divisions = Divisi::select('id', 'name', 'color') ->with('children') ->whereNull('parent') @@ -330,9 +327,9 @@ class DashboardBoDController extends Controller // to do : count in more than 1 level child foreach ($divisions as $v) { - $v->total = $this->countTotalProjectValueInDivision($v->id, $year); + $v->total = $this->countTotalProjectValueInDivision($v->id); foreach ($v->children as $d) { - $v->total += $this->countTotalProjectValueInDivision($d->id, $year); + $v->total += $this->countTotalProjectValueInDivision($d->id); } unset($v->children); } @@ -343,12 +340,13 @@ class DashboardBoDController extends Controller } - public function getDetailExpenditure($year = '%') + public function getDetailExpenditure() { - $year = $this->interpolateYear($year); - $projects = Project::select('m_proyek.*', 'md.name as divisi_name') - ->where('mulai_proyek', 'like', $year) - ->join('m_divisi as md', 'md.id', '=', 'm_proyek.divisi_id') + // $year = $this->interpolateYear($year); + $projects = Project::select('m_proyek.*', 'md.name as divisi_name', 'tpy.name as project_type_name') + // ->where('mulai_proyek', 'like', $year) + ->join('m_divisi as md', 'md.id', '=', 'm_proyek.divisi_id') + ->join('m_type_proyek as tpy', 'tpy.id', '=', 'm_proyek.type_proyek_id') ->orderBy('id', 'desc') ->get(); foreach ($projects as $project) {