From b8a6a1bbd041c86f628413a7d9fdcc64db1bc99c Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Thu, 12 Jun 2025 16:47:16 +0800 Subject: [PATCH] update baki lelong all --- .../BakiLelongBelumTuntutAllExportExcel.php | 152 ++++++++++++++++++ .../Reports/BakiLelongController.php | 6 +- 2 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 app/Exports/LaporanKeseluruhan/BakiLelongBelumTuntutAllExportExcel.php diff --git a/app/Exports/LaporanKeseluruhan/BakiLelongBelumTuntutAllExportExcel.php b/app/Exports/LaporanKeseluruhan/BakiLelongBelumTuntutAllExportExcel.php new file mode 100644 index 0000000..693c13e --- /dev/null +++ b/app/Exports/LaporanKeseluruhan/BakiLelongBelumTuntutAllExportExcel.php @@ -0,0 +1,152 @@ +data = $data; + } + + public function headings(): array + { + return [ + ['Laporan Baki Lelong Belum Tuntut Semua Cawangan'], // Tajuk baris pertama + [''], // Baris kosong + [ + 'Bil', + 'Cawangan', + 'Bilangan Pembiayaan', + 'Berat', + 'Nilai Marhun', + 'Pembiayaan (RM)', + 'Baki Pembiayaan (RM)', + 'Keuntungan (RM)', + 'Caj Lelong (RM)', + 'Harga Jual (RM)', + 'Baki (RM)', + ] + ]; + } + + public function array(): array + { + if (empty($this->data)) { + return []; + } + + $formattedData = []; + $total_lelongan = $sum_berat = $sum_nilai_marhun = $sum_pinjaman = $sum_bakipjm = $sum_bakiupah = $sum_cajlelong = $sum_hargajual = $sum_baki = 0; + + foreach ($this->data as $index => $data) { + $formattedData[] = [ + $index + 1, + $data['details_caw'] ?? 'N/A', + $data['total_lelongan'] ?? 0, + number_format((float) ($data['sum_berat'] ?? 0), 2), + number_format((float) ($data['sum_nilai_marhun'] ?? 0), 2), + number_format((float) ($data['sum_pinjaman'] ?? 0), 2), + number_format((float) ($data['sum_bakipjm'] ?? 0), 2), + number_format((float) ($data['sum_bakiupah'] ?? 0), 2), + number_format((float) ($data['sum_cajlelong'] ?? 0), 2), + number_format((float) ($data['sum_hargajual'] ?? 0), 2), + number_format((float) ($data['sum_baki'] ?? 0), 2), + ]; + + $total_lelongan += (int) $data['total_lelongan']; + $sum_berat += (float) $data['sum_berat']; + $sum_nilai_marhun += (float) $data['sum_nilai_marhun']; + $sum_pinjaman += (float) $data['sum_pinjaman']; + $sum_bakipjm += (float) $data['sum_bakipjm']; + $sum_bakiupah += (float) $data['sum_bakiupah']; + $sum_cajlelong += (float) $data['sum_cajlelong']; + $sum_hargajual += (float) $data['sum_hargajual']; + $sum_baki += (float) $data['sum_baki']; + } + + // Jumlah keseluruhan + $formattedData[] = [ + '', + 'Jumlah Keseluruhan', + $total_lelongan, + number_format($sum_berat, 2), + number_format($sum_nilai_marhun, 2), + number_format($sum_pinjaman, 2), + number_format($sum_bakipjm, 2), + number_format($sum_bakiupah, 2), + number_format($sum_cajlelong, 2), + number_format($sum_hargajual, 2), + number_format($sum_baki, 2), + ]; + + return $formattedData; + } + + public function map($data): array + { + return [ + $data[0] ?? 'N/A', + $data[1] ?? 'N/A', + (int) ($data[2] ?? 0), + (float) str_replace(',', '', $data[3] ?? 0), + (float) str_replace(',', '', $data[4] ?? 0), + (float) str_replace(',', '', $data[5] ?? 0), + (float) str_replace(',', '', $data[6] ?? 0), + (float) str_replace(',', '', $data[7] ?? 0), + (float) str_replace(',', '', $data[8] ?? 0), + (float) str_replace(',', '', $data[9] ?? 0), + (float) str_replace(',', '', $data[10] ?? 0), + ]; + } + + public function startCell(): string + { + return 'A1'; + } + + public function columnFormats(): array + { + return [ + 'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'E' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'F' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'G' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'H' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'I' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + 'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, + ]; + } + + public function bindValue(Cell $cell, $value) + { + if (is_numeric($value) && !is_string($value)) { + $cell->setValueExplicit((float) $value, DataType::TYPE_NUMERIC); + return true; + } + + return parent::bindValue($cell, $value); + } +} diff --git a/app/Http/Controllers/Reports/BakiLelongController.php b/app/Http/Controllers/Reports/BakiLelongController.php index f66396a..f79f801 100644 --- a/app/Http/Controllers/Reports/BakiLelongController.php +++ b/app/Http/Controllers/Reports/BakiLelongController.php @@ -10,7 +10,7 @@ use Illuminate\Support\Facades\Http; use App\Exports\BakiLelongBelumTuntutExport; use Maatwebsite\Excel\Facades\Excel; use Illuminate\Support\Facades\Auth; -use App\Exports\LaporanKeseluruhan\BakiLelongAllExportExcel; +use App\Exports\LaporanKeseluruhan\BakiLelongBelumTuntutAllExportExcel; class BakiLelongController extends Controller { @@ -77,8 +77,8 @@ class BakiLelongController extends Controller // Ensure $kod_cawangan is defined (Modify as per your data structure) $kod_cawangan = $request->input('kod_cawangan', 'DEFAULT'); - $file_title = sprintf("LaporanBakiLelongan %s (%s - %s).xlsx", $kod_cawangan, $startDate, $endDate); - return Excel::download(new BakiLelonganAllExportExcel($lelongan), $file_title); + $file_title = sprintf("LaporanBakiLelongBelumTuntut %s (%s - %s).xlsx", $kod_cawangan, $startDate, $endDate); + return Excel::download(new BakiLelongBelumTuntutAllExportExcel($lelongan), $file_title); } return view('reports.bakilelongbelumtuntut.index', compact('lelongan', 'startDate', 'endDate')); }