549
правок
Изменения
→Настройка документов
'''OnAfterTownSave''' - событие срабатывает после заведения нового населенного пункта через интерфейс справочника городов. Параметры: %code% - код населенного пункта, %name% - название населенного пункта, %city% - код региона (области).
'''OnSetAddressState''' - событие срабатывает при изменении пользовательского статуса в карточке корреспонденции. Параметры: %State1% - текущий выбранный статус, %OldState1% - предыдущий выбранный статус, так же в доп. возможности доступен объект FieldList на корреспонденцию.
'''OnBeforeManifestSave''' - событие, срабатывает перед сохранением в карточке манифеста, выполняется перед транзакцией потому можно показывать диалоговые окна. Параметры: %Code% - код манифеста, %StoreFromCode% - филиал-отправитель, %StoreCode% - филиал получатель, %SentDate% - дата отправки.
'''OnAfterManifestSave''' - событие, срабатывает после сохранения в карточке манифеста, выполняется в транзакции потому показывать диалоговые окна нельзя. Параметры: %Code% - код манифеста, %StoreFromCode% - филиал-отправитель, %StoreCode% - филиал получатель, %SentDate% - дата отправки.
== Настройка документов ==
'''OnSchetChanged''' - Выполняется при удалении счета и его изменении. Содержит %code% - код счета schet.code
'''GetSchetNumber''' - Выполняется при расчете номера счета\фактуры. Возвращаемое значение (не null) будет номером счета. Содержит %code% - наименование поля FactNumber или Number. Объект fieldlist - все поля таблицы schet. Например, fieldlist.code - код счета, fieldlist.date - дата счета, и т.д.
'''QRCodePurpose''' - задает строку "Назначение платежа" (тэг "Purpose") в платежном QR-коде счета. По умолчанию "Курьерские услуги". Содержит %code% - код счета schet.code, %Source% - код клиента clients.code
'''GetLusrSQL''' - переопределяет столбец "Изменивший пользователь" в истории изменений. Должен возвращать часть SQL запроса для столбца lusr. Входящее значение %code% содержит код таблицы, для которой строится SQL-запрос истории.
'''OnBeforeSendSMS''' - выполняется перед рассылкой шаблона СМС. Содержит в себе %MessageText% - текст сообщения отправляемого по шаблону, %Phone% - номер телефона. Если возвращает значение -1, отправка стандартными средствами не происходит.
'''TariffCalculatorTotal''' - функция для настройки простой формы тарификатора. Работает в двух режимах: sql - запрос для построения грида. В режиме доступны теги: %ClientCode%' - код клиента, '%PriceCode%' - код прайса клиента. Столбцы SQL запроса строго фиксированы: code - код поля, fieldname - название поля, costparams - варианты цен через запятую (для отображения комбобокса), modlist - список названий для разных цен через запятую, modvalue - выбраный элемент. Второй режим это формула расчета строки, в этом режиме доступен dataset со всеми ранее рассчитанными строками и теги '%FieldCode%', '%Cost%', '%Quantity%', '%ClientCode%', '%PriceCode%', '%DefaultTotal%'.
<source lang="sql">
<?>
<?>
if('%code%'='sql',
'(SELECT s.statecode AS code, -- код поля
s.name AS fieldname, -- название поля
IFNULL(uf.varvalue, "") AS costparams, -- варианты цен через запятую (для отображения комбобокса)
IFNULL(unquotedstr(getparam(s2.advansed, 3)), "") AS modlist, -- список названий для разных цен через запятую
IFNULL(mods.`varValue`, '''') AS modvalue -- выбраный элемент
FROM states s
LEFT JOIN userfields uf ON uf.sourcetable=11 AND uf.sourcecode=%PriceCode% AND uf.varcode=s.statecode
LEFT JOIN userfields AS mods ON mods.`sourceCode`=%ClientCode%
AND mods.sourcetable=2 AND mods.varcode = CAST(uf.varcode AS SIGNED) - 20 AND mods.`varCode` IN (10,11)
LEFT JOIN states s2 ON s2.statetype=35 AND s2.`StateCode`=mods.`varCode`
WHERE s.statetype=45
AND IFNULL(s.hidden,"F")="F"
AND getparam(s.advansed, 1) <> "0"
ORDER BY s.statecode)
union (SELECT 1000,"ПОДДЕРЖКА", "1,2,3", "Поддержка 1, Поддержка 2, Поддержка 3","" )
'
,
if(%FieldCode%=1000,
case(
when(%Cost%=1,
100
);
when(%Cost%=2,
200
);
when(%Cost%=3,
300
);
)
,
%cost%*%Quantity%
)
)
</source>