Изменения

Перейти к: навигация, поиск

Дополнительные возможности

15 071 байт добавлено, Вчера в 12:45
Скрипты
'''OnAfterItemPrint''' - Вызывается после печати наклейки из карточки номенклатуры. Поддерживает поля ввода - input. Содержит %code% - код номенклатуры item.code, %Naimen% - наименование, %country% - название страны, %Count% - указанное количество копий к печати.
'''PrintCustomSticker''' - Функция позволяет установить пользовательскую печатную форму для наклеек (из интерфейса "Печать ведомостей/наклеек"). Вызывается если выбран тип наклейки 15 (переменная StickerForm). Содержит %RectLeft%, %RectTop%, %RectRight%, %RectBottom% - границы прямоугольника на холсте принтера, в которые надо печатать (для поддержки табличной печати на A4), %RecNumber% - номер текущей записи датасета, %CurrentBarCode% - ШК, рассчитанный в зависимости от параметров в интерфейсе "Печать ведомостей/наклеек". %ACopyNo% - номер копии, нумерация с 1. %KolvoStr% - Стандартный текст "текущее место/всего мест", с учетом возможной печати этикетки на одно место из нескольких. Также содержит весь датасет, использующийся в других типах наклеек. В момент вызова функции, принтер уже запущен и начат документ, объект TPrinter в функции создавать не нужно, необходимо только создать объект TCanvas, он создастся как ссылка на текущий холст принтера.
'''PrintItemSticker''' - Вызывается перед печатью наклейки из карточки номенклатуры, для возможности распечатать уникальную наклейку для номенклатуры по заложенным в допвозможности условиям. Содержит %clientbar% - ШК наклейки. Если наклейка распечатана из допвозможности возвращает true, в противном случае false и будет распечатана стандартная наклейка, заложенная в системе
 
'''ChangeSchetDetailQuery''' - Вызывается формировании / пересчете счета. Возвращает строку разбитую через CRLF на две. Первая строка заменяет поля в запросе по детализации счета, вторая меняет строку группировки. Обязательные поля: zakazcnt - кол-во заказов, price - стоимость курьерских услуг, cnt - количество, pr - общая стоимость курьерских услуг.
 
'''OnAutoPrintManSticker''' - вызывается перед автопечатью сопроводительного документа к манифесту при заполнении номера пломбы (такая возможность включается уставкой печатаемой формы в переменной AutoPrintManSticker), содержит %code% - код манифеста, %mnf_date% - дату манифеста, %transporter% - код перевозчика, %store% - код филиала-получателя манифеста. Если доп.возможность возвращает true - автопечать происходит, false - нет.
 
'''OnBeforePrintAddresses''' - Вызывается из формы печати ведомостей/наклеек после нажатия на кнопку "ОК", содержит %code% - коды всех адресов (через запятую).
== Настройка всплывающих окон==
'''OnBarScan''' - Скриптовая обработка штрих-кода перед поиском
'''AfterAddressAcceptance''' - Событие после приема корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется не в транзакции и есть возможность показывать диалоговые окна. Содержит %Code% - код адреса, %StrBarCode% - отсканированный штрих-код. При вызове из интерфейса доски приема либо приема корреспонденции передается дополнительный тег %NewMass%, который содержит массу проставленную весами, содержит -1 если проставление массы отключено.
'''BeforeAddressAcceptance''' - Событие перед приемом корреспонденции на склад (например,заказы - прием корреспонденции). Код выполняется в транзакции. Содержит %Code% - код адреса; %StrBarCode% - отсканированный штрих-код; %mass% - массу, если значение меньше 0 значит весы выключены; %l%, %w%, %h% - габариты; %MultiBarCode% - истина если это наклейка на место; %SetKolvo% - проставлять принятые места, место может быть уже принято; %ClientCode% - код клиента (clients.code); %PackCode% - код места (packages.code) . Если функция возвращает значение больше 0, то это будет новой массой места или корреспонденции.
'''OnBeforePlanning''' - событие перед планированием одного или нескольких отправлений на курьера. Содержит %сode% - код курьера, %AddressCodes% - код(ы) планируемых корреспонденций.
 
