mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-28 00:44:04 +00:00
Laravel Vapor - Enhancement to prevent customer from underpay when a transaction also invoice storage invoices
This commit is contained in:
+39
-28
@@ -128,28 +128,8 @@ class CheckStorageInvoiceTransactionProcessor
|
||||
$packingLists = $order->destinationWarehousePackages;
|
||||
|
||||
foreach ($packingLists as $packingList){
|
||||
$arrivalDateAtChinaWarehouse = $this->getArrivalDateAtChinaWarehoue($packingList);
|
||||
LogHelper::channel('storage_invoices')->info('arrivalDateAtChinaWarehouse: '.json_encode($arrivalDateAtChinaWarehouse));
|
||||
LogHelper::channel('storage_invoices')->info('destinationWarehousePackage: '.json_encode($packingList));
|
||||
$eta = $this->getEtaFromPackingList($packingList);
|
||||
if($arrivalDateAtChinaWarehouse && $eta){
|
||||
$transactions = $packingList->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->whereIn('transactions.status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get();
|
||||
// $transactions = $destinationWarehousePackage->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->where('transactions.status', ApprovalStatus::APPROVED)->get();
|
||||
|
||||
/** @var Transaction $invoice_transaction */
|
||||
foreach ($transactions as $invoice_transaction){
|
||||
$result = null;
|
||||
if(!$is_credit_term){
|
||||
$result = $this->processSingleTransactionOfTypeShippingInvoice($invoice_transaction, $packingList, $order->company_module_id, $eta);
|
||||
}
|
||||
else{
|
||||
$result = $this->isPaidOrWaivedStorageInvoiceExist($invoice_transaction, $packingList, $eta);
|
||||
}
|
||||
if($result){
|
||||
$results[] = $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
$newResults = $this->getResults($packingList, $order, $is_credit_term);
|
||||
$results = array_merge($results, $newResults);
|
||||
}
|
||||
|
||||
return $results;
|
||||
@@ -158,13 +138,44 @@ class CheckStorageInvoiceTransactionProcessor
|
||||
public function executeShippingTransaction(Transaction $shippingInvoice){
|
||||
LogHelper::channel('storage_invoices')->info('shippingInvoice: '.json_encode($shippingInvoice));
|
||||
$results = [];
|
||||
$packingList = $shippingInvoice->owner;
|
||||
$order = $packingList->owner;
|
||||
$eta = $this->getEtaFromPackingList($packingList);
|
||||
$result = $this->processSingleTransactionOfTypeShippingInvoice($shippingInvoice, $packingList, $order->company_module_id, $eta);
|
||||
$pL = $shippingInvoice->owner;
|
||||
$order = $pL->owner;
|
||||
$is_credit_term = $order->companyModule->inviters()->withPivot('is_credit_term')->first()->pivot->is_credit_term;
|
||||
$packingLists = $order->destinationWarehousePackages;
|
||||
|
||||
if($result){
|
||||
$results[] = $result;
|
||||
foreach ($packingLists as $packingList){
|
||||
if($packingList->id === $pL->id){
|
||||
$newResults = $this->getResults($packingList, $order, $is_credit_term);
|
||||
$results = array_merge($results, $newResults);
|
||||
}
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
private function getResults($packingList, $order, $is_credit_term){
|
||||
$results = [];
|
||||
$arrivalDateAtChinaWarehouse = $this->getArrivalDateAtChinaWarehoue($packingList);
|
||||
LogHelper::channel('storage_invoices')->info('arrivalDateAtChinaWarehouse: '.json_encode($arrivalDateAtChinaWarehouse));
|
||||
LogHelper::channel('storage_invoices')->info('destinationWarehousePackage: '.json_encode($packingList));
|
||||
$eta = $this->getEtaFromPackingList($packingList);
|
||||
if($arrivalDateAtChinaWarehouse && $eta){
|
||||
$transactions = $packingList->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->whereIn('transactions.status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->get();
|
||||
// $transactions = $destinationWarehousePackage->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->where('transactions.status', ApprovalStatus::APPROVED)->get();
|
||||
|
||||
/** @var Transaction $invoice_transaction */
|
||||
foreach ($transactions as $invoice_transaction){
|
||||
$result = null;
|
||||
if(!$is_credit_term){
|
||||
$result = $this->processSingleTransactionOfTypeShippingInvoice($invoice_transaction, $packingList, $order->company_module_id, $eta);
|
||||
}
|
||||
else{
|
||||
$result = $this->isPaidOrWaivedStorageInvoiceExist($invoice_transaction, $packingList, $eta);
|
||||
}
|
||||
if($result){
|
||||
$results[] = $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user