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
|
: string
|
||||||
{
|
{
|
||||||
try {
|
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(
|
return Carbon::createFromFormat(
|
||||||
'YmdHi',
|
'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');
|
)->format('d/m/Y H:i');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
Log::warning("Error formatting transaction date: " . $e->getMessage());
|
Log::warning("Error formatting transaction date: " . $e->getMessage());
|
||||||
@@ -182,9 +196,24 @@
|
|||||||
: string
|
: string
|
||||||
{
|
{
|
||||||
try {
|
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(
|
return Carbon::createFromFormat(
|
||||||
'ymdHi',
|
'ymdHi',
|
||||||
$item->ft?->date_time ?? '2505120000'
|
$datetime
|
||||||
)->format('d/m/Y H:i');
|
)->format('d/m/Y H:i');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
Log::warning("Error formatting actual date: " . $e->getMessage());
|
Log::warning("Error formatting actual date: " . $e->getMessage());
|
||||||
|
|||||||
Reference in New Issue
Block a user