Fixed module installation upload (#136)
This commit is contained in:
parent
c39f0eb888
commit
cf8a8eb0ab
@ -376,18 +376,6 @@ class RetailCrmOrder
|
|||||||
$optionsContragentType = RetailcrmConfigProvider::getContragentTypes();
|
$optionsContragentType = RetailcrmConfigProvider::getContragentTypes();
|
||||||
$optionsCustomFields = RetailcrmConfigProvider::getCustomFields();
|
$optionsCustomFields = RetailcrmConfigProvider::getCustomFields();
|
||||||
|
|
||||||
$getSite = function ($key) use ($optionsSitesList) {
|
|
||||||
if ($optionsSitesList) {
|
|
||||||
if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
|
|
||||||
return $optionsSitesList[$key];
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
$api = new RetailCrm\ApiClient(RetailcrmConfigProvider::getApiUrl(), RetailcrmConfigProvider::getApiKey());
|
$api = new RetailCrm\ApiClient(RetailcrmConfigProvider::getApiUrl(), RetailcrmConfigProvider::getApiKey());
|
||||||
|
|
||||||
$arParams = array(
|
$arParams = array(
|
||||||
@ -417,7 +405,7 @@ class RetailCrmOrder
|
|||||||
$arCustomerCorporate = array();
|
$arCustomerCorporate = array();
|
||||||
$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();
|
||||||
$site = $getSite($order['LID']);
|
$site = RetailCrmOrder::getSite($order['LID'], $optionsSitesList);
|
||||||
|
|
||||||
if (true === $site) {
|
if (true === $site) {
|
||||||
continue;
|
continue;
|
||||||
@ -485,48 +473,7 @@ class RetailCrmOrder
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (count($resOrders) > 0) {
|
if (count($resOrders) > 0) {
|
||||||
$uploadItems = function ($pack, $method) use ($getSite, $api, $optionsSitesList) {
|
if (false === RetailCrmOrder::uploadCustomersList($resCustomers, $api, $optionsSitesList)) {
|
||||||
$uploaded = array();
|
|
||||||
|
|
||||||
foreach ($pack as $key => $itemLoad) {
|
|
||||||
$site = $getSite($key);
|
|
||||||
|
|
||||||
if (true === $site) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var \RetailCrm\Response\ApiResponse|bool $response */
|
|
||||||
$response = RCrmActions::apiMethod(
|
|
||||||
$api,
|
|
||||||
$method,
|
|
||||||
__METHOD__,
|
|
||||||
$itemLoad,
|
|
||||||
$site
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($response === false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($response instanceof \RetailCrm\Response\ApiResponse) {
|
|
||||||
if ($response->offsetExists('uploadedCustomers')) {
|
|
||||||
$uploaded = array_merge($uploaded, $response['uploadedCustomers']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($response->offsetExists('uploadedOrders')) {
|
|
||||||
$uploaded = array_merge($uploaded, $response['uploadedOrders']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count($optionsSitesList) > 1) {
|
|
||||||
time_nanosleep(0, 250000000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $uploaded;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (false === $uploadItems($resCustomers, 'customersUpload')) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +540,7 @@ class RetailCrmOrder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (false === $uploadItems($resOrders, 'ordersUpload')) {
|
if (false === RetailCrmOrder::uploadOrdersList($resOrders, $api, $optionsSitesList)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -607,6 +554,111 @@ class RetailCrmOrder
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $resCustomers
|
||||||
|
* @param RetailCrm\ApiClient $api
|
||||||
|
* @param array $optionsSitesList
|
||||||
|
*
|
||||||
|
* @return array|false
|
||||||
|
*/
|
||||||
|
public static function uploadCustomersList($resCustomers, $api, $optionsSitesList)
|
||||||
|
{
|
||||||
|
return RetailCrmOrder::uploadItems(
|
||||||
|
$resCustomers,
|
||||||
|
'customersUpload',
|
||||||
|
'uploadedCustomers',
|
||||||
|
$api,
|
||||||
|
$optionsSitesList
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $resOrders
|
||||||
|
* @param RetailCrm\ApiClient $api
|
||||||
|
* @param array $optionsSitesList
|
||||||
|
*
|
||||||
|
* @return array|false
|
||||||
|
*/
|
||||||
|
public static function uploadOrdersList($resOrders, $api, $optionsSitesList)
|
||||||
|
{
|
||||||
|
return RetailCrmOrder::uploadItems(
|
||||||
|
$resOrders,
|
||||||
|
'ordersUpload',
|
||||||
|
'uploadedOrders',
|
||||||
|
$api,
|
||||||
|
$optionsSitesList
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $key
|
||||||
|
* @param array $optionsSitesList
|
||||||
|
*
|
||||||
|
* @return false|mixed|null
|
||||||
|
*/
|
||||||
|
public static function getSite($key, $optionsSitesList)
|
||||||
|
{
|
||||||
|
if ($optionsSitesList) {
|
||||||
|
if (array_key_exists($key, $optionsSitesList) && $optionsSitesList[$key] != null) {
|
||||||
|
return $optionsSitesList[$key];
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $pack
|
||||||
|
* @param string $method
|
||||||
|
* @param string $keyResponse
|
||||||
|
* @param RetailCrm\ApiClient $api
|
||||||
|
* @param array $optionsSitesList
|
||||||
|
*
|
||||||
|
* @return array|false
|
||||||
|
*/
|
||||||
|
public static function uploadItems($pack, $method, $keyResponse, $api, $optionsSitesList)
|
||||||
|
{
|
||||||
|
$uploaded = array();
|
||||||
|
$sizePack = 50;
|
||||||
|
|
||||||
|
foreach ($pack as $key => $itemLoad) {
|
||||||
|
$site = RetailCrmOrder::getSite($key, $optionsSitesList);
|
||||||
|
|
||||||
|
if (true === $site) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$chunkList = array_chunk($itemLoad, $sizePack, true);
|
||||||
|
|
||||||
|
foreach ($chunkList as $chunk) {
|
||||||
|
time_nanosleep(0, 250000000);
|
||||||
|
|
||||||
|
/** @var \RetailCrm\Response\ApiResponse|bool $response */
|
||||||
|
$response = RCrmActions::apiMethod(
|
||||||
|
$api,
|
||||||
|
$method,
|
||||||
|
__METHOD__,
|
||||||
|
$chunk,
|
||||||
|
$site
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($response === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($response instanceof \RetailCrm\Response\ApiResponse) {
|
||||||
|
if ($response->offsetExists($keyResponse)) {
|
||||||
|
$uploaded = array_merge($uploaded, $response[$keyResponse]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $uploaded;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if provided order array is corporate order data
|
* Returns true if provided order array is corporate order data
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user