Примеры кода
Проверка входит ли блюдо в определённую категорию
var Categ: TClassificatorGroup; begin Categ := TClassificatorGroup(getitemBycodeNum('ClassificatorGroups', CategCode)); if SYS.ObjectInheritsFrom(TObject(it), 'TDish') then if Categ.IsChild(it.RefItem) then end
Определение идентификатора и наименование текущей станции/кассы
RK7.Cash.Ident, RK7.Cash.Name
Проверка статуса объекта в справочнике
TDiscount(TDiscountItem(it).RefItem).Status <>rsDeleted // stActive
Проверка на пустую строку
if SYS.ObjectInheritsFrom(TObject(it), 'TEmptyLine') then break;
Доступ к свойству блюда «Альт.название»
gui.showmessage(TRK7MenuItem(TDish(AObjectAft).RefItem).altname);
Определение признака «аннулированный» при переборе строк
TPrintCheckItem(it).State = disDeleted
Ввод значения через окно ввода
sdate:=gui.InputBox('Дата рождения дд.мм.гггг', 'Введите дату рождения гостя', '', true);
Изменение типа заказа
procedure ProcessOperation1002320(Parameter: integer); begin if not RKCheck.Valid then Exit; if (GUI.CheckFormInPayMode) then exit; RK7.PerformRefObject(RK7.FindItemByCode(rkrefChangeableOrderTypes, 1)); // 1 - код типа заказа end;
Изменение категории заказа
procedure ProcessOperation1000813(Parameter: integer); var Props: TVisitOrderInfo; begin Props := TVisitOrderInfo.Create(); try Props.OrderCategoryID := 0; RKCheck.UpdateOrderProps(Props); finally Props.Free; end; end;
Изменение типа гостей
Props.GuestTypeID.
Скрыть кнопку валюты, если сумма «0»
На форме редактирования заказа у объекта MainSelector в событии OnSuitableItem указать скрипт:
procedure MainSelectorOnSuitableItemScript(Sender: TBasePanel; item: TReferentItem; var Suitable: boolean); begin if GUI.CheckFormInPayMode then // если сейчас режим оплаты begin if SYS.ObjectInheritsFrom(item, 'TCurrency') then Suitable := Suitable and (TCurrency(item).tag <> 0); // отобразить ненулевые валюты end; end;
Реализовано в 7.5.4.204, 7.5.5.045, 7.5.6.004
GUI.ShowMessage('Сумма заказа: '+FloatToStr(RKCheck.CurrentOrder.UnpaidSum));
Добавление группы меню при редактировании чека
RK7.PerformRefObject(RK7.FindItemByCode(rkrefCategList, 2 {Menu group code}));
Изменение цвета блюда в окне заказа
procedure CheckViewOnGetColors(Sender: TObject; CheckItem: TObject; Selected: boolean; var Color, FontColor: TColor); begin if SYS.ObjectInheritsFrom(CheckItem, 'TDish') then begin if (TDish(CheckItem).Quantity = 0) and (TDish(CheckItem).State = disOpened) then begin // bug#10226 red color for dishes with quantity = 0 Color := $004646FF; FontColor := clBlack; end; end; end; Trk7menuitem(CheckItem.RefItem).VisualType_BColor - цвет фона Trk7menuitem(CheckItem.RefItem).VisualType_TextColor - цвет шрифта
Вывод заранее созданного сообщения при добавлении первого блюда в заказ
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('Сообщение');
end;
end;
CODE