generatesTransactionBillNumber = $generatesTransactionBillNumber; $this->createsShippingCostTransaction = $createsShippingCostTransaction; } /** * @param Order $order * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Order $order, int $quantity, float $totalCBM, float $totalShippingCost) { $billNumber = $this->generatesTransactionBillNumber->execute('SHP-'); $transactionObject = new TransactionObject( $billNumber, TransactionType::SHIPPING_COST, 1, $order->companyModule->company_id, 1, PaymentMethodType::BA, $totalShippingCost, $totalShippingCost, 1, 1, 0, 0, 0, null, ApprovalStatus::PENDING_SUBMISSION ); $transactionDetailObject = new TransactionDetailObject( TransactionType::SHIPPING_COST, 'Shipping Cost', $quantity, $totalShippingCost/$totalCBM, TaxPercentage::SIX_PERCENT ); $shippingCostTransaction = $this->createsShippingCostTransaction->execute($order, $transactionObject, $transactionDetailObject); } }