1.3. Режим работы

Любой режим состоит из нескольких шагов (наследники TPOSModeStep), перечисляемых в unit'е режима, являющегося наследником TPOSModeWizard. Например, для режима ФастФуд это шаги: форма заказа (FSaleStep), форма оплаты (FPaymentStep), список счетов (FGuestListStep) и так далее. Режим передает каждому шагу объект-посредник TPosModeObject с методом Finish, с помощью которого вызывается переход на какой-либо шаг режима. Константы команд перехода MODE_STEP_* объявлены в unit'е uPOSModeConsts. Обработка команды перехода выполняется в перекрытом методе StepFinished класса-наследника TPOSModeWizard.

Для приложения POS-терминала описано несколько режимов работы точки обслуживания, настройки которых определяются в базе данных, в таблице tp_POSModes. Пользователь видит только тот список режимов, который соответствует его правам доступа. Режимы запускаются строго параллельно и не могут пересекаться. Режим представляет собой строго ограниченный сценарий последовательных шагов, в каждом из которых допустим определенный набор действий. Если настройками параметров устройства POS не указано иное, то при завершении сеанса работы сотрудника на каком-либо шаге режима производится сохранение текущего состояния и параметров формы (procedure SaveState()) для текущего сеанса работы. При последующей его авторизации на POS, если данные параметры не устареют, то режим работы и текущий шаг будут восстановлены.