CheckViewOnShow, DesignFormOnProcessCard, DesignFormOnRef, CheckViewOnSuitableObject, CheckViewOnGetColors
CheckViewOnShow
Скрипт, предлагающий распечатывать полностью оплаченный чек при открытии заказа
procedure CheckViewOnShowScript(Sender: TObject);
var i : integer;
it: TCheckItem;
paysum, cntdish: double;
begin
if not(RKCheck.CurrentOrder.FinishedService) then // если незакрытый чек, то...
begin
paysum := 0;
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 //Check dish lines only
cntdish := cntdish + TDish(it).Quantity;
if SYS.ObjectInheritsFrom(TObject(it), 'TPayLine') then //Check pay lines only
paysum := paysum + TPayLine(it).NationalSum;
end;
if cntdish > 0 then
if RKCheck.CurrentOrder.UnpaidSum <= paysum then
if GUI.RKMessageDlg('Заказ уже оплачен. Печатать чек?', 0, 3, 10000) = 6 then
begin
RK7.PostOperation(rkoBalanceReceipt, 0);
end;
end;
end;
DesignFormOnProcessCard
Скрипт, вызывающий диалоговое окно при прокатывании ПДС-карты
Скрипт выводит сообщение (допустим "Нет анкетных данных") при условии, что параметр «ПДС показывать инфо о карте» отключен.
Скрипт в событии OnProcessCard основной формы редактирования заказа:
procedure DesignFormOnProcessCard(IntfID, EntranceCardType: integer; CardCode: string; RKCardInfo: TRKCardInfo; var res: integer);
begin
if trim(RKCardInfo.CardAddInfo)<>'' then
begin
gui.showmessage('CardAddInfo = '+RKCardInfo.CardAddInfo);
res := 0;
// dbg.dbgprint('CardAddInfo = '+RKCardInfo.CardAddInfo);
end;
end;
DesignFormOnRef
Скрипт, запрещающий принимать купюру в 1000 и 5000 р. без подтверждения менеджера
Скрипт пишется на обработчике OnRefObject самой формы.
procedure DesignFormOnRefObject(Item: TReferentItem; Param: integer; var res: integer);
begin
if SYS.ObjectInheritsFrom(Item, 'TCurrencyFaceValue') then begin
if TCurrencyFaceValue(Item).FaceValue > 1000 then begin
if not RK7.CashUser.ConfirmOperation(rkoUser11) then
res := 1;
end;
end;
end;
Скрипт использует rkoUser11 (пользовательская операция 11). С помощью данной операции выполняется подтверждение менеджера.
Предварительно нужно сконфигурировать данную операцию (справочник «Операции» в менеджерской станции R_Keeper_7) :
- Выставить галочку «Контроль доступа»
- Изменить название операции на «Подтверждение номиналов 1000 и 5000»
- Дать менеджеру право на данную операцию, и не дать это право кассиру.
Скрипт, открывающий ящик при входе в режим оплаты
У формы редактирования чека в событии OnRefObject указать скрипт:
procedure DesignFormOnRefObject(Item: TReferentItem; Param: integer; var res: integer);
begin
if SYS.ObjectInheritsFrom(Item, 'TCurrencyFaceValue') then
RK7.PerformOperation(rkoOpenDrawer, 0);
end;
При выборе номинала валюты происходит вызов команды открытия денежного ящика.
CheckViewOnSuitableObject
Скрипт, прячущий строчку с чаевыми
На форме редактирования у объекта CheckView в событии OnSuitableObjectScript указать скрипт:
procedure CheckViewOnSuitableObjectScript(Sender: TBasePanel; Obj: TObject; var Suitable: boolean);
begin
if RKCheck.CurrentOrder.FinishedService then
if (SYS.ObjectInheritsFrom(Obj, 'TPayLine')) then
Suitable := Suitable and (TPayLine(Obj).code <> 1); // Tips code
end;
Также реализовано скрытие сдачи по типу валюты и скидки по её коду редакторе чека:
procedure CheckViewOnSuitableObjectScript(Sender: TBasePanel; Obj: TObject; var Suitable: boolean);
var TypeCurrCode, DiscountCode: integer;
begin
TypeCurrCode := 15; // Currency type
DiscountCode := 1113; // discount code
if (SYS.ObjectInheritsFrom(Obj, 'TDiscountItem')) then
Suitable := Suitable and (TDiscountItem(Obj).Code <> DiscountCode);
if (SYS.ObjectInheritsFrom(Obj, 'TPayLine')) then
if (TPayLine(Obj).BasicSum < 0) then
Suitable := Suitable and (TCurrencyType(TCurrency(TPayLine(Obj).RefItem).MainParent).Code <> TypeCurrCode);
end;
Скрипт, скрывающий строчку со сдачей в закрытых чеках
procedure CheckViewOnSuitableObjectScript(Sender: TBasePanel; Obj: TObject; var Suitable: boolean);
begin
if RKCheck.CurrentOrder.FinishedService then
if (SYS.ObjectInheritsFrom(Obj, 'TPayLine')) then
Suitable := Suitable and (TPayLine(Obj).BasicSum >= 0); // скрывать платежи с отрицательно суммой, т.е. сдачу
end;
CheckViewOnGetColors
Скрипт на добавление в заказ цветного блюда
Скрипт при заказе блюда обозначенного цветной кнопкой добавляет это блюдо в заказ с тем же цветом.
procedure CheckViewOnGetColors(Sender: TObject; CheckItem: TObject; Selected: boolean; var Color, FontColor: TColor);
begin
if SYS.ObjectInheritsFrom(CheckItem, 'TDish') then begin
if (TDish(CheckItem).State = disOpened) then
if not Selected then
begin
Color := Trk7menuitem(TDish(CheckItem).RefItem).VisualType_BColor;
FontColor := Trk7menuitem(TDish(CheckItem).RefItem).VisualType_TextColor;
end
else
begin
Color := clBlack;
FontColor := clWhite;
// Color := Trk7menuitem(TDish(CheckItem).RefItem).VisualType_TextColor;
// FontColor := Trk7menuitem(TDish(CheckItem).RefItem).VisualType_BColor;
end;
end;
end;