Работа с заказами. На событие смены статуса заказа (OnSaleStatusOrder) хочу повесить проверку заполнения даты документа доставки. Если дата документа доставки указана, то можно сменить статус "принято" на "обрабатывается", если дата документа доставки не указана, то статус не изменяется и выводится ошибка "Статус не изменен. Не указана дата доставки!".
Самому смешно вожусь уже 2ой день...
Вроде все делается легко, т.е. вот так:
но сообщение об ошибке не выводится и статус спокойно меняется на "обрабатывается"...
В чем ошибка?! - подскажите свежим взглядом
Самому смешно вожусь уже 2ой день...
Вроде все делается легко, т.е. вот так:
Код |
---|
AddEventHandler("sale", "OnSaleStatusOrder", "SUD"); function SUD($ID, $val) { CModule::IncludeModule('sale'); if($val) { $arSelect = array( 'ID', 'STATUS_ID', 'ALLOW_DELIVERY', 'DELIVERY_DOC_DATE', ); $arFilter = Array( 'ID' => $ID, ); $rsSales = CSaleOrder::GetList(array('DATE_INSERT' => 'DESC'), $arFilter, false, false, $arSelect); while ($arSales = $rsSales->Fetch()) { $allow_delivery = $arSales['ALLOW_DELIVERY']; $time_delivery = $arSales['DELIVERY_DOC_DATE']; } if(!isset($time_delivery) && $val == 'P') { GLOBAL $APPLICATION; $APPLICATION->throwException("Статус не изменен. Не указана дата доставки!"); return false; } } return false; } |
В чем ошибка?! - подскажите свежим взглядом