fix(export): improve narrative generation logic and add additional ID formats
- Menambahkan validasi untuk memeriksa apakah `transaction` ada sebelum mengakses propertinya sehingga mencegah error pada situasi `null`. - Menambahkan fallback description jika `transaction` bernilai null pada metode `generateNarrative`. - Menambahkan dukungan untuk ID narasi tambahan seperti `APITRX`, `ONUSCR`, dan `ONUSDR` pada `getFormatNarrative`. - Memodifikasi output `cleanPart` dengan menambahkan spasi untuk memastikan format narasi lebih konsisten. - Mengubah penggantian `<NL>` dalam hasil akhir menjadi spasi kosong untuk meningkatkan keterbacaan hasil narasi.
This commit is contained in:
@@ -198,16 +198,24 @@
|
|||||||
private function generateNarrative($item)
|
private function generateNarrative($item)
|
||||||
{
|
{
|
||||||
$narr = '';
|
$narr = '';
|
||||||
if ($item->transaction->narr_type) {
|
|
||||||
$narr .= $item->transaction->stmt_narr . ' ';
|
// Check if transaction exists before accessing its properties
|
||||||
$narr .= $this->getFormatNarrative($item->transaction->narr_type, $item);
|
if ($item->transaction) {
|
||||||
|
if ($item->transaction->narr_type) {
|
||||||
|
$narr .= $item->transaction->stmt_narr . ' ';
|
||||||
|
$narr .= $this->getFormatNarrative($item->transaction->narr_type, $item);
|
||||||
|
} else {
|
||||||
|
$narr .= $item->transaction->stmt_narr . ' ';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$narr .= $item->transaction->stmt_narr . ' ';
|
// Fallback description if transaction is null
|
||||||
|
$narr .= '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($item->ft?->recipt_no) {
|
if ($item->ft?->recipt_no) {
|
||||||
$narr .= 'Receipt No: ' . $item->ft->recipt_no;
|
$narr .= 'Receipt No: ' . $item->ft->recipt_no;
|
||||||
}
|
}
|
||||||
|
|
||||||
return trim($narr);
|
return trim($narr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,7 +239,13 @@
|
|||||||
$fmt = 'TT.O.TRF';
|
$fmt = 'TT.O.TRF';
|
||||||
} else if ($narrParam->_id == 'TTTRFIN') {
|
} else if ($narrParam->_id == 'TTTRFIN') {
|
||||||
$fmt = 'TT.I.TRF';
|
$fmt = 'TT.I.TRF';
|
||||||
} else {
|
} else if ($narrParam->_id == 'APITRX'){
|
||||||
|
$fmt = 'API.TSEL';
|
||||||
|
} else if ($narrParam->_id == 'ONUSCR'){
|
||||||
|
$fmt = 'ONUS.CR';
|
||||||
|
} else if ($narrParam->_id == 'ONUSDR'){
|
||||||
|
$fmt = 'ONUS.DR';
|
||||||
|
}else {
|
||||||
$fmt = $narrParam->_id;
|
$fmt = $narrParam->_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +274,7 @@
|
|||||||
$splitPart = explode('!', $part);
|
$splitPart = explode('!', $part);
|
||||||
if (count($splitPart) > 0) {
|
if (count($splitPart) > 0) {
|
||||||
// Remove quotes, backslashes, and other escape characters
|
// Remove quotes, backslashes, and other escape characters
|
||||||
$cleanPart = trim($splitPart[0]);
|
$cleanPart = trim($splitPart[0]).' ';
|
||||||
// Remove quotes at the beginning and end
|
// Remove quotes at the beginning and end
|
||||||
$cleanPart = preg_replace('/^["\'\\\\]+|["\'\\\\]+$/', '', $cleanPart);
|
$cleanPart = preg_replace('/^["\'\\\\]+|["\'\\\\]+$/', '', $cleanPart);
|
||||||
// Remove any remaining backslashes
|
// Remove any remaining backslashes
|
||||||
@@ -306,7 +320,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return str_replace('<NL>', '', $result);
|
return str_replace('<NL>', ' ', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user