Задача: Создать скрипт, добвляющий блюдо в заказ в момент перехода в режим расчета. процесс должен выглядеть так: в режиме быстрого чека при нажатии на кнопку «Расчет заказа» система проверят сумму заказа. Если сумма заказа больше или равно определенной сумме, то система показывает сообщение с кнопками «Да» и «Нет».
При нажатии на «Да», система добавляет блюдо с кодом NNN в заказ и переходит в режим расчета.
При нажатии на «Нет» система сразу переходит в режим расчета
Решение от UCS: В быстрый чек добавить пользовательский селектор «Оплата» вместо стандартного. К этому селектору привязать пользовательскую операцию со скриптом ниже:В данном скрипте заменить сумму «300» на требуемую, а также сменить код добавляемого блюда «39» на актуальное значение.procedure ProcessOperation1001304(Parameter: integer);
begin
if not RKCheck.Valid then
exit //important checking
else
begin
if RKCheck.CurrentOrder.UnpaidSum >= 300 then // Order sum checking
if GUI.RKMessageDlg('Do You want add bonus dish?', 0, 3, 10000) = 6 then
RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(39), '1'); // add dish with code 39
end;
RK7.PostOperation(rkoBalanceReceipt, 0);
end;
Другое решение №2:
1. Сервис -> Скрипты -> Перед расчётом заказа -> Создать вышеуказанный скрипт.
2. Настройки -> Графический интерфейс -> Схемы Форм -> Копирую текущую схему "Новый Дизайн" как "01_Новый Дизайн"
3. Настройки -> Графический интерфейс -> Использование Схемы Форм -> устанавливаю "01_Новый Дизайн" как основную.
4. Настройки -> Графический интерфейс -> Схемы Форм -> "01_Новый Дизайн" -> вкладка "Ссылки на скрипты" выбираю вышеуказанный скрипт из Скрипты -> Перед расчётом заказа
ВОПРОС: Скрипт отрабатывает, однако при попытке добавить блюдо выдает ошибку: "Блюдо не может быть добавлено, т.к. распечатан пречек."
Если у кого есть идеи как эту ошибку побороть, буду очень признателен.