From 2120b1e5b2141431d01590b706775061c48471b5 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 30 May 2025 15:01:52 +0800 Subject: [PATCH 1/3] E-Invoice - Minor update on syntax --- .../Services/UpdatesCompanyEInvoiceRequest.php | 4 +++- .../sections/BookingDetailsSectionComponent.vue | 13 +++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/Classes/Modules/Companies/Services/UpdatesCompanyEInvoiceRequest.php b/app/Classes/Modules/Companies/Services/UpdatesCompanyEInvoiceRequest.php index 780f8150..7a678bda 100644 --- a/app/Classes/Modules/Companies/Services/UpdatesCompanyEInvoiceRequest.php +++ b/app/Classes/Modules/Companies/Services/UpdatesCompanyEInvoiceRequest.php @@ -18,7 +18,9 @@ class UpdatesCompanyEInvoiceRequest extends AbstractUpdateRecord public function execute(Company $model, bool $eInvoice) { if (is_null($model->e_invoice) && is_null($model->e_invoice_requested_at)) { - $model->e_invoice_requested_at = now(); + if($eInvoice){ + $model->e_invoice_requested_at = now(); + } } $model->e_invoice = $eInvoice; diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index 0b600947..778e1cfb 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -179,9 +179,7 @@
TIN

- {{ booking.company.e_invoice - ? (booking.company.tin ? booking.company.tin : 'INCOMPLETE E-INVOICE INFO') - : 'NOT PROVIDED' }} + {{ invoiceInfo }}
View E-Invoice Info @@ -529,7 +527,14 @@ }, companySegmentIds() { return this.booking.company.segments.map(obj => parseInt(obj.id)); - } + }, + invoiceInfo() { + const company = this.booking.company; + if (company.e_invoice) { + return company.tin ? company.tin : 'INCOMPLETE E-INVOICE INFO'; + } + return 'NOT PROVIDED'; + }, }, watch: { pendingQueue(inComplete){ From 105cb445d6897291ea33284303183d68658a6c5e Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 30 May 2025 15:36:35 +0800 Subject: [PATCH 2/3] E-Invoice - Minor UI update --- .../sections/BookingDetailsSectionComponent.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue index 778e1cfb..19f9b17b 100644 --- a/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue +++ b/resources/assets/vue/components/bookings/sections/BookingDetailsSectionComponent.vue @@ -305,7 +305,7 @@

-
Delete Transfer
+
Delete Transfer
-
Change Booking Owner
+
Change Booking Owner
@@ -569,3 +569,10 @@ } } + From cec2fe58f8a624dcec0bc4df7a0f197dd08cdd80 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 30 May 2025 17:33:10 +0800 Subject: [PATCH 3/3] E-Invoice - Minor update on syntax --- .../CreateBookingPaymentLogic.php | 30 +++++++++++++++---- .../UpdateCompanyEInvoiceInfoLogic.php | 9 ++++-- .../CheckEInvoiceRuleLogic.php | 14 +++++++-- .../CheckPurchaseOrderRuleLogic.php | 26 +++++++++++++--- .../CheckTransferRuleLogic.php | 10 +++++-- 5 files changed, 73 insertions(+), 16 deletions(-) diff --git a/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingPaymentLogic.php b/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingPaymentLogic.php index 56b8fff1..79cd9d79 100644 --- a/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingPaymentLogic.php +++ b/app/Classes/Modules/Bookings/ControllersLogic/CreateBookingPaymentLogic.php @@ -93,6 +93,18 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic /** @var CreateReceiptVoucherTransactionProcessor */ private $createReceiptVoucherTransactionProcessor; + /** @var CanPassOrderDurationLimitRule */ + protected $canPassOrderDurationLimitRule; + + /** @var CanPassEInvoicePromptedRule */ + protected $canPassEInvoicePromptedRule; + + /** @var CanPassTINRule */ + protected $canPassTINRule; + + /** @var CanPassPurchaseOrderRule */ + protected $canPassPurchaseOrderRule; + /** * CreateBookingPaymentLogic constructor. * @param FetchesBookingQuotation $fetchBookingQuotation @@ -109,8 +121,12 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic * @param CalculatesBookingRefundAmount $calculatesBookingRefundAmount * @param RuleEvaluator $ruleEvaluator * @param CreateReceiptVoucherTransactionProcessor $createReceiptVoucherTransactionProcessor + * @param CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule + * @param CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule + * @param CanPassTINRule $canPassTINRule + * @param CanPassPurchaseOrderRule $canPassPurchaseOrderRule */ - public function __construct(FetchesBookingQuotation $fetchBookingQuotation, FetchesCompanyPaymentAttemptLimit $fetchesCompanyPaymentAttemptLimit, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, CalculatesBookingOutstanding $calculatesBookingOutstanding, CreatesBillplzBill $createsBillplzBill, UpdatesWalletBalance $updatesWalletBalance, UpdatesTransactionStatus $updatesTransactionStatus, CreateCashBackTransactionProcessor $createCashBackTransactionProcessor, RecalculatesWalletBalance $recalculatesWalletBalance, BookingToVoucherifyProcessor $bookingToVoucherifyProcessor, CalculatesBookingRefundAmount $calculatesBookingRefundAmount, RuleEvaluator $ruleEvaluator, CreateReceiptVoucherTransactionProcessor $createReceiptVoucherTransactionProcessor) + public function __construct(FetchesBookingQuotation $fetchBookingQuotation, FetchesCompanyPaymentAttemptLimit $fetchesCompanyPaymentAttemptLimit, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, CalculatesBookingOutstanding $calculatesBookingOutstanding, CreatesBillplzBill $createsBillplzBill, UpdatesWalletBalance $updatesWalletBalance, UpdatesTransactionStatus $updatesTransactionStatus, CreateCashBackTransactionProcessor $createCashBackTransactionProcessor, RecalculatesWalletBalance $recalculatesWalletBalance, BookingToVoucherifyProcessor $bookingToVoucherifyProcessor, CalculatesBookingRefundAmount $calculatesBookingRefundAmount, RuleEvaluator $ruleEvaluator, CreateReceiptVoucherTransactionProcessor $createReceiptVoucherTransactionProcessor, CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule, CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule, CanPassTINRule $canPassTINRule, CanPassPurchaseOrderRule $canPassPurchaseOrderRule) { $this->fetchBookingQuotation = $fetchBookingQuotation; $this->fetchesCompanyPaymentAttemptLimit = $fetchesCompanyPaymentAttemptLimit; @@ -126,6 +142,10 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic $this->calculatesBookingRefundAmount = $calculatesBookingRefundAmount; $this->ruleEvaluator = $ruleEvaluator; $this->createReceiptVoucherTransactionProcessor = $createReceiptVoucherTransactionProcessor; + $this->canPassOrderDurationLimitRule = $canPassOrderDurationLimitRule; + $this->canPassEInvoicePromptedRule = $canPassEInvoicePromptedRule; + $this->canPassTINRule = $canPassTINRule; + $this->canPassPurchaseOrderRule = $canPassPurchaseOrderRule; } /** @@ -138,10 +158,10 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic { $dto = new ConfirmBookingDTO($request->all()); $result = $this->ruleEvaluator->evaluate([ - App()->make(CanPassOrderDurationLimitRule::class), - App()->make(CanPassEInvoicePromptedRule::class), - App()->make(CanPassTINRule::class), - App()->make(CanPassPurchaseOrderRule::class), + $this->canPassOrderDurationLimitRule, + $this->canPassEInvoicePromptedRule, + $this->canPassTINRule, + $this->canPassPurchaseOrderRule, ], $dto); if ($result->failed()) { diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyEInvoiceInfoLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyEInvoiceInfoLogic.php index 3b7006ae..eb38294b 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyEInvoiceInfoLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyEInvoiceInfoLogic.php @@ -52,6 +52,9 @@ class UpdateCompanyEInvoiceInfoLogic extends AbstractControllerLogic /** @var UpdatesAddressMetadata */ private $updatesAddressMetadata; + /** @var CanPassEInvoicePromptedRule */ + private $canPassEInvoicePromptedRule; + /** * UpdateCompanyEInvoiceInfoLogic constructor. * @param CanCreateAddress $canCreateAddress @@ -61,8 +64,9 @@ class UpdateCompanyEInvoiceInfoLogic extends AbstractControllerLogic * @param RuleEvaluator $ruleEvaluator; * @param UpdatesCompanyEInvoiceInfo $updatesCompanyEInvoiceInfo; * @param UpdatesAddressMetadata $updatesAddressMetadata + * @param CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule */ - public function __construct(CanCreateAddress $canCreateAddress, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesAddress $createsAddress, RuleEvaluator $ruleEvaluator, UpdatesCompanyEInvoiceInfo $updatesCompanyEInvoiceInfo, UpdatesAddressMetadata $updatesAddressMetadata) + public function __construct(CanCreateAddress $canCreateAddress, FetchesDistrict $fetchesDistrict, FetchesCompany $fetchesCompany, CreatesAddress $createsAddress, RuleEvaluator $ruleEvaluator, UpdatesCompanyEInvoiceInfo $updatesCompanyEInvoiceInfo, UpdatesAddressMetadata $updatesAddressMetadata, CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule) { $this->canCreateAddress = $canCreateAddress; $this->fetchesDistrict = $fetchesDistrict; @@ -71,6 +75,7 @@ class UpdateCompanyEInvoiceInfoLogic extends AbstractControllerLogic $this->ruleEvaluator = $ruleEvaluator; $this->updatesCompanyEInvoiceInfo = $updatesCompanyEInvoiceInfo; $this->updatesAddressMetadata = $updatesAddressMetadata; + $this->canPassEInvoicePromptedRule = $canPassEInvoicePromptedRule; } /** @@ -85,7 +90,7 @@ class UpdateCompanyEInvoiceInfoLogic extends AbstractControllerLogic { $dto = new EInvoiceInfoDTO($request->all()); $result = $this->ruleEvaluator->evaluate([ - App()->make(CanPassEInvoicePromptedRule::class), + $this->canPassEInvoicePromptedRule, ], $dto); if ($result->failed()) { diff --git a/app/Classes/Modules/Rules/ControllersLogic/CheckEInvoiceRuleLogic.php b/app/Classes/Modules/Rules/ControllersLogic/CheckEInvoiceRuleLogic.php index b2c314d9..9c690686 100644 --- a/app/Classes/Modules/Rules/ControllersLogic/CheckEInvoiceRuleLogic.php +++ b/app/Classes/Modules/Rules/ControllersLogic/CheckEInvoiceRuleLogic.php @@ -28,12 +28,20 @@ class CheckEInvoiceRuleLogic extends AbstractControllerLogic /** @var RuleEvaluator */ private $ruleEvaluator; + /** @var CanPassEInvoicePromptedRule */ + private $canPassEInvoicePromptedRule; + + /** @var CanPassTINRule */ + private $canPassTINRule; + /** * CheckEInvoiceRuleLogic constructor. */ - public function __construct(RuleEvaluator $ruleEvaluator) + public function __construct(RuleEvaluator $ruleEvaluator, CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule, CanPassTINRule $canPassTINRule) { $this->ruleEvaluator = $ruleEvaluator; + $this->canPassEInvoicePromptedRule = $canPassEInvoicePromptedRule; + $this->canPassTINRule = $canPassTINRule; } /** @@ -49,8 +57,8 @@ class CheckEInvoiceRuleLogic extends AbstractControllerLogic $dto = new CheckEInvoiceRuleDTO($request->all()); $result = $this->ruleEvaluator->evaluate([ - App()->make(CanPassEInvoicePromptedRule::class), - App()->make(CanPassTINRule::class), + $this->canPassEInvoicePromptedRule, + $this->canPassTINRule, ], $dto); if ($result->failed()) { diff --git a/app/Classes/Modules/Rules/ControllersLogic/CheckPurchaseOrderRuleLogic.php b/app/Classes/Modules/Rules/ControllersLogic/CheckPurchaseOrderRuleLogic.php index a1c74aee..b6abaf1a 100644 --- a/app/Classes/Modules/Rules/ControllersLogic/CheckPurchaseOrderRuleLogic.php +++ b/app/Classes/Modules/Rules/ControllersLogic/CheckPurchaseOrderRuleLogic.php @@ -29,12 +29,30 @@ class CheckPurchaseOrderRuleLogic extends AbstractControllerLogic /** @var RuleEvaluator */ private $ruleEvaluator; + /** @var CanPassOrderDurationLimitRule */ + private $canPassOrderDurationLimitRule; + + /** @var CanPassEInvoicePromptedRule */ + private $canPassEInvoicePromptedRule; + + /** @var CanPassPurchaseOrderRule */ + private $canPassPurchaseOrderRule; + + /** * CheckPurchaseOrderRuleLogic constructor. + * @param RuleEvaluator $ruleEvaluator + * @param CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule + * @param CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule + * @param CanPassPurchaseOrderRule $canPassPurchaseOrderRule + */ - public function __construct(RuleEvaluator $ruleEvaluator) + public function __construct(RuleEvaluator $ruleEvaluator, CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule, CanPassEInvoicePromptedRule $canPassEInvoicePromptedRule, CanPassPurchaseOrderRule $canPassPurchaseOrderRule) { $this->ruleEvaluator = $ruleEvaluator; + $this->canPassOrderDurationLimitRule = $canPassOrderDurationLimitRule; + $this->canPassEInvoicePromptedRule = $canPassEInvoicePromptedRule; + $this->canPassPurchaseOrderRule = $canPassPurchaseOrderRule; } /** @@ -50,9 +68,9 @@ class CheckPurchaseOrderRuleLogic extends AbstractControllerLogic $dto = new CheckPurchaseOrderRuleDTO($request->all()); $result = $this->ruleEvaluator->evaluate([ - App()->make(CanPassOrderDurationLimitRule::class), - App()->make(CanPassEInvoicePromptedRule::class), - App()->make(CanPassPurchaseOrderRule::class), + $this->canPassOrderDurationLimitRule, + $this->canPassEInvoicePromptedRule, + $this->canPassPurchaseOrderRule, ], $dto); if ($result->failed()) { diff --git a/app/Classes/Modules/Rules/ControllersLogic/CheckTransferRuleLogic.php b/app/Classes/Modules/Rules/ControllersLogic/CheckTransferRuleLogic.php index b17d8ed0..a87a00d5 100644 --- a/app/Classes/Modules/Rules/ControllersLogic/CheckTransferRuleLogic.php +++ b/app/Classes/Modules/Rules/ControllersLogic/CheckTransferRuleLogic.php @@ -27,12 +27,18 @@ class CheckTransferRuleLogic extends AbstractControllerLogic /** @var RuleEvaluator */ private $ruleEvaluator; + /** @var CanPassOrderDurationLimitRule */ + private $canPassOrderDurationLimitRule; + /** * CheckTransferRuleLogic constructor. + * @param RuleEvaluator $ruleEvaluator + * @param CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule */ - public function __construct(RuleEvaluator $ruleEvaluator) + public function __construct(RuleEvaluator $ruleEvaluator, CanPassOrderDurationLimitRule $canPassOrderDurationLimitRule) { $this->ruleEvaluator = $ruleEvaluator; + $this->canPassOrderDurationLimitRule = $canPassOrderDurationLimitRule; } /** @@ -48,7 +54,7 @@ class CheckTransferRuleLogic extends AbstractControllerLogic $dto = new CheckTransferRuleDTO($request->all()); $result = $this->ruleEvaluator->evaluate([ - App()->make(CanPassOrderDurationLimitRule::class), + $this->canPassOrderDurationLimitRule, ], $dto); if ($result->failed()) {