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);