From 519c1114c1939d72fda7bc59a1e30166b9036607 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 18 Dec 2019 21:49:28 +1100 Subject: [PATCH] Add additional date formats / performance improvements. (#3161) * Improve eager loading * Fixes for performance on client portal datatable with large datasets * Add missing date format --- app/Http/Controllers/ClientPortal/PaymentController.php | 2 +- app/Models/Client.php | 4 ++-- app/Models/Payment.php | 2 +- app/Models/Presenters/CompanyPresenter.php | 2 +- app/Utils/Traits/MakesInvoiceHtml.php | 3 +++ app/Utils/Traits/MakesInvoiceValues.php | 4 +++- database/seeds/DateFormatsSeeder.php | 2 ++ resources/views/pdf/design1.blade.php | 8 ++++---- resources/views/pdf/design2.blade.php | 6 +++--- resources/views/portal/default/payments/index.blade.php | 4 ++-- 10 files changed, 22 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/ClientPortal/PaymentController.php b/app/Http/Controllers/ClientPortal/PaymentController.php index 191233b5ef27..e1a873898e9e 100644 --- a/app/Http/Controllers/ClientPortal/PaymentController.php +++ b/app/Http/Controllers/ClientPortal/PaymentController.php @@ -46,7 +46,7 @@ class PaymentController extends Controller public function index(PaymentFilters $filters, Builder $builder) { //$payments = Payment::filter($filters); - $payments = Payment::with('type','client')->get(); + $payments = Payment::with('type','client'); if (request()->ajax()) { diff --git a/app/Models/Client.php b/app/Models/Client.php index fc311bf55886..879059d7060f 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -93,9 +93,9 @@ class Client extends BaseModel protected $with = [ //'currency', // 'primary_contact', - // 'country', + 'country', // 'shipping_country', - // 'company' + 'company' ]; protected $casts = [ diff --git a/app/Models/Payment.php b/app/Models/Payment.php index 3779bda7174a..60d83307ff9f 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -104,7 +104,7 @@ class Payment extends BaseModel public function type() { - return $this->hasOne(PaymentType::class,'id','type_id'); + return $this->belongsTo(PaymentType::class); } public function paymentables() diff --git a/app/Models/Presenters/CompanyPresenter.php b/app/Models/Presenters/CompanyPresenter.php index 7014b39fc177..c821da4b4fff 100644 --- a/app/Models/Presenters/CompanyPresenter.php +++ b/app/Models/Presenters/CompanyPresenter.php @@ -33,7 +33,7 @@ class CompanyPresenter extends EntityPresenter if(!$settings) $settings = $this->entity->settings; - return strlen($settings->company_logo > 0) ? $settings->company_logo : 'https://www.invoiceninja.com/wp-content/uploads/2019/01/InvoiceNinja-Logo-Round-300x300.png'; + return iconv_strlen($settings->company_logo > 0) ? $settings->company_logo : 'https://www.invoiceninja.com/wp-content/uploads/2019/01/InvoiceNinja-Logo-Round-300x300.png'; } public function address($settings = null) diff --git a/app/Utils/Traits/MakesInvoiceHtml.php b/app/Utils/Traits/MakesInvoiceHtml.php index 5d7c8d493425..9f00db7d1a40 100644 --- a/app/Utils/Traits/MakesInvoiceHtml.php +++ b/app/Utils/Traits/MakesInvoiceHtml.php @@ -34,6 +34,9 @@ trait MakesInvoiceHtml { $variables = array_merge($invoice->makeLabels(), $invoice->makeValues()); + + // uasort($variables, 'arraySort'); + $design = str_replace(array_keys($variables), array_values($variables), $design); $data['invoice'] = $invoice; diff --git a/app/Utils/Traits/MakesInvoiceValues.php b/app/Utils/Traits/MakesInvoiceValues.php index 9a7d22816e49..e11f6b5b3b19 100644 --- a/app/Utils/Traits/MakesInvoiceValues.php +++ b/app/Utils/Traits/MakesInvoiceValues.php @@ -49,7 +49,7 @@ trait MakesInvoiceValues private static $labels = [ 'date', 'due_date', - 'number', + 'invoice_number', 'po_number', 'discount', 'taxes', @@ -138,6 +138,8 @@ trait MakesInvoiceValues */ public function makeLabels() :array { + //todo we might want to translate like this + //trans('texts.labe', [], null, $this->client->locale()); $data = []; foreach(self::$labels as $label) diff --git a/database/seeds/DateFormatsSeeder.php b/database/seeds/DateFormatsSeeder.php index a2343586d671..6be42eaea94e 100644 --- a/database/seeds/DateFormatsSeeder.php +++ b/database/seeds/DateFormatsSeeder.php @@ -25,6 +25,7 @@ class DateFormatsSeeder extends Seeder ['id' => 11, 'format' => 'd.m.Y', 'format_moment' => 'D.MM.YYYY', 'format_dart' => 'dd.MM.yyyy'], ['id' => 12, 'format' => 'j. M. Y', 'format_moment' => 'DD. MMM. YYYY', 'format_dart' => 'd. MMM. yyyy'], ['id' => 13, 'format' => 'j. F Y', 'format_moment' => 'DD. MMMM YYYY', 'format_dart' => 'd. MMMM yyyy'], + ['id' => 14, 'format' => 'dd/mm/yyyy', 'format_moment' => 'DD/MM/YYY', 'format_dart' => 'dd/MM/yyyy'], ]; foreach ($formats as $format) { @@ -54,6 +55,7 @@ class DateFormatsSeeder extends Seeder ['id' => 11, 'format' => 'd.m.Y g:i a', 'format_moment' => 'D.MM.YYYY h:mm:ss a', 'format_dart' => 'dd.MM.yyyy h:mm a'], ['id' => 12, 'format' => 'j. M. Y g:i a', 'format_moment' => 'DD. MMM. YYYY h:mm:ss a', 'format_dart' => 'd. MMM. yyyy h:mm a'], ['id' => 13, 'format' => 'j. F Y g:i a', 'format_moment' => 'DD. MMMM YYYY h:mm:ss a', 'format_dart' => 'd. MMMM yyyy h:mm a'], + ['id' => 14, 'format' => 'dd/mm/yyyy g:i a', 'format_moment' => 'DD/MM/YYYY h:mm:ss a', 'format_dart' => 'dd/MM/yyyy h:mm a'], ]; foreach ($formats as $format) { diff --git a/resources/views/pdf/design1.blade.php b/resources/views/pdf/design1.blade.php index e4e857de4861..60c85f3bfb67 100644 --- a/resources/views/pdf/design1.blade.php +++ b/resources/views/pdf/design1.blade.php @@ -58,11 +58,11 @@
- +
- $number_label: $number
+ $invoice_number_label: $number
$date_label: $date
$due_date_label: $due_date
@@ -80,8 +80,8 @@
- $company_name
- $company_address
+ $company.name
+ $company.address
$phone
$email
diff --git a/resources/views/pdf/design2.blade.php b/resources/views/pdf/design2.blade.php index a78e9fe87a4c..21b80471cee6 100644 --- a/resources/views/pdf/design2.blade.php +++ b/resources/views/pdf/design2.blade.php @@ -118,12 +118,12 @@ diff --git a/resources/views/portal/default/payments/index.blade.php b/resources/views/portal/default/payments/index.blade.php index 4cf58798a90f..ce49bcd67c9a 100644 --- a/resources/views/portal/default/payments/index.blade.php +++ b/resources/views/portal/default/payments/index.blade.php @@ -66,8 +66,8 @@ $(function() { }, columns: [ - {data: 'payment_date', name: 'payment_date', title: '{{ctrans('texts.payment_date')}}', visible: true}, - {data: 'payment_type_id', name: 'payment_type_id', title: '{{ctrans('texts.payment_type_id')}}', visible: true}, + {data: 'date', name: 'date', title: '{{ctrans('texts.payment_date')}}', visible: true}, + {data: 'type_id', name: 'type_id', title: '{{ctrans('texts.payment_type_id')}}', visible: true}, {data: 'amount', name: 'amount', title: '{{ctrans('texts.amount')}}', visible: true}, {data: 'transaction_reference', name: 'transaction_reference', title: '{{ctrans('texts.transaction_reference')}}', visible: true}, {data: 'status_id', name: 'status_id', title: '{{ctrans('texts.status')}}', visible: true},
- + - $invoice_number_label: $invoice_number
- $invoice_date_label: $invoice_date
+ $invoice_number_label: $number
+ $invoice_date_label: $date
$invoice_due_date_label: $due_date