iiko / front.api.sdk

iikoFront Api SDK (part of iikoRMS)
34 stars 22 forks source link

Получение фронтовых отчетов #512

Open lallison21 opened 5 months ago

lallison21 commented 5 months ago

Цель: Получение данных фронтовых отчетов в стороннюю систему без разметки, при закрытии кассовой смены через метод CafeSessionClosing

Проблемы:

  1. В API V7 появилась возможность получить разметку некоторых фронтовых отчётов GetReportMarkupById. Есть ли возможность получить те же данные отчеты, но уже без разметки?
  2. При закрытии смены, метод CafeSessionClosing вызывается до фактического закрытия смены. Есть возможность отменить закрытие смены и после при повторном закрытии метод CafeSessionClosing вызывается повторно. Есть ли возможность исправить этот недочет?

Версия iikoFront: 8.7.7 Версия Resto.Front.Api: 8.7.6032

GulnaraBikbova commented 4 months ago

Добрый день.

  1. В API V7 появилась возможность получить разметку некоторых фронтовых отчётов GetReportMarkupById. Есть ли возможность получить те же данные отчеты, но уже без разметки?

Напрямую запросить данные нельзя, но можно добавить в шаблон данных тег <section> и передать одно поле или сразу всю модель в виде сериализованной строки:

<doc>
   <section name="my_plugin_field_name1" value="@Model.value1"/>
   <section name="my_plugin_model_all" value="@JsonSerializer.Serialize(Model)"/>
    ...
</doc>

На стороне плагина эти данные можно отловить в подписке RegisterBeforeFormatDocumentHandler()или RegisterAfterFormatDocumentHandler(). Есть пример в SamplePlugin.

  1. При закрытии смены, метод CafeSessionClosing вызывается до фактического закрытия смены. Есть возможность отменить закрытие смены и после при повторном закрытии метод CafeSessionClosing вызывается повторно. Есть ли возможность исправить этот недочет?

Событие CafeSessionClosing срабатывает каждый раз при закрытии КС на шаге печати отчета.