Настройка дисконтных скидок в связке с Frontol Win32 компании АТОЛ
1. Запустить Frontol Администратор

2. [Справочники] /Карты\ Группы карт
Создать три группы: (при создании карты установить флажок "Ридером")
5%
10%
VIP

3. [Скидки и сценарии] /Ставки\
Создать ставку "Скидка по ДК"
Значение: #SkidkaPoDK (это вызов функции расчета ставки)
Тип: Автоматическая
Назначение: На позицию

4. [Скидки и сценарии] /Условия\
Создать условие "Скидка по ДК"
Установить флажок "Активные"
Добавить строку в табличную чать "Скидки и условия"
Наименование "Скидка по ДК"
Ставку выбрать "1|Скидка по ДК"
/Карта\ Состояние "Введена"

5. [Скидки и сценарии] /Объекты скидок\
Создать объект скидки с условием "1|Скидка по ДК"

6. [Скидки и сценарии] /Сценарии\
Создать сценарий
Наименование: "Скидки по ДК"
Момент действия: "Нет"

сам сценарий
function SkidkaPoDK(AO, RO, POS)
{
Skidka=0;
RO.Card.Index = 1;
if (RO.Card.GroupName == " 5%")
Skidka=5;
if (RO.Card.GroupName == "10%")
Skidka=10;
if (RO.Card.GroupName == "VIP")
Skidka=30;
for (POS.Parent.Index = 1; POS.Parent.Index <= POS.Parent.Count; POS.Parent.Index++)
{
if (POS.Parent.Name == "Питание") Skidka=0;
if (POS.Parent.Name == "ПОДГУЗНИКИ") Skidka=0;
}
return Skidka;
}
В функции сначала определяется процент скидки по дисконтной карте, а потом проверяется наименование группы товара.{
Skidka=0;
RO.Card.Index = 1;
if (RO.Card.GroupName == " 5%")
Skidka=5;
if (RO.Card.GroupName == "10%")
Skidka=10;
if (RO.Card.GroupName == "VIP")
Skidka=30;
for (POS.Parent.Index = 1; POS.Parent.Index <= POS.Parent.Count; POS.Parent.Index++)
{
if (POS.Parent.Name == "Питание") Skidka=0;
if (POS.Parent.Name == "ПОДГУЗНИКИ") Skidka=0;
}
return Skidka;
}
Если товар входит в группу "Питание" или "ПОДГУЗНИКИ", то процент скидки обнуляется.
Контроль количества карт в чеке
7. Добавляем сценарий Ввод карты (Момент действия: Ввод карты)

сам сценарий
function BeforeAct(AO, RO, E, O)
{
if (RO.Card.Count > 0)
AO.ShowError ("Одна карта уже введена!");
}
{
if (RO.Card.Count > 0)
AO.ShowError ("Одна карта уже введена!");
}
8. Добавляем Объект скидок, где в Действиях, выбираем созданный сценарий

на заметку:
После каждого изменения (если не сработало) нужно сделать завершение сеанса и зайти по новой