generatesTransactionBillNumber = $generatesTransactionBillNumber; $this->createsWalletTransaction = $createsWalletTransaction; } /** * @param Booking $booking * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Wallet $wallet, WalletObject $walletOject, int $transactionType) { $billNumber = $this->generatesTransactionBillNumber->execute('WAL-'); $transaction_object = new TransactionObject( $billNumber, $transactionType, $wallet->company->id, 1, 1, PaymentMethodType::BA, $walletOject->getAmount(), $walletOject->getAmount(), $wallet->currency_id, $wallet->currency_id, 0, 0, 0, null, ApprovalStatus::PENDING_SUBMISSION ); $walletTransaction = $this->createsWalletTransaction->execute($wallet, $transaction_object); return $walletTransaction; } }