Все настройки обмена задаются в конфигурационном файле  /linuxcash/cash/exchangesystems/exchangers/config/cash/exchnagers.ini.

Выгрузка продаж в формате Smag

Для выгрузки продаж в формате smag необходимо:

  • указать название конвертера в секции [UNLOAD]converter smag,
  • сконфигурировать секцию выгрузки [unload.converter.smag],
  • сконфигурировать секцию соответствия типов оплат в кассовой программе типам оплат в АСТУ: [unload.converter.smag.valut].
Наименование
Тип данных
Возможные значения
Описание
Примечания
salePathстроковый


Путь выгрузки продаж (директория)

По умолчанию /tmp/sales/
flagPathстроковый
Путь к файлу-флагу выгрузки продаж

Указывается полный путь. Выгрузка продаж производится в соответствии с содержимым файла-флага.

По умолчанию /tmp/sales/sale.req

fileTypeстроковый
  • dat
  • dbf
Формат данных, в котором происходит обмен между кассой и товароучетной системой

Формат dat подразумевает обмен данными через текстовые файлы csv (данные, разделенные запятыми).
Формат dbf – обмен данными через dbf файлы

Обмен данными через dbf файлы не поддержан для кассовой программы на базе Ubuntu 22.04.


charset строковый
  • utf_8
  • U8
  • UTF
  • utf8
  • cp1251
  • windows-1251
  • cp866
  • 866
  • IBM866
Кодовая страница данныхПо умолчанию cp866
currentSalesPathстроковый


Директория выгрузки данных текущих продаж

По умолчанию /tmp/currentSales

appendSaleFiles

логический
  • true
  • false

Дописывать файлы, расположенные в целевом каталоге с выгруженными продажами:

  • true – файлы выгрузки продаж дописываются,
  • false – добавление информации в файлы продаж не выполняется.
По умолчанию false

rewriteDestFile

логический
  • true
  • false

Перезапись целевого файла при копировании файлов из рабочей директории:

  • при значении параметра true целевой файл перезаписывается. Если файл продаж не был передан в товароучетную систему до новой выгрузки продаж, то данные будут потеряны,
  • при значении параметра false целевой файл не перезаписывается. Если файл продаж не был передан в товароучетную систему, то вновь полученные данные хранятся в рабочей директории до тех пор, пока данные предыдущей выгрузки не будут переданы в АСТУ.
По умолчанию false
distributePaymentsForPositionsлогический
  • true
  • false

Распределять оплаты и скидки по позициям в файлах выгрузки продаж cashSail.dat и cashDisc.dat:

  • true – при выгрузке продаж происходит распределение оплат и скидок по позициям,
  • false – при выгрузке продаж распределение оплат и скидок по позициям не происходит. В позицию записывается оплата, которая была применена первой в чеке, а скидка записывается общей суммой.
По умолчанию false
Пример настройки
[UNLOAD]
; Список конвертеров данных разделенный запятыми (aif, aif-xml, oracle, shtrih, smag, smag-xml, atol, atol-astor, crystal, ns2000, pilot, sap, pilot-original)
converter = smag
... 
[unload.converter.smag]
; <параметры_конвертера>
; Путь выгрузки продаж (директория)
;salePath = /tmp/sales/

; Путь к файлу-флагу выгрузки продаж
;flagPath = /tmp/sales/sale.req

; Формат данных, которыми обмениваются касса и товароучетная система. Тип файлов
; dat означает обмен данными через текстовые файлы csv (данные разделенные запятыми),
; dbf - обмен данными через dbf файлы.
; По умолчанию dat
;fileType = dat

; Кодовая страница данных. Если значение параметра не установлено, используется cp866
; Примеры кодировок: utf_8, U8, UTF, utf8, cp1251, windows-1251, cp866, 866, IBM866 и др.
;charset = cp866

; Директория в которую касса выкладывает результаты продаж текущей смены,
; предназначенные для учетной системы.
;currentSalesPath = /tmp/currentSales

; Дописывать файлы, расположенные в целевом каталоге с выгруженными продажами
; По умолчанию: False
;appendSaleFiles = False

; Перезапись целевого файла при копировании файлов из рабочей директории
; True - перезаписывать, False - нет.
; По умолчанию False
;rewriteDestFile = False

; Распределять оплаты по позициям
; По умолчанию: False
;distributePaymentsForPositions = False

[unload.converter.smag.valut]
; <Соотвествие типов оплат на кассе и учетной системе>
; <код_типа_оплаты_артикс>=<код_типа оплаты_асту>
;1 = 4
 ...
