From de7afb9944143042aeed6f76de1025007e75ddb4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 21 Jun 2023 14:21:43 +1000 Subject: [PATCH] zoho improvements --- app/Import/Transformer/BaseTransformer.php | 9 +++++++++ app/Import/Transformer/Zoho/ClientTransformer.php | 9 ++++++--- app/Import/Transformer/Zoho/InvoiceTransformer.php | 1 - 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/Import/Transformer/BaseTransformer.php b/app/Import/Transformer/BaseTransformer.php index 2693651cde5d..0bdf3051decc 100644 --- a/app/Import/Transformer/BaseTransformer.php +++ b/app/Import/Transformer/BaseTransformer.php @@ -246,6 +246,15 @@ class BaseTransformer ->exists(); } + public function hasClientIdNumber($id_number) + { + return Client::where('company_id', $this->company->id) + ->where('is_deleted', false) + ->where('id_number', trim($id_number)) + ->exists(); + } + + /** * @param $name * diff --git a/app/Import/Transformer/Zoho/ClientTransformer.php b/app/Import/Transformer/Zoho/ClientTransformer.php index 6eafc140e6d3..084964149873 100644 --- a/app/Import/Transformer/Zoho/ClientTransformer.php +++ b/app/Import/Transformer/Zoho/ClientTransformer.php @@ -27,7 +27,12 @@ class ClientTransformer extends BaseTransformer */ public function transform($data) { - if (isset($data['Company Name']) && $this->hasClient($data['Company Name'])) { + $client_id_proxy = array_key_exists('Customer ID', $data) ? 'Customer ID' : 'Primary Contact ID'; + + if(isset($data[$client_id_proxy]) && $this->hasClientIdNumber($data[$client_id_proxy])) { + throw new ImportException('Client ID already exists => '. $data[$client_id_proxy]); + } + elseif (isset($data['Company Name']) && $this->hasClient($data['Company Name'])) { throw new ImportException('Client already exists => '. $data['Company Name']); } @@ -38,8 +43,6 @@ class ClientTransformer extends BaseTransformer $settings->payment_terms = $data['Payment Terms']; } - $client_id_proxy = array_key_exists('Customer ID', $data) ? 'Customer ID' : 'Primary Contact ID'; - $data = [ 'company_id' => $this->company->id, 'name' => $this->getString($data, 'Display Name'), diff --git a/app/Import/Transformer/Zoho/InvoiceTransformer.php b/app/Import/Transformer/Zoho/InvoiceTransformer.php index 45b72b39ce88..2c13bce53c53 100644 --- a/app/Import/Transformer/Zoho/InvoiceTransformer.php +++ b/app/Import/Transformer/Zoho/InvoiceTransformer.php @@ -123,7 +123,6 @@ class InvoiceTransformer extends BaseTransformer return $client_id_search->first()->id; } - $client_repository = app()->make(\App\Repositories\ClientRepository::class); $client_repository->import_mode = true;