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)',
'Keuntungan (RM)',
'Caj Lelong (RM)',
'Harga Asas (RM)',
'Harga Jual (RM)',
'Baki (RM)',
];
@@ -57,6 +58,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
$sum_pinjaman = 0;
$sum_bakiupah = 0;
$sum_cajlelong = 0;
$sum_hargaasas = 0;
$sum_hargajual = 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_bakiupah'] ?? 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_baki'] ?? 0), 2),
@@ -87,6 +90,7 @@ class LelonganAllExportExcel extends DefaultValueBinder implements FromArray, Wi
$sum_bakipjm += (float) $data['sum_bakipjm'];
$sum_bakiupah += (float) $data['sum_bakiupah'];
$sum_cajlelong += (float) $data['sum_cajlelong'];
$sum_hargaasas += (float) $data['sum_hargaasas'];
$sum_hargajual += (float) $data['sum_hargajual'];
$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_bakiupah, 2),
number_format($sum_cajlelong, 2),
number_format($sum_hargaasas, 2),
number_format($sum_hargajual, 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[8] ?? 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);
}
// 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;
}
}
+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,
'K' => 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,
'C' => 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>Keuntungan (RM)</th>
<th>Caj Lelong (RM)</th>
<th>Harga Asas (RM)</th>
<th>Harga Jual (RM)</th>
<th>Baki(RM)</th>
</tr>
@@ -68,6 +69,7 @@
<td>{{ $lelongan_detail['bakipjm'] }}</td>
<td>{{ $lelongan_detail['keuntungan'] }}</td>
<td>{{ $lelongan_detail['cajlelong'] }}</td>
<td>{{ $lelongan_detail['hargaasas'] }}</td>
<td>{{ $lelongan_detail['hargajual'] }}</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_keuntungan'] }}</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_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>Keuntungan(RM)</th>
<th>Caj Lelong(RM)</th>
<th>Harga Asas(RM)</th>
<th>Harga Jual(RM)</th>
<th>Baki(RM)</th>
@@ -49,6 +50,7 @@
<td>{{ $data['summary_lelongan_teller']['total_bakipjm'] }}</td>
<td>{{ $data['summary_lelongan_teller']['total_keuntungan'] }}</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_baki'] }}</td>
@@ -64,6 +66,7 @@
<td>{{ $summary_lelongan['total_bakipjm'] }}</td>
<td>{{ $summary_lelongan['total_keuntungan'] }}</td>
<td>{{ $summary_lelongan['total_cajlelong'] }}</td>
<td>{{ $summary_lelongan['total_hargaasas'] }}</td>
<td>{{ $summary_lelongan['total_hargajual'] }}</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">
Caj Lelong(RM)
</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
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)
@@ -133,6 +137,7 @@
$totalkeuntungan = 0;
$totalcajlelong = 0;
$totalhargajual= 0;
$totalhargaasas= 0;
$totalbaki= 0;
@endphp
<tbody>
@@ -146,6 +151,7 @@
$totalkeuntungan += $lelong['sum_bakiupah'];
$totalcajlelong+= $lelong['sum_cajlelong'];
$totalhargajual+= $lelong['sum_hargajual'];
$totalhargaasas+= $lelong['sum_hargaasas'];
$totalbaki+= $lelong['sum_baki'];
@endphp
@@ -227,6 +233,14 @@
</div>
</div>
</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">
<div class="flex items-center">
<div class="ml-3">
@@ -330,6 +344,14 @@
</div>
</div>
</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">
<div class="flex items-center">
<div class="ml-3">