Przejdź do głównej zawartości

Dodano informacje o terminalu, który zapisał ostatnie zmiany do zamówień i rezerwacji

Nowa właściwość LastChangedTerminalId dodana do zamówienia (IOrder. LastChangedTerminalId) oraz do rezerwacji (IReserve.LastChangedTerminalId), pozwala określić, na którym terminalu zapisano aktualny stan tych obiektów.

W niektórych scenariuszach, takich jak przetwarzanie zdarzeń OrderChanged, DeliveryOrderChanged lub ReserveChanged, może zajść potrzeba rozróżnienia zmian zapisanych na lokalnym terminalu od zmian otrzymanych przez sieć z sąsiednich terminali. Teraz, aby to zrobić, wystarczy porównać LastChangedTerminalId oraz PluginContext.Operations.GetHostTerminal().Id.

Wcześniej do tych celów dodano metodę GetLastChangedOrderTerminal, zwracającą terminal, na którym zapisano ostatnie zmiany dla określonego obiektu. Jednak pomiędzy momentem, gdy wtyczka otrzymuje określony stan IOrder, a wywołaniem GetLastChangedOrderTerminal, mogły zostać dokonane nowe zmiany na innym terminalu, wówczas metoda GetLastChangedOrderTerminal zwracała ten inny terminal, odnosząc się do nowszego stanu IOrder, niż ten, który posiada wtyczka. Teraz takiego problemu nie ma, ponieważ wtyczka otrzymuje właściwość LastChangedTerminalId bezpośrednio w obiekcie IOrder. Metoda GetLastChangedOrderTerminal została usunięta.

Teraz możliwe jest otwieranie i zamykanie zmian osobistych bez kodów PIN pracowników

Funkcje otwierania i zamykania zmian osobistych zostały dodane wcześniej, ale pozwalały one jedynie na zarządzanie zmianą osobistą użytkownika, w imieniu którego działał plugin po zalogowaniu się kodem PIN. Teraz można zarządzać zmianami osobistymi także innych użytkowników.

W tym celu do metod OpenPersonalSession oraz ClosePersonalSession dodano opcjonalny argument user. Jeśli argument ten nie zostanie podany, domyślnie zmiana osobista jest nadal otwierana lub zamykana dla użytkownika, w imieniu którego działa plugin, a ten użytkownik, jak wcześniej, jest określany przez argument credentials uzyskany w wyniku autoryzacji kodem PIN.

Teraz, działając w imieniu użytkownika serwisowego z znanym kodem PIN, plugin może otworzyć lub zamknąć zmianę osobistą innego użytkownika, wskazanego jako user, bez znajomości jego kodu PIN. Aby zarządzać zmianą osobistą innej osoby, użytkownik serwisowy musi posiadać następujące uprawnienia:

  • F_OPIN „Potwierdź otwarcie i zamknięcie zmiany osobistej za pomocą kodu PIN” – do otwierania zmiany osobistej innej osoby
  • F_KIS „Wymuś zamknięcie zmian osobistych” – do zamykania zmiany osobistej innej osoby

Odbieranie raportów frontowych

W API V7 stało się możliwe uzyskanie markupu niektórych raportów frontowych
GetReportMarkupById.

Możesz przekazać dowolny z ciągów podanych na liście jako identyfikator raportu reportId

  • "X_REPORT" — raport X;
  • "Z_REPORT" — raport Z;
  • "SALES_BY_TYPE_WITH_TAX_SERVER_REPORT" — 011 Całkowite przychody według typu z podatkami;
  • "SERVER_HOURLY_REPORT" — 012 Całkowite przychody na godzinę;
  • "SALES_BY_WAITER_SERVER_REPORT" — 013 Całkowite przychody według kelnerów;
  • "ORDERS_SUMMARY_REPORT" — 015 Krótki raport o otwartych zamówieniach i sprzedaży według lokalu;
  • "SALES_BY_PAYMENT_TYPE_SERVER_REPORT" — 016 Paragony według typu płatności;
  • "DISH_EXPENSE_SERVER_REPORT" — 021 Całkowite zużycie jedzenia;
  • "SERVER_SALES_REPORT" — 023 Całkowita sprzedaż jedzenia;
  • "SERVER_WRITEOFF_REPORT" — 024 Całkowite umorzenia dań;
  • "SUMMARY_REPORT" — 031 Raport zbiorczy;
  • "EMPLOYEES_NUTRITION_REPORT" — 032 Posiłki pracowników;
  • "ORDER_GAP_REPORT" — 033 Czas od rachunku do płatności;
  • "SESSION_WRITEOFF_REPORT" — 034 Umorzenia dań;
  • "EMPLOYEES_ATTENDANCES_REPORT" — 035 Frekwencja pracowników;
  • "SESSION_DISCOUNT_REPORT" — 036 Raport o rabatach i upustach;
  • "PROBLEM_OPERATIONS_REPORT" — 037 Operacje niebezpieczne;
  • "EMPLOYEE_DEBTS_REPORT" — 038 Wypłaty dla pracowników;
  • "EGAIS_PRODUCT_UNSEAL_REPORT" — 039 Raport o otwarciach opakowań;
  • "SALES_BY_TYPE_WITH_TAX_SESSION_REPORT" — 041 Przychody według typu z podatkami;
  • "SESSION_HOURLY_REPORT" — 042 Przychody godzinowe;
  • "SESSION_SALES_REPORT" — 043 Sprzedaż dań;
  • "DISH_EXPENSE_SESSION_REPORT" — 044 Zużycie dań;
  • "CAFE_SESSION_FULL_REPORT" — 045 Pełny raport zmiany kasy;
  • "CAFE_SESSION_SALES_REGISTER_REPORT" — 046 Rejestr rachunków;
  • "SALES_BY_PAYMENT_TYPE_SESSION_REPORT" — 047 Paragony według typu płatności na zmianę;
  • "CAFE_SESSION_SUMMARY_REPORT" — 048 Podsumowanie na zmianę;
  • "CHEQUE_TAPE_REPORT" — 049 Taśma kasowa;
  • "DELIVERY_REPORT" — 050 Raport dostaw;
  • "CAFE_SESSION_SALES_EXTENDED_REGISTER_REPORT" — 051 Rozszerzony rejestr rachunków;
  • "PAY_IN_OUT_REPORT" — 052 Raport wpłat i wypłat;
  • "DELIVERY_DISHES_REPORT" — 053 Dania do przygotowania dostaw;
  • "DONATIONS_REPORT" — 054 Raport napiwków.

