feat(webstatement): tambah AutoSendStatementEmailCommand dan job auto pengiriman email statement
Perubahan yang dilakukan: - Menambahkan command AutoSendStatementEmailCommand untuk otomatisasi pengiriman email statement. - Menambahkan job AutoSendStatementEmailJob untuk menangani proses pengiriman email secara asynchronous. - Menambahkan opsi --force dan --dry-run pada command untuk fleksibilitas eksekusi dan pengujian. - Mengintegrasikan command baru ke dalam WebstatementServiceProvider dan Console Kernel. - Mengimplementasikan scheduler untuk menjalankan job setiap menit secara otomatis. - Menambahkan kondisi auto send: is_available dan is_generated = true, email_sent_at = null. - Mendukung pengiriman statement multi-period dalam bentuk ZIP attachment. - Mengoptimalkan proses download dan integrasi file PDF dengan logging yang lebih detail. - Menambahkan logika prioritas local disk dibandingkan SFTP untuk pengambilan file secara efisien. - Menambahkan validasi tambahan untuk flow pengiriman email single dan multi period. - Mengimplementasikan error handling dan logging yang komprehensif. - Menggunakan database transaction untuk menjamin konsistensi data selama proses kirim email. - Menambahkan mekanisme prevent overlap dan timeout protection saat job berjalan. - Menghapus file sementara secara otomatis setelah email berhasil dikirim. - Membatasi proses pengiriman maksimal 50 statement per run untuk menjaga performa. Tujuan perubahan: - Mengotomatiskan pengiriman email statement pelanggan secara periodik dan aman. - Menyediakan fleksibilitas eksekusi manual dan simulasi pengujian sebelum produksi. - Menjamin efisiensi, stabilitas, dan monitoring penuh selama proses pengiriman.
This commit is contained in:
@@ -14,6 +14,7 @@ use Modules\Webstatement\Console\ProcessDailyMigration;
|
||||
use Modules\Webstatement\Console\ExportPeriodStatements;
|
||||
use Modules\Webstatement\Console\UpdateAllAtmCardsCommand;
|
||||
use Modules\Webstatement\Console\CheckEmailProgressCommand;
|
||||
use Modules\Webstatement\Console\AutoSendStatementEmailCommand;
|
||||
use Modules\Webstatement\Console\GenerateBiayakartuCommand;
|
||||
use Modules\Webstatement\Console\SendStatementEmailCommand;
|
||||
use Modules\Webstatement\Jobs\UpdateAtmCardBranchCurrencyJob;
|
||||
@@ -72,7 +73,8 @@ class WebstatementServiceProvider extends ServiceProvider
|
||||
GenerateAtmTransactionReport::class,
|
||||
SendStatementEmailCommand::class,
|
||||
CheckEmailProgressCommand::class,
|
||||
UpdateAllAtmCardsCommand::class
|
||||
UpdateAllAtmCardsCommand::class,
|
||||
AutoSendStatementEmailCommand::class
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user