Przejdź do głównej zawartości

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: