feat(webstatement): tambah helper untuk menghitung tanggal periode dan perbaikan validasi permintaan
Perubahan yang dilakukan: - Menambahkan fungsi `calculatePeriodDates` di `helpers.php` untuk menghitung tanggal awal dan akhir berdasarkan periode. - Mendukung periode khusus seperti `202505`, dengan aturan tanggal mulai dari tanggal 9 hingga akhir bulan. - Menambahkan logging di `calculatePeriodDates` untuk memudahkan debugging saat proses penentuan tanggal. - Memperbaiki validasi di `PrintStatementRequest` dengan menyesuaikan tipe data dan aturan logika. - Merapikan aturan validasi pada `account_number` agar lebih konsisten dan mudah dibaca. - Menambahkan `helpers.php` ke properti `files` di `module.json` agar dapat diakses secara global. Tujuan perubahan: - Mendukung logika tanggal periode khusus dengan aturan tertentu. - Menyelaraskan validasi permintaan dengan standar internal yang lebih baik dan lebih stabil. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
39
app/Helpers/helpers.php
Normal file
39
app/Helpers/helpers.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
if(!function_exists('calculatePeriodDates')) {
|
||||
/**
|
||||
* Fungsi untuk menghitung tanggal periode berdasarkan periode yang diberikan
|
||||
* Jika periode 202505, mulai dari tanggal 9 sampai akhir bulan
|
||||
* Jika periode lain, mulai dari tanggal 1 sampai akhir bulan
|
||||
*/
|
||||
function calculatePeriodDates($period)
|
||||
{
|
||||
$year = substr($period, 0, 4);
|
||||
$month = substr($period, 4, 2);
|
||||
|
||||
// Log untuk debugging
|
||||
Log::info('Calculating period dates', [
|
||||
'period' => $period,
|
||||
'year' => $year,
|
||||
'month' => $month,
|
||||
]);
|
||||
|
||||
if ($period === '202505') {
|
||||
// Untuk periode 202505, mulai dari tanggal 9
|
||||
$startDate = \Carbon\Carbon::createFromDate($year, $month, 9,'Asia/Jakarta');
|
||||
} else {
|
||||
// Untuk periode lain, mulai dari tanggal 1
|
||||
$startDate = \Carbon\Carbon::createFromDate($year, $month, 1,'Asia/Jakarta');
|
||||
}
|
||||
|
||||
// Tanggal akhir selalu akhir bulan
|
||||
$endDate = \Carbon\Carbon::createFromDate($year, $month, 1)->endOfMonth();
|
||||
|
||||
return [
|
||||
'start' => $startDate,
|
||||
'end' => $endDate,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -33,8 +33,7 @@ class PrintStatementRequest extends FormRequest
|
||||
$fail('Account number is required when statement type is not specified.');
|
||||
}
|
||||
}
|
||||
},
|
||||
'string'
|
||||
}
|
||||
],
|
||||
'stmt_sent_type' => ['nullable', 'array'],
|
||||
'stmt_sent_type.*' => ['string', 'in:ALL,BY.EMAIL,BY.MAIL.TO.DOM.ADDR,BY.MAIL.TO.KTP.ADDR,NO.PRINT,PRINT'],
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
"providers": [
|
||||
"Modules\\Webstatement\\Providers\\WebstatementServiceProvider"
|
||||
],
|
||||
"files": [],
|
||||
"files": [
|
||||
"app/Helpers/helpers.php"
|
||||
],
|
||||
"menu": {
|
||||
"main": [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user