Пример выгрузки продаж

Чек продажи на сумму 210.11

1-я позиция стоимостью 24.90

2-я позиция стоимостью 24.90

3-я позиция стоимостью 160.31

Применена скидка 10% на каждую позицию, итоговая сумма чека 189.10. Оплата наличными 40 руб и безналичная оплата 149.10.

Настройка distributePaymentsForPositions выключена

Выгрузка продаж осуществляется в файл cashSail.dat:

1,1,67,1,1,24/05/2019,0951,"102","NOSIZE",1.000,24.90,0,22.41,0,0,4,1,1,1,0,0,0

1,1,67,1,2,24/05/2019,0951,"105","NOSIZE",1.000,24.90,0,22.41,0,0,4,1,1,1,0,0,0

1,1,67,1,3,24/05/2019,0951,"1029","NOSIZE",1.000,160.31,0,144.28,0,0,4,1,1,1,0,0,0

где 10 поле - количество товара/вес не разбивается, 13 поле - сумма оплаты валютой равна стоимости позиции с учетом скидки, 20 поле - код валюты (имеет значение 0, т.к. в позицию записывается оплата, которая была применена первой в чеке, в данном случае наличные).


Выгрузка информации о скидках осуществляется в файл cashDisc.dat:

1,1,67,1,1,2,10.00,2.49,0

1,1,67,1,2,2,10.00,2.49,0

1,1,67,1,3,2,10.00,16.03,0

где 8 поле - скидка в базовой валюте не разбивается.

Настройка distributePaymentsForPositions включена

Выгрузка продаж осуществляется в файл cashSail.dat:

1,1,67,1,1,24/05/2019,0951,"102","NOSIZE",1.000,24.90,0,22.41,0,0,4,1,1,1,0,0,0

1,1,67,1,2,24/05/2019,0951,"105","NOSIZE",0.785,24.90,0,17.59,0,0,4,1,1,1,0,0,0

1,1,67,1,3,24/05/2019,0951,"105","NOSIZE",0.215,24.90,0,4.82,0,0,4,1,1,5,3,0,0

1,1,67,1,4,24/05/2019,0951,"1029","NOSIZE",1.000,160.31,0,144.28,0,0,4,1,1,5,3,0,0

где 10 поле - количество товара/вес разбивается пропорционально суммам, 13 поле - сумма оплаты валютой, 20 поле - код валюты (0 - для наличных, 3 - код способа оплаты, который назначен в настройках Валюты). 


Выгрузка информации о скидках осуществляется в файл cashDisc.dat:

1,1,67,1,1,2,10.00,2.49,0

1,1,67,1,2,2,10.00,1.95,0

1,1,67,1,3,2,10.00,0.54,0

1,1,67,1,4,2,10.00,16.03,0

где 8 поле - скидка в базовой валюте разбивается по позициям пропорционально суммам при оплате чека разными способами.

Выгрузка текущих продаж в формате Smag

Часто в сетях требуется производить выгрузку текущих продаж для отслеживания состояния имеющейся в наличии продукции.

Для настройки выгрузки текущих продаж требуется:

  • указать название конвертера в секции [UNLOAD]convertersmag,
  • сконфигурировать соответствующую секцию выгрузки [unload.converter.smag],
  • указать директорию для выгрузки текущих продаж с помощью параметра currentSalesPath.
Пример настройки
[UNLOAD]
...
converter = smag
; интервал выгрузки текущих продаж (в секундах)
; если указать значение 0, то текущие продажи выгружаться не будут
unloadCurrentSalesInterval = 0
...
[unload.converter.smag]
; Директория, в которую выгружаются результаты продаж текущей смены, 
; предназначенные для товароучетной системы. 
currentSalesPath = /tmp/currentSales

Для удаления данных о текущих продажах нужно выполнить скрипт с параметром "-o":

./unload_sales.sh -o

Результатом работы данного скрипта будет удаление данных о текущих продажах.

Выгрузка продаж в формате Smag-xml

На данный момент поддержана выгрузка смен и текущая выгрузка чеков (выгрузка поддержана для чеков продажи, чеков возврата и возврата по чеку продажи).

Для выгрузки продаж в формате smag-xml необходимо:

  • указать название конвертера в секции [UNLOAD]converter smag-xml,
  • сконфигурировать секцию выгрузки [unload.converter.smag-xml],
  • сконфигурировать секцию соответствия типов оплат в кассовой программе типам оплат в АСТУ: [unload.converter.smag-xml.paymentMapper].
НаименованиеТип данныхВозможные значенияОписаниеПримечания
salePathстроковый
Путь выгрузки продаж (директория)

