From 797f70689539add5d9a891f8234a29b29a79cf3d Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Mon, 13 Apr 2026 21:57:37 +0000
Subject: [PATCH] Synchronize client's email & phone

---
 src/ContractorSynchronizer.php |   40 ++++++++++++++++++++++++++++------------
 1 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/src/ContractorSynchronizer.php b/src/ContractorSynchronizer.php
index a5726a9..6d05fbb 100644
--- a/src/ContractorSynchronizer.php
+++ b/src/ContractorSynchronizer.php
@@ -2,19 +2,12 @@
 
 namespace SIPL\UCRM\wFirma;
 
-use \Webit\WFirmaSDK\Contractors as Contractors;
-use \Webit\WFirmaSDK\Payments as Payments;
+use Webit\WFirmaSDK\Contractors as Contractors;
+use Webit\WFirmaSDK\Contractors\ContactDetails;
+use Webit\WFirmaSDK\Payments as Payments;
 
-class ContractorSynchronizer {
-	protected $wfirma;
-	protected $helper;
-
-	function __construct(\Webit\WFirmaSDK\Entity\ModuleApiFactory $wFirmaApi, UcrmHelper $ucrmHelper) {
-		$this->wfirma = $wFirmaApi;
-		$this->helper = $ucrmHelper;
-	}
-
-	function synchronize($ucrmClientId) {
+class ContractorSynchronizer extends Synchronizer {
+	function synchronize(int $ucrmClientId): bool {
 		$crm = $this->helper->getApi();
 		$wFirmaContractors = $this->wfirma->contractorsApi();
 
@@ -56,6 +49,7 @@
 
 		if ($contractor->nip() != $client['companyTaxId']) {
 			$changed = TRUE;
+			$contractor->changeTaxId(Contractors\TaxIdType::nip());
 			$contractor->changeNip($client['companyTaxId']);
 		}
 
@@ -102,6 +96,28 @@
 			}
 		}
 
+		$email = NULL;
+		$phone = NULL;
+		foreach ($client['contacts'] as $contact) {
+			if ($contact['isContact']) {
+				$email = $contact['email'];
+				$phone = strtr($contact['phone'], ['+' => '00']);
+				break;
+			}
+		}
+
+		$contactDetails = new ContactDetails(
+			$phone,
+			$contractor->contactDetails()->skype(),
+			$contractor->contactDetails()->fax(),
+			$email,
+			$contractor->contactDetails()->url(),
+		);
+		if ($contractor->contactDetails() != $contactDetails) {
+			$changed = TRUE;
+			$contractor->changeContactDetails($contactDetails);
+		}
+
 		$paymentSettings = new Contractors\PaymentSettings(
 			$client['invoiceMaturityDays'],
 			Payments\PaymentMethod::transfer(),

--
Gitblit v1.10.0