1
0
mirror of synced 2025-02-22 01:43:15 +03:00

Fix install, fix arrays in ApiClient class

This commit is contained in:
Akolzin Dmitry 2017-10-25 11:25:09 +03:00
parent e405c683ed
commit d73b150c80
4 changed files with 48 additions and 8 deletions

View File

@ -156,7 +156,11 @@ class RetailCrmEvent
} else { } else {
$site = null; $site = null;
} }
if ($site == null) {
return;
}
//new order? //new order?
$orderCrm = RCrmActions::apiMethod($api, 'ordersGet', __METHOD__, $arOrder['ID'], $site); $orderCrm = RCrmActions::apiMethod($api, 'ordersGet', __METHOD__, $arOrder['ID'], $site);
if (isset($orderCrm['order'])) { if (isset($orderCrm['order'])) {
@ -164,6 +168,7 @@ class RetailCrmEvent
$arParams['crmOrder'] = $orderCrm['order']; $arParams['crmOrder'] = $orderCrm['order'];
} else { } else {
$methodApi = 'ordersCreate'; $methodApi = 'ordersCreate';
$GLOBALS['RETAILCRM_ORDER_NEW_ORDER'] = true;
} }
//user //user
@ -223,7 +228,7 @@ class RetailCrmEvent
$newOrder = Bitrix\Sale\Order::load($arPayment['ORDER_ID']); $newOrder = Bitrix\Sale\Order::load($arPayment['ORDER_ID']);
$arPayment['LID'] = $newOrder->getField('LID'); $arPayment['LID'] = $newOrder->getField('LID');
} catch (Bitrix\Main\ArgumentNullException $e) { } catch (Bitrix\Main\ArgumentNullException $e) {
RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'Bitrix\Sale\Order::load', $e->getMessage() . ': ' . $order['externalId']); RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'Bitrix\Sale\Order::load', $e->getMessage() . ': ' . $arPayment['ORDER_ID']);
return; return;
} }
@ -232,7 +237,11 @@ class RetailCrmEvent
} else { } else {
$site = null; $site = null;
} }
if ($site == null) {
return;
}
$api_host = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_KEY_OPTION, 0); $api_key = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_KEY_OPTION, 0);
$api = new RetailCrm\ApiClient($api_host, $api_key); $api = new RetailCrm\ApiClient($api_host, $api_key);
@ -315,10 +324,35 @@ class RetailCrmEvent
return; return;
} }
$optionsSitesList = unserialize(COption::GetOptionString(self::$MODULE_ID, self::$CRM_SITES_LIST, 0));
$arPayment = array(
'ID' => $event->getId(),
'ORDER_ID' => $event->getField('ORDER_ID')
);
try {
$newOrder = Bitrix\Sale\Order::load($arPayment['ORDER_ID']);
$arPayment['LID'] = $newOrder->getField('LID');
} catch (Bitrix\Main\ArgumentNullException $e) {
RCrmActions::eventLog('RetailCrmHistory::orderHistory', 'Bitrix\Sale\Order::load', $e->getMessage() . ': ' . $arPayment['ORDER_ID']);
return;
}
if(!empty($optionsSitesList) && array_key_exists($arPayment['LID'], $optionsSitesList)) {
$site = $optionsSitesList[$arPayment['LID']];
} else {
$site = null;
}
if ($site == null) {
return;
}
$api_host = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_HOST_OPTION, 0); $api_host = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_HOST_OPTION, 0);
$api_key = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_KEY_OPTION, 0); $api_key = COption::GetOptionString(self::$MODULE_ID, self::$CRM_API_KEY_OPTION, 0);
$api = new RetailCrm\ApiClient($api_host, $api_key); $api = new RetailCrm\ApiClient($api_host, $api_key);
$orderCrm = RCrmActions::apiMethod($api, 'ordersGet', __METHOD__, $event->getField('ORDER_ID'), $site); $orderCrm = RCrmActions::apiMethod($api, 'ordersGet', __METHOD__, $arPayment('ORDER_ID'), $site);
if (isset($orderCrm['order']['payments']) && $orderCrm['order']['payments']) { if (isset($orderCrm['order']['payments']) && $orderCrm['order']['payments']) {
foreach ($orderCrm['order']['payments'] as $payment) { foreach ($orderCrm['order']['payments'] as $payment) {

View File

@ -155,10 +155,10 @@ class RetailCrmOrder
} }
$normalizer = new RestNormalizer(); $normalizer = new RestNormalizer();
$order = $normalizer->normalize($order, 'ordersSend'); $order = $normalizer->normalize($order, 'orders');
$log = new Logger(); $log = new Logger();
$log->write($order, 'order'); $log->write($order, 'orderSend');
if($send) { if($send) {
if (!RCrmActions::apiMethod($api, $methodApi, __METHOD__, $order, $site)) { if (!RCrmActions::apiMethod($api, $methodApi, __METHOD__, $order, $site)) {

View File

@ -179,10 +179,10 @@ class RetailCrmOrder
} }
$normalizer = new RestNormalizer(); $normalizer = new RestNormalizer();
$order = $normalizer->normalize($order, 'ordersSend'); $order = $normalizer->normalize($order, 'orders');
$log = new Logger(); $log = new Logger();
$log->write($order, 'order'); $log->write($order, 'orderSend');
if($send) { if($send) {
if (!RCrmActions::apiMethod($api, $methodApi, __METHOD__, $order, $site)) { if (!RCrmActions::apiMethod($api, $methodApi, __METHOD__, $order, $site)) {
@ -285,6 +285,10 @@ class RetailCrmOrder
$site = null; $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);

View File

@ -285,6 +285,8 @@ class intaro_retailcrm extends CModule
foreach ($arResult['arSites'] as $site) { foreach ($arResult['arSites'] as $site) {
if ($_POST['sites-id-' . $site['LID']] && !empty($_POST['sites-id-' . $site['LID']])) { if ($_POST['sites-id-' . $site['LID']] && !empty($_POST['sites-id-' . $site['LID']])) {
$siteCode[$site['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $site['LID']])); $siteCode[$site['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $site['LID']]));
} else {
$siteCode[$site['LID']] = null;
} }
} }
if (count($arResult['arSites']) != count($siteCode)) { if (count($arResult['arSites']) != count($siteCode)) {