Платежи из файла: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Рядок 26: Рядок 26:
* user_column_number: номер колонки, в которой содержится идентификатор абонента
* user_column_number: номер колонки, в которой содержится идентификатор абонента
* user_field_in_db: имя поля в базе данных, в котором хранится идентификатор абонента
* user_field_in_db: имя поля в базе данных, в котором хранится идентификатор абонента
* user_db: таблицы, в котором хранится идентификатор абонента (по умолчанию data0)
* user_db: имя таблицы, в котором хранится идентификатор абонента (по умолчанию data0)
* user_id_in_db: имя поля в базе данных, в котором хранится номер абонента (по умолчанию uid)
* user_id_in_db: имя поля в базе данных, в котором хранится номер абонента (по умолчанию uid)
* amount_column_number: номер колонки, в которой содержится сумма пополнения
* amount_column_number: номер колонки, в которой содержится сумма пополнения

Версія за 12:30, 23 грудня 2019

Модуль позволяет загрузить в NoDeny платежи из файла, распределив их по абонентам по определенному признаку. При повторной загрузке файла, дубликаты не будут созданы. Возможна загрузка файлов с разным форматом хранения платежей.

В разделе «Документы» создайте папку с именем, например, «Импорт платежей». В этой папке создайте документ с любым именем, например, по имени банка, чью выписку вы хотите регулярно импортировать. В данном файле необходимо в каждой строке указать имя параметра = значение. Пример:

file_format = csv
file_encoding = cp1251
csv_delimiter = ;
skip_first_line = 1
user_column_number = 10
user_field_in_db = _erdpo
action_when_many_users = ignore
amount_column_number = 15
only_positive_amount = 1
div100_amount = 0
comment_column_number = 16
date_column_number = 5
date_column_format = %d.%m.%Y %H:%M
unique_columns = 5,12
  • file_format: формат файла
  • file_encoding: кодировка файла (cp1251/utf8)
  • csv_delimiter: разделитель столбцов в csv-файле
  • skip_first_line: 1 - не обрабатывать первую строку (обычно она содержит заголовок), 0 - обрабатывать
  • user_column_number: номер колонки, в которой содержится идентификатор абонента
  • user_field_in_db: имя поля в базе данных, в котором хранится идентификатор абонента
  • user_db: имя таблицы, в котором хранится идентификатор абонента (по умолчанию data0)
  • user_id_in_db: имя поля в базе данных, в котором хранится номер абонента (по умолчанию uid)
  • amount_column_number: номер колонки, в которой содержится сумма пополнения
  • only_positive_amount: 1 - разрешается только положительная сумма, 0 - любая
  • div100_amount: 1 - необходимо разделить сумму на 100 (в csv хранится в копейках)
  • comment_column_number: номер колонки, в которой содержится комментарий к платежу
  • date_column_number: номер колонки, в которой содержится дата платежа
  • date_column_format: формат даты (https://www.unix.com/man-page/FreeBSD/3/strftime/)
  • unique_columns: какие колонки определяют уникальность платежа - защита от дубликатов. Колонки "время" и "клиент" можно не указывать - проверяются автоматически
  • pay_category: категория платежа, по умолчанию 4 (банк)

Все колонки нумеруются с единицы.

Импорт платежей

В разделе «Платежи» нажмите на кнопку «Загрузить из файла». В появившемся окне выберите документ с настройками, по которым мы хотим распарсить файл с платежами. Затем выберите сам файл.

Установка модуля

    cd /usr/ports/textproc/p5-Text-CSV && make install clean

или

    apt-get install libtext-csv-perl