Przejdź do głównej zawartości

Odbieranie zamkniętych zamówień

API V8Preview4 rozszerzyło możliwość uzyskiwania informacji o zamkniętych zamówieniach.

Metoda GetPastOrder została zmieniona tak, aby wymagała tylko Id zamówienia.

Dodano również dwie nowe metody: GetPastOrders oraz GetPastOrdersBySum.

GetPastOrders umożliwia wyszukiwanie zamówienia po jego numerze. Jeśli numer zamówienia jest nieobecny, zostaną zwrócone informacje o wszystkich zamkniętych zamówieniach dla określonego przedziału czasowego.

GetPastOrdersBySum wyszukuje zamówienia na podstawie całkowitej kwoty zapłaty (po wszystkich rabatach i dopłatach).

W powyższych metodach ustawienie przedziału czasowego jest opcjonalne. Jeśli jest nieobecne, przedział zostanie ustawiony na okres ostatnich 3 miesięcy.

Dodano możliwość łączenia zamówień w zamówienie uzupełniające za pomocą API

Do API V8 dodano metodę MarkOrderAsAdditional, która pozwala przypisać zamówienie current jako zamówienie uzupełniające do zamówienia parent. Właściwość GroupOrderId zamówienia current jest ustawiana na wartość właściwości Id zamówienia parent, lub na null, jeśli parent == null.

Zamówienie current nie może być null, parent może być null, jeśli chcesz anulować łączenie zamówień w zamówienie uzupełniające. Zamówienie current musi być otwarte, parent może być zamówieniem otwartym lub zamkniętym. Zarówno zamówienia current, jak i parent nie mogą być zamówieniami na dowóz.

Nawigacja do zamówienia inicjowana przez wtyczkę

W API V8 zrobiliśmy pierwszy krok w kierunku możliwości nawigacji między ekranami SyrvePOS z inicjatywy wtyczki.
Na razie obsługiwana jest tylko nawigacja do zamówienia za pomocą przycisków wtyczki lub z ekranu edycji zamówienia.

W IViewManager
dodano nową metodę
NavigateToOrderAfterOperation.

Można ją wywołać w menedżerze widoku, który jest przekazywany do wtyczki po kliknięciu przycisków wtyczki:

A także w menedżerze widoku, który jest przekazywany do wtyczki podczas edycji z API aktualnie otwartego zamówienia w SyrvePOS:

Nawigacja jest możliwa tylko w otwartym zamówieniu.
Przy wywołaniu metody sprawdzane są odpowiednie uprawnienia aktualnie zalogowanego pracownika w SyrvePOS.
Te same, które są sprawdzane przy nawigacji poprzez naciśnięcie przycisków na froncie.
Nawigacja do zamówienia dostawy nie jest jeszcze możliwa.

Zapłać za swoje zamówienie przy aktualnej kasie

Wcześniej zamówienia z API mogły być opłacane tylko przy głównym terminalu.
W tym przypadku główny terminal musiał być kasą fiskalną (z podłączonym rejestrem fiskalnym).
W jednej z poprzednich wersji
podjęliśmy próbę pozbycia się terminu „Główna Kasa” poprzez oddzielenie głównego terminala od punktu sprzedaży, a w konsekwencji od rejestru fiskalnego.
API V8 zrobiło kolejny krok, pozwalając na opłacenie zamówienia na lokalnym terminalu.

W metodach PayOrder
oraz PayOrderAndPayOutOnUser
dodano nowy argument isPaymentLocal, który zależy od tego,
czy zamówienie zostanie opłacone przy lokalnym rejestrze fiskalnym,
czy zostanie opłacone przy rejestrze fiskalnym głównego terminala.

Przypominamy, że płatność za zamówienie za pomocą
PayOrderAndPayOutOnUser
gotówką, tworzy zadłużenie dla kelnerów.
Wcześniej takie zadłużenie było uwzględniane tylko przy głównym terminalu.
Teraz zadłużenie jest uwzględniane na wszystkich terminalach, na których taka płatność miała miejsce.
Takie zadłużenie można spłacić tylko na terminalu, na którym zostało wygenerowane (na którym taka płatność miała miejsce).

Typ płatności "Bez przychodu" teraz obsługuje cichą płatność

W wersji SyrvePOS 8.4.4 i wyższych możliwe stało się zdalne zamknięcie zamówienia zawierającego typ płatności "Bez przychodu" za pomocą metody PayOrder.

Również w API V8 WriteoffPaymentItemAdditionalData dodano nowe pole AuthorizationUser — "Pracownik lub gość, na którego dokonuje się obciążenia". Pole to musi być wypełnione, jeśli w ustawieniach typu płatności „Bez przychodu” wybrano autoryzację przez pracownika lub gościa. Przekazany użytkownik musi mieć zaznaczoną opcję „Gość” i/lub „Pracownik” w swojej karcie osobistej, w zależności od ustawień w typie płatności. Jeśli w typie płatności nie wymaga się autoryzacji, AuthorizationUser można pominąć.

Pracownik, którego ICredentials przekazujemy do metody dodawania płatności do zamówienia, musi posiadać prawo F_COTH (Zamykanie zamówień na koszt zakładu).

Przykład użycia:

// Pracownik, którego prawo do F_COTH (Zamykanie zamówień na koszt zakładu) będzie sprawdzane.
var credentials = PluginContext.Operations.AuthenticateByPin("777");
var order = PluginContext.Operations.GetOrders().Last(o => o.Status == OrderStatus.New);
var paymentType = PluginContext.Operations.GetPaymentTypes().First(x => x.Kind == PaymentTypeKind.Writeoff);
var additionalData = new WriteoffPaymentItemAdditionalData
{
Ratio = 1,
Reason = "Obciążenie",
// Pracownik lub gość, na którego dokonuje się obciążenia.
AuthorizationUser = PluginContext.Operations.GetUsers().SingleOrDefault(user => user.Name == "Gość Gregory")
};
// Dodanie zewnętrznej nierozliczonej płatności bez przychodu.
PluginContext.Operations.AddExternalPaymentItem(order.ResultSum, false, additionalData, null, paymentType, order, credentials);
// Lub dodanie zwykłej płatności bez przychodu.
// PluginContext.Operations.AddPaymentItem(order.ResultSum, additionalData, paymentType, order, credentials);

order = PluginContext.Operations.GetOrderById(order.Id);
// Zdalna płatność zamówienia przy użyciu lokalnych płatności istniejących w zamówieniu.
PluginContext.Operations.PayOrder(credentials, order, true);

Dokumentacja, która może być przydatna:

Nadpisywanie tekstu na standardowych przyciskach dialogowych

W API V8 stało się możliwe nadpisywanie tekstów „Tak”, „Nie”, „OK”, „Anuluj”, „Zamknij”, „Ponów”, „Kontynuuj” na standardowych przyciskach dialogowych.

Do metod wyświetlających standardowe dialogi zostały dodane nowe opcjonalne parametry dla tekstów przycisków.
Domyślnie parametry nie muszą być podawane; przyciski wyświetlą wartości domyślne.
Jeśli ustawisz parametry, przyciski wyświetlą określony tekst.

Lista zmodyfikowanych metod: