From d5c92315cd990e0c44857bda755cc5d489893836 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Sat, 13 Sep 2025 13:29:59 +0800 Subject: [PATCH] E-Invoice - Code Refactor --- .../ControllersLogic/RegenerateInvoiceBookingLogic.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php index 486912a5..2c06836f 100644 --- a/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php +++ b/app/Classes/Modules/Bookings/ControllersLogic/RegenerateInvoiceBookingLogic.php @@ -2,6 +2,7 @@ namespace App\Classes\Modules\Bookings\ControllersLogic; +use App\Classes\Exceptions\MalformedRequestException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Bookings\Services\FetchesBooking; use App\Classes\Modules\Bookings\Standards\Rules\CanFetchBooking; @@ -73,7 +74,7 @@ class RegenerateInvoiceBookingLogic extends AbstractControllerLogic $booking = $this->fetchesBooking->execute( [ 'id' => $request->route('id'), - // 'status' => ApprovalStatus::COMPLETED, //cief todo: 90 - must have completed to avoid generate invoice inaccurately + // 'status' => ApprovalStatus::COMPLETED, 'with_transactions' => true ] ); @@ -81,6 +82,12 @@ class RegenerateInvoiceBookingLogic extends AbstractControllerLogic $eInvoiceWithNormalInvoiceTemplate = $request->input('normal_invoice', false); $eInvoiceRefund = $request->input('e_invoice_refund', false); + if(!$eInvoiceRefund){ + if($booking->status !== ApprovalStatus::COMPLETED){ + throw new MalformedRequestException('Booking incomplete.'); + } + } + // if($eInvoiceRefund){ $this->regenerateInvoiceBookingV2Processor->execute($booking, $eInvoiceWithNormalInvoiceTemplate, $eInvoiceRefund); // }