From e159d0d76948e7404196c0ef4eeb10a3dd6ce86f Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 22 Aug 2025 21:33:20 +0800 Subject: [PATCH] E-Invoice - special handling of cases for those booking done before 1st July 2025 that need to generate E-Invoice --- .../ControllersLogic/BatchBookingsGenerateEInvoiceLogic.php | 6 +++--- .../Modules/Exports/Services/ExportsARCreditNoteReport.php | 2 +- .../Services/ExportsReceivePaymentForBookingReport.php | 2 +- .../Modules/Imports/ControllersLogic/ImportExcelLogic.php | 6 +++--- .../ControllersLogic/GenerateCreditNotePdfV2Logic.php | 2 +- .../Processors/CreateInvoiceDocumentProcessor.php | 2 +- app/Classes/ValueObjects/Constants/KVPKey.php | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/Classes/Modules/Bookings/ControllersLogic/BatchBookingsGenerateEInvoiceLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/BatchBookingsGenerateEInvoiceLogic.php index 9d44e244..84cae498 100644 --- a/app/Classes/Modules/Bookings/ControllersLogic/BatchBookingsGenerateEInvoiceLogic.php +++ b/app/Classes/Modules/Bookings/ControllersLogic/BatchBookingsGenerateEInvoiceLogic.php @@ -90,16 +90,16 @@ class BatchBookingsGenerateEInvoiceLogic extends AbstractControllerLogic ->latest('created_at'); }) ->whereHas('attributesKVP', function (Builder $query) { - $query->where('key', KVPKey::AUTOCOUNT_DOCNO); + $query->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE); }) ->with(['attributesKVP' => function ($query) { - $query->where('key', KVPKey::AUTOCOUNT_DOCNO); + $query->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE); }]) ->get(); foreach ($bookings as $booking) { //$autocountValue = optional($booking->attributesKVP->first())->value; - //Log::info('Booking ID: ' . $booking->marking . ' | AUTOCOUNT_DOCNO: ' . $autocountValue); + //Log::info('Booking ID: ' . $booking->marking . ' | AUTOCOUNT_DOCNO_INVOICE: ' . $autocountValue); // $this->regenerateInvoiceBookingProcessor->execute($booking); ProcessBookingForEInvoiceV2CommandJob::dispatch($booking); } diff --git a/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php b/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php index 9592cd93..fb140642 100644 --- a/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php +++ b/app/Classes/Modules/Exports/Services/ExportsARCreditNoteReport.php @@ -88,7 +88,7 @@ class ExportsARCreditNoteReport implements FromQuery, WithHeadings, WithHeadingR $refundRemark = $refundTransaction->remarks && $refundTransaction->remarks->first() ? $refundTransaction->remarks->first()->content : null; $booking = $refundTransaction->owner->booking; if($booking){ - $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO)->first(); + $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first(); if($metadata){ $autoCountSalesInvoiceId = $metadata->value; } diff --git a/app/Classes/Modules/Exports/Services/ExportsReceivePaymentForBookingReport.php b/app/Classes/Modules/Exports/Services/ExportsReceivePaymentForBookingReport.php index 32d6e86d..cacbd43b 100644 --- a/app/Classes/Modules/Exports/Services/ExportsReceivePaymentForBookingReport.php +++ b/app/Classes/Modules/Exports/Services/ExportsReceivePaymentForBookingReport.php @@ -80,7 +80,7 @@ class ExportsReceivePaymentForBookingReport implements FromQuery, WithHeadings, } if($booking){ - $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO)->first(); + $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first(); if($metadata){ $autoCountSalesInvoiceId = $metadata->value; } diff --git a/app/Classes/Modules/Imports/ControllersLogic/ImportExcelLogic.php b/app/Classes/Modules/Imports/ControllersLogic/ImportExcelLogic.php index 22eb7eb4..27ecc768 100644 --- a/app/Classes/Modules/Imports/ControllersLogic/ImportExcelLogic.php +++ b/app/Classes/Modules/Imports/ControllersLogic/ImportExcelLogic.php @@ -185,7 +185,7 @@ class ImportExcelLogic extends AbstractControllerLogic $booking = Booking::where('marking', $ref)->first(); if($booking){ if($docNo != "" && $docNo != "<>"){ - $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCNO, $docNo); + $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCNO_INVOICE, $docNo); } if($eInvoiceValidationLink){ $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink); @@ -219,12 +219,12 @@ class ImportExcelLogic extends AbstractControllerLogic if($knockOffDocNo) { - $kvp = KeyValuePair::where('key', KVPKey::AUTOCOUNT_DOCNO)->where('value', $knockOffDocNo)->first(); + $kvp = KeyValuePair::where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->where('value', $knockOffDocNo)->first(); if($kvp){ $booking = $kvp->owner; if($booking){ if($docNo != "" && $docNo != "<>"){ - $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_OFFICIAL_RECEIPT_DOCNO, $docNo); + $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCNO_OFFICIAL_RECEIPT, $docNo); } // if($eInvoiceValidationLink){ // $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink); diff --git a/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php b/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php index 7168a175..0d74ec3d 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/GenerateCreditNotePdfV2Logic.php @@ -94,7 +94,7 @@ class GenerateCreditNotePdfV2Logic $autoCountInvoiceId = ''; $autoCountEInvoiceValidationLink = ''; - $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO)->first(); + $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first(); if($metadata){ $autoCountInvoiceId = $metadata->value; } diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php index 8f36ea91..96e64155 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php @@ -69,7 +69,7 @@ class CreateInvoiceDocumentProcessor } if($document_type === DocumentType::EINVOICE){ - $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO)->first(); + $metadata = $booking->attributesKVP()->where('key', KVPKey::AUTOCOUNT_DOCNO_INVOICE)->first(); if($metadata){ $autoCountInvoiceId = $metadata->value; } diff --git a/app/Classes/ValueObjects/Constants/KVPKey.php b/app/Classes/ValueObjects/Constants/KVPKey.php index b2943b4c..7a8b42ae 100644 --- a/app/Classes/ValueObjects/Constants/KVPKey.php +++ b/app/Classes/ValueObjects/Constants/KVPKey.php @@ -6,9 +6,9 @@ namespace App\Classes\ValueObjects\Constants; class KVPKey { - public const AUTOCOUNT_DOCNO = 'AUTOCOUNT_DOCNO'; + public const AUTOCOUNT_DOCNO_INVOICE = 'AUTOCOUNT_DOCNO_I'; - public const AUTOCOUNT_OFFICIAL_RECEIPT_DOCNO = 'AUTOCOUNT_OR_DOCNO'; + public const AUTOCOUNT_DOCNO_OFFICIAL_RECEIPT = 'AUTOCOUNT_DOCNO_OR'; public const AUTOCOUNT_EINVOICE_VALIDATION_LINK = 'AUTOCOUNT_EINVOICE_VALIDATION_LINK';