diff --git a/app/Classes/Modules/Transactions/ControllersLogic/CreateShippingInvoiceTransactionLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/CreateShippingInvoiceTransactionLogic.php index f988d73c..b15d2208 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/CreateShippingInvoiceTransactionLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/CreateShippingInvoiceTransactionLogic.php @@ -16,6 +16,7 @@ use App\Classes\Modules\Transactions\DataTransferObjects\TransactionDetailObject use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject; use App\Classes\ValueObjects\Constants\OrderRoleTypes; +use App\Classes\ValueObjects\Constants\PackageType; use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\ValueObjects\Constants\ApprovalStatus; @@ -86,7 +87,11 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic { $packing_list = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]); - $cbm = $packing_list->packages->sum(function($package) { + $cbm = $packing_list->packages->packages()->where('type', '!=', PackageType::OVER_WEIGHT)->sum(function($package) { + return ($package->width / 100) * ($package->height / 100) *($package->length / 100) * ($package->quantity); + }); + + $overWieghtCbm = $packing_list->packages()->where('type', PackageType::OVER_WEIGHT)->sum(function($package) { return ($package->width / 100) * ($package->height / 100) *($package->length / 100) * ($package->quantity); }); @@ -143,7 +148,7 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic } $price_cbm = $base_price + $warehouse_rate + $state_rate; - $total_cbm = $price_cbm * $cbm; + $total_cbm = $price_cbm * ($cbm + $overWieghtCbm); $billNumber = $this->generatesTransactionBillNumber->execute('SHIP-'); @@ -168,14 +173,24 @@ class CreateShippingInvoiceTransactionLogic extends AbstractControllerLogic $invoice_transaction = $this->createsTransaction->execute($packing_list, $object); $object_detail = new TransactionDetailObject( - $invoice_transaction->bill_no, - $invoice_transaction->bill_no, - 1, - $invoice_transaction->amount, - $invoice_transaction->amount + 'SHIPPING_FEE', + 'Shipping Fee', + $cbm, + $price_cbm ); $transaction_detail = $this->createsTransactionDetail->execute($invoice_transaction, $object_detail); + if($overWieghtCbm) { + $object_detail = new TransactionDetailObject( + 'OVERWIEGHT_CHARGES', + 'Over weight charges', + $overWieghtCbm, + $price_cbm + ); + + $transaction_detail = $this->createsTransactionDetail->execute($invoice_transaction, $object_detail); + } + $transaction_invoice_pdf = LaravelMpdf::loadView('pages.pdfs.shipping_invoice', ['invoice_transaction' => $invoice_transaction]); $document_object = new DocumentObject( diff --git a/routes/web.php b/routes/web.php index fd633b01..1ecd214e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -304,11 +304,11 @@ Route::get('/customers/active/{active_start}/{active_end}/{inactive_start?}/{ina