iikoFront API SDK

Экран редактирования заказа позволяет вносить изменения по инициативе плагина

[ ]

Начиная с V7Preview5 плагин может редактировать через API текущий заказ, не получая EntityAlreadyInUseException :-)

Ранее в V7Preview4 была добавлена возможность редактировать текущий заказ при обработке карты или штрихкода (подробности). Теперь аналогичная возможность доступна в любой момент, когда не выполняются другие операции.

Для внесения изменений в заказ, открытый на экране редактирования, плагину необходимо вызвать метод TryEditCurrentOrder и передать в него ссылку на callback, который iikoFront вызовет, как только появится такая возможность. При бездействии это произойдёт немедленно, а если в этот момент выполняются другие операции, то callback будет вызван сразу по их завершении. В любом случае, метод TryEditCurrentOrder вернёт управление после вызова callback’а. Если callback выбросит исключение, оно вылетит из TryEditCurrentOrder. В случае, если в момент вызова TryEditCurrentOrder выполнялась другая операция, которая в итоге привела к выходу с экрана редактирования заказа, callback не удастся вызвать ни сразу, ни отложенно, а метод TryEditCurrentOrder сгенерирует исключение OperationCanceledException.

Пока метод TryEditCurrentOrder поддерживается только на экране редактирования заказа в режиме фастфуда или ресторана (IOrderEditScreen). Позднее появится поддержка экранов редактирования доставки, банкета, экрана оплаты и т. п.

На время выполнения callback’а показывается прогрессбар. В callback будут переданы текущий заказ, локальная версия IOperationService для редактирования текущего заказа, а также IViewManager с возможностью показывать диалоговые окна и менять текст на прогрессбаре.

Во входящее в SamplePlugin окно EditorTester, где собраны примеры редактирования заказа, добавлена галочка «Apply changes to order that is opened in iikoFront», при её включении изменения применяются к текущему открытому на экране заказу.