'''OnAfterPlanning'''- событие после планирования планированием одного или нескольких отправлений на курьера. Содержит %сode% - код курьера, %AddressCodes% - код(ы) фактически запланированных корреспонденций.
'''DAILY''' - задание выполняемое один раз в день
'''OnBeforeClientSave''' - событие срабатывает перед сохранением изменений в карточке клиента. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В качестве параметров переданы %code% (содержит код клиента) и объект fieldlist (полный аналог addressrecord в доп. услугах), который содержит ещё не сохранённую информацию о карточке клиента, а так же все её пользовательские поля. Если результат функции -1, то происходит отмена сохранения без ошибки (abort).
 
'''OnAfterClientSave''' - событие срабатывает после сохранения изменений в карточке клиента. Код выполняется в транзакции. В качестве параметров переданы %code% (содержит код клиента) и объект fieldlist (полный аналог addressrecord в доп. услугах), который содержит сохранённую информацию о карточке клиента, а так же все её пользовательские поля с предыдущими значениями, которые можно получить через функцию _Former('VarCode', значение, 'VarValue')
 
'''OnBeforeBasePutCheck''' - событие срабатывает при проставлении галки на вкладке срочных заказов. Код выполняется не в транзакции и есть возможность показывать диалоговые окна. В параметре <nowiki>%code%</nowiki> указан код срочного заказа, а в параметре <nowiki>%BasePutCheckType%</nowiki> указан тип проставления: 0 - если галка, 1 - если плюс. Если результат функции -1, то отмена выполняемой функции (abort).
 
'''OnAfterCreateSpecialSMA''' - событие срабатывает после создания нового АПД для клиента. Код выполняется вне транзакции, потому есть возможность показывать диалоговые окна. В качестве единственного параметра %code% передается код созданного АПД.
 
'''OnBeforeReturnIncome''' - Событие перед приемом возврата на вкладке выдача. Код выполняется вне транзакции. Содержит %Code% - код адреса. Функция заполняет две переменные: ''$mass'' - масса возврата корреспонденции (проставляется только если значение переменной больше нуля, а если это значение больше массы корреспонденции, то будет использовано в качестве массы места) и ''$kurier'' - код вернувшего курьера (если пустое или равно нулю, то проставляется стандартный код курьера ВОЗВРАТ НА СКЛАД [15]).
 
'''OnBeforeCreatePickup''' - Событие перед созданием забора правой кнопкой мыши в списке заказов. Код выполняется вне транзакции. Содержит %Code% - код заказа. %FromCompany% - компания, у которой осуществляется забор (поле target), %FromAddress% - адрес забора
 
'''AfterTicketAnswer''' - Событие происходит после ответа на тикет. %code% - код сообщения, %TimeSpent% - кол-во потраченных минут, %ticket% - номер тикета. Доп. возможность может отключить стандартный ввод затраченного времени, для этого нужно вернуть любое значение.
 
'''OnAfterTownSave''' - событие срабатывает после заведения нового населенного пункта через интерфейс справочника городов. Параметры: %code% - код населенного пункта, %name% - название населенного пункта, %city% - код региона (области).
== Настройка документов ==
'''OnSchetChanged''' - Выполняется при удалении счета и его изменении. Содержит %code% - код счета schet.code
 
