From 53be2d999e9c99696a4e86dd9995255460317a6e Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Tue, 27 Jan 2026 16:52:00 +0800 Subject: [PATCH] update lelong keseleuruhan --- .../Reports/LelonganController.php | 1 + app/Services/Reports/LelonganService.php | 88 +++++++++++++------ 2 files changed, 61 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/Reports/LelonganController.php b/app/Http/Controllers/Reports/LelonganController.php index 1e2195f..539ae2e 100644 --- a/app/Http/Controllers/Reports/LelonganController.php +++ b/app/Http/Controllers/Reports/LelonganController.php @@ -60,6 +60,7 @@ class LelonganController extends Controller sum(lelong.cajlain) as sum_cajlain, sum(lelong.cajlelong) as sum_cajlelong, sum(lelong.hargajual) as sum_hargajual, + sum(lelong.hargaasas) as sum_hargaasas, sum(lelong.baki) as sum_baki')); diff --git a/app/Services/Reports/LelonganService.php b/app/Services/Reports/LelonganService.php index af2ed7b..99eec40 100644 --- a/app/Services/Reports/LelonganService.php +++ b/app/Services/Reports/LelonganService.php @@ -58,7 +58,7 @@ class LelonganService $marhun_lelongan = $this->getMarhunLelongan($total_lelongan, $cawangan_connection); $cawangan_detail = $this->getCawanganDetail($cawangan_connection); - $total_lelongan = $total_lelongan->zip($customer_info, $marhun_lelongan)->map(function ($data) { + $total_lelongan = $total_lelongan->zip($customer_info, $marhun_lelongan)->map(function ($data) use ($total_lelongan) { [$lelong, $customer_info, $marhun_lelongan] = $data; @@ -76,31 +76,38 @@ class LelonganService 'bakipjm' => $lelong['bakipjm'], 'keuntungan' => $lelong['bakiupah'], 'cajlelong' => $lelong['cajlelong'], + 'hargaasas' => $lelong['hargaasas'], 'hargajual' => $lelong['hargajual'], 'baki' => $lelong['baki'], 'teller' => $lelong['teller'], ]; - dd($data); }); $total_lelongan = $total_lelongan->groupBy('teller'); - $lelongan_tellers = $total_lelongan->keys(); + $result = []; - $total_lelongan = $total_lelongan - ->zip($total_summary_lelongan_teller) - ->map(function ($data) { + foreach ($total_lelongan as $teller => $lelongan) { + $result[$teller] = [ + 'lelongan' => $lelongan->values(), + 'summary_lelongan_teller' => $total_summary_lelongan_teller[$teller] ?? [ + 'total_lelongan' => 0, + 'total_berat' => 0, + 'total_nilai_marhun' => 0, + 'total_pembiayaan' => 0, + 'total_bakipjm' => 0, + 'total_keuntungan' => 0, + 'total_cajlelong' => 0, + 'total_hargaasas' => 0, + 'total_hargajual' => 0, + 'total_baki' => 0, + ], + ]; + } - [$lelongan, $summary] = $data; + $total_lelongan = collect($result); - return [ - 'lelongan' => $lelongan, - 'summary_lelongan_teller' => $summary, - ]; - }); - - $total_lelongan = $lelongan_tellers->combine($total_lelongan); $data = [ 'query' => [ @@ -143,6 +150,7 @@ class LelonganService sum(gadai.bakipjm) as total_bakipjm, sum(lelong.bakiupah) as total_keuntungan, sum(lelong.cajlelong) as total_cajlelong, + sum(lelong.hargaasas) as total_hargaasas, sum(lelong.hargajual) as total_hargajual, sum(lelong.baki) as total_baki') ->get() @@ -155,32 +163,54 @@ class LelonganService 'total_bakipjm' => $x['total_bakipjm'], 'total_keuntungan' => $x['total_keuntungan'], 'total_cajlelong' => $x['total_cajlelong'], + 'total_hargaasas' => $x['total_hargaasas'], 'total_hargajual' => $x['total_hargajual'], 'total_baki' => $x['total_baki'] ]; }); - // dd($total_summary_lelongan); return $total_summary_lelongan[0]; } + // private function getTotalSummaryLelonganGroupByTeller(Builder $query_total_lelongan) + // { + + // $total_summary_lelongan_groupByTeller = (clone $query_total_lelongan) + // ->selectRaw('count(lelong.norujukan) as total_lelongan, + // sum(lelong.berat) as total_berat, + // sum(lelong.nilaimarhun) as total_nilai_marhun, + // sum(lelong.pinjaman) as total_pembiayaan, + // sum(gadai.bakipjm) as total_bakipjm, + // sum(lelong.bakiupah) as total_keuntungan, + // sum(lelong.cajlelong) as total_cajlelong, + // sum(lelong.hargaasas) as total_hargaasas, + // sum(lelong.hargajual) as total_hargajual, + // sum(lelong.baki) as total_baki') + // ->groupBy('lelong.teller') + // ->get(); + // return $total_summary_lelongan_groupByTeller; + // } private function getTotalSummaryLelonganGroupByTeller(Builder $query_total_lelongan) { - - $total_summary_lelongan_groupByTeller = (clone $query_total_lelongan) - ->selectRaw('count(lelong.norujukan) as total_lelongan, - sum(lelong.berat) as total_berat, - sum(lelong.nilaimarhun) as total_nilai_marhun, - sum(lelong.pinjaman) as total_pembiayaan, - sum(gadai.bakipjm) as total_bakipjm, - sum(lelong.bakiupah) as total_keuntungan, - sum(lelong.cajlelong) as total_cajlelong, - sum(lelong.hargajual) as total_hargajual, - sum(lelong.baki) as total_baki') + return (clone $query_total_lelongan) + ->selectRaw(' + lelong.teller, + count(lelong.norujukan) as total_lelongan, + sum(lelong.berat) as total_berat, + sum(lelong.nilaimarhun) as total_nilai_marhun, + sum(lelong.pinjaman) as total_pembiayaan, + sum(gadai.bakipjm) as total_bakipjm, + sum(lelong.bakiupah) as total_keuntungan, + sum(lelong.cajlelong) as total_cajlelong, + sum(lelong.hargaasas) as total_hargaasas, + sum(lelong.hargajual) as total_hargajual, + sum(lelong.baki) as total_baki + ') ->groupBy('lelong.teller') - ->get(); - return $total_summary_lelongan_groupByTeller; + ->get() + ->keyBy('teller'); // ⭐ PENTING } + private function getTotalLelongan(Builder $query_total_lelongan) { $total_lelongan = (clone $query_total_lelongan) @@ -199,6 +229,7 @@ class LelonganService 'gadai.bakipjm', 'lelong.bakiupah', 'lelong.cajlelong', + 'lelong.hargaasas', 'lelong.hargajual', 'lelong.baki') ->orderBy('lelong.teller') @@ -311,6 +342,7 @@ class LelonganService 'bakipjm' => $lelong['bakipjm'], 'keuntungan' => $lelong['bakiupah'], 'cajlelong' => $lelong['cajlelong'], + 'hargaasas' => $lelong['hargaasas'], 'hargajual' => $lelong['hargajual'], 'baki' => $lelong['baki'], 'teller' => $lelong['teller'],