diff --git a/app/Constants.php b/app/Constants.php index df09c0474330..260eab7501bd 100644 --- a/app/Constants.php +++ b/app/Constants.php @@ -179,7 +179,8 @@ if (! defined('APP_NAME')) { define('INVOICE_STATUS_APPROVED', 4); define('INVOICE_STATUS_PARTIAL', 5); define('INVOICE_STATUS_PAID', 6); - define('INVOICE_STATUS_OVERDUE', 7); + define('INVOICE_STATUS_OVERDUE', -1); + define('INVOICE_STATUS_UNPAID', -2); define('PAYMENT_STATUS_PENDING', 1); define('PAYMENT_STATUS_VOIDED', 2); diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 453f09c01f1d..2b306b7426d4 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1437,6 +1437,7 @@ class Invoice extends EntityModel implements BalanceAffecting } if ($entityType == ENTITY_INVOICE) { + $statuses[INVOICE_STATUS_UNPAID] = trans('texts.unpaid'); $statuses[INVOICE_STATUS_OVERDUE] = trans('texts.overdue'); } diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index 285e38d376b8..d03ea7b311e6 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -96,6 +96,12 @@ class InvoiceRepository extends BaseRepository } $query->orWhere('invoice_status_id', '=', $status); } + if (in_array(INVOICE_STATUS_UNPAID, $statuses)) { + $query->orWhere(function ($query) use ($statuses) { + $query->where('invoices.balance', '>', 0) + ->where('invoices.is_public', '=', true); + }); + } if (in_array(INVOICE_STATUS_OVERDUE, $statuses)) { $query->orWhere(function ($query) use ($statuses) { $query->where('invoices.balance', '>', 0)