Возврат нужнно проводить в рамках одного документа продажи. Предлагать печать кассового чека, только в том случае, если продажа также проведена с кассовым чеком
POST {YourHost}/method/stock/DivideSale/{id}
//В {id} передаем позицию документа продажи, по которой нужно выполнить операцию деления
Параметр в JSON-формате
{
"db" : "{Здесь_передаем_имя_вашей_базы_данных}",
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"StockLogIn":"ID офиса авторизации/сессии",
"qty":"Кол-во товара, которое нужно будет вернуть",
"GetNewIdBySelect":"1"
}
}
]
}
Ответ сервера при успешной операции деления
[
{
"YourReferenceOperationID": 1,
"result": [
{
"NewID": "ID новой позиции после деления"
}
]
}
]
После успешного деления, обновить содержимое списка товарных позиций по документу продажи
POST {YourHost}/method/cart/SaleReturnFast
Параметр в JSON-формате
{
"db" : "{Здесь_передаем_имя_вашей_базы_данных}",
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"isWebCart":0,
"ShopID":"ID офиса авторизации/сессии",
"PaidCash":"Сумма возврата наличными",
"PaidCard":"Сумма возврата на карту клиенту",
"id_rbCashbox":"ID кассы с котрой производится возврат денежных средств",
"IDJr_base":"ID документа продажи для возврата",
"ArraySaleID":"Список id позиций через запятую для возврата",
"note":"Комментарий по возврату",
"AcceptToOffShelfs":"1 - Вернуть товар обратно на полку с которой списан товар, иначе передать 0 и товар будет принять кладовщиком в модуле Склад",
"LanguageCode":"ru"
}
}
]
}
Ответ сервера при успешном проведеение возврата
[
{
"YourReferenceOperationID": 1,
"result": [
{
"jrDocsID": "ID документа Возврат",
"JrDocPaymentID": "ID документа Расходного кассового ордера (нужен для печати кассового чека)",
"TaxSystemCode": "СНО по которой проведен возврат"
}
]
}
]
POST {YourHost}/method/any/WebPaymentsForReceipt
Параметр в JSON-формате
{
"db" : "{Здесь_передаем_имя_вашей_базы_данных}",
"params" :
[
{
"YourReferenceOperationID" :1,
"jparams":
{
"state" : "FiscalRemote",
"UserID" : "id сотрудника которому в программу нужно отправить команду на печать чека",
"JrDocID" : "ID документа оплаты JrDocPaymentID из предыдущего АПИ",
"ElectronTo" : "передаем пустую строку, для печати чека, иначе email клиента для отправки чека на почту",
"SocketID" : "0",
"section" : "RemoteUser"
}
}
]
}
Ответ сервера
[
{
"YourReferenceOperationID": 1,
"result": [
{
"isOk": "1",
"sockets": "id-список сокетов, куда была отправлена команда печати чека",
"UserID": "id пользователя, на чей компьютер будет отправлена команда печати чека"
}
]
}
]