По умолчанию /tmp/sales/.

Файл продаж для каждой смены будет сформирован по шаблону shift_[shopcode]_[cashcode]_[shiftnum]_[1].xml.

[1] – номер выгрузки данной смены или чека.
rewriteDestFileлогический
  • true
  • false
Перезапись целевого файла при копировании файлов из рабочей директорииПо умолчанию true
dataTypeстроковый
  • sales – продажи,
  • crights – журнал событий,
  • all – продажи и журнал событий.
Тип выгружаемых данныхПо умолчанию sales
flagPathстроковый
Путь к файлу-флагу выгрузки продажПо умолчанию /tmp/sale.req
onlineSalePathстроковый
Путь выгрузки оперативных продаж (директория)

По умолчанию /tmp/salesOnline/.

Файл продаж для каждого чека будет сформирован по шаблону receipt_[shopcode]_[cashcode]_[shiftnum]_[docnum]_[1].xml.

[1] – номер выгрузки данной смены или чека.
withClosedShiftsлогический
  • true
  • false
Выгружать закрытые смены если нет документовПо умолчанию true
Пример настройки
[UNLOAD]
; Список конвертеров данных разделенный запятыми (aif, aif-xml, oracle, shtrih, smag, smag-xml, atol, atol-astor, crystal, ns2000, pilot, sap, pilot-original)
converter = smag-xml
...
[unload.converter.smag-xml]
; <параметры_конвертера>
; Путь выгрузки продаж (директория)
; Файл продаж для каждой смены будет сформирован по шаблону: shift_[shopcode]_[cashcode]_[shiftnum]_[1].xml
salePath = /tmp/sales/

; Перезапись целевого файла при копировании файлов из рабочей директории
; True - перезаписывать, False - нет
; По умолчанию False
rewriteDestFile = True

; Тип выгружаемых данных. sales - продажи, crights - журнал событий, all - и продажи и журнал событий.
; По умолчанию: sales
;dataType = sales

; Путь к файлу-флагу выгрузки продаж
flagPath = /tmp/sale.req

; Путь выгрузки оперативных продаж
; Путь выгрузки продаж (директория)
onlineSalePath = /tmp/salesOnline/

; Выгружать закрытые смены если нет документов
; По умолчанию True
;withClosedShifts = True

[unload.converter.smag-xml.paymentMapper]
; <Соотвествие типов оплат в ФР на кассе и учетной системе>
; <код_типа_оплаты_артикс>=<код_типа оплаты_асту>
1 = 0
2 = 101

Для выгрузки сумм продаж и возвратов по типам валют из ККМ необходимо задать соответствие типов оплат в секции [unload.converter.smag-xml.paymentMapper].

На данный момент выгрузка сумм поддержана только для наличной и безналичной оплаты.

Получение сумм продаж и возвратов по валютам из ККМ осуществляется следующим образом:

  1. При выгрузке оплат по смене значение валюты УКМ записывается в файл .xml в поле paymentId (например, 101 – оплата банковской картой или 0 – оплата наличными).
  2. Данное значение сравнивается со значениями, заданными в маппинге. Если значение найдено в маппинге, то из данного значения будет получен код типа оплаты Artix (например, 2=101).
  3. Значения полей sumSaleByPayment2 и sumBackByPayment2 из БД Documents таблицы Kkm записываются в файл .xml в теги kkm_paymentAmountSale и kkm_paymentAmountReturn соответственно.


Выгрузка текущих продаж в формате Smag-xml

Часто в сетях требуется производить выгрузку текущих продаж для отслеживания состояния имеющейся в наличии продукции.

Для настройки выгрузки текущих продаж требуется:

  • указать название конвертера в секции [UNLOAD]convertersmag-xml,
  • сконфигурировать соответствующую секцию выгрузки [unload.converter.smag-xml],
  • указать директорию для выгрузки текущих продаж с помощью параметра onlineSalePath.
Пример настройки
[UNLOAD]
...
converter = smag-xml
; интервал выгрузки текущих продаж (в секундах)
; если указать значение 0, то текущие продажи выгружаться не будут
unloadCurrentSalesInterval = 0
... 
[unload.converter.smag-xml]
; Путь выгрузки оперативных продаж
; Путь выгрузки продаж (директория)
onlineSalePath = /tmp/salesOnline/

Для удаления данных о текущих продажах нужно выполнить скрипт с параметром "-o":

./unload_sales.sh -o

Результатом работы данного скрипта будет удаление данных о текущих продажах.

  • No labels