PDA

Просмотр полной версии : Настройка KDS-клиента на вывод блюд с готовым статусом.



gregoryzero
20.07.2015, 18:39
Здравствуйте!

Коротко о системе:

Сервер справочников, версия - 7.5.2.479 (Отдельная машина)

Кассовый сервер, версия - 7.5.2.479 (Отдельная машина)

8 KDS-станций - 6 станций в отдельных цехах кухни, 1 станция для Шеф-повара, 1 для официантов.

Рабочий процесс выглядит следующим образом:

1. На KDS-станциях повара в салатном цеху, Шеф-повара, и официатов, появляется блюдо "Салат1" с нейтральным статусом (Белый цвет).
2. Повар в салатном цеху, первый раз нажимает на экране на позицию "Салат1", присваивая статус "Готовится" (Желтый цвет). На экране Шеф-повара и экране официантов, блюдо также окрашивается в желтый цвет.
3. После того, как повар приготовил блюдо, он нажимает второй раз на экране KDS-а на позицию "Салат1", тем самым, присваивая блюду "Салат1" статус "Готово" (Сиреневый цвет). На экране Шеф-повара и экране официантов, блюдо окрашивается в сиреневый цвет.
4. Шеф-повар на своем KDS-е один раз нажимает на блюдо "Салат1", и тогда блюдо пропадает с экрана Шеф-повара и экрана официантов.

Вопрос такой:

Начальство хочет отказатся от всех KDS-ов, кроме KDS-а Шеф-повара и KDS-а официантов. Они останутся для информативности.
Есть ли возможность сделать так, чтобы на экран Шеф-повара, блюдо выводилось не с нейтральным статусом, а со статусом "Готово"?
То есть, Шеф-повару надо только один раз нажать на KDS-е на блюдо, чтобы его подтвердить и убрать с экрана.
В настройках самого KDS-клиента, есть вариант ReadyAndTakeOut, но это для всего заказа целиком.
Есть ли что-то похожее, но только для отдельного блюда?
(Если обратился не по адресу - удалите тему)

alkon132
20.07.2015, 19:43
Приложил мануал, там на странице 28 все доступные операции.
Также можно поэкспериментировать с SQL-запросом, который определяет, заказы (в вашем случае, видимо, блюда) с каким статусом на нем будут отображаться.

Наверное, opReadyDishOnly вам подойдет.
Но надо тестировать, там много подводных камней именно в разрезе поблюдного/позаказного вывода на экраны.

gregoryzero
21.07.2015, 15:59
Приложил мануал, там на странице 28 все доступные операции.
Также можно поэкспериментировать с SQL-запросом, который определяет, заказы (в вашем случае, видимо, блюда) с каким статусом на нем будут отображаться.

Наверное, opReadyDishOnly вам подойдет.
Но надо тестировать, там много подводных камней именно в разрезе поблюдного/позаказного вывода на экраны.
Спасибо за совет, буду пробовать.

На данный момент, получилось сделать так:

1 - На экране Шеф-повара появляется блюдо с нейтральным статусом (Белый цвет).
2 - Повар первый раз нажимает на блюдо, тем самым, присваивает блюду статус "Готово" (Сиреневый цвет)
3 - Повар второй раз нажимает на блюдо, тем самым, присваивает блюду статус "На выдачу" (Темно-сиреневый цвет), блюдо пропадает с экрана.

Настройки на самом КДСе таковы:

SQL-запрос - "Показывать не выданные блюда"
Operation - opCustom
opPrepare - None
opReady - opReadyDish
opTakeOut - opTakeOutDish.

При таких настройках, задача решается на 50% - можно работать с одник КДСом, но повару надо делать одно лишнее подтверждение блюда.
Подскажите, можно ли редактировать операции, например, opReadyDish итп.?

lEEFT
22.07.2015, 18:50
поставил на объекте - интересная вещь. Хотелось бы у себя иметь, но формат компании не тот =(

А в макете .fr3 не указывается действие при нажатии?

gregoryzero
23.07.2015, 16:16
поставил на объекте - интересная вещь. Хотелось бы у себя иметь, но формат компании не тот =(

А в макете .fr3 не указывается действие при нажатии?
Макет не смотрели.
Думали "малой кровью" отделаться )
Посмотрим макет.

gregoryzero
30.07.2015, 16:40
Посмотрели макет.
Вот код макета.
Кто-нибудь, пожалуйста, может подсказать, где описано действие изменения статуса блюда, при нажатии на экран КДСа?



procedure CountsMemoOnAfterPrint(Sender: TfrxComponent);
begin
//PressF1(CountsMemo.Text);
end;

procedure ClrPanelOnBeforePrint(Sender: TfrxComponent);
begin
if ((<OrdDataSet."isOpacity">)OR(<OrderDetail."isOpacity">)) then begin
if (<OrderDetail."ReadyFlag">) or ((<OrderDetail."LTakeOut">>0)) then begin
if (<OrderDetail."LTakeOut">>0) then
ClrPanel.Color:=$00D0AA86
else
ClrPanel.Color:=$00DF8AC6;
end else begin
if (<OrderDetail."PrepareFlag">) then begin
ClrPanel.Color:=$0000DDDD;
end else begin
ClrPanel.Color:=clSilver;
end;
end;
end else begin
if (<OrderDetail."ReadyFlag">) or ((<OrderDetail."LTakeOut">>0)) then begin
if (<OrderDetail."LTakeOut">>0) then
ClrPanel.Color:=clSkyBlue
else
ClrPanel.Color:=$00FFAAE6;
end else begin
if (<OrderDetail."PrepareFlag">) then begin
ClrPanel.Color:=clYellow;
end else begin
ClrPanel.Color:=clWhite;
end;
end;
end;
end;


procedure ColorStretchOnBeforePrint(Sender: TfrxComponent);
begin
ColorStretch.Color:=RowNumber.Color;
end;



procedure ColorPanelOnBeforePrint(Sender: TfrxComponent);
begin
ColorPanel.color:=clrpanel.color;
end;


procedure RowNumberOnBeforePrint(Sender: TfrxComponent);
var i: integer;
newSize: Integer;
begin
i:=Length(Trim(<OrderDetail."LINENUM">));
newSize:=14;
if i>4 then begin
newSize:=7
end else if i>3 then begin
newSize:=8
end else if i>2 then begin
if (Trim(<OrderDetail."LINENUM">)[1]='.') then begin
newSize:=12;
end else begin
newSize:=11;
end;
end;
rowNumber.Font.size:=newSize;
end;

procedure OnStartReport(Sender: TfrxComponent);
begin
PageFooter1.height:=66.14+20*<LogCount>+1;
Memo3.top:=20*<LogCount>+1;
countsmemo.top:=36+20*<LogCount>+1;
memo1.top:=20*<LogCount>+1;
memo8.top:=20*<LogCount>+1;
memo9.top:=20*<LogCount>+1;
memo4.top:=20*<LogCount>+1;
memo5.top:=20*<LogCount>+1;
MemoUndo.top:=20*<LogCount>+1;
LogMemo.Top:=0;
LogMemo.Height:=20*<LogCount>;
if <CancelAllowed>=1 then begin
MemoUndo.Visible:=True;
end else begin
MemoUndo.Visible:=False;
end
end;

begin
end.

lEEFT
30.07.2015, 17:25
Здесь идет только определение цвета при определенных значениях

Видимо, да и логично, что команду на смену статуса дает само ПО.