From 4c0484cac8e0ac455233c44768b25f81e975d637 Mon Sep 17 00:00:00 2001 From: Nur Izzati Date: Wed, 14 Jan 2026 09:23:54 +0800 Subject: [PATCH] update task uum --- app/Exports/DataPelangganDetailExport.php | 126 +++++++++ .../reports/data-pelanggan/index.blade.php | 223 ++++++++++++++++ .../reports/data-pelanggan/show.blade.php | 241 ++++++++++++++++++ 3 files changed, 590 insertions(+) create mode 100644 app/Exports/DataPelangganDetailExport.php create mode 100644 resources/views/reports/data-pelanggan/index.blade.php create mode 100644 resources/views/reports/data-pelanggan/show.blade.php diff --git a/app/Exports/DataPelangganDetailExport.php b/app/Exports/DataPelangganDetailExport.php new file mode 100644 index 0000000..26edc6f --- /dev/null +++ b/app/Exports/DataPelangganDetailExport.php @@ -0,0 +1,126 @@ +pelanggan = collect($pelanggan); + $this->year = $year; + } + + /** + * Data source + */ + public function collection(): Collection + { + return $this->pelanggan; + } + + /** + * Start data from row 5 (sebab ada tajuk) + */ + public function startCell(): string + { + return 'A5'; + } + + /** + * Header column + */ + public function headings(): array + { + return [ + 'No', + 'Nama Pelanggan', + 'Umur', + 'Jantina', + 'Pekerjaan', + 'Lokasi', + 'Tempoh Pajakan', + 'Tarikh Mula', + 'Tarikh Tamat', + 'Hari Sejak Transaksi Terakhir', + 'Bil Transaksi', + 'Bil Tebus', + 'Jumlah Pinjaman (RM)', + 'Jumlah Ujrah (RM)', + 'Tujuan Gadaian', + 'Status Aktif', + 'Cara Bayaran', + 'Tarikh Lelong', + ]; + } + + /** + * Map setiap row + */ + public function map($row): array + { + return [ + ++$this->no, + strtoupper($row['nama']), + $row['umur'], + $row['jantina'], + $row['pekerjaan'], + $row['daerah'], + $row['tempoh_pajakan'], + $row['tarikh_mula'], + $row['tarikh_tamat'], + $row['hari_sejak_transaksi'], + $row['bil_transaksi'], + $row['bil_tebus'], + number_format($row['jumlah_pinjaman'], 2), + number_format($row['jumlah_ujrah'], 2), + $row['tujuan_gadai'], + $row['status_aktif'], + $row['cara_bayaran'], + $row['tarikh_lelong'] ?? '-', + ]; + } + + /** + * Styling Excel + */ + public function styles(Worksheet $sheet) + { + // Tajuk utama + $sheet->mergeCells('A1:R1'); + $sheet->setCellValue('A1', 'LAPORAN DATA PELANGGAN'); + $sheet->getStyle('A1')->getFont()->setBold(true)->setSize(14); + $sheet->getStyle('A1')->getAlignment()->setHorizontal('center'); + + // Tahun + $sheet->mergeCells('A2:R2'); + $sheet->setCellValue('A2', 'TAHUN : ' . $this->year); + $sheet->getStyle('A2')->getFont()->setBold(true); + $sheet->getStyle('A2')->getAlignment()->setHorizontal('center'); + + // Header table + $sheet->getStyle('A5:R5')->getFont()->setBold(true); + $sheet->getStyle('A5:R5')->getAlignment()->setHorizontal('center'); + + // Auto width + foreach (range('A', 'R') as $col) { + $sheet->getColumnDimension($col)->setAutoSize(true); + } + } +} diff --git a/resources/views/reports/data-pelanggan/index.blade.php b/resources/views/reports/data-pelanggan/index.blade.php new file mode 100644 index 0000000..08f63f2 --- /dev/null +++ b/resources/views/reports/data-pelanggan/index.blade.php @@ -0,0 +1,223 @@ +@extends('layouts.app') + +@section('content') + + +
+
+
+ + {{-- Breadcrumb --}} + + + +
+ + {{-- Error Alert --}} + @if ($errors->any()) +
+ +
+ @endif + +
+
+ + {{-- Header --}} +
+ + + + + Laporan Data Pelanggan + +
+ + {{-- FORM --}} +
+ + +
+ + {{-- Tahun --}} +
+ + +
+ + Tahun + + + + + {{-- Hidden generate type --}} + + + {{-- Excel --}} + + + {{-- PDF --}} + +
+
+ +
+
+ +
+
+
+
+
+ + @include('layouts.footer') +
+ +{{-- Loading Overlay --}} + + +@endsection + +{{-- ======================= +| Scripts +|======================= --}} +@push('additional_scripts') + +@endpush + + diff --git a/resources/views/reports/data-pelanggan/show.blade.php b/resources/views/reports/data-pelanggan/show.blade.php new file mode 100644 index 0000000..dfee142 --- /dev/null +++ b/resources/views/reports/data-pelanggan/show.blade.php @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Laporan Data Pelanggan + Tarikh Cetak: {{ $tarikh_cetak }} +
TAHUN LAPORAN{{ $tebus_date }}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + @foreach($pelanggan as $index => $row) + + + + + + + + + + + + + + + + + + + + + @endforeach + +
NoNama PelangganUmurJantinaPekerjaanLokasiTempoh PajakanTarikh MulaTarikh TamatHari Sejak Transaksi TerakhirBil TransaksiBil TebusJumlah Pinjaman (RM)Jumlah Ujrah (RM)Tujuan GadaianStatus AktifCara BayaranTarikh Lelong
{{ $index + 1 }}{{ strtoupper($row['nama']) }}{{ $row['umur'] }}{{ $row['jantina'] }}{{ $row['pekerjaan'] }}{{ $row['daerah'] }}{{ $row['tempoh_pajakan'] }}{{ $row['tarikh_mula'] }}{{ $row['tarikh_tamat'] }}{{ $row['hari_sejak_transaksi'] }}{{ $row['bil_transaksi'] }}{{ $row['bil_tebus'] }}{{ number_format($row['jumlah_pinjaman'], 2) }}{{ number_format($row['jumlah_ujrah'], 2) }}{{ $row['tujuan_gadai'] }}{{ $row['status_aktif'] }}{{ $row['cara_bayaran'] }}{{ $row['tarikh_lelong'] }}
+ +
+
+ + + + + + + + + + + + + + + +
.................................................................. ..................................................................
DI SEMAK DI SAHKAN