Редактирование заказа (быстрый чек)
Скрипт, показывающий при создании каждого нового заказа одно и то же сообщение кассиру
Сообщение нужно отображать после добавления первого блюда в быстрый чек.
procedure CheckViewOnAfterCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject); var i, CntDish: integer; it: TCheckItem; begin if SYS.ObjectInheritsFrom(AObjectAft, 'TDish') then begin CntDish := 0; for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do begin it := RKCheck.CurrentOrder.Sessions.Lines[i]; if SYS.ObjectInheritsFrom(TObject(it), 'TDish') then CntDish := CntDish + 1; end; if CntDish = 1 then gui.ShowMessage('New QuickCheck'); end; end;
Скрипт, выводящий остаток карты PDS
Алгоритм:
1. Нужно вывести остаток карты PDS в форму редактирования заказа в быстром чеке.
2. Остаток должен вычисляться так: Остаток на карты - сумма заказа.
3. Если вычисленный остаток - минус, показывать сумму в красном.
На форму редактирования быстрого чека добавить userGLabel1 и userTimer1.
И добавить следующие скрипты в форму:
procedure show_rest_sum; var i: integer; Limit, restsum: double; CardCode: string; McrPay: TMcrPay; label_rest: TObject; begin Limit := 0; restsum := 0; CardCode := ''; for i := 0 to RKCheck.CurrentOrder.Sessions.McrPays.ItemCount - 1 do begin McrPay := TMcrPay(RKCheck.CurrentOrder.Sessions.McrPays.Items[i]); Limit := Limit + McrPay.MaxAmount; CardCode := McrPay.CardNum; end; if CardCode = '' then Exit else begin restsum:=Limit-RKCheck.CurrentOrder.ToPaySum; label_rest := TObject(gui.FindComponentByName('userGLabel1')); if SYS.ObjectInheritsFrom(TObject(label_rest), 'TGLabel') then begin TGLabel(label_rest).Caption := FloatToStr(restsum); if restsum >=0 then TGLabel(label_rest).Color := clBlue else TGLabel(label_rest).Color := clRed; end; end; end; procedure CheckViewOnOrderVerify(Sender: TObject; AVerifyType: TVerifyType; oper: integer; var AContinue: boolean); var label_rest: TObject; begin if AVerifyType = vtNewQuickCheck then if RKCheck.CurrentOrder.IsEmpty then begin label_rest := TObject(gui.FindComponentByName('userGLabel1')); if SYS.ObjectInheritsFrom(TObject(label_rest), 'TGLabel') then begin TGLabel(label_rest).Caption := '0'; TGLabel(label_rest).Color := clBlue; end; end; end; procedure userTimer1OnTimer(Sender: TObject); begin if not RKCheck.Valid then Exit; if (GUI.CheckFormInPayMode) then exit; if SYS.ObjectInheritsFrom(RKCheck.CurrentCheckItem, 'TPrintCheckItem') then Exit; show_rest_sum; end;
Скрипт, для вывода кнопки «Тип Гостя» в Главное Меню
Необходимо добавить кнопку «Питание персонала» в главное меню. При нажатии открывается режим «Быстрый чек» и тип гостей «Персонал».
Скрипт для селектора на главном меню:
procedure ProcessOperation1001774(Parameter: integer); begin RKCheck.StrTag := 'Personal'; RK7.PerformOperation(rkoQuickCheck,0); end;
В форме «Новый заказ (быстрый чек)» у объекта GuestTypeEditor в событии OnShow указать скрипт:
procedure GuestTypeEditorOnShowScript(Sender: TObject); begin if RKCheck.StrTag = 'Personal' then begin RK7.PerformRefObject ( RK7.FindItemByCode(rkrefGuestTypes, 1) ); // указать код типа гостя RKCheck.StrTag := ''; RK7.PostOperation(rkoEnter,0); end; end;