feat(webstatement): tambah fitur pengiriman statement ke email
- 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>
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
namespace Modules\Webstatement\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Webstatement\Models\PrintStatementLog as Statement;
|
||||
|
||||
class PrintStatementRequest extends FormRequest
|
||||
@@ -29,6 +28,8 @@
|
||||
'branch_code' => ['required', 'string', 'exists:branches,code'],
|
||||
'account_number' => ['required', 'string'],
|
||||
'is_period_range' => ['sometimes', 'boolean'],
|
||||
'email' => ['nullable', 'email'],
|
||||
'email_sent_at' => ['nullable', 'timestamp'],
|
||||
'period_from' => [
|
||||
'required',
|
||||
'string',
|
||||
@@ -36,8 +37,8 @@
|
||||
// Prevent duplicate requests with same account number and period
|
||||
function ($attribute, $value, $fail) {
|
||||
$query = Statement::where('account_number', $this->input('account_number'))
|
||||
->where('authorization_status', '!=', 'rejected')
|
||||
->where('period_from', $value);
|
||||
->where('authorization_status', '!=', 'rejected')
|
||||
->where('period_from', $value);
|
||||
|
||||
// If this is an update request, exclude the current record
|
||||
if ($this->route('statement')) {
|
||||
@@ -100,17 +101,17 @@
|
||||
protected function prepareForValidation()
|
||||
: void
|
||||
{
|
||||
if($this->has('period_from')){
|
||||
if ($this->has('period_from')) {
|
||||
//conver to YYYYMM format
|
||||
$this->merge([
|
||||
'period_from' => substr($this->period_from, 0, 4).substr($this->period_from, 5, 2),
|
||||
'period_from' => substr($this->period_from, 0, 4) . substr($this->period_from, 5, 2),
|
||||
]);
|
||||
}
|
||||
|
||||
if($this->has('period_to')){
|
||||
if ($this->has('period_to')) {
|
||||
//conver to YYYYMM format
|
||||
$this->merge([
|
||||
'period_to' => substr($this->period_to, 0, 4).substr($this->period_to, 5, 2),
|
||||
'period_to' => substr($this->period_to, 0, 4) . substr($this->period_to, 5, 2),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user