'''QRCodePurpose''' - задает строку "Назначение платежа" (тэг "Purpose") в платежном QR-коде счета. По умолчанию "Курьерские услуги". Содержит %code% - код счета schet.code, %Source% - код клиента clients.code
'''ExceptionsForAPK''' - Задает дополнительные критерии поиска корреспонденции при формировании акта передачи корреспонденции(АПК). Содержит %Boxes% - псевдоним таблицы вложений используемый в запросе. Функция возвращает !ДВЕ! части sql запроса разделенных CRLF. При отборе в АПК используется два запроса. Первый - отбирает не доставленные заказы и возвраты документов, в него будет подставлено условие слева от разделителя CRLF. Второй запрос отбирает возращенные товары, в него будет подставлено условие справа от разделителя CRLF или вся строка условий если в строке нет разделителя CRLF (оставлено для обратной совместимости, в версии программы до 1115 фильтрация была только во втором запросе). %AdditionalParam% - дополнительный параметр, который можно установить в интерпретаторе при вызове функции CreateAddressTransferAct.
'''OnOrderCountCalc''' -Для расчета стоимости доставки необходимо учитывать кол-во отправлений. Доп. возможность возвращает часть SQL запроса, уточняющий условия поиска. Содержит %code% - равен значению переменной "Считать кол-во отправлений по текущему месяцу" (UseCurrentMonthCount, нет - 0, да - 1)
'''OnGetZakazCount''' - подменяет стандартный подсчет количества отправлений для расчета стоимости доставки (в том чисте отменяется вызов доп.возможности OnOrderCountCalc). Должна возвращать кол-во корреспонденций. В процедуру передаются следующие переменные: %CntAccType% - вид подсчета: 0-по заказу, 1-за месяц по клиенту; %code% - код клиента (обязателен для вида подсчета 1); %ZakazDate% - дата заказа; %CountByMonthType% - способ подсчета заказов за месяц (1-по текущему месяцу; 0 - по предыдущему); %UseCurrentUrgency% - 1:подсчитывать только корреспонденцию определенного режима срочности; %Mode% - этот режим срочности (при подсчете по заказу учитываются так же связанные режимы срочности, указанные в параметре 5 режима срочности в таблице статусов); %DatePut% - дата доставки (добавлено для альтернативных видов подсчета, может быть null); %SeparateIntercityDelivery% - 1:не учитывать междугородние доставки; В функцию так же передается объект fieldlist.
'''OnSMABarcodeScan''' - событие вызывается при сканировании штрихкода АПК в списке актов. %code% - код АПК (sendmoneyact.code)
'''OnPaintSMAColumns''' - вызывается при прорисовке таблицы в форме списка АПД/АПК. В функцию передается DataSet, содержащий поля таблиц SendMoneyAct и Clients, а так же пользовательские поля клиентов, называющиеся ufX, где X - номер поля (в статусах). Функция должна возвращать строку следующей структуры:
Поле1_таблицы, Цвет_фона, Поле2_таблицы, Цвет_фона и т.п. Возврат нечетного числа параметров эквивалентен возврату пустой строки (цвет не меняется) '''CustomZPDetail''' - кастомное дополнение к детализации зарплаты (Специальная надбавка). Вызывается из скриптовой детализации зарплаты. Предназначено для расчета и вывода в детализацию значения какой-либо специальной надбавки, определенной пользователем. Входящие параметры: %code% - код платежа в таблице kurier_pays, %kurier% - код курьера. Возвращает строку, где через запятую указаны Название надбавки и ее значение. Если эта строка не содержит двух параметров - ничего не выводится. '''ZPAdditionalSheets''' - кастомное дополнение к детализации зарплаты - дополнительный лист(листы) на форме детализации. В функцию передается DataSet из детализации зарплаты, ссылка на объект Excel (имя - xl). Внутри функции нельзя объявлять объект TSelfAdo с именем DB (он объявлен в детализации). Номер новой страницы Excel передается в переменной $page. '''OnAddrInventoryAfterCreateDoc''' - вызывается в транзакции, в процедуре создания документа инветаризации корреспонденции. Входящие параметры: %code% - код созданного документа инвентаризации.  '''AddrInventoryAdditionalSQL''' - позволяет модифицировать запрос на создаваемый документ инвентаризации корреспонденции. Используется для наложения дополнительных фильтров. Входящие параметры: %code% - код созданного документа инвентаризации. %header% - часть SQL запроса в которую необходимо сделать вставки, возможные варианты join, where. Пример использования '''AddrInventoryAdditionalSQL''', добавление фильтра по пользовательскому полю.<source lang="SQL"> <?> if('%header%'='join', 'left join userfields uf on uf.sourcecode=b.source and uf.sourcetable=2 and uf.varvalue=1', if('%header%'='where', 'and ifnull(uf.varvalue, "F") = "T"' ,''))</source>.
== Настройка вида маркера ==
'''MapObjectFigure''' - Доп. возможность позволяет установить вид маркера на карте. Результат определяет фигуру: 1 - перевернутый треугольник(острым концом вниз), 2 - треугольник, 3 - увеличенный перевернутый треугольник(острым концом вниз), чтобы квадрат не мог его перекрыть, 4 - квадрат, 5 - ромб, все остальное круг. Ромб поддерживается с версии 960.<br/>
Например:
if(table2map.zabor, 2, if(StrDateToFloat(table2map.DatePeriod) = $PlanDate, 3, 4))
Выводит треугольник, если отправление - забор. Иначе - если дата план отправления равна дате, на которую планируется - увеличенный перевернутый треугольник, иначе - квадрат.
'''MapObjectColor''' - Доп. возможность позволяет установить цвет маркера на карте.
if((table2map.kurier<20)*(StrDateToFloat(table2map.DatePeriod) = $PlanDate), 16753920, $color)
Не запланированные отправления на текущий день будут отображаться выбранным цветом, иначе - цветом по-умолчанию.
 
 
== Речь диктора ==
 
