Updates for cleaning stale fees

This commit is contained in:
David Bomba 2024-09-09 10:45:30 +10:00
parent a5317ff093
commit ae73f0aa0d
3 changed files with 14 additions and 9 deletions

View File

@ -59,7 +59,7 @@ class CleanStaleInvoiceOrder implements ShouldQueue
Invoice::query() Invoice::query()
->withTrashed() ->withTrashed()
->where('status_id', Invoice::STATUS_SENT) ->where('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL])
->where('updated_at', '<', now()->subHour()) ->where('updated_at', '<', now()->subHour())
->where('balance', '>', 0) ->where('balance', '>', 0)
->whereJsonContains('line_items', ['type_id' => '3']) ->whereJsonContains('line_items', ['type_id' => '3'])

View File

@ -404,8 +404,8 @@ class BaseDriver extends AbstractPaymentDriver
$item->gross_line_total = round($item->gross_line_total, 2); $item->gross_line_total = round($item->gross_line_total, 2);
return $item; return $item;
}) })
->whereIn('type_id', ['3','4']) ->whereIn('type_id', ['3'])
->where('gross_line_total', round($fee_total,2)) ->where('gross_line_total', '<=', round($fee_total,2))
->count(); ->count();
if($invoice && $fee_count == 0){ if($invoice && $fee_count == 0){

View File

@ -98,7 +98,9 @@ class AutoBillInvoice extends AbstractService
return $this->invoice; return $this->invoice;
} }
info("Auto Bill - balance remains to be paid!! - {$amount}"); nlog("Auto Bill - balance remains to be paid!! - {$amount}");
nlog($this->invoice->amount);
nlog($this->invoice->balance);
/* Retrieve the Client Gateway Token */ /* Retrieve the Client Gateway Token */
/** @var \App\Models\ClientGatewayToken $gateway_token */ /** @var \App\Models\ClientGatewayToken $gateway_token */
@ -112,11 +114,15 @@ class AutoBillInvoice extends AbstractService
// return $this->invoice; // return $this->invoice;
} }
nlog('Gateway present - adding gateway fee'); nlog("Gateway present - adding gateway fee on {$amount}");
/* $gateway fee */ /* $gateway fee */
$this->invoice = $this->invoice->service()->addGatewayFee($gateway_token->gateway, $gateway_token->gateway_type_id, $amount)->save(); $this->invoice = $this->invoice->service()->addGatewayFee($gateway_token->gateway, $gateway_token->gateway_type_id, $amount)->save();
nlog($this->invoice->amount);
nlog($this->invoice->balance);
//change from $this->invoice->amount to $this->invoice->balance //change from $this->invoice->amount to $this->invoice->balance
if ($is_partial) { if ($is_partial) {
$fee = $this->invoice->balance - $invoice_total; $fee = $this->invoice->balance - $invoice_total;
@ -124,6 +130,8 @@ class AutoBillInvoice extends AbstractService
$fee = $this->invoice->balance - $amount; $fee = $this->invoice->balance - $amount;
} }
nlog("fee is {$fee}");
if ($fee > $amount) { if ($fee > $amount) {
$fee = 0; $fee = 0;
} }
@ -148,7 +156,6 @@ class AutoBillInvoice extends AbstractService
]); ]);
nlog("Payment hash created => {$payment_hash->id}"); nlog("Payment hash created => {$payment_hash->id}");
$this->invoice->saveQuietly();
$payment = false; $payment = false;
try { try {
@ -171,8 +178,6 @@ class AutoBillInvoice extends AbstractService
$this->invoice->auto_bill_tries = 0; //reset the counter here in case auto billing is turned on again in the future. $this->invoice->auto_bill_tries = 0; //reset the counter here in case auto billing is turned on again in the future.
} }
$this->invoice->save();
if ($payment) { if ($payment) {
info('Auto Bill payment captured for '.$this->invoice->number); info('Auto Bill payment captured for '.$this->invoice->number);
event(new InvoiceAutoBillSuccess($this->invoice, $this->invoice->company, Ninja::eventVars())); event(new InvoiceAutoBillSuccess($this->invoice, $this->invoice->company, Ninja::eventVars()));