Тип оплаты "Без выручки" стал поддерживать тихую оплату
[v8
]
В iikoFront версии 8.4.4 и выше появилась возможность закрывать заказ, содержащий в себе оплату типом “Без выручки”, дистанционно с помощью метода
PayOrder
.
Также в API V8 в
WriteoffPaymentItemAdditionalData
было добавлено новое поле
AuthorizationUser
—
“Сотрудник или гость, на которого производится списание”.
Это поле нужно заполнять в случае, если в настройках типа оплаты “Без выручки” выбрана авторизация сотрудником или гостем.
У передаваемого юзера в персональной карточке должна стоять галочка напротив “Гость” и/или “Сотрудник” в зависимости от настройки в типе оплаты.
Если авторизация в типе оплаты не требуется, AuthorizationUser
можно не указывать.
У сотрудника, чьи
ICredentials
мы передаем в метод добавления оплаты в заказ, должно быть право F_COTH (Закрывать заказы за счет заведения).
Пример использования:
// Сотрудник, у которого будет проверяться право F_COTH (Закрывать заказы за счет заведения).
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 = "Списание",
// Сотрудник или гость, на которого производится списание.
AuthorizationUser = PluginContext.Operations.GetUsers().SingleOrDefault(user => user.Name == "Гость Григорий")
};
// Добавление внешнего непроведенного платежа без выручки.
PluginContext.Operations.AddExternalPaymentItem(order.ResultSum, false, additionalData, null, paymentType, order, credentials);
// Или же добавление обычного платежа без выручки.
// PluginContext.Operations.AddPaymentItem(order.ResultSum, additionalData, paymentType, order, credentials);
order = PluginContext.Operations.GetOrderById(order.Id);
// Дистанционная оплата заказа существующими в заказе платежами локально.
PluginContext.Operations.PayOrder(credentials, order, true);
Документация, которая может быть полезна: