Публичный ресурс
Выгрузка чеков вместе со скидками и бонусными операциями
- CORE-352Получение подробных данных проблемы… СТАТУС
10.2.54.0
С версии 10.2.54.0 в веб-сервисе FiscalInfoExport появилось два новых метода для выгрузки чека вместе со скидками и бонусными операциями одновременно: getFullPurchasesByParams и getNewFullPurchasesByOperDay.
Методы начинают работать сразу и не требуют настройки
Чеки и их скидки с кассы в опердень сервера приходят не одновременно. В случае, если для чека были скидки, но в опердень они ещё не пришли, такой чек не будет возвращаться веб-сервисами, пока для чека не придут скидки.
Метод getFullPurchasesByParams
Метод getFullPurchasesByParams предназначен для получения из опердня инорфмации о чеках и расчетов скидок по ним, удовлетворяющих передаваемому в аргументах фильтру. Аргументы метода представлены в таблице 1.
Таблица 1 - аргументы метода getFulPurchasesByParams
Аргумент | Тип | Назначение | Обязательный |
---|---|---|---|
dateOperDay | Date | Определяет дату, за которую из опердня следует выбрать чеки | Да |
shopNumber | Long | Определяет номер магазина, чеки которого из опердня следует получить | Нет |
cashNumber | Long | Определяет номер кассы, чеки которой из опердня следует получить | Нет |
shiftNumber | Long | Определяет номер смены, чеки которой из опердня следует получить | Нет |
purchaseNumber | Long | Определяет номер чека, который из опердня следует получить | Нет |
Пример вызова метода представлен в коде 1.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:plug="http://plugins.operday.ERPIntegration.crystals.ru/"> <soapenv:Header/> <soapenv:Body> <plug:getFullPurchasesByParams> <dateOperDay>2018-08-16</dateOperDay> <shopNumber>6502</shopNumber> <cashNumber>1</cashNumber> <shiftNumber>1</shiftNumber> <purchaseNumber>2</purchaseNumber> </plug:getFullPurchasesByParams> </soapenv:Body> </soapenv:Envelope>
Код 1 - пример вызова метода getFullPurchasesByParams
Методом веб-сервиса ответ возвращается закодированным в base64. Раскодированный ответ на запрос из кода 1 представлен в коде 2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <purchases count="1"> <purchase tabNumber="1" userName="1 1 1" operationType="true" operDay="2018-08-16+03:00" shop="6502" cash="1" shift="1" number="2" saletime="2018-08-16T12:21:23.017+03:00" begintime="2018-08-16T12:20:45.840+03:00" amount="10.52" discountAmount="3.71" inn="123456799798"> <plugin-property key="ext.loy.processing.example.external.receipt.id" value="123469877"/> <plugin-property key="ext.loy.processing.example.some.other.field" value="whatever"/> <positions> <position order="1" departNumber="1" goodsCode="00001" barCode="4600001000007" count="1.0" cost="14.23" nds="18.0" ndsSum="1.6" discountValue="3.71" costWithDiscount="10.52" amount="10.52" dateCommit="2018-08-16T12:20:45.851+03:00" insertType="1"/> </positions> <payments> <payment typeClass="CashChangePaymentEntity" amount="0.48" description=""/> <payment typeClass="CashPaymentEntity" amount="1.0" description="Оплата наличными"/> <payment typeClass="foo.service.payment" amount="10.0" description="Оплата электронным кошельком"> <plugin-property key="authorization.code" value="385281233141592"/> <plugin-property key="transaction.number" value="01234567890"/> </payment> </payments> <discountCards> <discountCard>780000000005</discountCard> </discountCards> <card type="EXTERNAL" number="780000000005" guid="15346"/> <discount positionId="1" goodCode="00001" amount="0.71" isDiscountPurchase="false" AdvertActGUID="14659" AdvertActExternalCode="SR10_14659" AdvertActDiscountType="-1" advertType="DISCOUNT" quantity="1.0" externalActionId="plugin-discount"/> <discount positionId="1" goodCode="00001" amount="3.0" isDiscountPurchase="false" AdvertActGUID="14659" AdvertActExternalCode="SR10_14659" AdvertActDiscountType="-1" advertType="DISCOUNT" quantity="1.0" card-number="780000000005" transactionId="123-456-789" externalActionId="bonus-discount"/> <bonuses> <chargeOnBonuses transactionId="978-789-546" bonusesType="BONUS_SR10" amount="13.0" cardNumber="780000000005"/> <chargeOnBonuses transactionId="123456-8789" bonusesType="BONUS_SR10" amount="10.0" cardNumber="780000000005"/> <chargeOnBonuses transactionId="123456-8789" bonusesType="BONUS_SR10" amount="10.0" cardNumber="780000000005"/> <writeOffBonuses transactionId="123-456-789" bonusesType="BONUS_SR10" amount="3.0" cardNumber="780000000005"/> </bonuses> </purchase> </purchases>
Код 2 - раскодированный из base64 ответ от метода getFullPurchasesByParams
Метод getNewFullPurchasesByOperDay
Метод getNewFullPurchasesByOperDay предназначен для получения новых чеков, т.е тех, которые веб-сервисом ранее не отдавались. Ответ его аналогичен ответу из кода 2, однако методы различаются также сигнатурой: метод getNewFullPurchasesByOperDay принимает массив параметров в качестве аргументов. Параметры перечислены в таблице 2.
Таблица 2 - массив аргументов метода getNewFullPurchasesByOperDay
Индекс | Тип | Назначение | Обязательный |
---|---|---|---|
0 | Date | Дата, за которую из опердня требуется получить новые чеки | Да |
1 | Long | Номер магазина, от которого из опердня следует выбрать новые чеки | Нет |