mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-01 19:03:14 +03:00
Fix comparing address in back sync
This commit is contained in:
parent
730000b47b
commit
06ca38be56
@ -191,11 +191,11 @@ class RetailcrmCustomerAddressBuilder extends RetailcrmAbstractBuilder implement
|
||||
|
||||
$this->buildAddressLine();
|
||||
|
||||
if (isset($this->dataCrm['notes'])) {
|
||||
if (array_key_exists('notes', $this->dataCrm)) {
|
||||
$this->setAddressField('other', $this->dataCrm['notes'], '');
|
||||
}
|
||||
|
||||
if (isset($this->dataCrm['countryIso'])) {
|
||||
if (array_key_exists('countryIso', $this->dataCrm)) {
|
||||
$countryIso = null;
|
||||
if (Validate::isLanguageIsoCode($this->dataCrm['countryIso'])) {
|
||||
$countryIso = Country::getByIso($this->dataCrm['countryIso']);
|
||||
@ -204,13 +204,13 @@ class RetailcrmCustomerAddressBuilder extends RetailcrmAbstractBuilder implement
|
||||
$this->setAddressField('id_country', $countryIso, Configuration::get('PS_COUNTRY_DEFAULT'));
|
||||
}
|
||||
|
||||
if (isset($this->dataCrm['city'])) {
|
||||
if (array_key_exists('city', $this->dataCrm)) {
|
||||
$this->setAddressField('city', $this->dataCrm['city'], '--');
|
||||
}
|
||||
if (isset($this->dataCrm['index'])) {
|
||||
if (array_key_exists('index', $this->dataCrm)) {
|
||||
$this->setAddressField('postcode', $this->dataCrm['index'], '');
|
||||
}
|
||||
if (isset($this->dataCrm['region'])) {
|
||||
if (array_key_exists('region', $this->dataCrm)) {
|
||||
$this->setAddressField('id_state', (int) State::getIdByName($this->dataCrm['region']));
|
||||
}
|
||||
|
||||
@ -242,10 +242,12 @@ class RetailcrmCustomerAddressBuilder extends RetailcrmAbstractBuilder implement
|
||||
{
|
||||
if (isset($this->dataCrm['text'])) {
|
||||
$text = $this->dataCrm['text'];
|
||||
|
||||
if (isset($this->dataCrm['notes'])) {
|
||||
$text = str_replace($this->dataCrm['notes'], '', $text);
|
||||
}
|
||||
|
||||
$text = rtrim($text, ', ');
|
||||
$addressLine = explode(RetailcrmAddressBuilder::ADDRESS_LINE_DIVIDER, $text, 2);
|
||||
|
||||
$this->setAddressField('address1', $addressLine[0], '--');
|
||||
|
@ -772,15 +772,14 @@ class RetailcrmTools
|
||||
/**
|
||||
* Returns true if mapped fields in address are equal. Returns false otherwise.
|
||||
*
|
||||
* @param \Address $first
|
||||
* @param \Address $second
|
||||
* @param \Address $address1
|
||||
* @param \Address $address2
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected static function isAddressesEqualByFields($first, $second)
|
||||
protected static function isAddressesEqualByFields($address1, $address2)
|
||||
{
|
||||
$checkMapping = [
|
||||
'alias',
|
||||
$fieldsToCompare = [
|
||||
'id_country',
|
||||
'lastname',
|
||||
'firstname',
|
||||
@ -795,16 +794,26 @@ class RetailcrmTools
|
||||
'vat_number',
|
||||
];
|
||||
|
||||
foreach ($checkMapping as $field) {
|
||||
if ($first->$field != $second->$field) {
|
||||
try {
|
||||
// getting fields in the same format (normalized)
|
||||
$address1Fields = $address1->getFields();
|
||||
$address2Fields = $address2->getFields();
|
||||
} catch (PrestaShopException $e) {
|
||||
RetailcrmLogger::writeDebug(__METHOD__, $e->getMessage());
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($fieldsToCompare as $field) {
|
||||
if ($address1Fields[$field] !== $address2Fields[$field]) {
|
||||
RetailcrmLogger::writeDebug(__METHOD__, json_encode([
|
||||
'first' => [
|
||||
'id' => $first->id,
|
||||
$field => $first->$field,
|
||||
'id' => $address1->id,
|
||||
$field => $address1Fields[$field],
|
||||
],
|
||||
'second' => [
|
||||
'id' => $second->id,
|
||||
$field => $second->$field,
|
||||
'id' => $address2->id,
|
||||
$field => $address2Fields[$field],
|
||||
],
|
||||
]));
|
||||
|
||||
|
@ -661,7 +661,7 @@ class RetailCRM extends Module
|
||||
$zipname = _PS_DOWNLOAD_DIR_ . '/retailcrm_logs_' . date('Y-m-d H-i-s') . '.zip';
|
||||
|
||||
$zipFile = new ZipArchive();
|
||||
$zipFile->open($zipname, ZIPARCHIVE::CREATE);
|
||||
$zipFile->open($zipname, ZipArchive::CREATE);
|
||||
|
||||
foreach (RetailcrmLogger::getLogFilesInfo() as $logFile) {
|
||||
$zipFile->addFile($logFile['path'], $logFile['name']);
|
||||
|
Loading…
x
Reference in New Issue
Block a user