Perubahan yang dilakukan:
- Menambahkan fungsi getProvinceCoreName di helpers.php untuk mengambil nama provinsi berdasarkan kode, menggunakan model ProvinceCore.
- Menyesuaikan tampilan alamat customer di template stmt.blade.php:
- Menambahkan RT/RW dari alamat rumah atau KTP jika tersedia.
- Menggunakan nama provinsi dari fungsi baru agar data lebih konsisten.
- Merapikan format alamat dengan menggunakan fungsi trim.
- Memperbaiki struktur HTML pada bagian alamat untuk meningkatkan keterbacaan dan perawatan kode.
Tujuan perubahan:
- Menjamin data provinsi yang ditampilkan berasal dari referensi yang valid dan terpusat.
- Meningkatkan kelengkapan dan kejelasan informasi alamat pada tampilan statement pelanggan.
- Menstandarkan format alamat agar seragam dengan kebijakan internal perusahaan.
- **Penyesuaian Tampilan pada Blade Template:**
- Menambahkan pengaturan padding khusus pada baris tambahan `narrative-line` untuk meningkatkan keterbacaan.
- Memperbaiki properti kolom, termasuk `min-width` dan `max-width` pada kolom keterangan untuk mencegah overflow.
- Mengubah alignment kolom referensi agar lebih konsisten dengan tampilan keseluruhan.
- **Optimasi Pagination:**
- Menambahkan variabel `$linePerPage` untuk menentukan jumlah baris per halaman yang lebih fleksibel.
- Mengganti hardcoded nilai 18 menjadi referensi ke `$linePerPage` di seluruh proses logika pagination.
- Mengurangi maksimal panjang karakter baris narasi dari 35 menjadi 30 untuk meningkatkan tata letak.
- **Peningkatan Kode Pemrosesan Narasi:**
- Memastikan bahwa teks narasi tambahan dirapikan dengan penghapusan karakter bracket `[ ]` menggunakan fungsi `str_replace`.
- Menambahkan class CSS `narrative-line` pada baris tambahan narasi untuk format spesifik.
- **Refaktor Logika Pemrosesan:**
- Optimasi perhitungan total halaman dengan menangani baris per halaman ($linePerPage).
- Memperbaiki mekanisme pengecekan dan iterasi baris kosong pada akhir tabel untuk menyesuaikan jumlah baris tetap.
- **Perbaikan Minor:**
- Menggunakan substring 10 karakter alih-alih `date()` untuk menampilkan tanggal untuk optimalisasi kinerja.
- Menambahkan margin dan padding default pada semua baris untuk konsistensi format antar data.
Perubahan ini memperbaiki tata letak dan fleksibilitas tabel statement, baik untuk narasi panjang maupun pagination, memastikan tampilannya tetap user-friendly tanpa memengaruhi struktur data backend.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Modifikasi method printStatementRekening untuk mendukung request_type multi_account
- Tambah method processMultiAccountStatement untuk mengambil data account berdasarkan branch_code dan stmt_sent_type
- Tambah method processSingleAccountStatement untuk memisahkan logika single account
- Implementasi GenerateMultiAccountPdfJob untuk generate PDF multiple account secara parallel
- Tambah fungsi generateAccountPdf untuk generate PDF per account dengan Browsershot
- Tambah fungsi createZipFile untuk mengompres multiple PDF menjadi satu ZIP file
- Tambah method downloadMultiAccountZip untuk download ZIP file hasil pemrosesan
- Implementasi validasi stmt_sent_type dengan support JSON array format
- Tambah logging komprehensif untuk monitoring proses multi account
- Tambah error handling dengan database transaction rollback
- Update PrintStatementLog dengan informasi target_accounts dan status pemrosesan
- Tambah rute baru untuk download ZIP file multi account
- Support untuk pemrosesan chunk account untuk optimasi memory usage
- Implementasi status tracking untuk success_count dan failed_count
- Tambah validasi keberadaan account berdasarkan kriteria yang ditentukan
- **Fitur Baru:**
- Menambahkan kemampuan untuk membuat PDF statement secara dinamis menggunakan Browsershot.
- Fitur penyimpanan otomatis PDF ke dalam local storage dengan struktur direktori berdasarkan periode dan account number.
- Menyediakan fitur unduhan langsung dari storage atau melalui preview di browser.
- Mendukung penghapusan PDF dari storage dengan log terintegrasi.
- **Perubahan pada Controller:**
- Ditambah method baru `generated` untuk membangun PDF atau tampilan HTML statement.
- Integrasi penghitungan periode saldo (`calculateSaldoPeriod`) untuk menghasilkan data laporan yang lebih akurat.
- Perubahan pada `printStatementRekening` untuk mendukung pengiriman objek statement secara penuh.
- Menambahkan method tambahan untuk preview, download, dan delete PDF langsung dari storage.
- **Validasi Permintaan:**
- Menambah validasi wajib pada `branch_code` untuk memastikan data cabang sesuai.
- Menyesuaikan logika validasi di `PrintStatementRequest` untuk mendukung input cabang dan parameter lain.
- **Cakupan Logging:**
- Meningkatkan logging pada setiap proses penting:
- Mulai dari validasi data, proses pembuatan PDF, hingga penyimpanan.
- Deteksi error secara spesifik pada setiap tahapan proses.
- Menambah log debugging untuk nama file, ukuran file, dan path penyimpanan.
- **Peningkatan pada UI:**
- Penyesuaian field `branch_code` pada form UI untuk menggantikan `branch_id` dengan validasi error yang lebih eksplisit.
- Membuat halaman baru untuk tampilan preview PDF di interface.
- **Optimisasi dan Refaktor:**
- Grouping import library untuk meningkatkan keterbacaan.
- Manajemen direktori penyimpanan PDF dipastikan berjalan dinamis dan fleksibel.
- Penghilangan redundansi logika pada proses pencarian saldo awal bulan.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>