This commit is contained in:
David Bomba 2023-12-02 14:09:50 +11:00
parent 396198a43c
commit bb5ff25ea7
20 changed files with 168 additions and 90 deletions

View File

@ -1 +1 @@
5.7.55
5.7.56

View File

@ -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);
}
@ -143,7 +141,6 @@ class ActivityExport extends BaseExport
$this->csv->insertOne($this->buildActivityRow($activity));
}
private function decorateAdvancedFields(Task $task, array $entity) :array

View File

@ -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

View File

@ -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

View File

@ -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);
}
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}
}

View File

@ -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'])) {

View File

@ -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
{

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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() : '';

View File

@ -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} ?? '';
}

View File

@ -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),