Работа с заказами. На событие смены статуса заказа (OnSaleStatusOrder) хочу повесить проверку заполнения даты документа доставки. Если дата документа доставки указана, то можно сменить статус "принято" на "обрабатывается", если дата документа доставки не указана, то статус не изменяется и выводится ошибка "Статус не изменен. Не указана дата доставки!".
Самому смешно вожусь уже 2ой день...
Вроде все делается легко, т.е. вот так:
[CODE]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;
}[/CODE]но сообщение об ошибке не выводится и статус спокойно меняется на "обрабатывается"...
В чем ошибка?! - подскажите свежим взглядом
Самому смешно вожусь уже 2ой день...
Вроде все делается легко, т.е. вот так:
[CODE]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;
}[/CODE]но сообщение об ошибке не выводится и статус спокойно меняется на "обрабатывается"...
В чем ошибка?! - подскажите свежим взглядом