- **Penambahan Fitur Multi-Branch:**
- Tambahkan dropdown pilihan cabang (branch) saat fitur multi-branch diaktifkan.
- Secara otomatis mengisi informasi branch jika hanya tersedia satu branch yang terkait dengan user.
- **Perbaikan Validasi Form:**
- Memastikan field `account_number` dan `branch_id` memiliki validasi yang lebih ketat.
- Tambahkan validasi untuk `period_from` agar hanya menerima data periode yang tersedia (`is_available`).
- **Perubahan Tampilan:**
- Menyesuaikan desain form:
- Tambahkan kondisi dynamic display pada field branch berdasarkan status multi-branch.
- Reformat struktur HTML untuk meningkatkan keterbacaan dengan indentasi lebih konsisten.
- Perbaikan tampilan elemen tabel pada daftar request statement:
- Mengoptimalkan style menggunakan properti CSS baru pada grid dan typography.
- **Optimasi Query dan Akses Data:**
- Tambahkan filter berdasarkan `branch_code` agar data hanya terlihat untuk cabang yang relevan dengan user.
- Optimalkan pengambilan data branch dengan hanya memuat cabang yang aktif.
- **Peningkatan Logging:**
- Tambahkan log pada pengolahan query untuk mendeteksi masalah akses branch saat user tidak memiliki akses multi-branch.
- **Refaktor Backend:**
- Tambahkan variable `multiBranch` pada controller untuk mengatur logika UI secara dinamis.
- Refaktor pencarian branch di server-side untuk mengantisipasi session `MULTI_BRANCH`.
Perubahan ini mendukung fleksibilitas akses cabang untuk user dengan mode multi-branch serta meningkatkan validasi dan pengalaman UI form.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
### Perubahan Utama
- Tambah validasi untuk memverifikasi bahwa nomor rekening sesuai dengan cabang pengguna.
- Cegah transaksi untuk rekening yang terdaftar di cabang khusus (`ID0019999`).
- Perbaikan sistem untuk menangani kasus rekening yang tidak ditemukan di database.
### Detail Perubahan
1. **Validasi Cabang Rekening**:
- Tambah pengecekan untuk memastikan rekening yang dimasukkan adalah milik cabang pengguna (non-multi-branch).
- Blokir transaksi jika rekening terdaftar pada cabang khusus (`ID0019999`) dengan menampilkan pesan error yang relevan.
- Tambahkan pesan error jika nomor rekening tidak ditemukan dalam sistem.
2. **Update Logika Penyimpanan**:
- Tambahkan validasi untuk mengisi kolom `branch_code` secara otomatis berdasarkan informasi rekening terkait.
- Otomatis atur nilai awal `authorization_status` menjadi `approved`.
3. **Penghapusan Atribut Tidak Digunakan**:
- Hapus form `branch_code` dari view terkait (`index.blade.php`) karena sekarang diisi secara otomatis berdasarkan data rekening.
4. **Perbaikan View dan Logika Terkait Status Otorisasi**:
- Hapus logic dan elemen UI terkait `authorization_status` di halaman statement (`index.blade.php` dan `show.blade.php`).
- Simplifikasi tampilan untuk hanya menampilkan informasi yang tersedia dan relevan.
5. **Optimasi Query Data Cabang**:
- Update query untuk memfilter cabang berdasarkan kondisi `customer_company` dan mengecualikan kode cabang khusus.
6. **Penyesuaian Struktur Request**:
- Hapus validasi terkait `branch_code` di `PrintStatementRequest` karena tidak lagi relevan.
7. **Log Aktivitas dan Kesalahan**:
- Tambahkan log untuk mencatat aktivitas seperti validasi rekening dan penyimpanan batch data.
- Penanganan lebih baik untuk logging jika terjadi error saat validasi nomor rekening atau penyimpanan statement.
### Manfaat Perubahan
- Meningkatkan akurasi data cabang dan validasi rekening sebelum penyimpanan.
- Menyederhanakan antarmuka pengguna dengan menghapus field input redundant.
- Memastikan proses menjadi lebih transparan dengan penanganan error yang lebih baik.
Langkah ini diterapkan untuk meningkatkan keamanan dan keandalan sistem dalam memverifikasi dan memproses pemintaan statement.
- **Perubahan Format List:**
- Mengganti properti `class="dashed-list"` dengan `style="list-style-type: none;"` untuk meningkatkan estetika dan konsistensi tampilan.
- Menambahkan simbol `-` pada setiap item list untuk memperjelas poin dalam deskripsi password.
- **Peningkatan Konsistensi:**
- Perbaikan dilakukan pada bagian deskripsi password dalam bahasa Indonesia dan Inggris untuk menjaga keseragaman format.
- Memastikan semua elemen list menggunakan format yang seragam.
- **Penyesuaian Detail:**
- Menonjolkan elemen list dengan properti HTML agar lebih mudah dipahami oleh penerima email.
- Perbaikan minor pada struktur dan whitespace untuk meningkatkan keterbacaan kode.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- **Penyesuaian Layout dan Tampilan:**
- Mengubah properti CSS pada `.container`:
- `max-width` diubah dari `90%` menjadi `100%`.
- `margin` diubah dari `20px auto` menjadi `0px auto`.
- Mengurangi padding pada elemen `.content` dari `30px` menjadi `5px` untuk meningkatkan efisiensi ruang tampilan.
- **Perbaikan Format Signature:**
- Menggabungkan pemisah signature menjadi satu baris panjang untuk meningkatkan estetika dan keterbacaan.
- Menghapus elemen `<wbr>` yang berlebihan.
- **Penghapusan Footer:**
- Menghilangkan bagian footer yang terdapat elemen copyright dan informasi customer service.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan Command `SendStatementEmailCommand` untuk mengirim email statement PDF:
- Mendukung parameter input seperti periode laporan (`YYYY-MM`), nomor rekening, ID batch, queue, dan delay waktu.
- Menjalankan validasi parameter input, mencatat log eksekusi, dan mendispatch job pengiriman email.
- Menyediakan feedback status eksekusi serta informasi job kepada user.
- Menambahkan Job `SendStatementEmailJob` untuk pengiriman statement dalam latar belakang:
- Memfilter account yang memiliki email terkait, baik dari `stmt_email` atau email dari data customer.
- Melakukan pengiriman email dengan attachment file PDF statement.
- Mencatat log sukses atau kegagalan pengiriman untuk setiap account.
- Memperbarui Model dan Template Email:
- Mengubah template email untuk mendukung pengisian nama rekening secara dinamis berdasarkan customer account.
- Menambahkan pengisian dinamis untuk tahun copyright di footer.
- Memperbarui Provider `WebstatementServiceProvider`:
- Mendaftarkan Command baru `SendStatementEmailCommand` ke dalam aplikasi.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kondisi tambahan pada tombol "kirim email" agar hanya muncul jika `data.email` tidak kosong.
- Mencegah tombol "kirim email" muncul pada kasus ketika data tersedia tetapi email kosong.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kolom `email` dan `email_sent_at` pada tabel `print_statement_logs`.
- Menambah endpoint baru untuk mengirim statement via email (`/send-email`).
- Mengupdate form request untuk validasi email pada `PrintStatementRequest`.
- Menambah logika pengiriman email dengan menggunakan `Mailable` (`StatementEmail`).
- Memvalidasi ketersediaan file statement sebelum dikirimkan via email.
- Menambahkan tombol baru pada tampilan frontend untuk opsi `Send to Email`.
- Mengupdate file zip untuk pengiriman email ketika ada statement dalam rentang waktu.
- Refaktor dan perbaikan minor pada kode terkait check statement availability.
- Menyesuaikan title menu pada `module.json` dari "Periode Statement" ke "Create Periode" dan "Print Statement" ke "Statement".
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Menambahkan kolom `remarks` pada tabel print_statement_logs untuk menyimpan catatan tambahan.
- Mengubah validasi periode pada `PrintStatementRequest` untuk mencegah request duplikasi periode.
- Memperbaiki tampilan di `statements.index` dan `statements.show` agar lebih responsif dan informatif.
- Mengubah logika download statement untuk mendukung file range periode dalam format zip.
- Menambahkan logika cek file statement berdasarkan ketersediaan file di storage SFTP.
- Menghapus file legacy `create.blade.php` yang tidak lagi digunakan.
- Menyesuaikan ikon menu dari `calendar` ke `printer` agar lebih relevan.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- Tambah menu baru untuk "Print Statement" di konfigurasi module.
- Tambah route baru untuk pengelolaan statement seperti list, download, otorisasi, dan datatables.
- Implementasi `PrintStatementController` untuk operasi terkait request dan manajemen statement.
- Implementasi model `PrintStatementLog` untuk mencatat log request statement, termasuk validasi dan relasi yang dibutuhkan.
- Tambah form request `PrintStatementRequest` untuk validasi input.
- Tambah migration untuk tabel `print_statement_logs` yang menyimpan rekaman log statement.
- Tambah halaman blade untuk index dan form request statement.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>