Все доброго времени суток, выгружаю вручную остатки из внешней системы учёта на сайт, весь объём скрипт за раз не выгружает, поэтому оформил небольшую пошаговость , клиент захотел автоматизировать этот процесс, было принято решение повесить эту функцию на агента,в связи с этим у меня появился такой вопрос, как реализовать пошаговое выполнение этого скрипта на агенте?
Код |
---|
$IBLOCK_ID = 25;
$IBLOCK_ID_SELL = 26;
if (empty($_REQUEST['COUNT'])):
$count = 0;
$newCount = $count+200;
else:
$count = $_REQUEST['COUNT'];
$newCount = $count+200;
endif;
/**
* @param $count
* @param $newCount
*/
if ((CModule::IncludeModule("iblock")) and (CModule::IncludeModule("catalog"))){
if($curlRemains = curl_init() ) {
$urlRemains = "http://login:password@api2.gifts.ru/export/v2/catalogue/stock.xml";
curl_setopt($curlRemains, CURLOPT_URL, $urlRemains);
curl_setopt($curlRemains, CURLOPT_RETURNTRANSFER, true);
$outRemains = curl_exec($curlRemains);
$arrayRemains = simplexml_load_string($outRemains);
curl_close($curlRemains);
}
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID);
$arSelect = array("ID","PROPERTY_ID_PRODUCT");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$rsStore = CCatalogStoreProduct::GetList(array(), array('PRODUCT_ID' =>$arFields['ID'], 'STORE_ID' => 1), false, false, array('ID','AMOUNT','PRODUCT_ID'));
$arStore = $rsStore->Fetch();
$elemArr[$arFields['PROPERTY_ID_PRODUCT_VALUE']]['ID'] = $arStore['ID'];
$elemArr[$arFields['PROPERTY_ID_PRODUCT_VALUE']]['ID_PRODUCT'] = $arFields['ID'];
$elemArr[$arFields['PROPERTY_ID_PRODUCT_VALUE']]['AMOUNT'] = $arStore['AMOUNT'];
}
unset($arFields);
$i = 0;
foreach ($arrayRemains as $value)
{
if ($i == $count) {
if ($count != $newCount) {
foreach ($elemArr as $keyElem => $valueElem) {
if ((string)$keyElem == $value->product_id->__toString()) {
if ($value->amount->__toString() != "0") {
$obEl = new CIBlockElement();
$obEl->Update($valueElem['ID_PRODUCT'], array('ACTIVE' => 'Y'));
} else {
$obEl = new CIBlockElement();
$obEl->Update($valueElem['ID_PRODUCT'], array('ACTIVE' => 'N'));
}
if ($valueElem['ID'] == NULL) {
$arFields = Array(
"PRODUCT_ID" => $valueElem['ID_PRODUCT'],
"STORE_ID" => 1,
"AMOUNT" => $value->amount->__toString(),
);
if ($ID = CCatalogStoreProduct::Add($arFields)):
$i++;
$count++;
endif;
$arFiledsCPro = array("QUANTITY" => $value->amount->__toString());
CCatalogProduct::Update($valueElem['ID_PRODUCT'], $arFiledsCPro);
unset($arFields);
unset($elemArr[$keyElem]);
break;
} else {
$arFields = Array(
"PRODUCT_ID" => $valueElem['ID_PRODUCT'],
"STORE_ID" => 1,
"AMOUNT" => $value->amount->__toString(),
);
if ($ID = CCatalogStoreProduct::Update($valueElem['ID'], $arFields)):
$i++;
$count++;
endif;
$arFiledsCPro = array("QUANTITY" => $value->amount->__toString());
CCatalogProduct::Update($valueElem['ID_PRODUCT'], $arFiledsCPro);
unset($arFields);
unset($elemArr[$keyElem]);
break;
}
break;
}
}
} else {
?>
<sc ript type="text/javascript">
window.location="<?=$APPLICATION->GetCurPage();?>?COUNT=<?=$newCount?>";
</sc ript>
<?
}
} else {
$i++;
}
}
}
?>
|