Показано с 1 по 10 из 14

Тема: Доработка стандартного скрипта добавляющего блюдо в заказ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Еще один маленький вопросик
    Возможно ли в данный скрипт вставить команду на открытие денежного ящика, при нажатии кнопки "ДА" в запросе?

    Пробовал вот так:

    procedure ProcessOperation1009005(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    RK7.PerformOperation(rkoOpenDrawer, 0);
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    При нажатии "ДА" ящик открывается, но при этом блюдо в заказ добавляется и по "ДА" и по "НЕТ"

  2. #2
    Разбирающийся
    Регистрация
    28.06.2013
    Адрес
    Краснодар
    Сообщений
    1,333
    Поблагодарил(а)
    23
    Благодарностей: 143 (сообщений: 101)
    Цитата Сообщение от pixnet Посмотреть сообщение
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    Наверное, так надо

  3. #3
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от satan Посмотреть сообщение
    Наверное, так надо
    Ошибка в коде

  4. #4
    Разбирающийся
    Регистрация
    27.02.2017
    Адрес
    Москва
    Сообщений
    279
    Поблагодарил(а)
    8
    Благодарностей: 101 (сообщений: 66)
    Баланс begin и end нарушен, одного end; недостает
    Потому ошибка.

  5. #5
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от SLion Посмотреть сообщение
    Баланс begin и end нарушен, одного end; недостает
    Потому ошибка.
    procedure ProcessOperation1009005(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    end;

    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    Ящик открывает, но карту добавляет и по да и по нет.

  6. #6
    Разбирающийся
    Регистрация
    18.10.2012
    Адрес
    Новосибирск, Омск
    Сообщений
    5,362
    Поблагодарил(а)
    188
    Благодарностей: 461 (сообщений: 364)
    Цитата Сообщение от pixnet Посмотреть сообщение
    Ящик открывает, но карту добавляет и по да и по нет.
    Вы правда совсем совсем не понимаете написанного кода?
    Даже на уровне курса информатики???

    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    end;
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539

    RK7.PerformOperation(rkoOpenDrawer, 0); находится внутри контейнера begin...end те выполняется толко в случае выполнения условия (нажали ДА)
    Команда
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539

    Находится вне рамок условия, т.е. выполняется безусловно, т.е. всегда.
    Вот оно и выполняется.
    Ильин Александр, Компания "Соттос"
    г Новосибирск +7 (383) 373-96-98; +7 (909) 533-93-92; nsk@sottos.ru
    г Омск +7 (3812) 377-902; +7 (905) 098-92-06; abc@sottos.ru
    www.sottos.ru | vk.com/sottos | fb.com/sottosru
    Продажа и установка ПО R-Keeper, обучение, техническая поддержка 24/7

  7. #7
    Разбирающийся
    Регистрация
    07.02.2018
    Адрес
    Ижевск
    Сообщений
    130
    Поблагодарил(а)
    45
    Благодарностей: 13 (сообщений: 12)
    Цитата Сообщение от sibgaba Посмотреть сообщение
    Вы правда совсем совсем не понимаете написанного кода?
    Даже на уровне курса информатики???
    Какой-то ты злой sibgaba, я в программировании не силен.

    Спасибо SLion, все нормально работает!

  8. #8
    Разбирающийся
    Регистрация
    27.02.2017
    Адрес
    Москва
    Сообщений
    279
    Поблагодарил(а)
    8
    Благодарностей: 101 (сообщений: 66)
    Вот так, begin - end ограничивают область в которой в данном случае будет исполняться условие.

    Цитата Сообщение от pixnet Посмотреть сообщение
    procedure ProcessOperation1009005(Parameter: integer);
    var
    it : TCheckItem;
    flag : boolean;
    j : integer;
    begin
    if not RKCheck.Valid then
    exit //important checking
    else begin
    flag := false;
    for j := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do
    begin
    it := RKCheck.CurrentOrder.Sessions.Lines[j];
    if SYS.ObjectInheritsFrom(TObject(it), 'TDiscountItem') then
    flag := true;
    end;
    if ((RKCheck.CurrentOrder.UnpaidSum >= 1000) and (flag = false)) then // проверка суммы заказа
    if GUI.RKMessageDlg('Добавить Карту в заказ?', 0, 3, 10000) = 6 then
    begin
    RK7.PerformOperation(rkoOpenDrawer, 0);
    RKCheck.CreateCheckItem(rkrefMenuItems, IntToStr(539), '1'); // код блюда 539
    end;
    end;
    RK7.PostOperation(rkoBalanceReceipt, 0);
    end;

    Ящик открывает, но карту добавляет и по да и по нет.

  9. 1 пользователь сказал cпасибо SLion за это полезное сообщение::

    pixnet (05.02.2020)

Похожие темы

  1. Блюдо под заказ
    от Виктория122436 в разделе R-Keeper 7 и фискальные регистраторы, а также чеки и пречеки
    Ответов: 6
    Последнее сообщение: 25.04.2019, 09:02
  2. Создание скрипта
    от VINNI87 в разделе Работа с заказами на станциях в R-Keeper 7
    Ответов: 0
    Последнее сообщение: 16.07.2018, 15:33
  3. Не открывается заказ
    от Ninja в разделе R-Keeper 7
    Ответов: 7
    Последнее сообщение: 01.03.2017, 17:31
  4. Ответов: 2
    Последнее сообщение: 03.09.2016, 10:44
  5. исполнения скрипта
    от Anubis в разделе GameKeeper
    Ответов: 5
    Последнее сообщение: 16.12.2012, 00:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •