diff --git a/app/Ninja/Datatables/RecurringInvoiceDatatable.php b/app/Ninja/Datatables/RecurringInvoiceDatatable.php index 3f0f159dfb81..ce3705441ba5 100644 --- a/app/Ninja/Datatables/RecurringInvoiceDatatable.php +++ b/app/Ninja/Datatables/RecurringInvoiceDatatable.php @@ -5,6 +5,7 @@ namespace App\Ninja\Datatables; use Auth; use URL; use Utils; +use App\Models\Invoice; class RecurringInvoiceDatatable extends EntityDatatable { @@ -53,9 +54,27 @@ class RecurringInvoiceDatatable extends EntityDatatable return Utils::formatMoney($model->amount, $model->currency_id, $model->country_id); }, ], + [ + 'status', + function ($model) { + return self::getStatusLabel($model); + }, + ], ]; } + private function getStatusLabel($model) + { + $class = Invoice::calcStatusClass($model->invoice_status_id, $model->balance, $model->due_date, $model->is_recurring); + $label = Invoice::calcStatusLabel($model->invoice_status_name, $class, $this->entityType, $model->quote_invoice_id); + + if ($model->invoice_status_id == INVOICE_STATUS_SENT && (! $model->last_sent_date || $model->last_sent_date == '0000-00-00')) { + $label = trans('texts.pending'); + } + + return "

$label

"; + } + public function actions() { return [ diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index e4afbdd2cb18..fb9ff06d643a 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -136,6 +136,7 @@ class InvoiceRepository extends BaseRepository $query = DB::table('invoices') ->join('accounts', 'accounts.id', '=', 'invoices.account_id') ->join('clients', 'clients.id', '=', 'invoices.client_id') + ->join('invoice_statuses', 'invoice_statuses.id', '=', 'invoices.invoice_status_id') ->join('frequencies', 'frequencies.id', '=', 'invoices.frequency_id') ->join('contacts', 'contacts.client_id', '=', 'clients.id') ->where('invoices.account_id', '=', $accountId) @@ -160,7 +161,13 @@ class InvoiceRepository extends BaseRepository 'contacts.email', 'invoices.deleted_at', 'invoices.is_deleted', - 'invoices.user_id' + 'invoices.user_id', + 'invoice_statuses.name as invoice_status_name', + 'invoices.invoice_status_id', + 'invoices.balance', + 'invoices.due_date', + 'invoices.is_recurring', + 'invoices.quote_invoice_id' ); if ($clientPublicId) { diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 38fb27b48f88..630ce7dd06b4 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2396,6 +2396,7 @@ $LANG = array( 'create_vendor' => 'Create vendor', 'create_expense_category' => 'Create category', 'pro_plan_reports' => ':link to enable reports by joining the Pro Plan', + 'mark_ready' => 'Mark Ready', ); diff --git a/resources/views/invoices/edit.blade.php b/resources/views/invoices/edit.blade.php index 31bb991d4a38..8ddeb26c7a6b 100644 --- a/resources/views/invoices/edit.blade.php +++ b/resources/views/invoices/edit.blade.php @@ -54,7 +54,7 @@
  • {{ $invoice->invoice_number }}
  • @endif @if ($invoice->is_recurring && $invoice->isSent() && (! $invoice->last_sent_date || $invoice->last_sent_date == '0000-00-00')) - {!! $invoice->present()->statusLabel(trans('texts.active')) !!} + {!! $invoice->present()->statusLabel(trans('texts.pending')) !!} @else {!! $invoice->present()->statusLabel !!} @endif @@ -564,7 +564,7 @@ @else {!! Button::normal(trans("texts.save_draft"))->withAttributes(array('id' => 'draftButton', 'onclick' => 'onSaveDraftClick()'))->appendIcon(Icon::create('floppy-disk')) !!} @if (! $invoice->trashed()) - {!! Button::success(trans($invoice->is_recurring ? "texts.mark_active" : "texts.mark_sent"))->withAttributes(array('id' => 'saveButton', 'onclick' => 'onMarkSentClick()'))->appendIcon(Icon::create('globe')) !!} + {!! Button::success(trans($invoice->is_recurring ? "texts.mark_ready" : "texts.mark_sent"))->withAttributes(array('id' => 'saveButton', 'onclick' => 'onMarkSentClick()'))->appendIcon(Icon::create('globe')) !!} @endif @endif @if (! $invoice->trashed())