208 похожих чатов

Товарищи почему не работает код? точнее работает если я меняю

цену или просто редактирую его, однако выгрузка сбрасывает настройки:

AddEventHandler("catalog", "OnPriceAdd", "BXIBlockAfterSave");
AddEventHandler("catalog", "OnPriceUpdate", "BXIBlockAfterSave");
function BXIBlockAfterSave($ID,$arFields=array()){
//наценка => тип цены
$arExtraBind = array(
'1' => 3
);
$basePriceId = 254; //базовая цена id
//флаг события обновления элемента инфоблока (не добавления цены)
$flgElemUpd = false;
//ручное изменение цены (не по событию)
if(is_array($ID) && isset($ID['ID']) && !empty($ID['ID']) && empty($arFields)){
$arFields = $ID;
$ID = $arFields['ID'];
$PRODUCT_ID = (isset($arFields['ID']) && intval($arFields['ID']) > 0)?$arFields['ID']:((isset($arFields['PRODUCT_ID']) && intval($arFields['PRODUCT_ID']) > 0)?$arFields['PRODUCT_ID']:0);
$flgElemUpd = true;
}
$PRODUCT_ID = (isset($arFields['ID']) && intval($arFields['ID']) > 0)?$arFields['ID']:((isset($arFields['PRODUCT_ID']) && intval($arFields['PRODUCT_ID']) > 0)?$arFields['PRODUCT_ID']:0);
if($PRODUCT_ID){
if((isset($arFields['CATALOG_GROUP_ID']) && $arFields['CATALOG_GROUP_ID'] == $basePriceId) || $flgElemUpd){
//получаем цены у товара
$res = CPrice::GetList(array(),array("PRODUCT_ID" => $PRODUCT_ID));
$arPricesData = $basePriceData = array();
while($arPrices = $res->Fetch()){
$arPricesData[$arPrices['CATALOG_GROUP_ID']] = $arPrices;
if($arPrices['CATALOG_GROUP_ID'] == 254){
$basePriceData = $arPrices;
}
}
//Bitrix\Main\Diag\Debug::writeToFile(array($ID, $arFields, $arPricesData),"","LogBXIBlockAfterSavet.txt");
if(isset($basePriceData['PRICE']) && !empty($basePriceData['PRICE']) && count($arPricesData) > 0){
foreach($arExtraBind as $extraId => $priceTypeId){
$arFieldPrice = Array(
"PRODUCT_ID" => $PRODUCT_ID,
"EXTRA_ID" => $extraId,
"CATALOG_GROUP_ID" => $priceTypeId,
"PRICE" => $basePriceData['PRICE'],
"CURRENCY" => $basePriceData['CURRENCY']
);
if (is_array($arPricesData[$priceTypeId])) {
CPrice::Update($arPricesData[$priceTypeId]['ID'], $arFieldPrice, true);
} else {
CPrice::Add($arFieldPrice, true);
}
}
}
}
}
}

оригинальная статья: https://dev.1c-bitrix.ru/support/forum/forum6/topic102119/

6 ответов

28 просмотров

if isset if isset if isset .... ААААА. Да научитесь пастебином что-ли пользоваться, как соль в глаза

Юрий-ʕ•́ᴥ•̀ʔっ Автор вопроса
Zakhar Yaitskikh
if isset if isset if isset .... ААААА. Да научитес...

это готовый тект из стати, я хотел проверить работает ли, но он не выполняет нужную функцию

Zakhar Yaitskikh
if isset if isset if isset .... ААААА. Да научитес...

секундочку, миллиард ифов это стандарты битрикс фрамеворк

Ioakkun Shoik
секундочку, миллиард ифов это стандарты битрикс фр...

Я как то прогнал битриксовый код через сниффер, он сначала репу почесал, сказал, что это не соответствует стандартам, а потом как понял, что это битрикс, сказал, что "ааа, ну раз битрикс, значит можно"

Юрий-ʕ•́ᴥ•̀ʔっ Автор вопроса
Zakhar Yaitskikh
if isset if isset if isset .... ААААА. Да научитес...

слушай ну ок, но все же какое событие отвечает за выгрузку?(

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта