1
0
mirror of synced 2024-11-25 06:46:08 +03:00
This commit is contained in:
Akolzin Dmitry 2017-11-13 11:05:11 +03:00 committed by GitHub
parent 0e1ec2b03c
commit 1e12e4d418
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 74 additions and 51 deletions

View File

@ -1,3 +1,7 @@
## 2017-11-01 v.2.2.8
* Исправлены баги пакетной выгрузки
* Исправлена ошибка при работе на php7.1
## 2017-10-26 v.2.2.7 ## 2017-10-26 v.2.2.7
* Исправлен баг при работе с одним сайтом * Исправлен баг при работе с одним сайтом

View File

@ -326,7 +326,7 @@ class RCrmActions
return self::proxy($api, $methodApi, $method, array($params, $site)); return self::proxy($api, $methodApi, $method, array($params, $site));
} }
} }
private function proxy($api, $methodApi, $method, $params) { private function proxy($api, $methodApi, $method, $params) {
$log = new Logger(); $log = new Logger();
$version = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_VERSION, 0); $version = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_VERSION, 0);
@ -360,11 +360,11 @@ class RCrmActions
'params' => $params 'params' => $params
), 'apiErrors'); ), 'apiErrors');
} }
if (function_exists('retailCrmApiResult')) { if (function_exists('retailCrmApiResult')) {
retailCrmApiResult($methodApi, false, $result->getStatusCode()); retailCrmApiResult($methodApi, false, $result->getStatusCode());
} }
if ($result->getStatusCode() == 460) { if ($result->getStatusCode() == 460) {
return true; return true;
} }
@ -408,11 +408,11 @@ class RCrmActions
return false; return false;
} }
if (function_exists('retailCrmApiResult')) { if (function_exists('retailCrmApiResult')) {
retailCrmApiResult($methodApi, true, $result->getStatusCode()); retailCrmApiResult($methodApi, true, $result->getStatusCode());
} }
return $result; return $result;
} }
} }

View File

