diff --git a/routes/web.php b/routes/web.php index 55cd1302..7a6df56a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,11 +1,8 @@ '; }); + +Route::get('fix-payment-status-updated-but-failed-update-invoice', function (UpdatesTransactionStatus $updatesTransactionStatus, UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor) { + $invoices = Transaction::where('type', TransactionType::SHIPPING_INVOICE)->whereIn('status', [2]) + ->whereHas('transactions', function ($query) { + $query->where('type', TransactionType::PAYMENT) + ->whereIn('status', [2, 3]); + })->get(); + + + foreach ($invoices as $invoice) { + echo "Fixing" . $invoice->owner->owner->reference . '
'; + + $totalPaidAmount = $invoice->transactions->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->sum('amount'); + + if (($invoice->amount - $totalPaidAmount) < 0.01) { + $updatesTransactionStatus->execute($invoice, ApprovalStatus::COMPLETED); + + $packingList = $invoice->owner; + + $packingList->status = ApprovalStatus::APPROVED; + $packingList->save(); + + if (app()->environment('production')) { + $updateDoFromVTPortalProcessor->execute($packingList); + $updateDoFromYDPortalProcessor->execute($packingList); + } + + echo 'done fix ' . $invoice->owner->owner->reference . '
'; + } + } +}); \ No newline at end of file