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