From a8bab7bbe59c2e092bbef0365b61ae58cabcc8ee Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Sat, 31 Jan 2026 23:15:38 +0800 Subject: [PATCH] 1688 PO Automation Project, minor business logic fix --- .../DataTransferObjects/TransactionObject.php | 22 ++++++++++++++++++- ...reatePurchaseOrderTransactionProcessor.php | 5 +++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/DataTransferObjects/TransactionObject.php b/app/Classes/Modules/Transactions/DataTransferObjects/TransactionObject.php index 6b097b9e..7c1051a0 100644 --- a/app/Classes/Modules/Transactions/DataTransferObjects/TransactionObject.php +++ b/app/Classes/Modules/Transactions/DataTransferObjects/TransactionObject.php @@ -240,6 +240,26 @@ class TransactionObject implements DataTransferObject } + /** + * Set the amount. + * + * @param float $amount + * @return void + */ + public function setAmount(float $amount): void + { + $this->amount = $amount; + } + /** + * Set the original amount. + * + * @param float $originalAmount + * @return void + */ + public function setOriginalAmount(float $originalAmount): void + { + $this->originalAmount = $originalAmount; + } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Transactions/Processors/CreatePurchaseOrderTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreatePurchaseOrderTransactionProcessor.php index 8d6c7c71..64a7a13e 100644 --- a/app/Classes/Modules/Transactions/Processors/CreatePurchaseOrderTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreatePurchaseOrderTransactionProcessor.php @@ -61,6 +61,11 @@ class CreatePurchaseOrderTransactionProcessor /** @var Transaction $transaction */ $transaction = $booking->transactions()->where('type', TransactionType::PURCHASE_ORDER)->first(); + if($append){ + $object->setAmount($transaction->amount + $object->getAmount()); + $object->setOriginalAmount($transaction->original_amount + $object->getOriginalAmount()); + } + !$transaction ? $transaction = $this->createsTransaction->execute($booking, $object) : $transaction = $this->updatesTransaction->execute($transaction, $object); $this->updatesTransactionStatus->execute($transaction, (float) number_format($object->getAmount(), 2, '.', '') === (float) number_format((float)$booking->fix_amount, 2, '.', '') ? ApprovalStatus::PENDING_VERIFICATION : ApprovalStatus::PENDING_SUBMISSION);