- Menambahkan `AccountBalanceService` dengan transaksi PostgreSQL dan proper error handling.
- Implementasi `BalanceServiceProvider` untuk mendukung dependency injection pattern.
- Registrasi `BalanceServiceProvider` dalam `WebstatementServiceProvider`.
- Penambahan `CAST` ke `DECIMAL(15,2)` untuk kompatibilitas PostgreSQL.
- Perhitungan balance summary mencakup opening balance dan closing balance.
- Agregasi transaksi dengan type casting yang aman.
- Implementasi database transaction handling dengan mekanisme rollback dan commit.
- Logging komprehensif untuk debugging dan audit trail.
- Mendukung balance inquiry berdasarkan tanggal maupun periode tertentu.
- Validasi akun dengan pengecekan `exists` untuk memastikan data valid.
- **Penyesuaian Konfigurasi PHPMailer**:
- Menambahkan logika baru untuk mengabaikan validasi sertifikat SSL agar mendukung lingkungan yang menggunakan sertifikat self-signed atau tidak valid.
- Menambahkan pengecekan properti konfigurasi `ignore_certificate_errors`.
- Konfigurasi tambahan meliputi:
- `verify_peer` diatur ke `false`.
- `verify_peer_name` diatur ke `false`.
- `allow_self_signed` diatur ke `true`.
- **Peningkatan Debugging**:
- Mengaktifkan mode debug jika aplikasi dalam mode debug (`config('app.debug')`).
- **Tujuan Perubahan**:
- Memfasilitasi pengelolaan email di lingkungan development atau pengujian.
- Mendukung sertifikat SSL non-standar tanpa mengganggu fungsionalitas pengiriman email lainnya.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
- **Migrasi ke PHPMailer:**
- Mengganti penggunaan `Illuminate\Support\Facades\Mail` ke PHPMailer untuk pengiriman email.
- Menambahkan service baru `PHPMailerService` dengan dukungan autentikasi NTLM/GSSAPI.
- Mengintegrasikan logika pengiriman email ke dalam `StatementEmail` menggunakan PHPMailer.
- Memindahkan logika attachment dan body email ke helper method pada kelas `StatementEmail`.
- **Perbaikan Logging dan Penanganan Error:**
- Menambah logging lebih mendetail pada proses pengiriman email, termasuk informasi seperti penerima, subjek, dan status pengiriman.
- Menambahkan fallback untuk pembuatan konten HTML jika terjadi kegagalan rendering pada template Blade.
- Menambahkan pengecekan dan logging untuk kegagalan pengiriman email dengan mekanisme exception handling.
- **Peningkatan Template Email:**
- Memperbaiki elemen ulasan pada template email untuk mendukung tampilan yang lebih bersih menggunakan `list-style-type: none`.
- Memodifikasi markup footer untuk memberikan batas terformat lebih baik.
- **Optimasi Proses Backend:**
- Menambahkan delay antar pengiriman email untuk menghindari rate limiting pada koneksi NTLM/GSSAPI.
- Menyediakan format nama attachment dinamis berdasarkan rekening dan periode laporan.
- Memanfaatkan konfigurasi enkripsi dinamis, dengan fallback untuk pengujian/development.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>