Powiadomienie o usunięciu niewydrukowanych dań i aktualnym użytkowniku

W API V7 dodaliśmy powiadomienie o usuwaniu niewydrukowanych dań
BeforeDeleteNonPrintedItems,
a także przekazywanie aktualnego użytkownika odpowiedzialnego za wykonywaną operację do niektórych zdarzeń.

Usunięcie niewydrukowanych dań można przerwać, wyrzucając OperationCanceledException w obsłudze.
Powiadomienie jest generowane zarówno podczas próby usunięcia dania z interfejsu Syrve POS, jak i podczas próby usunięcia go z API.

Powiadomienia i metody, które zaczęły przyjmować jako wejście aktualnego
użytkownika,
wykonującego daną operację:

Aktualizacja metod pobierania listy zamówień, dostaw, rezerwacji i bankietów

W API V7 wprowadziliśmy zmiany w metodach pobierania listy zamówień, dostaw, rezerwacji i bankietów. W tym metody pobierania danych encji z znanej rewizji.

Pobieranie pełnej listy wszystkich encji:

  • Metoda pobierania rezerwacji/bankietów nie uległa zmianie —
    GetReserves,
    która zwraca je w dowolnym
    statusie;
  • Metoda pobierania ogólnej listy zamówień (zwykłych i dostaw) uległa zmianie —
    GetOrders,
    która teraz posiada opcjonalne parametry:
    • includeDeleted — uwzględnij w wyniku zamówienia o
      statusie
      Deleted, które wcześniej nie były uwzględniane;
    • excludeDeliveryOrders — wyklucz zamówienia dostaw z wyników.
  • Metoda pobierania listy zamówień dostaw uległa zmianie (oddzielnie od zwykłych) —
    GetDeliveryOrders,
    która posiada opcjonalny parametr:
    • includeDeleted — uwzględnij w wynikach niedokonane anulowania dostaw
      (status dostawy != Cancelled) oraz ich zamówienia o
      statusie
      Deleted, które wcześniej były domyślnie włączone.

Zasada pobierania encji według rewizji uległa zmianie.
Wcześniej można było pobierać tylko zamówienia dostaw i tylko listę obiektów.
Faktem jest, że oprócz usuniętych zamówień o statusie Deleted, istnieją również zamówienia trwale usunięte, z których pozostaje tylko id i to tylko na Głównym Terminalu.
Takie trwale usunięte zamówienia pobiera się przez podział zamówienia na 2FR.
Teraz przy pobieraniu encji ze znanej rewizji zwracany jest obiekt
ChangedEntities<T>,
który zawiera listę zmienionych encji
oraz maksymalną rewizję encji z listy.
Sama zmieniona encja
ChangedEntity<T>
— to id oraz obiekt, jeśli ten obiekt nie został trwale usunięty.

Pobieranie zmienionych encji według znanej rewizji:

Okna wprowadzania daty i czasu

W API V7 stało się możliwe wyświetlanie okien żądania daty i czasu (zobacz artykuł «Okna wprowadzania daty i czasu»).

1. Okno wprowadzania daty.

Okno żądania daty jest wyświetlane za pomocą metody DateTime? IViewManager.ShowDateNumpadPopup(DateTime selectedDate, string title)

date-numpad-popup

2. Okno wprowadzania daty i czasu.

Okno żądania daty i czasu jest wyświetlane za pomocą metody DateTime? IViewManager.ShowDateTimePopup(DateTime selectedDate, string title, DateTime minDate, DateTime maxDate)

date-time-popup

3. Okno kalendarza.

Możesz wyświetlić okno wprowadzania daty jako kalendarz. W tym celu dodano metodę DateTime? IViewManager.ShowCalendarPopup(DateTime selectedDate, string title, DateTime minDate, DateTime maxDate)

calendar-popup