Merged in izzati-feat-laporan-baki-lelong (pull request #107)
update baki lelong all
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exports\LaporanKeseluruhan;
|
||||
|
||||
use Maatwebsite\Excel\Concerns\FromArray;
|
||||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||||
use Maatwebsite\Excel\Concerns\WithCustomValueBinder;
|
||||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||||
use Maatwebsite\Excel\Concerns\WithMapping;
|
||||
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
|
||||
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder;
|
||||
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
||||
|
||||
class BakiLelongBelumTuntutAllExportExcel extends DefaultValueBinder implements
|
||||
FromArray,
|
||||
WithStrictNullComparison,
|
||||
WithMapping,
|
||||
WithHeadings,
|
||||
ShouldAutoSize,
|
||||
WithCustomValueBinder,
|
||||
WithColumnFormatting
|
||||
{
|
||||
public $data;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
$this->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);
|
||||
}
|
||||
}
|
||||
@@ -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'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user