Updates for status calculations for recurring invoices.

This commit is contained in:
David Bomba 2024-01-11 08:41:39 +11:00
parent b66c1ae0b6
commit 4cc65fcb40
3 changed files with 16 additions and 1 deletions

View File

@ -387,7 +387,6 @@ class RecurringInvoiceController extends BaseController
$recurring_invoice->service() $recurring_invoice->service()
->triggeredActions($request) ->triggeredActions($request)
// ->deletePdf()
->save(); ->save();
event(new RecurringInvoiceWasUpdated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); event(new RecurringInvoiceWasUpdated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));

View File

@ -343,6 +343,21 @@ class RecurringInvoice extends BaseModel
} }
} }
public function calculateStatus()
{
if($this->remaining_cycles == 0) {
return self::STATUS_COMPLETED;
}
elseif ($this->status_id == self::STATUS_ACTIVE && Carbon::parse($this->next_send_date)->isFuture()) {
return self::STATUS_PENDING;
}
else {
return $this->status_id;
}
}
public function nextSendDate() :?Carbon public function nextSendDate() :?Carbon
{ {
if (! $this->next_send_date_client) { if (! $this->next_send_date_client) {

View File

@ -365,6 +365,7 @@ class BaseRepository
$model = $model->calc()->getRecurringInvoice(); $model = $model->calc()->getRecurringInvoice();
$model->status_id = $model->calculateStatus();
if ($this->new_model) { if ($this->new_model) {
event('eloquent.created: App\Models\RecurringInvoice', $model); event('eloquent.created: App\Models\RecurringInvoice', $model);