From bb5ff25ea76fae0d3498617f278c1acb444e70d6 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 2 Dec 2023 14:09:50 +1100 Subject: [PATCH] v5.7.56 --- VERSION.txt | 2 +- app/Export/CSV/ActivityExport.php | 5 +--- app/Export/CSV/ClientExport.php | 8 +++-- app/Export/CSV/ContactExport.php | 29 ++++++++++++------- app/Export/CSV/CreditExport.php | 10 ++++++- app/Export/CSV/ExpenseExport.php | 14 +++++++-- app/Export/CSV/InvoiceExport.php | 14 +++++++-- app/Export/CSV/InvoiceItemExport.php | 13 +++++++-- app/Export/CSV/PaymentExport.php | 8 +++-- app/Export/CSV/ProductExport.php | 22 +++++++++----- app/Export/CSV/PurchaseOrderExport.php | 26 +++++++++++------ app/Export/CSV/PurchaseOrderItemExport.php | 9 +++++- app/Export/CSV/QuoteExport.php | 14 ++++++--- app/Export/CSV/QuoteItemExport.php | 13 +++++++-- app/Export/CSV/RecurringInvoiceExport.php | 13 +++++++-- app/Export/CSV/TaskExport.php | 12 ++++++-- app/Export/CSV/VendorExport.php | 12 ++++++-- app/Export/Decorators/PaymentDecorator.php | 28 ++---------------- .../Decorators/VendorContactDecorator.php | 2 +- config/ninja.php | 4 +-- 20 files changed, 168 insertions(+), 90 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index 97eeb36657bb..3620bcfbe13d 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.7.55 \ No newline at end of file +5.7.56 \ No newline at end of file diff --git a/app/Export/CSV/ActivityExport.php b/app/Export/CSV/ActivityExport.php index e738f6371a27..694b291ea840 100644 --- a/app/Export/CSV/ActivityExport.php +++ b/app/Export/CSV/ActivityExport.php @@ -105,8 +105,6 @@ class ActivityExport extends BaseExport $this->date_format = DateFormat::find($this->company->settings->date_format_id)->format; - // ksort($this->entity_keys); - if (count($this->input['report_keys']) == 0) { $this->input['report_keys'] = array_values($this->entity_keys); } @@ -142,8 +140,7 @@ class ActivityExport extends BaseExport { $this->csv->insertOne($this->buildActivityRow($activity)); - - + } private function decorateAdvancedFields(Task $task, array $entity) :array diff --git a/app/Export/CSV/ClientExport.php b/app/Export/CSV/ClientExport.php index 3eb0cf0de130..7f71304cb99b 100644 --- a/app/Export/CSV/ClientExport.php +++ b/app/Export/CSV/ClientExport.php @@ -175,11 +175,15 @@ class ClientExport extends BaseExport } elseif (is_array($parts) && $parts[0] == 'contact' && array_key_exists($parts[1], $transformed_contact)) { $entity[$key] = $transformed_contact[$parts[1]]; } else { - $entity[$key] = ''; + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $client); + // $entity[$key] = ''; } } - return $this->decorateAdvancedFields($client, $entity); + return $entity; + + // return $this->decorateAdvancedFields($client, $entity); } public function processMetaData(array $row, $resource): array diff --git a/app/Export/CSV/ContactExport.php b/app/Export/CSV/ContactExport.php index 558c69331958..1bb0a8b9fd02 100644 --- a/app/Export/CSV/ContactExport.php +++ b/app/Export/CSV/ContactExport.php @@ -11,16 +11,17 @@ namespace App\Export\CSV; -use App\Libraries\MultiDB; -use App\Models\Client; -use App\Models\ClientContact; -use App\Models\Company; -use App\Transformers\ClientContactTransformer; -use App\Transformers\ClientTransformer; use App\Utils\Ninja; -use Illuminate\Contracts\Database\Eloquent\Builder; -use Illuminate\Support\Facades\App; +use App\Models\Client; use League\Csv\Writer; +use App\Models\Company; +use App\Libraries\MultiDB; +use App\Models\ClientContact; +use Illuminate\Support\Facades\App; +use App\Export\Decorators\Decorator; +use App\Transformers\ClientTransformer; +use App\Transformers\ClientContactTransformer; +use Illuminate\Database\Eloquent\Builder; class ContactExport extends BaseExport { @@ -29,6 +30,8 @@ class ContactExport extends BaseExport private ClientContactTransformer $contact_transformer; + private Decorator $decorator; + public Writer $csv; public string $date_key = 'created_at'; @@ -39,6 +42,7 @@ class ContactExport extends BaseExport $this->input = $input; $this->client_transformer = new ClientTransformer(); $this->contact_transformer = new ClientContactTransformer(); + $this->decorator = new Decorator(); } private function init(): Builder @@ -119,11 +123,14 @@ class ContactExport extends BaseExport } elseif ($parts[0] == 'contact' && array_key_exists($parts[1], $transformed_contact)) { $entity[$key] = $transformed_contact[$parts[1]]; } else { - $entity[$key] = ''; + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $contact); + // $entity[$key] = ''; + } } - - return $this->decorateAdvancedFields($contact->client, $entity); + return $entity; + // return $this->decorateAdvancedFields($contact->client, $entity); } private function decorateAdvancedFields(Client $client, array $entity) :array diff --git a/app/Export/CSV/CreditExport.php b/app/Export/CSV/CreditExport.php index 19c2383e4a28..dcc9290d9510 100644 --- a/app/Export/CSV/CreditExport.php +++ b/app/Export/CSV/CreditExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Credit; @@ -26,6 +27,8 @@ class CreditExport extends BaseExport private CreditTransformer $credit_transformer; + private Decorator $decorator; + public string $date_key = 'created_at'; public Writer $csv; @@ -35,6 +38,7 @@ class CreditExport extends BaseExport $this->company = $company; $this->input = $input; $this->credit_transformer = new CreditTransformer(); + $this->decorator = new Decorator(); } public function returnJson() @@ -143,7 +147,11 @@ class CreditExport extends BaseExport } elseif(isset($transformed_credit[$searched_credit_key])) { $entity[$keyval] = $transformed_credit[$searched_credit_key]; } else { - $entity[$keyval] = $this->resolveKey($keyval, $credit, $this->credit_transformer); + + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $credit); + // $entity[$key] = ''; + // $entity[$keyval] = $this->resolveKey($keyval, $credit, $this->credit_transformer); } } diff --git a/app/Export/CSV/ExpenseExport.php b/app/Export/CSV/ExpenseExport.php index ee8d5bf0c729..a9bf09901bb0 100644 --- a/app/Export/CSV/ExpenseExport.php +++ b/app/Export/CSV/ExpenseExport.php @@ -11,12 +11,13 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Expense; use App\Transformers\ExpenseTransformer; use App\Utils\Ninja; -use Illuminate\Contracts\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\App; use League\Csv\Writer; @@ -25,6 +26,8 @@ class ExpenseExport extends BaseExport private $expense_transformer; + private Decorator $decorator; + public string $date_key = 'date'; public Writer $csv; @@ -34,6 +37,7 @@ class ExpenseExport extends BaseExport $this->company = $company; $this->input = $input; $this->expense_transformer = new ExpenseTransformer(); + $this->decorator = new Decorator(); } @@ -113,12 +117,16 @@ class ExpenseExport extends BaseExport } elseif (array_key_exists($key, $transformed_expense)) { $entity[$key] = $transformed_expense[$key]; } else { - $entity[$key] = $this->resolveKey($key, $expense, $this->expense_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $expense); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $expense, $this->expense_transformer); } } - return $this->decorateAdvancedFields($expense, $entity); + return $entity; + // return $this->decorateAdvancedFields($expense, $entity); } private function decorateAdvancedFields(Expense $expense, array $entity) :array diff --git a/app/Export/CSV/InvoiceExport.php b/app/Export/CSV/InvoiceExport.php index 73afd9d4ff70..4f28e72fed5d 100644 --- a/app/Export/CSV/InvoiceExport.php +++ b/app/Export/CSV/InvoiceExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Invoice; @@ -28,11 +29,14 @@ class InvoiceExport extends BaseExport public Writer $csv; + private Decorator $decorator; + public function __construct(Company $company, array $input) { $this->company = $company; $this->input = $input; $this->invoice_transformer = new InvoiceTransformer(); + $this->decorator = new Decorator(); } public function init(): Builder @@ -116,12 +120,16 @@ class InvoiceExport extends BaseExport if (is_array($parts) && $parts[0] == 'invoice' && array_key_exists($parts[1], $transformed_invoice)) { $entity[$key] = $transformed_invoice[$parts[1]]; } else { - $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $invoice); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); } } - - return $this->decorateAdvancedFields($invoice, $entity); + + return $entity; + // return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(Invoice $invoice, array $entity) :array diff --git a/app/Export/CSV/InvoiceItemExport.php b/app/Export/CSV/InvoiceItemExport.php index 33924e443f58..71fac33e9c21 100644 --- a/app/Export/CSV/InvoiceItemExport.php +++ b/app/Export/CSV/InvoiceItemExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Invoice; @@ -29,6 +30,8 @@ class InvoiceItemExport extends BaseExport public Writer $csv; + private Decorator $decorator; + private bool $force_keys = false; private array $storage_array = []; @@ -46,6 +49,7 @@ class InvoiceItemExport extends BaseExport $this->company = $company; $this->input = $input; $this->invoice_transformer = new InvoiceTransformer(); + $this->decorator = new Decorator(); } public function init(): Builder @@ -186,11 +190,14 @@ class InvoiceItemExport extends BaseExport } elseif (array_key_exists($key, $transformed_invoice)) { $entity[$key] = $transformed_invoice[$key]; } else { - $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $invoice); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); } } - - return $this->decorateAdvancedFields($invoice, $entity); + return $entity; + // return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(Invoice $invoice, array $entity) :array diff --git a/app/Export/CSV/PaymentExport.php b/app/Export/CSV/PaymentExport.php index a74fe4c2eb4b..67b8e41abe90 100644 --- a/app/Export/CSV/PaymentExport.php +++ b/app/Export/CSV/PaymentExport.php @@ -118,13 +118,15 @@ class PaymentExport extends BaseExport $entity[$key] = $transformed_entity[$key]; } else { - // $entity[$key] = $this->decorator->transform($key, $payment); - $entity[$key] = $this->resolveKey($key, $payment, $this->entity_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $payment); + // $entity[$key] = $this->resolveKey($key, $payment, $this->entity_transformer); } } - return $this->decorateAdvancedFields($payment, $entity); + return $entity; + // return $this->decorateAdvancedFields($payment, $entity); } private function decorateAdvancedFields(Payment $payment, array $entity) :array diff --git a/app/Export/CSV/ProductExport.php b/app/Export/CSV/ProductExport.php index 7963cb76be6c..f8ddcc4b5f96 100644 --- a/app/Export/CSV/ProductExport.php +++ b/app/Export/CSV/ProductExport.php @@ -11,14 +11,15 @@ namespace App\Export\CSV; -use App\Libraries\MultiDB; +use App\Utils\Ninja; +use League\Csv\Writer; use App\Models\Company; use App\Models\Product; -use App\Transformers\ProductTransformer; -use App\Utils\Ninja; -use Illuminate\Database\Eloquent\Builder; +use App\Libraries\MultiDB; use Illuminate\Support\Facades\App; -use League\Csv\Writer; +use App\Export\Decorators\Decorator; +use App\Transformers\ProductTransformer; +use Illuminate\Database\Eloquent\Builder; class ProductExport extends BaseExport { @@ -28,11 +29,14 @@ class ProductExport extends BaseExport public Writer $csv; + private Decorator $decorator; + public function __construct(Company $company, array $input) { $this->company = $company; $this->input = $input; $this->entity_transformer = new ProductTransformer(); + $this->decorator = new Decorator(); } public function returnJson() @@ -109,11 +113,15 @@ class ProductExport extends BaseExport if (array_key_exists($key, $transformed_entity)) { $entity[$keyval] = $transformed_entity[$key]; } else { - $entity[$keyval] = ''; + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $product); + // $entity[$key] = ''; + } } - return $this->decorateAdvancedFields($product, $entity); + return $entity; + // return $this->decorateAdvancedFields($product, $entity); } private function decorateAdvancedFields(Product $product, array $entity) :array diff --git a/app/Export/CSV/PurchaseOrderExport.php b/app/Export/CSV/PurchaseOrderExport.php index 5f2ba4fbc1e2..ff15cb2abc25 100644 --- a/app/Export/CSV/PurchaseOrderExport.php +++ b/app/Export/CSV/PurchaseOrderExport.php @@ -11,14 +11,15 @@ namespace App\Export\CSV; -use App\Libraries\MultiDB; -use App\Models\Company; -use App\Models\PurchaseOrder; -use App\Transformers\PurchaseOrderTransformer; use App\Utils\Ninja; -use Illuminate\Database\Eloquent\Builder; -use Illuminate\Support\Facades\App; use League\Csv\Writer; +use App\Models\Company; +use App\Libraries\MultiDB; +use App\Models\PurchaseOrder; +use Illuminate\Support\Facades\App; +use App\Export\Decorators\Decorator; +use Illuminate\Database\Eloquent\Builder; +use App\Transformers\PurchaseOrderTransformer; class PurchaseOrderExport extends BaseExport { @@ -29,6 +30,8 @@ class PurchaseOrderExport extends BaseExport public Writer $csv; + private Decorator $decorator; + public array $entity_keys = [ 'amount' => 'purchase_order.amount', 'balance' => 'purchase_order.balance', @@ -79,6 +82,7 @@ class PurchaseOrderExport extends BaseExport $this->company = $company; $this->input = $input; $this->purchase_order_transformer = new PurchaseOrderTransformer(); + $this->decorator = new Decorator(); } @@ -160,13 +164,17 @@ class PurchaseOrderExport extends BaseExport if (is_array($parts) && $parts[0] == 'purchase_order' && array_key_exists($parts[1], $transformed_purchase_order)) { $entity[$key] = $transformed_purchase_order[$parts[1]]; } else { - $entity[$key] = $this->resolveKey($key, $purchase_order, $this->purchase_order_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $purchase_order); + // $entity[$key] = ''; + + // $entity[$key] = $this->resolveKey($key, $purchase_order, $this->purchase_order_transformer); } } - - return $this->decorateAdvancedFields($purchase_order, $entity); + return $entity; + // return $this->decorateAdvancedFields($purchase_order, $entity); } private function decorateAdvancedFields(PurchaseOrder $purchase_order, array $entity) :array diff --git a/app/Export/CSV/PurchaseOrderItemExport.php b/app/Export/CSV/PurchaseOrderItemExport.php index 1351be356296..1d8fce10582c 100644 --- a/app/Export/CSV/PurchaseOrderItemExport.php +++ b/app/Export/CSV/PurchaseOrderItemExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\PurchaseOrder; @@ -29,6 +30,8 @@ class PurchaseOrderItemExport extends BaseExport public Writer $csv; + private Decorator $decorator; + private bool $force_keys = false; private array $storage_array = []; @@ -40,6 +43,7 @@ class PurchaseOrderItemExport extends BaseExport $this->company = $company; $this->input = $input; $this->purchase_order_transformer = new PurchaseOrderTransformer(); + $this->decorator = new Decorator(); } private function init(): Builder @@ -171,7 +175,10 @@ class PurchaseOrderItemExport extends BaseExport } elseif (array_key_exists($key, $transformed_purchase_order)) { $entity[$key] = $transformed_purchase_order[$key]; } else { - $entity[$key] = $this->resolveKey($key, $purchase_order, $this->purchase_order_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $purchase_order); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $purchase_order, $this->purchase_order_transformer); } } diff --git a/app/Export/CSV/QuoteExport.php b/app/Export/CSV/QuoteExport.php index 591312a0e8b9..5ae717df51c0 100644 --- a/app/Export/CSV/QuoteExport.php +++ b/app/Export/CSV/QuoteExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Quote; @@ -29,6 +30,8 @@ class QuoteExport extends BaseExport public Writer $csv; + private Decorator $decorator; + private array $decorate_keys = [ 'client', 'currency', @@ -40,6 +43,7 @@ class QuoteExport extends BaseExport $this->company = $company; $this->input = $input; $this->quote_transformer = new QuoteTransformer(); + $this->decorator = new Decorator(); } private function init(): Builder @@ -122,15 +126,17 @@ class QuoteExport extends BaseExport if (is_array($parts) && $parts[0] == 'quote' && array_key_exists($parts[1], $transformed_invoice)) { $entity[$key] = $transformed_invoice[$parts[1]]; } else { - $entity[$key] = $this->resolveKey($key, $quote, $this->quote_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $quote); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $quote, $this->quote_transformer); } } - - return $this->decorateAdvancedFields($quote, $entity); + return $entity; + // return $this->decorateAdvancedFields($quote, $entity); } - private function decorateAdvancedFields(Quote $quote, array $entity) :array { if (in_array('quote.currency_id', $this->input['report_keys'])) { diff --git a/app/Export/CSV/QuoteItemExport.php b/app/Export/CSV/QuoteItemExport.php index f41e99f58806..eafbda850103 100644 --- a/app/Export/CSV/QuoteItemExport.php +++ b/app/Export/CSV/QuoteItemExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Quote; @@ -29,7 +30,10 @@ class QuoteItemExport extends BaseExport public Writer $csv; + private Decorator $decorator; + private array $storage_array = []; + private array $storage_item_array = []; private array $decorate_keys = [ @@ -42,6 +46,7 @@ class QuoteItemExport extends BaseExport $this->company = $company; $this->input = $input; $this->quote_transformer = new QuoteTransformer(); + $this->decorator = new Decorator; } public function init(): Builder @@ -178,12 +183,14 @@ class QuoteItemExport extends BaseExport } elseif (array_key_exists($key, $transformed_quote)) { $entity[$key] = $transformed_quote[$key]; } else { - $entity[$key] = $this->resolveKey($key, $quote, $this->quote_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $quote); + // $entity[$key] = $this->resolveKey($key, $quote, $this->quote_transformer); } } - - return $this->decorateAdvancedFields($quote, $entity); + return $entity; + // return $this->decorateAdvancedFields($quote, $entity); } private function decorateAdvancedFields(Quote $quote, array $entity) :array { diff --git a/app/Export/CSV/RecurringInvoiceExport.php b/app/Export/CSV/RecurringInvoiceExport.php index 18bf306a03c4..50ea4e5c7d9c 100644 --- a/app/Export/CSV/RecurringInvoiceExport.php +++ b/app/Export/CSV/RecurringInvoiceExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\RecurringInvoice; @@ -29,11 +30,14 @@ class RecurringInvoiceExport extends BaseExport public Writer $csv; + private Decorator $decorator; + public function __construct(Company $company, array $input) { $this->company = $company; $this->input = $input; $this->invoice_transformer = new RecurringInvoiceTransformer(); + $this->decorator = new Decorator(); } public function init(): Builder @@ -115,12 +119,15 @@ class RecurringInvoiceExport extends BaseExport if (is_array($parts) && $parts[0] == 'recurring_invoice' && array_key_exists($parts[1], $transformed_invoice)) { $entity[$key] = $transformed_invoice[$parts[1]]; } else { - $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $invoice); + // $entity[$key] = ''; + // $entity[$key] = $this->resolveKey($key, $invoice, $this->invoice_transformer); } } - - return $this->decorateAdvancedFields($invoice, $entity); + return $entity; + // return $this->decorateAdvancedFields($invoice, $entity); } private function decorateAdvancedFields(RecurringInvoice $invoice, array $entity) :array diff --git a/app/Export/CSV/TaskExport.php b/app/Export/CSV/TaskExport.php index 7d8271d86003..191089987bb1 100644 --- a/app/Export/CSV/TaskExport.php +++ b/app/Export/CSV/TaskExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\DateFormat; @@ -34,6 +35,8 @@ class TaskExport extends BaseExport public Writer $csv; + private Decorator $decorator; + private array $storage_array = []; private array $storage_item_array = []; @@ -43,6 +46,7 @@ class TaskExport extends BaseExport $this->company = $company; $this->input = $input; $this->entity_transformer = new TaskTransformer(); + $this->decorator = new Decorator(); } public function init(): Builder @@ -133,8 +137,12 @@ class TaskExport extends BaseExport $entity[$key] = $transformed_entity[$parts[1]]; } elseif (array_key_exists($key, $transformed_entity)) { $entity[$key] = $transformed_entity[$key]; + } elseif (in_array($key, ['task.start_date', 'task.end_date', 'task.duration'])) { + // } else { - $entity[$key] = $this->resolveKey($key, $task, $this->entity_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $task); + // $entity[$key] = $this->resolveKey($key, $task, $this->entity_transformer); } } @@ -187,7 +195,7 @@ class TaskExport extends BaseExport $entity['task.duration'] = $task->calcDuration(); } - $entity = $this->decorateAdvancedFields($task, $entity); + // $entity = $this->decorateAdvancedFields($task, $entity); $this->storage_array[] = $entity; diff --git a/app/Export/CSV/VendorExport.php b/app/Export/CSV/VendorExport.php index 259f53c59c72..4279724f9111 100644 --- a/app/Export/CSV/VendorExport.php +++ b/app/Export/CSV/VendorExport.php @@ -11,6 +11,7 @@ namespace App\Export\CSV; +use App\Export\Decorators\Decorator; use App\Libraries\MultiDB; use App\Models\Company; use App\Models\Vendor; @@ -30,6 +31,8 @@ class VendorExport extends BaseExport public Writer $csv; + private Decorator $decorator; + public string $date_key = 'created_at'; public function __construct(Company $company, array $input) @@ -38,6 +41,7 @@ class VendorExport extends BaseExport $this->input = $input; $this->vendor_transformer = new VendorTransformer(); $this->contact_transformer = new VendorContactTransformer(); + $this->decorator = new Decorator(); } public function init(): Builder @@ -122,11 +126,15 @@ class VendorExport extends BaseExport } elseif (is_array($parts) && $parts[0] == 'vendor_contact' && isset($transformed_contact[$parts[1]])) { $entity[$key] = $transformed_contact[$parts[1]]; } else { - $entity[$key] = $this->resolveKey($key, $vendor, $this->vendor_transformer); + // nlog($key); + $entity[$key] = $this->decorator->transform($key, $vendor); + + // $entity[$key] = $this->resolveKey($key, $vendor, $this->vendor_transformer); } } - return $this->decorateAdvancedFields($vendor, $entity); + return $entity; + // return $this->decorateAdvancedFields($vendor, $entity); } private function decorateAdvancedFields(Vendor $vendor, array $entity) :array diff --git a/app/Export/Decorators/PaymentDecorator.php b/app/Export/Decorators/PaymentDecorator.php index 791d1c01848a..7366b580824b 100644 --- a/app/Export/Decorators/PaymentDecorator.php +++ b/app/Export/Decorators/PaymentDecorator.php @@ -42,6 +42,9 @@ class PaymentDecorator extends Decorator implements DecoratorInterface return $this->{$key}($payment); } + if($payment && ($payment->{$key} ?? false)){ + return $payment->{$key}; + } return ''; } @@ -78,11 +81,6 @@ class PaymentDecorator extends Decorator implements DecoratorInterface return $payment->exchange_rate ?? 1; } - public function number(Payment $payment) - { - return $payment->number ?? ''; - } - public function method(Payment $payment) { return $payment->translatedType(); @@ -98,26 +96,6 @@ class PaymentDecorator extends Decorator implements DecoratorInterface return strip_tags($payment->private_notes) ?? ''; } - public function custom_value1(Payment $payment) - { - return $payment->custom_value1 ?? ''; - } - - public function custom_value2(Payment $payment) - { - return $payment->custom_value2 ?? ''; - } - - public function custom_value3(Payment $payment) - { - return $payment->custom_value3 ?? ''; - } - - public function custom_value4(Payment $payment) - { - return $payment->custom_value4 ?? ''; - } - public function user_id(Payment $payment) { return $payment->user ? $payment->user->present()->name() : ''; diff --git a/app/Export/Decorators/VendorContactDecorator.php b/app/Export/Decorators/VendorContactDecorator.php index d92175334163..b3dd08c8b383 100644 --- a/app/Export/Decorators/VendorContactDecorator.php +++ b/app/Export/Decorators/VendorContactDecorator.php @@ -27,7 +27,7 @@ class VendorContactDecorator implements DecoratorInterface if($contact && method_exists($this, $key)) { return $this->{$key}($contact); - } elseif($contact->{$key}) { + } elseif($contact && $contact->{$key}) { return $contact->{$key} ?? ''; } diff --git a/config/ninja.php b/config/ninja.php index da3255124056..933034cf37e8 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -17,8 +17,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => env('APP_VERSION', '5.7.55'), - 'app_tag' => env('APP_TAG', '5.7.55'), + 'app_version' => env('APP_VERSION', '5.7.56'), + 'app_tag' => env('APP_TAG', '5.7.56'), 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', false),