Конфигурация: заводская столовая без кассира
В статье описан вариант реализации схемы работы, который востребован в заводских столовых или других заведениях, работающих по сценарию, описанному ниже.
Перед каждым приемом гостей (например: завтрак, обед или ужин) формируется единое меню без возможности выбора блюд. Оплата производится по внутренним картам питания: ПДС или CRM.
Кассир в этой схеме не нужен, так как каждому посетителю добавляется один и тот же набор блюд, и оплата списывается с личной карты сотрудника без необходимости выбирать валюту или давать сдачу.
Этот сценарий может выполняться с помощью автоматического скрипта.
Первоначальные настройки в менеджерской
- Установите и настройте систему лояльности, с помощью которой будет производиться оплата заказов. Можно использовать любую лояльность, работающую по протоколу Farcards. Главное условие для такой системы — возможность оплаты заказа валютой бонусы (валюта ПДС).
Рассмотрим реализацию на примере стандартной ПДС. Подробно об установке и настройке ПДС можно узнать в статье. - В справочнике Деньги > Валюты у созданной валюты ПДС в свойстве Автозаполнение выберите вариант Вся сумма.
- Перейдите в Сервис > Параметры:
- в параметре Показывать инфо о карте снимите флаг, так как отображение информации о клиенте не требуется
- параметру Оплата платежной картой установите значение Всегда, для автоматической оплаты заказа после добавления карты
- параметру Начальное окно установите значение Быстрый чек, чтобы после регистрации открывалась форма редактирования Быстрого чека, в которой и будет происходить заказ
- параметру Создание быстрого чека установите значение Без формы, для автоматического создания заказа без дополнительных действий
- в параметре Показывать инфо о карте снимите флаг, так как отображение информации о клиенте не требуется
- Перейдите в Меню > Классификации блюд и создайте отдельную классификацию (или используйте предустановленную), внутри которой добавьте одну категорию блюд Текущее меню. В эту категорию будут добавляться блюда, которые планируется отдавать в заказ. Количество и состав таких блюд не имеет значения, после добавления карты в заказ все блюда из этой категории добавятся для гостя, а заказ будет закрыт на валюту ПДС.
Запомните код созданной категории, далее он понадобится при настройке скрипта.
Создание формы «Быстрый чек». Добавление и настройка скрипта
- Перейдите в Настройки > Графический интерфейс > Формы.
Откройте раздел Заказ > Редактирование заказа (быстрый чек) и сделайте копию формы Быстрый чек. Для удобства созданную форму переименуйте в Автооплата заказа. - В свойствах формы нажмите пункт Модель, чтобы открыть редактор формы и скриптов. В открывшейся форме:
- нажмите на область с содержимым заказа
- справа выберите колонку События
- кликом по событию OnAfterCheckViewEdit создайте событие
удалите строчки:
procedure CheckViewOnAfterCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject);
begin
end;
Вместо удаленных строчек добавьте скрипт. Внутри скрипта в переменную numcateg вставьте код ранее созданной категории блюд. В данном примере это код 9.скриптprocedure CheckViewOnAfterCheckViewEdit(Sender: TObject; AEditType: TEditType; AObjectBef, AObjectAft: TObject);
var ed: TObject;
ToPayAmount: double;
i,Code,numcateg, otvet:integer;
Categ: TClassificatorGroup;
begin
//** Set parameters ***//
numcateg:=9; // код созданной категории блюд
otvet:=6;
//** Set parameters ***//
if SYS.ObjectInheritsFrom(AObjectAft, 'TDiscountItem') then
if TDiscountItem(AObjectAft).ChargeSource=chsInterface then
begin
if RKCheck.CurrentOrder.IsEmpty=false then
otvet:=gui.MessageDlgEx('Заказ не пустой, все равно добавить блюда и оплатить заказ картой?', mtInformation, mbYes+mbNo, 'Да;Нет');
if otvet=6 then
begin
ToPayAmount := RKCheck.CurrentOrder.ToPaySum;
ed := TObject(gui.FindComponentByName('Editor'));
Categ := TClassificatorGroup(getitemBycodeNum('ClassificatorGroups', numcateg));
for i := 0 to Categ.ChildCount -1 do
begin
RKCheck.CreateCheckItem(rkrefMenuItems, inttostr(Categ.ChildItem(i).Code), '1');
end;
if SYS.ObjectInheritsFrom(TObject(ed), 'TNumEditor') then
begin
TNumEditor(ed).Text := FloatToStr(ToPayAmount);
RK7.PostOperation(rkoBalanceReceipt, 0);
end;
end;
end;
end;
Сохраните и активируйте форму. После этого установите её в текущей схеме форм, как основную.
Готово. Теперь при добавлении карты в заказ, в него автоматически добавятся блюда из специальной категории, и заказ автоматически закроется на карту ПДС без участия кассира.