From 745993253637478bb8fcddbbf55faa542bd09f4f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 23 Mar 2023 16:51:45 +1100 Subject: [PATCH] Add checks for stale gateway fees --- .../Controllers/ClientPortal/InvoiceController.php | 2 -- app/Jobs/Subscription/CleanStaleInvoiceOrder.php | 14 ++++++++++++++ app/Mail/Engine/PaymentEmailEngine.php | 7 ++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ClientPortal/InvoiceController.php b/app/Http/Controllers/ClientPortal/InvoiceController.php index 3bfa90b48ac5..d13445b8d057 100644 --- a/app/Http/Controllers/ClientPortal/InvoiceController.php +++ b/app/Http/Controllers/ClientPortal/InvoiceController.php @@ -80,8 +80,6 @@ class InvoiceController extends Controller /** * Pay one or more invoices. * - * @param ProcessInvoicesInBulkRequest $request - * @return mixed */ public function catch_bulk() { diff --git a/app/Jobs/Subscription/CleanStaleInvoiceOrder.php b/app/Jobs/Subscription/CleanStaleInvoiceOrder.php index f0912aefbcfc..7d8e6c517353 100644 --- a/app/Jobs/Subscription/CleanStaleInvoiceOrder.php +++ b/app/Jobs/Subscription/CleanStaleInvoiceOrder.php @@ -50,6 +50,20 @@ class CleanStaleInvoiceOrder implements ShouldQueue $repo->delete($invoice); }); + Invoice::query() + ->withTrashed() + ->where('status_id', Invoice::STATUS_SENT) + ->where('created_at', '<', now()->subHours(2)) + ->where('balance', '>', 0) + ->cursor() + ->each(function ($invoice){ + + if (collect($invoice->line_items)->contains('type_id', 3)) { + $invoice->service()->removeUnpaidGatewayFees(); + } + + }); + return; } diff --git a/app/Mail/Engine/PaymentEmailEngine.php b/app/Mail/Engine/PaymentEmailEngine.php index bda1dfc226ad..6893a24e2d46 100644 --- a/app/Mail/Engine/PaymentEmailEngine.php +++ b/app/Mail/Engine/PaymentEmailEngine.php @@ -261,7 +261,7 @@ class PaymentEmailEngine extends BaseEmailEngine $data['$invoices.balance'] = ['value' => $this->formatInvoiceField('balance'), 'label' => ctrans('texts.invoices')]; $data['$invoices.due_date'] = ['value' => $this->formatInvoiceField('due_date'), 'label' => ctrans('texts.invoices')]; $data['$invoices.po_number'] = ['value' => $this->formatInvoiceField('po_number'), 'label' => ctrans('texts.invoices')]; - + $data['$invoice_numbers'] = ['value' => $this->formatInvoiceNumbersRaw(), 'label' => ctrans('texts.invoices')]; if ($this->payment->status_id == 4) { $data['$status_logo'] = ['value' => '
' . ctrans('texts.paid') .'
', 'label' => '']; @@ -347,6 +347,11 @@ class PaymentEmailEngine extends BaseEmailEngine } + private function formatInvoiceNumbersRaw(){ + + return collect($this->payment->invoices->pluck('number')->toArray())->implode(', '); + + } private function formatInvoiceReferences() {