'''OnGivnVoice''' - выполняется после изменения статуса выдачи. Параметр <nowiki>%code%</nowiki> содержит код выдачи, <nowiki>%State%</nowiki> содержит код устанавливаемого статуса, <nowiki>%OldState%</nowiki> - код старого статуса (0 если не было). Позволяет отключать стандартный звук ОК, если возвращает не 0.
 
'''OnDashboardManifestVoice''' - выполняется после сканирования адреса в интерфейсе приёма манифестов. Параметр <nowiki>%code%</nowiki> содержит код корреспонденции. Позволяет отключать стандартную диктовку программой (код курьера, вес и т.д.), если возвращает не 0.
== Настройка мобильного приложения ==
'''OnCalcSalary''' - Событие происходит после начисления зарплаты курьеру. %code% - код созданного начисления kurier_pays.code ; %dateto% - дата до которой рассчитали зарплату; И отдельно части зарплаты: %profit% -итоговая сумма; %Zarab% - сдельная часть; %Oklad% - оклад; %Friends% - выплаты за приведенных; %Other% - разное; %AgentMoney% - агентское вознаграждение; %StandingMoney% - Доплата за стаж; %Bonus%, %Shtraf% - бонусы и штрафы.
 
'''OnCalcAvans''' - Событие происходит после начисления аванса курьеру. %code% - код созданного начисления kurier_pays.code. Можно произвести дополнительные начисления и удержания из kurier_pays.profit.
'''OnTicketSetCusr''' - Пользовательский скрипт перед назначением ответственного в тикетах. %code% - код тикета; %Cusr% - код назначаемого пользователя (может быть равно NULL)
<source lang="sql">
<?>
rem(2023-05-16 Подключение к геокодеру далли, тикет 75769); set($response, HTTPPOST('http://x.wizbox.ru/AhanterCleanseAddressXXXXXXXX',
'{"query":'+ FormatTextJSON($address)+ '}',
'','','','',
);
</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')
</source>
 
 
'''OnRecalcBoldCntInFrame''' - срабатывает в карточке тарифа при перемещении курсора зоны. Возвращает целочисленное значение, равное количеству доставленных корреспонденций у клиента за предыдущий месяц. Срабатывает только при открытии карточки тарифа из карточки клиента. %ClientCode% - код клиента. %ZoneCode% - код зоны.
 
'''ChangeStatusColor''' - подменяет цвет фона сообщения в строке статуса в форме приема корреспонденции. Возвращает целочисленное значение - новый цвет фона, 0 - если цвет менять не нужно. Входящие значения: %code% - входящее значение цвета. Остальные переменные - булевского типа - отражают состояние Настроек: %Renum% - Перенумеровывать, %IgnoreDblScan% - Игнорировать ошибки повторного сканирования, %PrintNakl% - Печатать накладные, %Given% - Выдавать отправления, %PrintFiles% - Печатать файлы, %BarLine% - Включить поддержку штрих-кодовой линейки, '%CreateTrans% - формировать кассовые чеки.
 
'''GetLusrSQL''' - переопределяет столбец "Изменивший пользователь" в истории изменений. Должен возвращать часть SQL запроса для столбца lusr. Входящее значение %code% содержит код таблицы, для которой строится SQL-запрос истории.
 
'''OnBeforeSendSMS''' - выполняется перед рассылкой шаблона СМС. Содержит в себе %MessageText% - текст сообщения отправляемого по шаблону, %Phone% - номер телефона. Если возвращает значение -1, отправка стандартными средствами не происходит.
99
правок

Навигация