Типы договоров
Материал из GB wiki
Версия от 08:08, 31 марта 2010; Bars (обсуждение | вклад)
Виды типов договоров
Типы договоров делятся на системные и несистемные, за это отвечает свойство System в типе договора.
Договор системного типа не нужно выбирать на документе, он будет работать всегда. Договор обычного типа (не системного) обязательно должен быть выбран в документе в поле Contract.
С каждым партнером может быть связан набор договоров, некоторые из которых могут быть системными. Для любых типов договоров можно определять управляющие воздействия, которые могут изменять процесс работы с документами. При наличии действующего системного договора (на дату документа) нельзя изменять партнера.
Воздействия
Каждое воздействие описывается 4 параметрами:
- Момент воздействия
- Определены следующие моменты воздействия договора:
- Изменение документа
- Отгрузка документов (группировка по партнеру)
- Выбор товара
- Выбор партнера
- Выбор договора
- Поиск товара
- Открытие документа
- Управляющее воздействие для модемного сервера
- Отгрузка документа
- Изменение количества товара
- Отгрузка документа (проверка товаров)
- Изменение цены товара
- Пользовательское
- Условие - логическое выражение, при выполнении которого срабатывает воздействие.
- Воздействие – определяет поведение системы при срабатывании условия.
- Специфические функции для воздействий договоров:
- Общие
- WARN (строка с сообщением) – выдает окошко для подтверждения действия
- DENY (строка с сообщением) – запрещает выполнение действия
- LOG (Осн. параметр, Доп.параметр1, Доп.параметр2) – записывает в лог значения параметров.
- Функции для персональных цен:
- DISCOUNT Задает скидку для товара
- SETSPECIALPRICE Задает цену для товара
- APPLYCONTRACTCONDITIONS Применяет скидки, отсрочку платежа и прайс-лист из договора
- CONTRACTPARAM Получает значение из товарного наполнения договора
- Функции для взаимодействия разных договоров:
- BLOCKEFFECT Блокирует выполнение воздействия для заданного типа договора
- APPLYNEXTEFFECT Принудительно осуществляет поиск и исполнение воздействий того же типа
- Приоритет – у одного типа договора на один и тот же момент воздействия может быть определено несколько воздействий с разными приоритетами. Выполняться будет только одно – с максимальным приоритетом (при выполнении соответствующего условия)
Пример: Момент – Изменение документа Условие – TotalSum-OldTotalSum>SystemContract.Heap.@Amount Действие – WARN("Дельта "+(Totalsum-OldTotalSum)+" >"+(SystemContract.Heap.@Amount)+". Все равно изменить?"),LOG(TotalSum-OldTotalSum-SystemContract.Heap.@Amount, 0, 0) Приоритет – 1
Персональные цены
При помощи воздействий договоров реализуются системы персональных цен и скидок