From c7fd125f5b29399dd1469ea9200c1f8b3ce3d46e Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Tue, 28 Mar 2017 12:40:53 +0300 Subject: [PATCH] Improve date sorting in tables --- app/Ninja/Datatables/CreditDatatable.php | 4 ++-- app/Ninja/Datatables/ExpenseDatatable.php | 4 ++-- app/Ninja/Datatables/InvoiceDatatable.php | 6 +++--- app/Ninja/Datatables/PaymentDatatable.php | 2 +- .../Datatables/RecurringInvoiceDatatable.php | 10 +++++----- app/Ninja/Datatables/VendorDatatable.php | 2 +- app/Ninja/Repositories/CreditRepository.php | 3 ++- app/Ninja/Repositories/ExpenseRepository.php | 3 ++- app/Ninja/Repositories/InvoiceRepository.php | 19 ++++++++++++------- app/Ninja/Repositories/PaymentRepository.php | 1 + app/Ninja/Repositories/VendorRepository.php | 1 - 11 files changed, 31 insertions(+), 24 deletions(-) diff --git a/app/Ninja/Datatables/CreditDatatable.php b/app/Ninja/Datatables/CreditDatatable.php index 3bbf4430fa72..18fc935f9926 100644 --- a/app/Ninja/Datatables/CreditDatatable.php +++ b/app/Ninja/Datatables/CreditDatatable.php @@ -41,10 +41,10 @@ class CreditDatatable extends EntityDatatable 'credit_date', function ($model) { if (! Auth::user()->can('viewByOwner', [ENTITY_CREDIT, $model->user_id])) { - return Utils::fromSqlDate($model->credit_date); + return Utils::fromSqlDate($model->credit_date_sql); } - return link_to("credits/{$model->public_id}/edit", Utils::fromSqlDate($model->credit_date))->toHtml(); + return link_to("credits/{$model->public_id}/edit", Utils::fromSqlDate($model->credit_date_sql))->toHtml(); }, ], [ diff --git a/app/Ninja/Datatables/ExpenseDatatable.php b/app/Ninja/Datatables/ExpenseDatatable.php index e540a2caa4bc..d29408ab31e8 100644 --- a/app/Ninja/Datatables/ExpenseDatatable.php +++ b/app/Ninja/Datatables/ExpenseDatatable.php @@ -49,10 +49,10 @@ class ExpenseDatatable extends EntityDatatable 'expense_date', function ($model) { if (! Auth::user()->can('viewByOwner', [ENTITY_EXPENSE, $model->user_id])) { - return Utils::fromSqlDate($model->expense_date); + return Utils::fromSqlDate($model->expense_date_sql); } - return link_to("expenses/{$model->public_id}/edit", Utils::fromSqlDate($model->expense_date))->toHtml(); + return link_to("expenses/{$model->public_id}/edit", Utils::fromSqlDate($model->expense_date_sql))->toHtml(); }, ], [ diff --git a/app/Ninja/Datatables/InvoiceDatatable.php b/app/Ninja/Datatables/InvoiceDatatable.php index 655b924c3b8e..c02b4f0a23ab 100644 --- a/app/Ninja/Datatables/InvoiceDatatable.php +++ b/app/Ninja/Datatables/InvoiceDatatable.php @@ -41,7 +41,7 @@ class InvoiceDatatable extends EntityDatatable [ 'date', function ($model) { - return Utils::fromSqlDate($model->date); + return Utils::fromSqlDate($model->invoice_date); }, ], [ @@ -65,7 +65,7 @@ class InvoiceDatatable extends EntityDatatable [ $entityType == ENTITY_INVOICE ? 'due_date' : 'valid_until', function ($model) { - return Utils::fromSqlDate($model->due_date); + return Utils::fromSqlDate($model->due_date_sql); }, ], [ @@ -173,7 +173,7 @@ class InvoiceDatatable extends EntityDatatable private function getStatusLabel($model) { - $class = Invoice::calcStatusClass($model->invoice_status_id, $model->balance, $model->due_date, $model->is_recurring); + $class = Invoice::calcStatusClass($model->invoice_status_id, $model->balance, $model->due_date_sql, $model->is_recurring); $label = Invoice::calcStatusLabel($model->invoice_status_name, $class, $this->entityType, $model->quote_invoice_id); return "

$label

"; diff --git a/app/Ninja/Datatables/PaymentDatatable.php b/app/Ninja/Datatables/PaymentDatatable.php index f536b454ef41..b4593bd92426 100644 --- a/app/Ninja/Datatables/PaymentDatatable.php +++ b/app/Ninja/Datatables/PaymentDatatable.php @@ -92,7 +92,7 @@ class PaymentDatatable extends EntityDatatable }, ], [ - 'payment_date', + 'date', function ($model) { if ($model->is_deleted) { return Utils::dateToString($model->payment_date); diff --git a/app/Ninja/Datatables/RecurringInvoiceDatatable.php b/app/Ninja/Datatables/RecurringInvoiceDatatable.php index ce3705441ba5..b40378310200 100644 --- a/app/Ninja/Datatables/RecurringInvoiceDatatable.php +++ b/app/Ninja/Datatables/RecurringInvoiceDatatable.php @@ -33,19 +33,19 @@ class RecurringInvoiceDatatable extends EntityDatatable [ 'start_date', function ($model) { - return Utils::fromSqlDate($model->start_date); + return Utils::fromSqlDate($model->start_date_sql); }, ], [ 'last_sent', function ($model) { - return Utils::fromSqlDate($model->last_sent_date); + return Utils::fromSqlDate($model->last_sent_date_sql); }, ], [ 'end_date', function ($model) { - return Utils::fromSqlDate($model->end_date); + return Utils::fromSqlDate($model->end_date_sql); }, ], [ @@ -65,10 +65,10 @@ class RecurringInvoiceDatatable extends EntityDatatable private function getStatusLabel($model) { - $class = Invoice::calcStatusClass($model->invoice_status_id, $model->balance, $model->due_date, $model->is_recurring); + $class = Invoice::calcStatusClass($model->invoice_status_id, $model->balance, $model->due_date_sql, $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')) { + if ($model->invoice_status_id == INVOICE_STATUS_SENT && (! $model->last_sent_date_sql || $model->last_sent_date_sql == '0000-00-00')) { $label = trans('texts.pending'); } diff --git a/app/Ninja/Datatables/VendorDatatable.php b/app/Ninja/Datatables/VendorDatatable.php index 98ba3c66febd..d226a78079bd 100644 --- a/app/Ninja/Datatables/VendorDatatable.php +++ b/app/Ninja/Datatables/VendorDatatable.php @@ -39,7 +39,7 @@ class VendorDatatable extends EntityDatatable }, ], [ - 'date', + 'client_created_at', function ($model) { return Utils::timestampToDateString(strtotime($model->created_at)); }, diff --git a/app/Ninja/Repositories/CreditRepository.php b/app/Ninja/Repositories/CreditRepository.php index adf89a709a38..7d797e7d657f 100644 --- a/app/Ninja/Repositories/CreditRepository.php +++ b/app/Ninja/Repositories/CreditRepository.php @@ -32,7 +32,8 @@ class CreditRepository extends BaseRepository 'clients.user_id as client_user_id', 'credits.amount', 'credits.balance', - 'credits.credit_date', + 'credits.credit_date as credit_date_sql', + DB::raw("CONCAT(credits.credit_date, credits.created_at) as credit_date"), 'contacts.first_name', 'contacts.last_name', 'contacts.email', diff --git a/app/Ninja/Repositories/ExpenseRepository.php b/app/Ninja/Repositories/ExpenseRepository.php index 93a6ae33d9c8..6a322e153d79 100644 --- a/app/Ninja/Repositories/ExpenseRepository.php +++ b/app/Ninja/Repositories/ExpenseRepository.php @@ -66,7 +66,8 @@ class ExpenseRepository extends BaseRepository 'expenses.amount', 'expenses.deleted_at', 'expenses.exchange_rate', - 'expenses.expense_date', + 'expenses.expense_date as expense_date_sql', + DB::raw("CONCAT(expenses.expense_date, expenses.created_at) as expense_date"), 'expenses.id', 'expenses.is_deleted', 'expenses.private_notes', diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index 79a5e811c91c..35cd3907b336 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -68,9 +68,11 @@ class InvoiceRepository extends BaseRepository 'invoices.public_id', 'invoices.amount', 'invoices.balance', - 'invoices.invoice_date as date', - 'invoices.due_date', - 'invoices.due_date as valid_until', + 'invoices.invoice_date', + 'invoices.due_date as due_date_sql', + DB::raw("CONCAT(invoices.invoice_date, invoices.created_at) as date"), + DB::raw("CONCAT(invoices.due_date, invoices.created_at) as due_date"), + DB::raw("CONCAT(invoices.due_date, invoices.created_at) as valid_until"), 'invoice_statuses.name as status', 'invoice_statuses.name as invoice_status_name', 'contacts.first_name', @@ -153,10 +155,12 @@ class InvoiceRepository extends BaseRepository 'invoices.public_id', 'invoices.amount', 'frequencies.name as frequency', - 'invoices.start_date', - 'invoices.end_date', - 'invoices.last_sent_date', - 'invoices.last_sent_date as last_sent', + 'invoices.start_date as start_date_sql', + 'invoices.end_date as end_date_sql', + 'invoices.last_sent_date as last_sent_date_sql', + DB::raw("CONCAT(invoices.start_date, invoices.created_at) as start_date"), + DB::raw("CONCAT(invoices.end_date, invoices.created_at) as end_date"), + DB::raw("CONCAT(invoices.last_sent_date, invoices.created_at) as last_sent"), 'contacts.first_name', 'contacts.last_name', 'contacts.email', @@ -167,6 +171,7 @@ class InvoiceRepository extends BaseRepository 'invoices.invoice_status_id', 'invoices.balance', 'invoices.due_date', + 'invoices.due_date as due_date_sql', 'invoices.is_recurring', 'invoices.quote_invoice_id' ); diff --git a/app/Ninja/Repositories/PaymentRepository.php b/app/Ninja/Repositories/PaymentRepository.php index 84b0c440b380..7efb6dd6a8fa 100644 --- a/app/Ninja/Repositories/PaymentRepository.php +++ b/app/Ninja/Repositories/PaymentRepository.php @@ -38,6 +38,7 @@ class PaymentRepository extends BaseRepository 'clients.public_id as client_public_id', 'clients.user_id as client_user_id', 'payments.amount', + DB::raw("CONCAT(payments.payment_date, payments.created_at) as date"), 'payments.payment_date', 'payments.payment_status_id', 'payments.payment_type_id', diff --git a/app/Ninja/Repositories/VendorRepository.php b/app/Ninja/Repositories/VendorRepository.php index 232a66cdfdda..765e9b9f3cd4 100644 --- a/app/Ninja/Repositories/VendorRepository.php +++ b/app/Ninja/Repositories/VendorRepository.php @@ -39,7 +39,6 @@ class VendorRepository extends BaseRepository 'vendor_contacts.first_name', 'vendor_contacts.last_name', 'vendors.created_at', - 'vendors.created_at as date', 'vendors.work_phone', 'vendors.city', 'vendor_contacts.email',