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: