Days overdue variable for templates

This commit is contained in:
David Bomba
2026-01-27 08:33:26 +11:00
parent 9ff413fb64
commit 9ef4fa82c2

View File

@@ -194,6 +194,8 @@ class HtmlEngine
$data['$payment_schedule'] = ['value' => '', 'label' => ctrans('texts.payment_schedule')]; $data['$payment_schedule'] = ['value' => '', 'label' => ctrans('texts.payment_schedule')];
$data['$payment_schedule_interval'] = ['value' => '', 'label' => ctrans('texts.payment_schedule')]; $data['$payment_schedule_interval'] = ['value' => '', 'label' => ctrans('texts.payment_schedule')];
$data['$days_overdue'] = ['value' => $this->daysOverdue(), 'label' => ctrans('texts.overdue')];
if(method_exists($this->entity, 'paymentSchedule')) { if(method_exists($this->entity, 'paymentSchedule')) {
$data['$payment_schedule'] = ['value' => $this->entity->paymentSchedule(true), 'label' => ctrans('texts.payment_schedule')]; $data['$payment_schedule'] = ['value' => $this->entity->paymentSchedule(true), 'label' => ctrans('texts.payment_schedule')];
$data['$payment_schedule_interval'] = ['value' => $this->entity->paymentScheduleInterval(), 'label' => ctrans('texts.payment_schedule')]; $data['$payment_schedule_interval'] = ['value' => $this->entity->paymentScheduleInterval(), 'label' => ctrans('texts.payment_schedule')];
@@ -900,7 +902,14 @@ Código seguro de verificación (CSV): {$verifactu_log->status}";
return "<tr><td>{$text}</td></tr><tr><td><img src=\"data:image/png;base64,{$qr_code}\" alt=\"Verifactu QR Code\"></td></tr>"; return "<tr><td>{$text}</td></tr><tr><td><img src=\"data:image/png;base64,{$qr_code}\" alt=\"Verifactu QR Code\"></td></tr>";
} }
/**
* totalTaskHours
*
* calculates the total hours of all tasks in the invoice
*
* @return int
*/
private function totalTaskHours() private function totalTaskHours()
{ {
return collect($this->entity->line_items) return collect($this->entity->line_items)
@@ -909,6 +918,32 @@ Código seguro de verificación (CSV): {$verifactu_log->status}";
}) })
->sum('quantity'); ->sum('quantity');
} }
/**
* daysOverdue
*
* calculates the number of days overdue the entity is
*
* @return int
*/
private function daysOverdue()
{
if($this->entity->partial > 0 && !empty($this->entity->partial_due_date)) {
$days_overdue = \Carbon\Carbon::parse($this->entity->partial_due_date)->diffInDays(now()->startOfDay()->setTimezone($this->entity->company->timezone()->name));
return max($days_overdue, 0);
}
if(!empty($this->entity->due_date)) {
$days_overdue = \Carbon\Carbon::parse($this->entity->due_date)->diffInDays(now()->startOfDay()->setTimezone($this->entity->company->timezone()->name));
return max($days_overdue, 0);
}
return 0;
}
private function getPaymentMeta(\App\Models\Payment $payment) private function getPaymentMeta(\App\Models\Payment $payment)
{ {