Персональные цены

Материал из GB wiki
Перейти к: навигация, поиск

Товарное наполнение договора

Каждому покупателю можно сопоставить персональные скидки (наценки) на конкретный товар (группу товаров). Для этого используется механизм договоров. В каждом договоре, в типе которого (важно!) есть воздействия на моменты

  • Выбор товара
  • Поиск товара
  • Изменение количества товара
  • Отгрузка документа (проверка товаров)
  • Изменение цены товара
  • Пользовательское

можно задать список товаров с пятью (необязательными) вещественными параметрами (таблица ContractArticuls). Например:

Товар Параметр 1 Параметр 2 Параметр 3 Параметр 4 Параметр 5
u Чай "Red-Slim" пакет. x 30 -50 0
Walsh Pharma - США +10 0

Как видно из примера, наряду с конкретным товаром можно задавать и группу товаров. То есть задание группы товаров равнозначно перечислению всех товаров этой группы.

Так как значения параметров не имеют самостоятельного значения, то пользователь вправе трактовать их так, как ему кажется наиболее правильным (в одном из параметров хранить значение скидки или код прайслиста, а в остальных дополнительные критерии отбора - типы операций, отсрочки и т.д.). Правила использования этих значений определяются для каждого типа договора отдельно. Таким образом, для договоров одного типа значения параметров будут нести на себе одну и ту же смысловую нагрузку.

Все скидки задаются выражениями в них можно использовать любые поля, даже из хипа товара или сертификата.

Настройка воздействий

Для этого надо перейти к свойствам рассматриваемого типа договора (закладка Воздействия). Для реализации механизма персональных скидок используется момент воздействия 'Выбор товара'. В нем можно использовать функции:

Функция DISCOUNT изменяет цену товара на процент скидки/наценки. Соответственно, если параметр положительный, то цена увеличивается, в обратном случае - уменьшается.

Функция CONTRACTPARAM возвращает значение параметра, определяемого вторым параметром (1-5) для данного товара.

Функция SETSPECIALPRICE устанавливает на товар конкретную цену. Обычно эта функция используется в паре с функцией GETPRICE

Таким образом, с помощью этих функций можно реализовать механизм персональных скидок/наценок. Например:

Момент Условие Воздействие Приоритет
Выбор товара ContractParam(Articul, 3)=1 Deny("Нельзя!") 2
Выбор товара ContractParam(Articul, 3)=2 SetSpecialPrice(GetPrice(Articul,ContractParam(Articul,2)) 1
Выбор товара 1 Discount(ContractParam(Articul, 1)) 0

В этом примере написано, что если у какого-то товара (Articul) Параметр3 = 1, то он недоступен для покупателя. Если Параметр3 = 2, то для этого товара берется цена из прайс-листа, код которого указан в Параметре2. В остальных случаях к товару применяется скидка/наценка, размер которой равен значению Параметра1 (в процентах). При условии, что для этого товара (Articul) она определена. Порядок выполнения проверок условий задается полем Приоритет - условие с максимальным приоритетом проверяется первым.

Визуальное отображение в документе

Если для выбранного партнера действуют персональные скидки/наценки, то для товаров со скидкой/наценкой во всех ценовых полях в левом верхнем углу появится треугольник красного, зеленого или синего цвета. Красный треугольник означает, что на данный товар действует скидка, зеленый - наценка, синий - специальная цена. Размер скидки/наценки можно посмотреть в поле Перс.скидка. При смене прайс-листа цены с учетом скидок/наценок пересчитываются автоматически. Для того, чтобы принудительно обновить цены с учетом скидок/наценок можно нажать кнопку "Обновление персональных скидок" (находится рядом с кнопкой "Обновление остатков").

Использвание в модемной программе

В модемной программе скидки, специальные цены и запреты на выписку также учитываются. Если стоит воздействие DENY, товар просто не попадет в прайс.