@ -614,7 +614,7 @@ class RetailCrmHistory
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(), 'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => $site, 'LID' => $site,
'BASE_PRICE' => $product['initialPrice'], 'BASE_PRICE' => $product['initialPrice'],
'NAME' => $product['name'] ? RCrmActions::fromJSON($product['name']) : $elem['NAME'], 'NAME' => $product['offer']['name'] ? RCrmActions::fromJSON($product['offer']['name']) : $elem['NAME'],
'DETAIL_PAGE_URL' => $elem['URL'] 'DETAIL_PAGE_URL' => $elem['URL']
)); ));
} else { } else {
@ -1186,16 +1186,16 @@ class RetailCrmHistory
return $outputArray; return $outputArray;
} }
public static function setProp($obj, $value = '', $prop) public static function setProp($obj, $value = '', $prop = '')
{ {
if (!isset($obj)) { if (!isset($obj)) {
return false; return false;
} }
if ($prop) { if ($prop && $value) {
$obj->setField($prop, $value); $obj->setField($prop, $value);
} elseif ($value) { } elseif ($value && !$prop) {
$obj->setValue($value); $obj->setValue($value);
} else { } elseif (!$value && !$prop) {
$obj->delete(); $obj->delete();
} }

View File

@ -629,7 +629,7 @@ class RetailCrmHistory
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(), 'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => $site, 'LID' => $site,
'BASE_PRICE' => $product['initialPrice'], 'BASE_PRICE' => $product['initialPrice'],
'NAME' => $product['name'] ? RCrmActions::fromJSON($product['name']) : $elem['NAME'], 'NAME' => $product['offer']['name'] ? RCrmActions::fromJSON($product['offer']['name']) : $elem['NAME'],
'DETAIL_PAGE_URL' => $elem['URL'], 'DETAIL_PAGE_URL' => $elem['URL'],
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider', 'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
'DIMENSIONS' => $elem['DIMENSIONS'], 'DIMENSIONS' => $elem['DIMENSIONS'],
@ -1155,7 +1155,7 @@ class RetailCrmHistory
//data from crm //data from crm
$paySumm = 0; $paySumm = 0;
foreach ($paymentsCrm['payments'] as $paymentCrm) { foreach ($paymentsCrm['payments'] as $paymentCrm) {
if (!empty($paymentCrm['externalId'])) { if (isset($paymentCrm['externalId']) && !empty($paymentCrm['externalId'])) {
//find the payment //find the payment
$nowPayment = $paymentsList[$paymentCrm['externalId']]; $nowPayment = $paymentsList[$paymentCrm['externalId']];
//update data //update data
@ -1189,9 +1189,9 @@ class RetailCrmHistory
unset($paymentsList[$newPaymentId]); unset($paymentsList[$newPaymentId]);
RCrmActions::apiMethod($api, 'ordersPaymentEdit', __METHOD__, array('id' => $paymentCrm['id'], 'externalId' => $newPaymentId)); RCrmActions::apiMethod($api, 'paymentEditById', __METHOD__, array('id' => $paymentCrm['id'], 'externalId' => $newPaymentId));
} }
if ($optionsPayment[$paymentCrm['status']] == 'Y') { if ($optionsPayment[$paymentCrm['status']] == 'Y') {
$paySumm += $paymentCrm['amount']; $paySumm += $paymentCrm['amount'];
} }
@ -1242,16 +1242,16 @@ class RetailCrmHistory
return $outputArray; return $outputArray;
} }
public static function setProp($obj, $value = '', $prop) public static function setProp($obj, $value = '', $prop = '')
{ {
if (!isset($obj)) { if (!isset($obj)) {
return false; return false;
} }
if ($prop) { if ($prop && $value) {
$obj->setField($prop, $value); $obj->setField($prop, $value);
} elseif ($value) { } elseif ($value && !$prop) {
$obj->setValue($value); $obj->setValue($value);
} else { } elseif (!$value && !$prop) {
$obj->delete(); $obj->delete();
} }

View File

@ -272,7 +272,15 @@ class RetailCrmOrder
if (count($resOrders) > 0) { if (count($resOrders) > 0) {
foreach ($resCustomers as $key => $customerLoad) { foreach ($resCustomers as $key => $customerLoad) {
$site = count($optionsSitesList) > 1 ? $optionsSitesList[$key] : null; if ($optionsSitesList) {
if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
$site = $optionsSitesList[$key];
} else {
continue;
}
} elseif (!$optionsSitesList) {
$site == null;
}
if (RCrmActions::apiMethod($api, 'customersUpload', __METHOD__, $customerLoad, $site) === false) { if (RCrmActions::apiMethod($api, 'customersUpload', __METHOD__, $customerLoad, $site) === false) {
return false; return false;
} }
@ -281,7 +289,15 @@ class RetailCrmOrder
} }
} }
foreach ($resOrders as $key => $orderLoad) { foreach ($resOrders as $key => $orderLoad) {
$site = count($optionsSitesList) > 1 ? $optionsSitesList[$key] : null; if ($optionsSitesList) {
if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
$site = $optionsSitesList[$key];
} else {
continue;
}
} elseif (!$optionsSitesList) {
$site == null;
}
if (RCrmActions::apiMethod($api, 'ordersUpload', __METHOD__, $orderLoad, $site) === false) { if (RCrmActions::apiMethod($api, 'ordersUpload', __METHOD__, $orderLoad, $site) === false) {
return false; return false;
} }

View File

@ -173,7 +173,7 @@ class RetailCrmOrder
$order = $newResOrder; $order = $newResOrder;
} elseif ($newResOrder === false) { } elseif ($newResOrder === false) {
RCrmActions::eventLog('RetailCrmOrder::orderSend', 'retailCrmBeforeOrderSend()', 'OrderID = ' . $arFields['ID'] . '. Sending canceled after retailCrmBeforeOrderSend'); RCrmActions::eventLog('RetailCrmOrder::orderSend', 'retailCrmBeforeOrderSend()', 'OrderID = ' . $arFields['ID'] . '. Sending canceled after retailCrmBeforeOrderSend');
return false; return false;
} }
} }
@ -279,16 +279,6 @@ class RetailCrmOrder
$order = self::orderObjToArr($id); $order = self::orderObjToArr($id);
$user = Bitrix\Main\UserTable::getById($order['USER_ID'])->fetch(); $user = Bitrix\Main\UserTable::getById($order['USER_ID'])->fetch();
if(array_key_exists($arOrder['LID'], $optionsSitesList)) {
$site = $optionsSitesList[$arOrder['LID']];
} else {
$site = null;
}
if ($site == null) {
continue;
}
$arCustomers = RetailCrmUser::customerSend($user, $api, $optionsContragentType[$order['PERSON_TYPE_ID']], false, $site); $arCustomers = RetailCrmUser::customerSend($user, $api, $optionsContragentType[$order['PERSON_TYPE_ID']], false, $site);
$arOrders = self::orderSend($order, $api, $arParams, false, $site); $arOrders = self::orderSend($order, $api, $arParams, false, $site);
@ -304,10 +294,14 @@ class RetailCrmOrder
if (count($resOrders) > 0) { if (count($resOrders) > 0) {
foreach ($resCustomers as $key => $customerLoad) { foreach ($resCustomers as $key => $customerLoad) {
if(array_key_exists($key, $optionsSitesList)) { if ($optionsSitesList) {
$site = $optionsSitesList[$key]; if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
} else { $site = $optionsSitesList[$key];
$site = null; } else {
continue;
}
} elseif (!$optionsSitesList) {
$site == null;
} }
if (RCrmActions::apiMethod($api, 'customersUpload', __METHOD__, $customerLoad, $site) === false) { if (RCrmActions::apiMethod($api, 'customersUpload', __METHOD__, $customerLoad, $site) === false) {
return false; return false;
@ -317,10 +311,14 @@ class RetailCrmOrder
} }
} }
foreach ($resOrders as $key => $orderLoad) { foreach ($resOrders as $key => $orderLoad) {
if(array_key_exists($key, $optionsSitesList)) { if ($optionsSitesList) {
$site = $optionsSitesList[$key]; if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
} else { $site = $optionsSitesList[$key];
$site = null; } else {
continue;
}
} elseif (!$optionsSitesList) {
$site == null;
} }
if (RCrmActions::apiMethod($api, 'ordersUpload', __METHOD__, $orderLoad, $site) === false) { if (RCrmActions::apiMethod($api, 'ordersUpload', __METHOD__, $orderLoad, $site) === false) {
return false; return false;

View File

@ -1 +1,2 @@
- Исправлен баг при работе с одним сайтом - Исправлены ошибки подключения кастомных классов
- Улучшена обработка истории

View File

@ -5,20 +5,20 @@ $version = COption::GetOptionString('intaro.retailcrm', 'api_version');
CModule::AddAutoloadClasses( CModule::AddAutoloadClasses(
'intaro.retailcrm', // module name 'intaro.retailcrm', // module name
array ( array (
'RestNormalizer' => file_exists($server . '/bitrix/php_interface/retailcrm/RestNormalizer.php') ? $server . '/bitrix/php_interface/retailcrm/RestNormalizer.php' : 'classes/general/RestNormalizer.php', 'RestNormalizer' => file_exists($server . '/bitrix/php_interface/retailcrm/RestNormalizer.php') ? '../../php_interface/retailcrm/RestNormalizer.php' : 'classes/general/RestNormalizer.php',
'Logger' => file_exists($server . '/bitrix/php_interface/retailcrm/Logger.php') ? $server . '/bitrix/php_interface/retailcrm/Logger.php' : 'classes/general/Logger.php', 'Logger' => file_exists($server . '/bitrix/php_interface/retailcrm/Logger.php') ? '../../php_interface/retailcrm/Logger.php' : 'classes/general/Logger.php',
'RetailCrm\ApiClient' => file_exists($server . '/bitrix/php_interface/retailcrm/ApiClient.php') ? $server . '/bitrix/php_interface/retailcrm/ApiClient.php' : 'classes/general/ApiClient_' . $version . '.php', 'RetailCrm\ApiClient' => file_exists($server . '/bitrix/php_interface/retailcrm/ApiClient.php') ? '../../php_interface/retailcrm/ApiClient.php' : 'classes/general/ApiClient_' . $version . '.php',
'RetailCrm\Http\Client' => file_exists($server . '/bitrix/php_interface/retailcrm/Client.php') ? $server . '/bitrix/php_interface/retailcrm/Client.php' : 'classes/general/Http/Client.php', 'RetailCrm\Http\Client' => file_exists($server . '/bitrix/php_interface/retailcrm/Client.php') ? '../../php_interface/retailcrm/Client.php' : 'classes/general/Http/Client.php',
'RCrmActions' => file_exists($server . '/bitrix/php_interface/retailcrm/RCrmActions.php') ? $server . '/bitrix/php_interface/retailcrm/RCrmActions.php' : 'classes/general/RCrmActions.php', 'RCrmActions' => file_exists($server . '/bitrix/php_interface/retailcrm/RCrmActions.php') ? '../../php_interface/retailcrm/RCrmActions.php' : 'classes/general/RCrmActions.php',
'RetailCrmUser' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmUser.php') ? $server . '/bitrix/php_interface/retailcrm/RetailCrmUser.php' : 'classes/general/user/RetailCrmUser.php', 'RetailCrmUser' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmUser.php') ? '../../php_interface/retailcrm/RetailCrmUser.php' : 'classes/general/user/RetailCrmUser.php',
'RetailCrmOrder' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmOrder.php') ? $server . '/bitrix/php_interface/retailcrm/RetailCrmOrder.php' : 'classes/general/order/RetailCrmOrder_' . $version . '.php', 'RetailCrmOrder' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmOrder.php') ? '../../php_interface/retailcrm/RetailCrmOrder.php' : 'classes/general/order/RetailCrmOrder_' . $version . '.php',
'RetailCrmHistory' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmHistory.php') ? $server . '/bitrix/php_interface/retailcrm/RetailCrmHistory.php' : 'classes/general/history/RetailCrmHistory_' . $version . '.php', 'RetailCrmHistory' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmHistory.php') ? '../../php_interface/retailcrm/RetailCrmHistory.php' : 'classes/general/history/RetailCrmHistory_' . $version . '.php',
'RetailCrmICML' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmICML.php') ? '../../php_interface/retailcrm/RetailCrmICML.php' : 'classes/general/icml/RetailCrmICML.php', 'RetailCrmICML' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmICML.php') ? '../../php_interface/retailcrm/RetailCrmICML.php' : 'classes/general/icml/RetailCrmICML.php',
'RetailCrmInventories' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmInventories.php') ? '../../php_interface/retailcrm/RetailCrmInventories.php' : 'classes/general/inventories/RetailCrmInventories.php', 'RetailCrmInventories' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmInventories.php') ? '../../php_interface/retailcrm/RetailCrmInventories.php' : 'classes/general/inventories/RetailCrmInventories.php',
'RetailCrmPrices' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmPrices.php') ? '../../php_interface/retailcrm/RetailCrmPrices.php' : 'classes/general/prices/RetailCrmPrices.php', 'RetailCrmPrices' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmPrices.php') ? '../../php_interface/retailcrm/RetailCrmPrices.php' : 'classes/general/prices/RetailCrmPrices.php',
'RetailCrmCollector' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmCollector.php') ? '../../php_interface/retailcrm/RetailCrmCollector.php' : 'classes/general/collector/RetailCrmCollector.php', 'RetailCrmCollector' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmCollector.php') ? '../../php_interface/retailcrm/RetailCrmCollector.php' : 'classes/general/collector/RetailCrmCollector.php',
'RetailCrmUa' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmUa.php') ? '../../php_interface/retailcrm/RetailCrmUa.php' : 'classes/general/ua/RetailCrmUa.php', 'RetailCrmUa' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmUa.php') ? '../../php_interface/retailcrm/RetailCrmUa.php' : 'classes/general/ua/RetailCrmUa.php',
'RetailCrmEvent' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmEvent.php') ? $server . '/bitrix/php_interface/retailcrm/RetailCrmEvent.php' : 'classes/general/events/RetailCrmEvent.php', 'RetailCrmEvent' => file_exists($server . '/bitrix/php_interface/retailcrm/RetailCrmEvent.php') ? '../../php_interface/retailcrm/RetailCrmEvent.php' : 'classes/general/events/RetailCrmEvent.php',
'RetailCrm\Response\ApiResponse' => 'classes/general/Response/ApiResponse.php', 'RetailCrm\Response\ApiResponse' => 'classes/general/Response/ApiResponse.php',
'RetailCrm\Exception\InvalidJsonException' => 'classes/general/Exception/InvalidJsonException.php', 'RetailCrm\Exception\InvalidJsonException' => 'classes/general/Exception/InvalidJsonException.php',
'RetailCrm\Exception\CurlException' => 'classes/general/Exception/CurlException.php', 'RetailCrm\Exception\CurlException' => 'classes/general/Exception/CurlException.php',

