feat(webstatement): update date formatting logic with dynamic relation mapping
- Tambahkan logika untuk memetakan prefix `trans_reference` ke hubungan objek terkait menggunakan `relationMap`. - Update method untuk mengambil nilai `date_time` dari properti terkait berdasarkan mapping prefix (`FT`, `TT`, `DC`, `AA`) dan fallback ke default `0000000000` jika mapping tidak ditemukan. - Modifikasi format tanggal menggunakan kombinasi `booking_date` dan parsing substring yang dinamis dari properti `date_time`. - Perbaiki pengolahan format tanggal pada dua method yang terpengaruh untuk memastikan data yang lebih dinamis dan akurat. - Tambahkan fallback error handling tetap menggunakan logging untuk mendeteksi potensi kesalahan format.
This commit is contained in:
@@ -168,9 +168,23 @@
|
||||
: string
|
||||
{
|
||||
try {
|
||||
$prefix = substr($item->trans_reference ?? '', 0, 2);
|
||||
$relationMap = [
|
||||
'FT' => 'ft',
|
||||
'TT' => 'tt',
|
||||
'DC' => 'dc',
|
||||
'AA' => 'aa'
|
||||
];
|
||||
|
||||
$datetime = '0000000000';
|
||||
if (isset($relationMap[$prefix])) {
|
||||
$relation = $relationMap[$prefix];
|
||||
$datetime = $item->$relation?->date_time ?? '0000000000';
|
||||
}
|
||||
|
||||
return Carbon::createFromFormat(
|
||||
'YmdHi',
|
||||
$item->booking_date . substr($item->ft?->date_time ?? '0000000000', 6, 4)
|
||||
$item->booking_date . substr($datetime, 6, 4)
|
||||
)->format('d/m/Y H:i');
|
||||
} catch (Exception $e) {
|
||||
Log::warning("Error formatting transaction date: " . $e->getMessage());
|
||||
@@ -182,9 +196,24 @@
|
||||
: string
|
||||
{
|
||||
try {
|
||||
$prefix = substr($item->trans_reference ?? '', 0, 2);
|
||||
$relationMap = [
|
||||
'FT' => 'ft',
|
||||
'TT' => 'tt',
|
||||
'DC' => 'dc',
|
||||
'AA' => 'aa'
|
||||
];
|
||||
|
||||
$datetime = '0000000000';
|
||||
if (isset($relationMap[$prefix])) {
|
||||
$relation = $relationMap[$prefix];
|
||||
$datetime = $item->$relation?->date_time ?? '0000000000';
|
||||
}
|
||||
|
||||
|
||||
return Carbon::createFromFormat(
|
||||
'ymdHi',
|
||||
$item->ft?->date_time ?? '2505120000'
|
||||
$datetime
|
||||
)->format('d/m/Y H:i');
|
||||
} catch (Exception $e) {
|
||||
Log::warning("Error formatting actual date: " . $e->getMessage());
|
||||
|
||||
Reference in New Issue
Block a user