Przejdź do głównej zawartości

Wskaźnik płatności z rabatem i lista rabatów płatności

Do API V8Preview1 dodano nową właściwość dla typu płatności IPaymentType.IsDiscount, która wskazuje, czy typ płatności jest z rabatem, tj. realizowany jako rabat.

Dostępna stała się również lista rabatów w zamówieniu IOrder.PaymentDiscounts, która jest wynikiem zastosowania płatności zamówienia IOrder.Payments, które są z rabatem, tj. realizowane jako rabat na zamówione dania. Takie płatności są niefiskalne i na stronie kasy fiskalnej fiskalizowane są nie jako płatności, lecz jako rabaty przez obniżenie kosztu dań.

Powiadomienia o usuwaniu zewnętrznej płatności z zamówienia zostały dodane do API V8

Podczas próby usunięcia zewnętrznej płatności wywoływana jest metoda OnPaymentDeleting na odpowiednim IPaymentProcessor.

Niektóre systemy płatności wymagają dokonania płatności w systemie zewnętrznym zanim zamówienie zostanie opłacone w Syrve, więc istnieje okres czasu, gdy płatność została już dokonana w systemie zewnętrznym, ale jeszcze nie w Syrve.
Wcześniej użytkownik mógł usunąć taką płatność bez śladu, a ponieważ Syrve traktowało tę płatność jako nieuregulowaną, była ona usuwana bez anulowania, co prowadziło do błędnej dodatkowej transakcji w systemie zewnętrznym.

Teraz procesor płatności w metodzie OnPaymentDeleting może według własnego uznania:

  • nic nie robić - jeśli płatność nie została jeszcze dokonana i nie wymaga żadnych działań przy usuwaniu,
  • anulować płatność w systemie zewnętrznym,
  • zabronić usunięcia płatności w Syrve generując jeden z wyjątków:
    • PaymentActionCancelledException — anulowanie usunięcia bez dodatkowych komunikatów (np. jeśli wtyczka wcześniej wyświetliła jakieś pytanie, a użytkownik wybrał anulowanie),
    • PaymentActionFailedException — zakaz usunięcia z wyświetleniem komunikatu o błędzie (np. jeśli nie udało się anulować płatności w systemie zewnętrznym).

Na razie działa to tylko przy próbie usunięcia z ekranu płatności. Wywołanie metody OnPaymentDeleting podczas usuwania płatności przez API (DeleteExternalPaymentItem) zostanie zaimplementowane później.

Wersja LTS V7 wydana

API V7 wydane. Jest to wersja LTS, wtyczki opracowane dla V7 będą wspierane przez wszystkie wersje Syrve Office, które zostaną wydane w ciągu najbliższych 4 lat. Biblioteka Resto.Front.Api.V7 jest dostępna jako pakiet NuGet, przykłady użycia tutaj.

Wraz z wydaniem V7, poprzednia wersja LTS V6 zostaje uznana za przestarzałą, w tym statusie będzie wspierana przez kolejne 2 lata, w trakcie których wtyczki napisane dla V6 muszą zostać przeniesione do V7. Wsparcie dla V5 zostało zakończone. Rozpoczęto rozwój V8, a za 3 miesiące zostanie wydana pierwsza wersja podglądowa. Więcej informacji o wersjonowaniu znajdziesz tutaj.

Pokazywanie względnej liczby modyfikatorów

W API V7 dla restauracji stało się możliwe dostosowanie sposobu wyświetlania liczby grup modyfikatorów dla dania.
Dodano nową właściwość bool IRestaurant.DisplayRelativeNumberOfModifiers, wskazującą, że w przypadku false ilość modyfikatora dania powinna być wyświetlana jako ilość absolutna (tak jak wcześniej), a w przypadku true jako różnica między ilością absolutną modyfikatora a jego ilością domyślną.

To ustawienie wpływa na wyświetlanie modyfikatorów na ekranach edycji zamówienia, zamkniętego zamówienia, listy dostaw, listy zamówień, CDS oraz na paragonach serwisowych.

(dla więcej szczegółów Pokazywanie względnej liczby modyfikatorów).

Zamknięcie opłaconego, dostarczonego zamówienia dostawy z API

Począwszy od API V8Preview1, możliwe stało się zamknięcie dostawy bezpośrednio z poziomu wtyczki.

Dostawa kurierska może zostać zamknięta przez wywołanie metody SetDeliveryCloseTime. W tym przypadku zamówienie dostawy musi mieć status „Zamknięte”. (IDeliveryOrder.Status == OrderStatus.Closed, czyli opłacone. Płatność za zamówienia dostawy została dokonana wcześniej, jak opisaliśmy w notatce. Sama dostawa musi mieć status „Dostarczone”. (IDeliveryOrder.DeliveryStatus == DeliveryStatus.Delivered). Można oznaczyć dostawę jako dostarczoną, wywołując kolejno metody SetDeliveryDelivered oraz ChangeDeliveryActualDeliverTime.

Metoda przyjmuje jako parametr czas zamknięcia dostawy DateTime? closeTime. Jeśli ustawisz ten parametr na null, metoda zmieni status dostawy z „Zamknięte” z powrotem na „Dostarczone”.

Ta metoda nie działa dla dostaw typu odbiór osobisty, ponieważ aby zamknąć taką dostawę, wystarczy ją opłacić, jak wspomniano w notatce, a zwrot takiej dostawy oznacza odwrócenie zamówienia (czyli zwrot płatności), co nie jest jeszcze obsługiwane przez API.

Dialog do wprowadzania dowolnych ciągów znaków oraz odczytu kodów kreskowych i kart

Nowa metoda dodana do API V7 IViewManager.ShowExtendedKeyboardDialog, która obsługuje następujące typy danych wejściowych:

  • dowolny ciąg znaków.
  • ukryty ciąg znaków, na przykład wprowadzanie hasła.
  • odczyt kodu kreskowego.
  • odczyt karty.

Więcej na ten temat można przeczytać w artykule Dialog do wprowadzania ciągów znaków i kodów kreskowych. Artykuł o innych oknach dialogowych do wprowadzania wartości: Okna dialogowe.

Lokalizacja

Począwszy od API V7, gdy aplikacja się uruchamia, wtyczki automatycznie otrzymują ustawienia języka z ustawień terminala.
Ponadto, aby śledzić zmianę języka na działającym terminalu, dodano zdarzenie INotificationService.CurrentCultureChanged.

(zobacz więcej szczegółów Lokalizacja).