From 4c63144018466307098fb0a91ad571d784fed0af Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Mon, 15 Apr 2024 11:55:24 +0800 Subject: [PATCH 1/3] Add report keseluruhan stok audit api --- .../Reports/StokAuditController.php | 90 +++++++++++++++++++ routes/report.php | 1 + 2 files changed, 91 insertions(+) create mode 100644 app/Http/Controllers/Reports/StokAuditController.php diff --git a/app/Http/Controllers/Reports/StokAuditController.php b/app/Http/Controllers/Reports/StokAuditController.php new file mode 100644 index 0000000..a3861a6 --- /dev/null +++ b/app/Http/Controllers/Reports/StokAuditController.php @@ -0,0 +1,90 @@ +get(); + $connection_active_cawangan = Helper::getActiveCawanganDbConnection(); + + return collect($cawangan_details->filter(fn($x) => in_array($x->mysql, $connection_active_cawangan))); + + } + + public function buildStokAuditModel($month) + { + // Create the class name dynamically based on the number + $className = 'App\StokAudit' . $month; + + // Ensure the class exists + if (!class_exists($className)) { + abort(404); + } + + $model = new $className(); + + return $model; + } + + public function getSummaryLaporanStokAudit(Request $request) + { + $month = $request->month; + $year = $request->year; + + $stokAudit = $this->buildStokAuditModel($month); + $connections = $this->getActiveCawanganConnections(); + + $total_audit = $connections->map(function ($connection) use ($stokAudit, $year) { + $data = $stokAudit->on($connection->mysql)->where('tahun', $year)->get(); + + return [ + 'cawangan' => $connection->details_caw, + 'jumlah_pinjaman' => $data->count(), + 'total_pinjaman' => $data->sum('pinjaman'), + 'total_berat' => $data->sum('berat'), + 'total_nilai_marhun' => $data->sum('nilaimarhun'), + 'total_pinjaman' => $data->sum('pinjaman'), + 'total_baki_pinjaman' => $data->sum('bakipjm'), + 'total_upah_belum_bayar' => $data->sum('upahblmbyar'), + 'total_utg_onepercent' => $data->sum('utgonepercent'), + 'total_ujrah' => $data->sum('ujrah'), + ]; + }); + + $getTotalAcrossCawangan = function($property) use($total_audit) { + $total = array_reduce($total_audit->toArray(), function($carry, $subarray) use($property) { + return $carry + $subarray[$property]; + }, 0); + + return $total; + }; + + $total_all_cawangan_audit = [ + 'cawangan' => 'Total Semua Cawangan', + 'jumlah_pinjaman' => $getTotalAcrossCawangan('jumlah_pinjaman'), + 'total_pinjaman' => $getTotalAcrossCawangan('total_pinjaman'), + 'total_berat' => $getTotalAcrossCawangan('total_berat'), + 'total_nilai_marhun' => $getTotalAcrossCawangan('total_nilai_marhun'), + 'total_baki_pinjaman' => $getTotalAcrossCawangan('total_baki_pinjaman'), + 'total_upah_belum_bayar' => $getTotalAcrossCawangan('total_upah_belum_bayar'), + 'total_utg_onepercent' => $getTotalAcrossCawangan('total_utg_onepercent'), + 'total_ujrah' => $getTotalAcrossCawangan('total_ujrah'), + ]; + + $total_audit->push($total_all_cawangan_audit); + + if (sizeof($total_audit) == 0) { + return response()->json('failed', 200); + } else { + return response()->json($total_audit, 200); + } + } + +} diff --git a/routes/report.php b/routes/report.php index 67353ed..bec618e 100644 --- a/routes/report.php +++ b/routes/report.php @@ -11,6 +11,7 @@ $router->group(['prefix' => 'api/reports'], function () use ($router) { $router->get('kawalan-stok/{kod_cawangan}', ['uses' => 'KawalanStokController@getLaporanCawangan']); $router->get('ringkasan-harian', ['uses' => 'RingkasanHarianController@getSummaryLaporanRingkasanHarian']); $router->get('ringkasan-harian/{kod_cawangan}', ['uses' => 'RingkasanHarianController@getLaporanCawangan']); + $router->get('stok-audit', ['uses' => 'StokAuditController@getSummaryLaporanStokAudit']); $router->get('onepercent/balance/{kod_cawangan}', ['uses' => 'OnePercentController@getKeuntunganImbangDuga']); $router->get('onepercent/ledger/{kod_cawangan}', ['uses' => 'OnePercentController@getKeuntunganLejerAm']); From 967fbf1da3b7b558b00c47d4ee758cbb0b4758b1 Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Mon, 22 Apr 2024 11:18:49 +0800 Subject: [PATCH 2/3] Add changes to report keseluruhan stokaudit - Change header columns - Change column positions - Add config to exclude certain cawangan in report stok audit --- .../Reports/StokAuditController.php | 28 ++++++++++--------- bootstrap/app.php | 1 + config/report.php | 7 +++++ 3 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 config/report.php diff --git a/app/Http/Controllers/Reports/StokAuditController.php b/app/Http/Controllers/Reports/StokAuditController.php index a3861a6..16ad7bd 100644 --- a/app/Http/Controllers/Reports/StokAuditController.php +++ b/app/Http/Controllers/Reports/StokAuditController.php @@ -12,6 +12,9 @@ class StokAuditController extends Controller public function getActiveCawanganConnections() { $cawangan_details = Cawangan::select(['details_caw', 'mysql'])->get(); + + $cawangan_details = $cawangan_details->filter(fn($x) => !in_array(strtolower($x->details_caw), config('report.excluded_cawangan'))); + $connection_active_cawangan = Helper::getActiveCawanganDbConnection(); return collect($cawangan_details->filter(fn($x) => in_array($x->mysql, $connection_active_cawangan))); @@ -46,13 +49,12 @@ class StokAuditController extends Controller return [ 'cawangan' => $connection->details_caw, - 'jumlah_pinjaman' => $data->count(), - 'total_pinjaman' => $data->sum('pinjaman'), - 'total_berat' => $data->sum('berat'), - 'total_nilai_marhun' => $data->sum('nilaimarhun'), - 'total_pinjaman' => $data->sum('pinjaman'), - 'total_baki_pinjaman' => $data->sum('bakipjm'), - 'total_upah_belum_bayar' => $data->sum('upahblmbyar'), + 'bilangan_pembiayaan' => $data->count(), + 'berat' => $data->sum('berat'), + 'nilai_marhun' => $data->sum('nilaimarhun'), + 'baki_pembiayaan' => $data->sum('bakipjm'), + 'pembiayaan' => $data->sum('pinjaman'), + 'upah_belum_bayar' => $data->sum('upahblmbyar'), 'total_utg_onepercent' => $data->sum('utgonepercent'), 'total_ujrah' => $data->sum('ujrah'), ]; @@ -68,12 +70,12 @@ class StokAuditController extends Controller $total_all_cawangan_audit = [ 'cawangan' => 'Total Semua Cawangan', - 'jumlah_pinjaman' => $getTotalAcrossCawangan('jumlah_pinjaman'), - 'total_pinjaman' => $getTotalAcrossCawangan('total_pinjaman'), - 'total_berat' => $getTotalAcrossCawangan('total_berat'), - 'total_nilai_marhun' => $getTotalAcrossCawangan('total_nilai_marhun'), - 'total_baki_pinjaman' => $getTotalAcrossCawangan('total_baki_pinjaman'), - 'total_upah_belum_bayar' => $getTotalAcrossCawangan('total_upah_belum_bayar'), + 'bilangan_pembiayaan' => $getTotalAcrossCawangan('bilangan_pembiayaan'), + 'berat' => $getTotalAcrossCawangan('berat'), + 'nilai_marhun' => $getTotalAcrossCawangan('nilai_marhun'), + 'baki_pembiayaan' => $getTotalAcrossCawangan('baki_pembiayaan'), + 'pembiayaan' => $getTotalAcrossCawangan('pembiayaan'), + 'upah_belum_bayar' => $getTotalAcrossCawangan('upah_belum_bayar'), 'total_utg_onepercent' => $getTotalAcrossCawangan('total_utg_onepercent'), 'total_ujrah' => $getTotalAcrossCawangan('total_ujrah'), ]; diff --git a/bootstrap/app.php b/bootstrap/app.php index fd68a27..18381cb 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -62,6 +62,7 @@ $app->singleton( $app->configure('app'); $app->configure('tinker'); $app->configure('tennant_master'); +$app->configure('report'); /* |-------------------------------------------------------------------------- diff --git a/config/report.php b/config/report.php new file mode 100644 index 0000000..6a5ba4f --- /dev/null +++ b/config/report.php @@ -0,0 +1,7 @@ + [ + 'lahad datu', + ] +]; From 280fa619e313c1d057e29d46158cf3a0d8ff20ff Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Mon, 22 Apr 2024 14:16:24 +0800 Subject: [PATCH 3/3] Filter out in stokaudit backdate result where pinjaman is 0.00 --- app/Http/Controllers/BackupStokAuditController.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/BackupStokAuditController.php b/app/Http/Controllers/BackupStokAuditController.php index 2a7fb3e..22e10eb 100644 --- a/app/Http/Controllers/BackupStokAuditController.php +++ b/app/Http/Controllers/BackupStokAuditController.php @@ -324,7 +324,7 @@ class BackupStokAuditController extends Controller } } // foreach($cawangan as $cawangan_mysql){ - + // } return 'success'; @@ -381,6 +381,8 @@ class BackupStokAuditController extends Controller $audit = StokAudit12::on($cawangan['mysql'])->where('tahun',$tahun); } + $audit->where('pinjaman', '!=', '0.0'); + $rekodaudit = $audit->get(); $totalrekod = $audit->sum('pinjaman'); $totalberat = $audit->sum('berat'); @@ -403,7 +405,7 @@ class BackupStokAuditController extends Controller public function backupStokAuditProblemAkru(Request $request){ /* Classify all possible error */ - + $this->validate($request, [ 'month' => 'required|numeric', 'kodcaw' => 'required', @@ -459,7 +461,7 @@ class BackupStokAuditController extends Controller $ujrah_semasa = $bilang_bln * $upah['ujrah']; $keuntungan_semasa = $onepercentservices->getRoundedMethod($keuntungan_semasa); $ujrah_semasa = $onepercentservices->getRoundedMethod($ujrah_semasa); - + $pendapatan = $keuntungan_semasa + $ujrah_semasa; $arraypendapatan = [ 'keuntungan' => $keuntungan_semasa,