v.1.1.1
Bug fix
This commit is contained in:
parent
5bd37b65a2
commit
a5095603e9
@ -1,3 +1,8 @@
|
|||||||
|
## 2015-03-19 v.1.1.1
|
||||||
|
* Исправлена ошибка, связанная с версионностью PHP в History.
|
||||||
|
* Добавлена выгрузка закупочной цены вместе с заказом
|
||||||
|
* Добавлены индивидуальные настройки для профилей выгрузки
|
||||||
|
* Исправлены мелкие ошибки
|
||||||
## 2015-02-20 v.1.1.0
|
## 2015-02-20 v.1.1.0
|
||||||
* Модуль переведен на новую версию API
|
* Модуль переведен на новую версию API
|
||||||
* Добавлена поддержка реквизитов юр. лиц
|
* Добавлена поддержка реквизитов юр. лиц
|
||||||
@ -16,7 +21,7 @@
|
|||||||
## 2015-02-12 v.1.0.16
|
## 2015-02-12 v.1.0.16
|
||||||
* Исправлен агент
|
* Исправлен агент
|
||||||
* Исправлены ошибки с запоминанием пользователя
|
* Исправлены ошибки с запоминанием пользователя
|
||||||
* Исправленна ошибка с выходом пользователя из системы
|
* Исправлена ошибка с выходом пользователя из системы
|
||||||
* Исправлена ошибка хождения пользователя под другим логином
|
* Исправлена ошибка хождения пользователя под другим логином
|
||||||
* Исправлены проблема с fix-external-ids
|
* Исправлены проблема с fix-external-ids
|
||||||
* Добавлена возможность получения скидки из CRM в Битрикс
|
* Добавлена возможность получения скидки из CRM в Битрикс
|
||||||
|
@ -5,6 +5,7 @@ IncludeModuleLangFile(__FILE__);
|
|||||||
|
|
||||||
class ICMLLoader {
|
class ICMLLoader {
|
||||||
|
|
||||||
|
public $profileID;
|
||||||
public $iblocks;
|
public $iblocks;
|
||||||
public $filename;
|
public $filename;
|
||||||
public $serverName;
|
public $serverName;
|
||||||
@ -222,8 +223,11 @@ class ICMLLoader {
|
|||||||
protected function BuildOffers(&$allCategories)
|
protected function BuildOffers(&$allCategories)
|
||||||
{
|
{
|
||||||
|
|
||||||
$basePriceId = COption::GetOptionString($this->MODULE_ID, $this->CRM_CATALOG_BASE_PRICE, 1);
|
$basePriceId = COption::GetOptionString(
|
||||||
|
$this->MODULE_ID,
|
||||||
|
$this->CRM_CATALOG_BASE_PRICE . (is_null($this->profileID) === false ? '_' . $this->profileID : ''),
|
||||||
|
1
|
||||||
|
);
|
||||||
|
|
||||||
foreach ($this->iblocks as $key => $id)
|
foreach ($this->iblocks as $key => $id)
|
||||||
{
|
{
|
||||||
|
@ -250,13 +250,20 @@ class ICrmOrderActions
|
|||||||
$item = array(
|
$item = array(
|
||||||
'quantity' => $p['QUANTITY'],
|
'quantity' => $p['QUANTITY'],
|
||||||
'productId' => $p['PRODUCT_ID'],
|
'productId' => $p['PRODUCT_ID'],
|
||||||
|
'xmlId' => $p['PRODUCT_XML_ID'],
|
||||||
'productName' => $p['NAME'],
|
'productName' => $p['NAME'],
|
||||||
'comment' => $p['NOTES'],
|
'comment' => $p['NOTES'],
|
||||||
'discount' => $p['DISCOUNT_PRICE']
|
'createdAt' => new \DateTime($p['DATE_INSERT'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$pp = CCatalogProduct::GetByID($p['PRODUCT_ID']);
|
||||||
|
if (is_null($pp['PURCHASING_PRICE']) == false) {
|
||||||
|
$item['purchasePrice'] = $pp['PURCHASING_PRICE'];
|
||||||
|
}
|
||||||
|
|
||||||
$propCancel = CSaleBasket::GetPropsList(array(), array('BASKET_ID' => $p['ID'], 'CODE' => self::CANCEL_PROPERTY_CODE))->Fetch();
|
$propCancel = CSaleBasket::GetPropsList(array(), array('BASKET_ID' => $p['ID'], 'CODE' => self::CANCEL_PROPERTY_CODE))->Fetch();
|
||||||
if ($propCancel && !(int)$propCancel['VALUE']) {
|
if (!$propCancel || ($propCancel && !(int)$propCancel['VALUE'])) {
|
||||||
|
$item['discount'] = (double) $p['DISCOUNT_PRICE'];
|
||||||
$item['initialPrice'] = (double) $p['PRICE'] + (double) $p['DISCOUNT_PRICE'];
|
$item['initialPrice'] = (double) $p['PRICE'] + (double) $p['DISCOUNT_PRICE'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,7 +300,7 @@ class ICrmOrderActions
|
|||||||
|
|
||||||
$customer = $normalizer->normalize($customer, 'customers');
|
$customer = $normalizer->normalize($customer, 'customers');
|
||||||
$order = $normalizer->normalize($order, 'orders');
|
$order = $normalizer->normalize($order, 'orders');
|
||||||
$site = null;
|
|
||||||
if (isset($arParams['optionsSitesList']) && is_array($arParams['optionsSitesList']) &&
|
if (isset($arParams['optionsSitesList']) && is_array($arParams['optionsSitesList']) &&
|
||||||
array_key_exists($arFields['LID'], $arParams['optionsSitesList'])) {
|
array_key_exists($arFields['LID'], $arParams['optionsSitesList'])) {
|
||||||
$site = $arParams['optionsSitesList'][$arFields['LID']];
|
$site = $arParams['optionsSitesList'][$arFields['LID']];
|
||||||
@ -391,7 +398,7 @@ class ICrmOrderActions
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$orderHistory = isset($orderHistory->orders) ? $orderHistory->orders : array();
|
$orderHistory = isset($orderHistory['orders']) ? $orderHistory['orders'] : array();
|
||||||
|
|
||||||
$dateFinish = $api->getGeneratedAt();
|
$dateFinish = $api->getGeneratedAt();
|
||||||
if (is_null($dateFinish) || $dateFinish == false) {
|
if (is_null($dateFinish) || $dateFinish == false) {
|
||||||
|
@ -8,6 +8,6 @@
|
|||||||
- Исправлена ошибка пустого $_SERVER['SERVER_NAME'] при экспорте каталога
|
- Исправлена ошибка пустого $_SERVER['SERVER_NAME'] при экспорте каталога
|
||||||
- Исправлена ошибка с неправильной скидкой у товара при наличии копеек
|
- Исправлена ошибка с неправильной скидкой у товара при наличии копеек
|
||||||
- Исправлена ошибка с пропаданием автоматических служб доставок из настроек модуля
|
- Исправлена ошибка с пропаданием автоматических служб доставок из настроек модуля
|
||||||
- Исправлена неправельная выгрузка сервисов для служб доставок
|
- Исправлена неправильная выгрузка сервисов для служб доставок
|
||||||
- Исправлено не правельное определение местоположения
|
- Исправлено неправильное определение местоположения
|
||||||
- Рефакторинг модуля
|
- Рефакторинг модуля
|
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
ignore_user_abort(true);
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
global $APPLICATION;
|
global $APPLICATION;
|
||||||
@ -68,8 +69,8 @@ foreach ($iblockProperties as $prop) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$loader = new ICMLLoader();
|
$loader = new ICMLLoader();
|
||||||
|
$loader->profileID = $PROFILE_ID;
|
||||||
$loader->iblocks = $IBLOCK_EXPORT;
|
$loader->iblocks = $IBLOCK_EXPORT;
|
||||||
$loader->propertiesSKU = $IBLOCK_PROPERTY_SKU;
|
$loader->propertiesSKU = $IBLOCK_PROPERTY_SKU;
|
||||||
$loader->propertiesUnitSKU = $IBLOCK_PROPERTY_UNIT_SKU;
|
$loader->propertiesUnitSKU = $IBLOCK_PROPERTY_UNIT_SKU;
|
||||||
|
@ -17,7 +17,7 @@ __IncludeLang(GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intaro.
|
|||||||
|
|
||||||
$MODULE_ID = 'intaro.intarocrm';
|
$MODULE_ID = 'intaro.intarocrm';
|
||||||
$CRM_CATALOG_BASE_PRICE = 'catalog_base_price';
|
$CRM_CATALOG_BASE_PRICE = 'catalog_base_price';
|
||||||
$basePriceId = COption::GetOptionString($MODULE_ID, $CRM_CATALOG_BASE_PRICE, 1);
|
$basePriceId = COption::GetOptionString($MODULE_ID, $CRM_CATALOG_BASE_PRICE . '_' . $_REQUEST['PROFILE_ID'], 1);
|
||||||
|
|
||||||
$arResult['PRICE_TYPES'] = array();
|
$arResult['PRICE_TYPES'] = array();
|
||||||
$dbPriceType = CCatalogGroup::GetList(
|
$dbPriceType = CCatalogGroup::GetList(
|
||||||
@ -665,7 +665,6 @@ if ($STEP==1)
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<?//Следующие переменные должны быть обязательно установлены?>
|
<?//Следующие переменные должны быть обязательно установлены?>
|
||||||
<?=bitrix_sessid_post();?>
|
<?=bitrix_sessid_post();?>
|
||||||
|
|
||||||
@ -693,7 +692,7 @@ if ($STEP==1)
|
|||||||
}
|
}
|
||||||
elseif ($STEP==2)
|
elseif ($STEP==2)
|
||||||
{
|
{
|
||||||
COption::SetOptionString($MODULE_ID, $CRM_CATALOG_BASE_PRICE, htmlspecialchars(trim($_POST['price-types'])));
|
COption::SetOptionString($MODULE_ID, $CRM_CATALOG_BASE_PRICE . '_' . $_REQUEST['PROFILE_ID'], htmlspecialchars(trim($_POST['price-types'])));
|
||||||
$FINITE = true;
|
$FINITE = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?
|
<?
|
||||||
$arModuleVersion = array(
|
$arModuleVersion = array(
|
||||||
"VERSION" => "1.1.0",
|
"VERSION" => "1.1.1",
|
||||||
"VERSION_DATE" => "2015-03-03 16:21:38"
|
"VERSION_DATE" => "2015-03-19 14:56:00"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1,87 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
if (!CModule::IncludeModule("intaro.intarocrm")) return;
|
if (!CModule::IncludeModule("main")) return;
|
||||||
|
DeleteDirFilesEx('/retailcrm');
|
||||||
if (!CModule::IncludeModule("sale")) return;
|
DeleteDirFilesEx('/bitrix/modules/intaro.intarocrm/classes/general/agent.php');
|
||||||
|
DeleteDirFilesEx('/bitrix/modules/intaro.intarocrm/classes/general/Exception/ApiException.php');
|
||||||
class RestApiSite extends \IntaroCrm\RestApi
|
|
||||||
{
|
|
||||||
public function sitesList()
|
|
||||||
{
|
|
||||||
$url = $this->apiUrl.'reference/sites';
|
|
||||||
$result = $this->curlRequest($url);
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$mid = 'intaro.intarocrm';
|
|
||||||
$CRM_API_HOST_OPTION = 'api_host';
|
|
||||||
$CRM_API_KEY_OPTION = 'api_key';
|
|
||||||
$CRM_CONTRAGENT_TYPE = 'contragent_type';
|
|
||||||
$CRM_SITES_LIST= 'sites_list';
|
|
||||||
|
|
||||||
$api_host = COption::GetOptionString($mid, $CRM_API_HOST_OPTION, 0);
|
|
||||||
$api_key = COption::GetOptionString($mid, $CRM_API_KEY_OPTION, 0);
|
|
||||||
$api = new RestApiSite($api_host, $api_key);
|
|
||||||
|
|
||||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/intaro.intarocrm/classes/general/agent.php')) {
|
|
||||||
unlink($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/intaro.intarocrm/classes/general/agent.php');
|
|
||||||
}
|
|
||||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/intaro.intarocrm/classes/general/Exception/ApiException.php')) {
|
|
||||||
unlink($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/intaro.intarocrm/classes/general/Exception/ApiException.php');
|
|
||||||
}
|
|
||||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/retailcrm')) {
|
|
||||||
removeDirectory($_SERVER['DOCUMENT_ROOT'] . '/retailcrm');
|
|
||||||
}
|
|
||||||
|
|
||||||
//sites
|
|
||||||
$rsSites = CSite::GetList($by, $sort, array('ACTIVE' => 'Y'));
|
|
||||||
while ($ar = $rsSites->Fetch()){
|
|
||||||
$arSites[] = $ar;
|
|
||||||
}
|
|
||||||
if(count($arSites)>1){
|
|
||||||
try {
|
|
||||||
$sitesList = $api->sitesList();
|
|
||||||
} catch (\IntaroCrm\Exception\CurlException $e) {
|
|
||||||
ICrmOrderActions::eventLog(
|
|
||||||
'intaro.crm/updater.php', 'RetailCrm\RestApi::sitesList::CurlException',
|
|
||||||
$e->getCode() . ': ' . $e->getMessage()
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
foreach ($arResult['arSites'] as $arSites) {
|
|
||||||
$siteListArr[$arSites['LID']] = $sitesList[0]['code'];
|
|
||||||
}
|
|
||||||
COption::SetOptionString($mid, $CRM_SITES_LIST, serialize(ICrmOrderActions::clearArr($siteListArr)));
|
|
||||||
}
|
|
||||||
|
|
||||||
//contragents type list
|
|
||||||
$dbOrderTypesList = CSalePersonType::GetList(
|
|
||||||
array(
|
|
||||||
"SORT" => "ASC",
|
|
||||||
"NAME" => "ASC"
|
|
||||||
),
|
|
||||||
array(
|
|
||||||
"ACTIVE" => "Y",
|
|
||||||
),
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
array()
|
|
||||||
);
|
|
||||||
|
|
||||||
$orderTypesList = array();
|
|
||||||
while ($arOrderTypesList = $dbOrderTypesList->Fetch()){
|
|
||||||
$orderTypesList[] = $arOrderTypesList;
|
|
||||||
}
|
|
||||||
$contragentTypeArr = array();
|
|
||||||
foreach ($orderTypesList as $orderType) {
|
|
||||||
$contragentTypeArr[$orderType['ID']] = 'individual';
|
|
||||||
}
|
|
||||||
COption::SetOptionString($mid, $CRM_CONTRAGENT_TYPE, serialize(ICrmOrderActions::clearArr($contragentTypeArr)));
|
|
||||||
|
|
||||||
function removeDirectory($dir) {
|
|
||||||
if ($objs = glob($dir."/*")) {
|
|
||||||
foreach($objs as $obj) {
|
|
||||||
is_dir($obj) ? removeDirectory($obj) : unlink($obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
rmdir($dir);
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user