370
правок
Изменения
м
→Скрипты
);
</source>
'''OnFilterAddressRecalc''' - Позволяет отфильтровать коды адресов, для которых можно пересчитать стоимость. Событие происходит перед расчетом стоимости доставки из интерфейса программы для: актов, счетов, заказов, и т.д. Не работает для пересчета запускаемого из самой карточки корреспонденции.
%codes% - коды адресов для пересчета стоимости доставки. Формат: (1,2,3,...). %RecalcUserCode% - код пользователя запустившего пересчет (актуально для отложенных пересчетов).
Функция должна вернуть коды адресов, допущенных к пересчету в формате: (1,2,3,...)
<source lang="sql">
<?>
rem('2023-12-04 Sergey. Отключаем перерасчет стоимости доставки у корреспонденций в статусе - проверено,
если у пользователя нет права Счета-изменять. Тикет 79954.
Блокировка работает в связке с тикетом 77995.');
new('TSelfADO', 'DB');
DB.OPEN('SELECT a.code FROM courier.address a
LEFT JOIN courier.users u ON u.code=%RecalcUserCode%
LEFT JOIN courier.`userrules` ur ON ur.`GroupId`=u.grup AND ur.`RuleType`=1 AND ur.newruleid =78 -- RSA
WHERE ((a.state1<>8) OR (a.state1=8 AND ur.state="T")) AND a.code in %code%');
DB.ParseForIn('CODE')