Публичный ресурс
Выгрузка чеков вместе со скидками и бонусными операциями
- 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 | Номер магазина, от которого из опердня следует выбрать новые чеки | Нет |
2 | Long | Номер кассы, от которой из опердня следует выбрать новые чеки | Нет |
3 | Long | Номер смены, от которой из опердня следует выбрать новые чеки | Нет |
4 | Long | Номер чека, который следует выбрать. | Нет |
Минимальный размер массива аргументов метода - 1 (потому что параметр "дата опердня" обязательный). Если хочется пропустить, например, параметр "номер смены", его следует выставить в null, потому что за номером смены следует номер чека. Однако, если хочется пропустить номер чека, массиву допустимо быть длиной 4, потому что за параметром "номер чека" ничего не следует.
Пример вызова метода представлен в коде 3.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:plug="http://plugins.operday.ERPIntegration.crystals.ru/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header/> <soapenv:Body> <plug:getNewFullPurchasesByOperDay> <arrayOfParams xsi:type="xs:dateTime">2018-08-16T12:00:00.000</arrayOfParams> <arrayOfParams xsi:type="xs:long">6502</arrayOfParams> <!-- Номер магазина --> <arrayOfParams xsi:type="xs:long">1</arrayOfParams> <!-- Номер кассы --> <arrayOfParams xsi:type="xs:long">1</arrayOfParams> <!-- Номер смены --> <arrayOfParams xsi:type="xs:long">2</arrayOfParams> <!-- Номер чека --> </plug:getNewFullPurchasesByOperDay> </soapenv:Body> </soapenv:Envelope>
Код 3 - пример вызова метода getNewFullPurchasesByOperDay
Метод возвращает ответ, аналогичный коду 2.
© 1994-2024, ООО "Кристалл Сервис Интеграция".
Все права защищены.