Merged in izzati-hotfix-laporan-lelong (pull request #152)

update laporan lelongan keseluruhan
This commit is contained in:
izzati zulkifli
2026-01-27 08:58:07 +00:00
9 changed files with 201 additions and 0 deletions
@@ -34,6 +34,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
'Baki Pembiayaan (RM)', 'Baki Pembiayaan (RM)',
'Keuntungan (RM)', 'Keuntungan (RM)',
'Caj Lelong (RM)', 'Caj Lelong (RM)',
'Harga Asas (RM)',
'Harga Jual (RM)', 'Harga Jual (RM)',
'Baki (RM)', 'Baki (RM)',
]; ];
@@ -57,6 +58,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
$sum_pinjaman = 0; $sum_pinjaman = 0;
$sum_bakiupah = 0; $sum_bakiupah = 0;
$sum_cajlelong = 0; $sum_cajlelong = 0;
$sum_hargaasas = 0;
$sum_hargajual = 0; $sum_hargajual = 0;
$sum_baki = 0; $sum_baki = 0;
@@ -73,6 +75,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
number_format((float) ($data['sum_bakipjm'] ?? 0), 2), number_format((float) ($data['sum_bakipjm'] ?? 0), 2),
number_format((float) ($data['sum_bakiupah'] ?? 0), 2), number_format((float) ($data['sum_bakiupah'] ?? 0), 2),
number_format((float) ($data['sum_cajlelong'] ?? 0), 2), number_format((float) ($data['sum_cajlelong'] ?? 0), 2),
number_format((float) ($data['sum_hargaasas'] ?? 0), 2),
number_format((float) ($data['sum_hargajual'] ?? 0), 2), number_format((float) ($data['sum_hargajual'] ?? 0), 2),
number_format((float) ($data['sum_baki'] ?? 0), 2), number_format((float) ($data['sum_baki'] ?? 0), 2),
@@ -87,6 +90,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
$sum_bakipjm += (float) $data['sum_bakipjm']; $sum_bakipjm += (float) $data['sum_bakipjm'];
$sum_bakiupah += (float) $data['sum_bakiupah']; $sum_bakiupah += (float) $data['sum_bakiupah'];
$sum_cajlelong += (float) $data['sum_cajlelong']; $sum_cajlelong += (float) $data['sum_cajlelong'];
$sum_hargaasas += (float) $data['sum_hargaasas'];
$sum_hargajual += (float) $data['sum_hargajual']; $sum_hargajual += (float) $data['sum_hargajual'];
$sum_baki += (float) $data['sum_baki']; $sum_baki += (float) $data['sum_baki'];
@@ -102,6 +106,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
number_format($sum_bakipjm, 2), number_format($sum_bakipjm, 2),
number_format($sum_bakiupah, 2), number_format($sum_bakiupah, 2),
number_format($sum_cajlelong, 2), number_format($sum_cajlelong, 2),
number_format($sum_hargaasas, 2),
number_format($sum_hargajual, 2), number_format($sum_hargajual, 2),
number_format($sum_baki, 2), number_format($sum_baki, 2),
@@ -128,6 +133,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
(float) str_replace(',', '', $data[7] ?? 0), // Total Untung 1% (float) str_replace(',', '', $data[7] ?? 0), // Total Untung 1%
(float) str_replace(',', '', $data[8] ?? 0), // Total Ujrah (float) str_replace(',', '', $data[8] ?? 0), // Total Ujrah
(float) str_replace(',', '', $data[9] ?? 0), // Total Ujrah (float) str_replace(',', '', $data[9] ?? 0), // Total Ujrah
(float) str_replace(',', '', $data[10] ?? 0), // Total Ujrah
]; ];
} }
+18
View File
@@ -48,6 +48,24 @@ class LelonganExport implements WithMultipleSheets
$sheets[] = new LelonganPerTellerExport($this->cawangan_detail, $this->query, $teller_with_lelongan_data); $sheets[] = new LelonganPerTellerExport($this->cawangan_detail, $this->query, $teller_with_lelongan_data);
} }
// Sheet untuk senarai penuh lelongan (gabung semua teller)
$full_lelongan_data = [];
foreach ($this->lelongan as $teller => $data) {
if (isset($data['lelongan']) && is_array($data['lelongan'])) {
foreach ($data['lelongan'] as $item) {
$item['teller'] = $teller; // optional: simpan info teller
$full_lelongan_data[] = $item;
}
}
}
$sheets[] = new LelonganFullExport(
$this->cawangan_detail,
$this->query,
$full_lelongan_data
);
return $sheets; return $sheets;
} }
} }
+56
View File
@@ -0,0 +1,56 @@
<?php
namespace App\Exports;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
class LelonganFullExport implements FromView, ShouldAutoSize, WithTitle, WithColumnFormatting
{
protected $cawangan_detail;
protected $query;
protected $lelongan_full_data;
public function __construct($cawangan_detail, $query, $lelongan_full_data)
{
$this->cawangan_detail = $cawangan_detail;
$this->query = $query;
$this->lelongan_full_data = $lelongan_full_data;
}
public function view(): View
{
return view('exports.lelongan.full', [
'cawangan_detail' => $this->cawangan_detail,
'query' => $this->query,
'lelongan_data' => $this->lelongan_full_data,
]);
}
public function title(): string
{
return 'SENARAI LELONGAN PENUH';
}
public function columnFormats(): array
{
return [
'E' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Berat
'F' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Nilai Marhun
'G' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Pinjaman
'H' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // Keuntungan
'I' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // caj lelong
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
'M' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
'N' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
'O' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, // baki
];
}
}
+1
View File
@@ -71,6 +71,7 @@ class LelonganPerTellerExport extends DefaultValueBinder implements FromView, Sh
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'L' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'M' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
]; ];
} }
+1
View File
@@ -68,6 +68,7 @@ class LelonganSummaryExport extends DefaultValueBinder implements FromView, Shou
'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'J' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'C' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'C' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1, 'D' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
'K' => NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1,
]; ];
} }
@@ -48,6 +48,7 @@
<th>Baki Pembiayaan (RM)</th> <th>Baki Pembiayaan (RM)</th>
<th>Keuntungan (RM)</th> <th>Keuntungan (RM)</th>
<th>Caj Lelong (RM)</th> <th>Caj Lelong (RM)</th>
<th>Harga Asas (RM)</th>
<th>Harga Jual (RM)</th> <th>Harga Jual (RM)</th>
<th>Baki(RM)</th> <th>Baki(RM)</th>
</tr> </tr>
@@ -68,6 +69,7 @@
<td>{{ $lelongan_detail['bakipjm'] }}</td> <td>{{ $lelongan_detail['bakipjm'] }}</td>
<td>{{ $lelongan_detail['keuntungan'] }}</td> <td>{{ $lelongan_detail['keuntungan'] }}</td>
<td>{{ $lelongan_detail['cajlelong'] }}</td> <td>{{ $lelongan_detail['cajlelong'] }}</td>
<td>{{ $lelongan_detail['hargaasas'] }}</td>
<td>{{ $lelongan_detail['hargajual'] }}</td> <td>{{ $lelongan_detail['hargajual'] }}</td>
<td>{{ $lelongan_detail['baki'] }}</td> <td>{{ $lelongan_detail['baki'] }}</td>
@@ -87,6 +89,7 @@
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_bakipjm'] }}</td> <td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_bakipjm'] }}</td>
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_keuntungan'] }}</td> <td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_keuntungan'] }}</td>
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_cajlelong'] }}</td> <td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_cajlelong'] }}</td>
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_hargaasas'] }}</td>
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_hargajual'] }}</td> <td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_hargajual'] }}</td>
<td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_baki'] }}</td> <td>{{ $teller_with_lelongan_data['data']['summary_lelongan_teller']['total_baki'] }}</td>
@@ -0,0 +1,91 @@
<table border="1" cellspacing="0" cellpadding="3">
<thead>
<tr>
<th colspan="14" style="text-align: center; font-weight: bold; font-size: 16px;">
SENARAI LELONGAN KESELURUHAN
</th>
</tr>
<tr>
<th colspan="14" style="text-align: center;">
Cawangan: {{ $cawangan_detail['nama'] ?? '-' }} |
Tarikh: {{ $query['startDate'] ?? '-' }} hingga {{ $query['endDate'] ?? '-' }}
</th>
</tr>
<tr><td colspan="14">&nbsp;</td></tr>
<tr>
<th>#</th>
<th>No Rujukan</th>
<th>Nama</th>
<th>No KP</th>
<th>Marhun</th>
<th>Berat</th>
<th>Nilai Marhun (RM)</th>
<th>Pembiayaan (RM)</th>
<th>%</th>
<th>Baki Pembiayaan (RM)</th>
<th>Keuntungan (RM)</th>
<th>Caj Lelong (RM)</th>
<th>Harga Asas (RM)</th>
<th>Harga Jual (RM)</th>
<th>Baki (RM)</th>
</tr>
</thead>
<tbody>
@php
$total_berat = 0;
$total_nilaimarhun = 0;
$total_pinjaman = 0;
$total_hargajual = 0;
$total_keuntungan = 0;
$total_cajlelong = 0;
$total_baki = 0;
$total_hargaasas = 0;
$row_no = 1;
@endphp
@foreach ($lelongan_data as $item)
@php
$total_berat += (float) $item['berat'];
$total_nilaimarhun += (float) $item['nilai_marhun'];
$total_pinjaman += (float) $item['pinjaman'];
$total_hargajual += (float) $item['hargajual'];
$total_keuntungan += (float) ($item['keuntungan'] ?? 0);
$total_cajlelong += (float) ($item['cajlelong'] ?? 0);
$total_baki += (float) ($item['baki'] ?? 0);
$total_hargaasas += (float) ($item['hargaasas'] ?? 0);
@endphp
<tr>
<td>{{ $row_no++ }}</td>
<td>{{ $item['no_rujukan'] ?? '' }}</td>
<td>{{ $item['nama'] ?? '' }}</td>
<td>'{{ $item['no_kp'] ?? '' }}</td>
<td>{{ $item['marhun'] ?? 0 }}</td>
<td>{{ $item['berat'] ?? 0 }}</td>
<td>{{ $item['nilai_marhun'] ?? 0 }}</td>
<td>{{ $item['pinjaman'] ?? 0 }}</td>
<td>{{ $item['peratusan_margin_pinjaman'] ?? 0 }}</td>
<td>{{ $item['bakipjm'] ?? 0 }}</td>
<td>{{ $item['keuntungan'] ?? 0 }}</td>
<td>{{ $item['cajlelong'] ?? 0 }}</td>
<td>{{ $item['hargaasas'] ?? 0 }}</td>
<td>{{ $item['hargajual'] ?? 0 }}</td>
<td>{{ $item['baki'] ?? 0 }}</td>
</tr>
@endforeach
<tr>
<td colspan="5"><strong>Jumlah</strong></td>
<td><strong>{{ number_format($total_berat, 2) }}</strong></td>
<td><strong>{{ number_format($total_nilaimarhun, 2) }}</strong></td>
<td><strong>{{ number_format($total_pinjaman, 2) }}</strong></td>
<td></td>
<td><strong>{{ number_format($total_pinjaman, 2) }}</strong></td>
<td><strong>{{ number_format($total_keuntungan, 2) }}</strong></td>
<td><strong>{{ number_format($total_cajlelong, 2) }}</strong></td>
<td><strong>{{ number_format($total_hargaasas ?? 0, 2) }}</strong></td>
<td><strong>{{ number_format($total_hargajual, 2) }}</strong></td>
<td><strong>{{ number_format($total_baki, 2) }}</strong></td>
</tr>
</tbody>
</table>
@@ -35,6 +35,7 @@
<th>Baki Pembiayaan(RM)</th> <th>Baki Pembiayaan(RM)</th>
<th>Keuntungan(RM)</th> <th>Keuntungan(RM)</th>
<th>Caj Lelong(RM)</th> <th>Caj Lelong(RM)</th>
<th>Harga Asas(RM)</th>
<th>Harga Jual(RM)</th> <th>Harga Jual(RM)</th>
<th>Baki(RM)</th> <th>Baki(RM)</th>
@@ -49,6 +50,7 @@
<td>{{ $data['summary_lelongan_teller']['total_bakipjm'] }}</td> <td>{{ $data['summary_lelongan_teller']['total_bakipjm'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_keuntungan'] }}</td> <td>{{ $data['summary_lelongan_teller']['total_keuntungan'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_cajlelong'] }}</td> <td>{{ $data['summary_lelongan_teller']['total_cajlelong'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_hargaasas'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_hargajual'] }}</td> <td>{{ $data['summary_lelongan_teller']['total_hargajual'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_baki'] }}</td> <td>{{ $data['summary_lelongan_teller']['total_baki'] }}</td>
@@ -64,6 +66,7 @@
<td>{{ $summary_lelongan['total_bakipjm'] }}</td> <td>{{ $summary_lelongan['total_bakipjm'] }}</td>
<td>{{ $summary_lelongan['total_keuntungan'] }}</td> <td>{{ $summary_lelongan['total_keuntungan'] }}</td>
<td>{{ $summary_lelongan['total_cajlelong'] }}</td> <td>{{ $summary_lelongan['total_cajlelong'] }}</td>
<td>{{ $summary_lelongan['total_hargaasas'] }}</td>
<td>{{ $summary_lelongan['total_hargajual'] }}</td> <td>{{ $summary_lelongan['total_hargajual'] }}</td>
<td>{{ $summary_lelongan['total_baki'] }}</td> <td>{{ $summary_lelongan['total_baki'] }}</td>
@@ -110,6 +110,10 @@
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider"> class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Caj Lelong(RM) Caj Lelong(RM)
</th> </th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Harga Asas(RM)
</th>
<th <th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider"> class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Harga Jual(RM) Harga Jual(RM)
@@ -133,6 +137,7 @@
$totalkeuntungan = 0; $totalkeuntungan = 0;
$totalcajlelong = 0; $totalcajlelong = 0;
$totalhargajual= 0; $totalhargajual= 0;
$totalhargaasas= 0;
$totalbaki= 0; $totalbaki= 0;
@endphp @endphp
<tbody> <tbody>
@@ -146,6 +151,7 @@
$totalkeuntungan += $lelong['sum_bakiupah']; $totalkeuntungan += $lelong['sum_bakiupah'];
$totalcajlelong+= $lelong['sum_cajlelong']; $totalcajlelong+= $lelong['sum_cajlelong'];
$totalhargajual+= $lelong['sum_hargajual']; $totalhargajual+= $lelong['sum_hargajual'];
$totalhargaasas+= $lelong['sum_hargaasas'];
$totalbaki+= $lelong['sum_baki']; $totalbaki+= $lelong['sum_baki'];
@endphp @endphp
@@ -227,6 +233,14 @@
</div> </div>
</div> </div>
</td> </td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="flex items-center">
<div class="ml-3">
<p class="text-gray-900 whitespace-no-wrap">
{{ number_format($lelong['sum_hargaasas'], 2) }}</p>
</div>
</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm"> <td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="flex items-center"> <div class="flex items-center">
<div class="ml-3"> <div class="ml-3">
@@ -330,6 +344,14 @@
</div> </div>
</div> </div>
</td> </td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="flex items-center">
<div class="ml-3">
<p class="text-gray-900 whitespace-no-wrap">
{{ number_format($totalhargaasas,2) }}</p>
</div>
</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm"> <td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="flex items-center"> <div class="flex items-center">
<div class="ml-3"> <div class="ml-3">