View File

@ -1,5 +1,5 @@
<? <?
$arModuleVersion = array( $arModuleVersion = array(
"VERSION" => "2.2.7", "VERSION" => "2.2.9",
"VERSION_DATE" => "2017-09-25 14:50:00" "VERSION_DATE" => "2017-11-13 11:00:00"
); );

View File

@ -276,12 +276,16 @@ if (isset($_POST['Update']) && ($_POST['Update'] == 'Y')) {
UnRegisterModuleDependences("sale", "OnSaleOrderEntitySaved", $mid, "RetailCrmEvent", "orderSave"); UnRegisterModuleDependences("sale", "OnSaleOrderEntitySaved", $mid, "RetailCrmEvent", "orderSave");
UnRegisterModuleDependences("sale", "OnOrderUpdate", $mid, "RetailCrmEvent", "onUpdateOrder"); UnRegisterModuleDependences("sale", "OnOrderUpdate", $mid, "RetailCrmEvent", "onUpdateOrder");
UnRegisterModuleDependences("sale", "OnSaleOrderEntityDelete", $mid, "RetailCrmEvent", "orderDelete"); UnRegisterModuleDependences("sale", "OnSaleOrderEntityDelete", $mid, "RetailCrmEvent", "orderDelete");
UnRegisterModuleDependences("sale", "OnSalePaymentEntitySaved", $mid, "RetailCrmEvent", "paymentSave");
UnRegisterModuleDependences("sale", "OnSalePaymentEntityDeleted", $mid, "RetailCrmEvent", "paymentDelete");
} elseif (($orderDischarge != $previousDischarge) && ($orderDischarge == 1)) { } elseif (($orderDischarge != $previousDischarge) && ($orderDischarge == 1)) {
// event dependencies // event dependencies
RegisterModuleDependences("sale", "OnSaleOrderEntitySaved", $mid, "RetailCrmEvent", "orderSave"); RegisterModuleDependences("sale", "OnSaleOrderEntitySaved", $mid, "RetailCrmEvent", "orderSave");
RegisterModuleDependences("sale", "OnOrderUpdate", $mid, "RetailCrmEvent", "onUpdateOrder"); RegisterModuleDependences("sale", "OnOrderUpdate", $mid, "RetailCrmEvent", "onUpdateOrder");
RegisterModuleDependences("sale", "OnSaleOrderEntityDelete", $mid, "RetailCrmEvent", "orderDelete"); RegisterModuleDependences("sale", "OnSaleOrderEntityDelete", $mid, "RetailCrmEvent", "orderDelete");
RegisterModuleDependences("sale", "OnSalePaymentEntitySaved", $mid, "RetailCrmEvent", "paymentSave");
RegisterModuleDependences("sale", "OnSalePaymentEntityDeleted", $mid, "RetailCrmEvent", "paymentDelete");
} }
$orderPropsArr = array(); $orderPropsArr = array();