... {toc:maxLevel=3} h2. Описание !Автоматическая выгрузка платежей из CSV.png|border=0,width=700! h3. Где этот интерфейс и как им пользоваться? * Вносить платежи нужно на вкладке "Сервис". * Файлы с данными о платежах должны быть с расширением *.csv*. * Подойдёт *любая* папка. На картинке выше "Абоненты" - просто пример. Платежи всё равно будут зачислены всем абонентам, которые есть в выгрузке, а не только из этой папки. * Вносить платежи из CSV могут только администраторы [из группы root|CarbonBilling:Права доступа. Настройка прав доступа к биллингу. Настройка прав доступа к веб-интерфейсу]. * Загрузив файл с платежами, биллинга напишет об этом сообщение !Загрузка платежей из CSV, сообщение что файл загружен.png|border=0,width=600! h3. Как биллинг определит кому занести платёж? *По-умолчанию* поиск абонента происходит *по номеру договора*. Параметр в конфигурационном файле: {code} contract_number: 0 # Параметр поиска абонента {code} *Но можно иначе*: по одному из [реквизитов|Реквизиты], например по ИНН. Для этого в конфигурационном файле нужно задать два параметра: {code} contract_number: 0 # Параметр поиска абонента special_search_param: 'attr 4' # Специальный параметр поиска, например 'attr 4' = реквизит 4, то есть ИНН {code} h3. Как избежать дублей платежей? При загрузке биллинг проверяет уникальность платежа, чтобы при повторной загрузке платежи не дублировались. Полезно, если: * Вы повторно загружаете тот же файл, например с исправленными ошибками; * При загрузке платежей уже поступивших в биллинг из платёжной системы для сверки и исправления ошибок. Проверка проходит по паре параметров *pay_id_str* и *pay_operator*. Поиск по *pay_operator* регистронезависимый, то есть значения *Sberbank* и *SBERBANK* \- идентичны. h2. 54-ФЗ, онлайн-чеки h3. Как отправлять чеки в онлайн-кассу по платежам физлиц 54-ФЗ? В конфигурационном файле платёжной системы должна быть включена опция: {code}prevent_submit_check: 0{code} h3. Как не отправлять чеки по платежам физлиц? В конфигурационном файле платёжной системы должна быть включена опция: {code}prevent_submit_check: 1{code} h3. Нужны ли чеки по платежам юрлиц? Биллинг не отправляет чеки по любым платежам юрлиц. Чтобы отдавать налоговой данные по платежам юрлиц, [интегрируйте биллинг с 1С|CarbonBilling:Интеграция с 1С]. h2. Настройка h3. Настройка в вэб интерфейсе Добавить настройки для загрузки платежей можно в вэб интерфейсе. Настройки описаны [далее|Автоматическая выгрузка платежей из CSV#Параметры]. !csv_payment_01.png|border=1! h3. Настройка по ssh Для настройки подключитесь к серверу биллинга по ssh. # Зайти в контейнер биллинга {code} chroot /app/asr_billing {code} # В папке */cfg/autocsv/* создаются конфигурации для автоматической выгрузки. Они должны иметь расширение \*.autocsv и права 755: {code} touch /cfg/autocsv/pochtarf.autocsv chmod 755 /cfg/autocsv/pochtarf.autocsv {code} # Укажите [параметры|Автоматическая выгрузка платежей из CSV#Параметры] в файле */cfg/autocsv/pochtarf.autocsv* # Выйдите из контейнера биллинга: {code} exit {code} # Для вступления изменений в силу перезапустите контейнер биллинга командой: {code} /app/asr_billing/service restart {code} h3. Параметры {code:title=Обязательные параметры} # Обязательные параметры csv_path: '/var/autocsv/pochtarf/' # Для каждой конфигурации нужно указать свою поддиректорию contract_number: 0 # Параметр поиска абонента sum_in: 1 # Сумма платежа pay_id_str: 2 # Уникальный номер платежа {code} {code:title=Необязательные параметры} # Необязательные параметры operator_date_in: 3 # Дата платежа operator_datetime_date_in: 31 # Дата платежа состоит из двух столбцов, столбец с датой operator_datetime_time_in: 32 # Дата платежа состоит из двух столбцов, столбец со временем pay_descr: [34, 35] #Список полей, которые нужно передать в поле Описание платежа. Описание платежа будет выглядеть следующим образом: данные из поля pay_operator; поле 34; поле 35 # Столбцы даты и времени соединяются пробелом и заменяют operator_date_in date_format: '%Y.%m.%d %H:%M:%S' # Формат даты и времени платежа csv_comment: '#' # Символ комментария (в начале строки для пропуска) csv_delimiter: ';' # Разделитель CSV-файла, по умолчанию - ; pay_operator: 'Почта РФ' # Название оператора, по умолчанию - Загрузка из CSV skip: 2 # Количество строк, которые нужно пропустить, по умолчанию - 0 skip_end: 2 # Количество строк, которые нужно пропустить в конце файла, по умолчанию - 0 encoding: 'windows-1251' # Входная кодировка, по умолчанию - utf-8 special_search_param: 'attr 4' # Специальный параметр поиска, например 'attr 4' = реквизит 4, то есть ИНН special_pay_id_param_list: [30, 31, 33] # Специальный список параметров для создания номера платежа, если нет уникального поля prevent_submit_check: 0 # параметр, отвечающий за отправку чеков в налоговую: 0 - отправлять чеки, 1 - не отправлять чеки, по умолчанию - 0 incoming_sign: {id: 27, value: C} # Специальный параметр признака поступления, будут загружаться только те платежи, у которых в колонке под номером 27 установлено значение "C" {code} Где числа от 0 до 3 - это номера колонок в CSV-файле. Колонки 0, 1, 2 обязательны. Если колонки 3 не существует, то и в конфигурации её быть не должно. Поддерживаемые форматы даты: {code:title=Поддерживаемые форматы даты} %Y.%m.%d (2016.10.26) %Y.%m.%d %H:%M:%S (2016.10.26 10:01:32) %Y%m%d%H%M%S (20161026100132) {code} {code:title=Пример файла} BILL0005;500;ABC015;20161026100132 BILL0006;1000;AVC014;2016.10.26 10:01:32 {code} Выгружать файлы можно следующими способами: # По протоколу SSH в путь, который был указан в csv_path # Через web-интерфейс вкладка операции у любой группы абонентов (Для этого способа так же необходимо создать конфигурационный файл, по примеру, который указан выше) {info} \*Разделитель "табуляция" следует заводить так: {code}csv_delimiter: '\t'{code} {info} h2. Решение проблем # Ошибки импорта пишутся в лог воркера. Просмотрите лог: {code:title=Команда для просмотра лога} fgrep csv_loading /app/asr_billing/var/log/worker.log {code} {code:title=Пример ошибки} 2019-01-09 21:25:38,559 - worker - csv_loading - ERROR - Абонент с номером договора 123456 не существует или удалён - пропускаем {code} # Посмотрите список платежей, которые не были загружены. Неверные данные помещаются в файл: *incomings.csv.error*. {code:title=Дынные отброшенные обработчиком} /app/asr_billing/var/autocsv/pochtarf/bad/incomings.csv.error {code} В каталоге может содержаться несколько файлов, по одному на каждую попытку загрузки с ошибками.
|
h5. Файл csv остаётся на месте При загрузке платежей может возникнуть ситуация, когда платежи не загружаются, а файл *.csv* остаётся в каталоге */var/autocsv/*. Проблема может быть в слишком большом размере файла. Мы рекомендуем загружать файлы размером до 250 строк. Если файл более 250 строк, сделайте следующее: # Уберите из настроек загрузки платежей параметры пропуска первой или последней строк, если они есть. Это нужно, чтобы случайно не пропустить платежи. {code} skip: 2 # Количество строк, которые нужно пропустить, по умолчанию - 0 skip_end: 2 # Количество строк, которые нужно пропустить в конце файла, по умолчанию - 0 {code} # Удалите строки с комментариями и "шапку" таблицы из файла *.csv*, чтобы остались только данные платежей. # Загрузите файл *.csv* на сервер биллинга по *ssh*. Например в каталог */tmp*. # Перейдите в каталог */tmp*. {code} cd /tmp {code} # Разделите файл на несколько частей утилитой *split*. В примере конечные файлы будут названы *sber__*, двойной символ "_" используется для простоты последующей обработки. {code} split --numeric-suffixes --lines=250 sber.csv sber__ {code} # Добавьте расширение *.csv* к именам файлов. {code} find . -name "sber__*" -exec mv {} {}.csv \; {code} # Переместите файлы по одному в каталог обработки, указанный в файле настроек. Например *sber*. {code} mv sber__00.csv --target-directory=/app/asr_billing/var/autocsv/sber/ {code}
|