=== Дополнительные услуги ===
правка В новой версии программы появилась новая функция - '''"дополнительные услуги"''', они позволяют определить стоимость доставки после сложения цен на предоставленные услуги. Чтобы включить '''дополнительные услуги''' необходимо, включить переменную, '''“Финансы”-“дополнительные услуги”''', после этого действия необходимо перезапустить программу. Расчёт дополнительных услуг происходит только в направлении доставки '''“Туда”'''. Если снять галку '''“Туда”''', стоимость обнулится и на вкладке '''“дополнительные услуги”''' все услуги будут неактивны и закрашены серым. В карточке корреспонденции появилась дополнительная вкладка '''“Услуги”''' (показана на рисунке ниже). [[Файл:usluga1.png|650px]] Первый столбец таблицы - это поле для ввода, при помощи которого возможно включить либо выключить необходимую услугу. В первом столбце может быть как галка, так и поле для ввода числового значения. Услуга считается включенной, если введённое значение больше нуля или проставлена галка. Второй столбец - это название услуги. Третий столбец – отображает поле стоимости данной услуги. Серым цветом на вкладке '''“Услуги”''' отображены галки и поля, которые пользователь не может изменить, их значение рассчитывается автоматически формулой авто-включения. Услуги разделены на системные и пользовательские. Системные услуги предустановлены и их невозможно изменить в отличие от пользовательских, которые можно создавать, удалять и модифицировать. Системные услуги ранее были реализованы в программе на уровне формул и не были столь полно и прозрачно детализированы. Услуга '''“База”''' - включает в себя стоимость рассчитанную по тарифной сетке с учетом типа корреспонденции, режима срочности и других значений. Услуга '''“Ручной ввод”''' - позволяет указать пользовательскую стоимость доставки, по умолчанию в это поле введена пустая строка и услуга выключена. В это поле необходимо ввести число от нуля и больше. После ввода значения услуга База будет выключена, а стоимость доставки приметзначение услуги '''“Ручной ввод”'''. Услуга '''“Ожидание”''' - рассчитывает стоимость ожидания. Параметры расчёта ожидания указываются в настройке тарифа. Услуга '''“Процент от суммы руб.”''' - рассчитывает процент от поля Сумма р. В карточке корреспонденции. Процент не будет рассчитываться, если корреспонденция не доставлена. Услуга '''“Процент от объявленной стоимости”''' - рассчитывает процент от поля Объявленная ценность на вкладке Финансы. '''Внимание!!!''' Изменился способ расчёта процента, раньше процент рассчитывался от разницы поля объявленная ценность и сумма р. Теперь процент рассчитывается от значения поля '''“объявленная ценность”''', поэтому в тарифах был пересчитан процент от суммы. (Математически этот расчет выглядит следующим образом: '''новый процент от суммы=старый процент от суммы-процент от объявленной стоимости'''). Для создания и редактирования пользовательских услуг, необходимо перейти в меню '''“Cправочники”-“Дополнительные услуги”'''. Внешний вид окна показан на рисунке ниже: [[Файл:usluga2.png|650px]] '''Примечание:''' Если пункт меню в '''дополнительных услугах''' виден, но не активен, значит, у текущего пользователя не хватает прав доступа. Необходимо в дереве прав дать права группе: '''“Справочники-Тарифы”'''. Услуги, которые отображаются в этом окне – являются общими и могут быть использованы для всех клиентов. Услуги, обозначенные серым фоном - системные (предустановленные) их нельзя изменить. Значение полей таблицы окна '''“Дополнительные услуги”''': -'''вкл/выкл''' – включает/выключает услуги, если услуга в этом поле включена то она отображается на вкладке услуги в карточке корреспонденции. -'''Название услуги''' – обозначение имени услуги. -'''Тип ввода''' – определяет значение того, как будет включаться данная услуга, галка в этом поле обозначает, что пользователь должен будет включить данную услугу установкой галки. Если в этом поле '''тип ввода''' является целым числом, то пользователь должен будет ввести число, чтобы включить данную услугу. -'''Значение по умолчанию''' – в этом поле можно определить значение, чтобы услуга по умолчанию была включена или выключена. а). Если тип ввода - галка, то можно установить галку и услуга по умолчанию будет включена по умолчанию; б). Если тип ввода - число/целое число, указать число больше нуля чтобы услуга была включена, если указать значение “ноль”, то услуга будет выключена по умолчанию. -'''Формула автовключения''' – поле, в котором находиться формула на языке встроенного интерпретатора команд. Если формула присутствует в этом поле, то пользователь не сможет сам включить эту услугу в карточке корреспонденции. Галка или поле ввода услуги будут закрашены серым цветом. Формула автовключения выполняется при каждом пересчёте цены и возвращает в результате вычислений число. Если формула вернула число “0”, то услуга выключена, если больше “0”, то услуга будет включена автоматически, и выполниться расчет по формуле, записанной в столбце '''“Цена услуги”'''. -'''Цена услуги''' – поле, в котором находиться формула расчёта цены, в нем можно просто указать целое число (например, в виде константы) или записать формулу, рассчитанное значение которой и будет являться ценой услуги. -'''Порядок''' – поле, в котором находится число, определяющее порядок следования, в котором будут отображаться услуги в карточке корреспонденции в виде списка. В этом списке присутствуют две группы услуг: на сером фоне – '''системные''', на белом – '''пользовательские'''. Порядок последовательности для каждой из групп – уникальный, однако, системные услуги будут отображаться в списке всегда перед пользовательскими услугами. Существует еще и третья группа услуг, которые определены только для конкретного клиента в тарифе городской доставки на вкладке '''“Услуги”''' (на рисунке ниже). У этой группы тоже имеется свой порядок следования, и они всегда отображаются после первых двух групп услуг. Редактор формул для интерактивного написания формул представлен на рисунке ниже: [[Файл:usluga3.png|650px]] Формулы можно вводить вручную или использовать редактор. Для вызова редактора нужно нажать на кнопку, которая появляется при редактировании клетки с формулой. Галка “Ручной ввод формулы” в нижней части окна позволяет описать формулу готовым формульным выражением, либо преобразовать в формулу интерактивный набор условий. Редактор формул состоит из блоков, которые будут выполняться по заданному порядку, сверху-вниз и слева-направо, пока не выполниться один из блоков. Блоки формул в редакторе можно добавлять и удалять через меню правой кнопки мыши, чтобы удалить блок кликаем на блоке, который необходимо удалить. Блок состоит из двух разделов – '''“Условие”''' и '''“Результат”'''. В условии обозначаются поля, которые будут проверяться на наличие указанных значений. Если условие выполнится, то будет рассчитано математическое выражение, записанное в блоке “Результат”. Возвращённое число будет ценой для этой услуги. (А если это формула автовключения, то возвращённое число будет записано во введённое значение.) В условии можно указать следующие поля: '''Поле''' - поля карточки корреспонденции; '''Заказ''' - поля карточки заказа; '''Прайс''' - поля карточки тарифы; '''Клиент''' - поля карточки клиент. Помимо стандартных полей карточек, в списках также доступны и '''пользовательские поля'''. '''Пользовательские поля''' – это поля, которые могут настраиваться индивидуально в статусах, и потом становятся доступными для заполнения в карточках корреспонденции/заказ/прайса/клиента на вкладке '''"Пользовательские поля"'''. После выбора поля в редакторе формул необходимо указать логический оператор, который будет использоваться для сравнения поля с введенным числом. В зависимости от типа поля доступны разные виды операторов для числа. Например: для числового значения – '''Больше/Меньше/Равно/Не равно''', для текста– '''Содержит/Не содержит/Начинается С'''. От типа поля зависит и поле ввода, например: '''Время доставить "C"'''. Для полей, которые являются статусами, вместо поля ввода значения, подставляется выпадающий список (например, поле '''“Режим”''' в карточке корреспонденции). Кнопки в редакторе формул: '''"-"''' - удаляет текущую строку в выражении; '''"+Строка"''' - добавляет строку в выражение, чтобы определить в условии, оно выполняется когда верны две строки или только одна (нужно выбрать логический оператор '''"И"''' или '''"ИЛИ"'''. '''"И"''' - должны выполниться все строки, '''"ИЛИ"''' - достаточно выполниться только одной строке); '''"+Блок"''' - добавляет блок, что позволяет сгруппировать выражения по аналогии с математикой обернуть в выражения в скобки, и строить более сложные логические условия. Для каждого блока нужно указать логический оператор (по аналогии со строками: '''"И"''' - должны выполнится все блоки, '''"ИЛИ"''' - достаточно выполниться только одному блоку). Далее рассмотрим следующие поля условия в редакторе формул: '''Всегда''' - Условие будет всегда выполняться; '''Услуга''' – В списке можно выбрать другую услугу и посмотреть какую цену она вернула. Функции в редакторе формул – это предустановленный список действий с различными полями (не доступный из рассмотренных выше полей). Функции для работы с вложениями: '''-сумма массы вложений''' – сумма поля масса у вложений корреспонденции; '''-сумма количества вложений''' – сумма поля количество у вложений корреспонденции; '''-Количество строк во вложениях''' – количество строчек в вложениях; Функции для работы с датами в редакторе формул: '''-Корреспонденция была доставлена''' - проверка были ли заполнены поля дата доставки и время доставки в карточке корреспонденции; '''-Дата доставки минус дата заказа''' – Расчёт количества дней между датами. Если дата доставки ещё не указана, функция вернёт число – 1000. (Если дата доставки меньше даты заказа – функция вернёт количество дней отрицательным числом, например: -2). Также следует учитывать, что в секции '''“результат”''' функция не возвращает никаких отрицательных значений, а возвращает 0); '''-Дата доставки минус планируемая дата доставки''' – Возвращает количество дней, использует те же самые правила расчёта, что и вышеописанные. Функции работы со временем в редакторе формул: '''-Время доставки в план. интервале''' – если указано время доставки '''“с”''' и '''“до”''', то функция проверит, попадает ли в этот интервал указанное время доставки; '''-Время доставить “До” минус “С”''' – возвращает количество минут после вычитания из '''“Время До”''', '''“Время С”'''; '''Введённое значение''' – это значение, которое ввёл пользователь или вернула формула автовключения в первом столбце таблицы “услуги” в карточке корреспонденции. В разделе редактора формул '''“Результат”''' - большая часть полей повторяет описание полей '''“Условие”''', с разницей в том, что в этой части редактора формул определяется математическое выражение, и отображаются только числовые поля. Вместо логических операций в этом разделе доступны математические операции – '''сложить/вычесть/умножить/разделить'''. Поле '''“Константа”''' позволяет ввести заданное число (Например, если мы редактируем формулу автовключения и тип ввода '''“галка”''' - то отобразится выпадающий список '''“да/нет”'''. Значение '''“да”''' – означает '''“включить услугу”'''). Для того чтобы в системе определить уникальные услуги для клиента, их нужно создать в тарифе, а затем применить данный тариф для клиента. В окне редактирования тарифа появилась вкладка '''“Услуги”''', она имеет такую-же функциональность, как и описанное меню в '''“Справочники”-“Дополнительные услуги”'''. Созданные на этой вкладке дополнительные услуги будут добавлены к уже существующему списку услуг. [[Файл:usluga4.png|650px]] Вкладка '''"Пользовательская"''' в окне редактирования тарифа по умолчанию скрыта. Данная вкладка появляется, когда определены пользовательские поля в статусах. Эти поля можно использовать в услугах. В них можно хранить стоимость услуг, процент услуг и настраивать эти значения индивидуально для каждого клиента и тарифа.
ссылка на раздел видео уроки