Usm billing: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
 
(не показано 39 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Usm_billing_EN|en]] | [[Usm_billing|ru]]
{{activ}}
{{activ}}


'''US_MIKBILL''' - модуль для организации импорта данных из биллинговой системы MikBill в САП "UserSide"
'''usm_billing''' - модуль для организации импорта данных из биллинговых систем в ERP "UserSide" с использованием т.н. "[[Универсальное API|универсального API]]"


'''Язык модуля:''' Perl
'''Язык модуля:''' PHP


'''Текущая версия:''' см. на странице: [[Модули]]
'''Текущая версия:''' см. на странице: [[Модули]]


'''Статус модуля:''' [http://userside.ua/price.php Платный]
'''Поддерживаемые стандартные биллинги:''' [[uBilling]] v.0.7.2+, [[MikBill]] v.2.8.16+, [[Carbon Billing]] v.5.15.06+, [[ABillS]] v.0.77.50+, [[Platex]] v.7+
 
'''Статус модуля:''' [http://userside.eu/price.php Бесплатный]
 
== Перечень импортируемых данных * ==
 
''* - может меняться в зависимости от того - какие именно данные отдаёт биллинг''
 
'''Тарифные планы'''
* название
* размер абонентской платы
* ежедневная или ежемесячная абонентская плата
* входящая скорость
* исходящая скорость
* объем включённого трафика
 
'''Абоненты'''
* учетная запись
* ФИО
* номер договора и дата
* номер лицевого счета
* текущий тарифный план
* следующий тарифный план
* дата последней активности в интернете
* объем трафика потребленный абонентом за текущий месяц
* адрес абонента ''(населенный пункт, улица, номер дома, корпус дома, квартира)''
* IP/MAC-адреса
* статус работы в биллинге
* заметки по абоненту
* баланс
* кредит
* скидка по абоненту
* 2 номера телефона
* физическое/юридическое лицо
* дата подключения к сети
* адрес электронной почты
* дополнительные поля/данные по абоненту ''(настраиваемо)''
 
== Информация по установке модуля ==
 
Архив usm_billing.zip содержит файлы
 
usm_billing.php
usm_billing.conf.php-example
 
1. Выделить отдельный ''(произвольный)'' каталог для модуля и поместить в него эти файлы
 
2. Выделить отдельный каталог для логов работы модуля. Дайте права на запись в этот каталог.
 
3. Пример файла конфигурации usm_billing.conf.php-example следует переименовать в usm_billing.conf.php и внести в нём требуемые изменения ''(перечень параметров указан ниже)''
 
4. Запустите несколько раз (*) вручную модуль командой
 
php usm_billing.php
 
Он должен отработать без ошибок и вернуть данные:
 
usm_billing
====================================
  Start module at 2015-11-22 17:32:03
Finish module at 2015-11-22 17:32:14
====================================
 
''* - При первом запуске - будут предварительно лишь созданы многие объекты. Чем больше объектов импортирует модуль - тем дольше это будет. При втором и последующих запусках сверяются изменённые данные и только они будут обновлены. Второй запуск также будет длиться долго, т.к. после первого запуска новосозданные объекты практические не содержат данных. А вот третий и последующие запуски будут работать гораздо быстрее.''
 
5. Проверьте визуально полноту импортируемых данных в ERP "UserSide"
 
6. Когда станет понятно, что модуль работает стабильно - добавляем его в системный cron на периодическую работу ''(укажите нужные пути)''
*/10 * * * * php usm_billing.php
 
== Параметры конфигурации ==
 
$billingName        - Тип биллинга [standart|carbon5]
$usersideUrl        - URL к ERP "UserSide"
$usersideApiKey      - [[UserSide API Key|API-ключ ERP "UserSide"]]
$billingUrl          - URL к API биллинга
$billingId          - Номер биллинга в ERP "UserSide" ''("Настройка - Биллинги")''
$logPath            - Путь для записи логов
$isSilence          - Флаг "Режим тишины" ''(скрыть вывод информационных сообщений от модуля в консоль)''
// Можно настроить импорт доп.полей из биллинга в доп.поля абонента ERP "UserSide" (при необходимости)
// Заполняется массив $additionalDataMerge (для userside 3.13 и ранее) или массив $additionalCustomerDataMerge (для userside 3.14 и позже). Можно добавлять свои поля. Если значение кода поля равно нулю - импорт не производится
// Импорт производится в уже созданные доп.поля. Т.е. предварительно - это доп.поле должно быть создано в UserSide для карточки абонента
$additionalCustomerDataMerge - Настройка импорта дополнительных данных/полей
 
Данные параметры можно использовать в т.ч. во всех модулях взаимодействия с стандартными биллингами ''(usm_utm5, usm_abills и т.п.)'', т.к. они построены на базе текущего модуля.


Необходимые модули Perl:
$confIsSkipUpdateAgreementDate    - флаг - пропускать обновления даты договора
  DBI
$confIsDisableCreateAddress        - флаг - не создавать новые адресные объекты при импорте данных
  Socket
$confIsSkipDeleteEmptyIp          - флаг - не удалять у абонентов неиспользуемые IP-адреса
  Time::Local
$confIsForceDeleteEmptyIp          - флаг - принудительно удалять у абонентов неиспользуемые IP-адреса
  FindBin
$confSkipDeleteIp                  - массив с диапазоном игнорируемых к удалению IP-адресов
$confIsImportLessPhone            - флаг - импортировать пустые значения телефонов ''(удалять в userside уже заполненные)''
$confIsImportLessAddress          - флаг - импортировать пустой адрес абонента ''(удалять в userside уже заполненный)''
$confIsUpdateEmptyLevel            - флаг - импортировать пустой этаж абонента ''(удалять в userside уже заполненный)''
$confIsUpdateEmptyEntrance        - флаг - импортировать пустой подъезд абонента ''(удалять в userside уже заполненный)''
$confIsImportPasswordToUsPassword  - флаг - импортировать пароль абонента из биллинга в пароль на вход в личный кабинет UserSide
$confIsSkipUpdateDateActivity      - флаг - не обновлять дату активности абонентов в биллинге
$confIsSkipSyncCustomerIsCorporate - флаг - не обновлять флаг "юридическое лицо" у абонентов
$confIsSkipUnusedAddress          - флаг - не импортировать неиспользуемые адреса
  $isWithoutLog                      - флаг - не создавать файлы логов
  $confAlwaysSetCustomerGroupId      - устанавливать ID группы для всех импортируемых абонентов
  $confIsUseStreetFullName          - флаг - использовать полное имя импортируемой улицы ''(с суффиксом/префиксом)''
  $confIsImportMessage              - флаг - импортировать сообщения абонентов из биллинга ''(там где это возможно)''


Дополнительную информацию и перечень импортируемых данных см. на странице: [[MikBill]]
== Использование модуля в Docker ==


'''Информацию по установке модуля''' и общую информацию для всех модулей см. на странице: [[Модули]]
В Docker-bundle начиная с версии 3.16.6 входит сервис, включающий в себя usm_billing.


Настройка модуля осуществляется в файле '''us_config.tmp'''
Конфигурация сервиса выполняется при помощи переменных окружения прямо в compose.yaml. Имена переменных окружения идентичны именам переменных конфигурации, приведенных в предыдущем разделе.


== Параметры ==
Для более расширенной конфигурации можно подключить дополнительный конфигурационный файл, содержащий лишь специальные переменные, значения которых невозможно установить через переменные окружения. Для этого в compose.yaml для службы usm_billing добавьте или раскомментируйте строку в volumes:
- ${ERP_BASE_DIR}/config/usm_billing_config.php:/module/usm_billing_config.php
И измените (создайте) файл в config/usm_billing_config.php в подкаталоге бандла для указания специальных переменных. Первой строкой этого файла обязательно должна быть строка <code><?php</code>.


$znserver - адрес сервера биллинга
Чтобы включить периодический запуск модуля, вам необходимо раскомментировать соответствующую строку в /etc/cron.d/userside.
$znbase - имя базы данных биллинга
$znuser - имя пользователя для доступа к базе биллинга
$znpass - пароль для доступа к базе биллинга
$zncp - кодировка базы биллинга
$zuserver - адрес сервера с UserSide
$zubase - имя базы данных UserSide
$zuuser - имя пользователя для доступа к базе UserSide
$zupass - пароль для доступа к базе UserSide
$zucp - кодировка базы UserSide
$zusqlport - порт подключения к базе данных ''(по-умолчанию 3306)''
$ps_logpath - путь к логам модуля
$zbillcode - [[Настройка - Биллинги|номер биллинга]] по версии САП "UserSide"
$zsilence - не выводить уведомления о работе модуля в консоль


$zpass_give - сохранять пароль абонента в поле "доп.данные"
Вы также можете запускать модуль вне docker-бандла. Для этого вам необходимо также указать в переменной окружения <code>USERSIDE_API_URL</code> URL вашего USERSIDE.
$zpass_onepass - использовать пароль биллинга как пароль входа абонента в UserSide ''(т.е. заменять пароль в UserSide паролем из биллинга)''

Текущая версия от 07:17, 1 апреля 2024

en | ru

Эта функция является одной из возможностью
обновления даты активности у объекта

usm_billing - модуль для организации импорта данных из биллинговых систем в ERP "UserSide" с использованием т.н. "универсального API"

Язык модуля: PHP

Текущая версия: см. на странице: Модули

Поддерживаемые стандартные биллинги: uBilling v.0.7.2+, MikBill v.2.8.16+, Carbon Billing v.5.15.06+, ABillS v.0.77.50+, Platex v.7+

Статус модуля: Бесплатный

Перечень импортируемых данных *

* - может меняться в зависимости от того - какие именно данные отдаёт биллинг

Тарифные планы

  • название
  • размер абонентской платы
  • ежедневная или ежемесячная абонентская плата
  • входящая скорость
  • исходящая скорость
  • объем включённого трафика

Абоненты

  • учетная запись
  • ФИО
  • номер договора и дата
  • номер лицевого счета
  • текущий тарифный план
  • следующий тарифный план
  • дата последней активности в интернете
  • объем трафика потребленный абонентом за текущий месяц
  • адрес абонента (населенный пункт, улица, номер дома, корпус дома, квартира)
  • IP/MAC-адреса
  • статус работы в биллинге
  • заметки по абоненту
  • баланс
  • кредит
  • скидка по абоненту
  • 2 номера телефона
  • физическое/юридическое лицо
  • дата подключения к сети
  • адрес электронной почты
  • дополнительные поля/данные по абоненту (настраиваемо)

Информация по установке модуля

Архив usm_billing.zip содержит файлы

usm_billing.php
usm_billing.conf.php-example

1. Выделить отдельный (произвольный) каталог для модуля и поместить в него эти файлы

2. Выделить отдельный каталог для логов работы модуля. Дайте права на запись в этот каталог.

3. Пример файла конфигурации usm_billing.conf.php-example следует переименовать в usm_billing.conf.php и внести в нём требуемые изменения (перечень параметров указан ниже)

4. Запустите несколько раз (*) вручную модуль командой

php usm_billing.php

Он должен отработать без ошибок и вернуть данные:

usm_billing
====================================
 Start module at 2015-11-22 17:32:03
Finish module at 2015-11-22 17:32:14
====================================

* - При первом запуске - будут предварительно лишь созданы многие объекты. Чем больше объектов импортирует модуль - тем дольше это будет. При втором и последующих запусках сверяются изменённые данные и только они будут обновлены. Второй запуск также будет длиться долго, т.к. после первого запуска новосозданные объекты практические не содержат данных. А вот третий и последующие запуски будут работать гораздо быстрее.

5. Проверьте визуально полноту импортируемых данных в ERP "UserSide"

6. Когда станет понятно, что модуль работает стабильно - добавляем его в системный cron на периодическую работу (укажите нужные пути)

*/10 * * * * php usm_billing.php

Параметры конфигурации

$billingName         - Тип биллинга [standart|carbon5]
$usersideUrl         - URL к ERP "UserSide"
$usersideApiKey      - API-ключ ERP "UserSide"
$billingUrl          - URL к API биллинга
$billingId           - Номер биллинга в ERP "UserSide" ("Настройка - Биллинги")
$logPath             - Путь для записи логов
$isSilence           - Флаг "Режим тишины" (скрыть вывод информационных сообщений от модуля в консоль)
// Можно настроить импорт доп.полей из биллинга в доп.поля абонента ERP "UserSide" (при необходимости)
// Заполняется массив $additionalDataMerge (для userside 3.13 и ранее) или массив $additionalCustomerDataMerge (для userside 3.14 и позже). Можно добавлять свои поля. Если значение кода поля равно нулю - импорт не производится
// Импорт производится в уже созданные доп.поля. Т.е. предварительно - это доп.поле должно быть создано в UserSide для карточки абонента
$additionalCustomerDataMerge - Настройка импорта дополнительных данных/полей

Данные параметры можно использовать в т.ч. во всех модулях взаимодействия с стандартными биллингами (usm_utm5, usm_abills и т.п.), т.к. они построены на базе текущего модуля.

$confIsSkipUpdateAgreementDate     - флаг - пропускать обновления даты договора
$confIsDisableCreateAddress        - флаг - не создавать новые адресные объекты при импорте данных
$confIsSkipDeleteEmptyIp           - флаг - не удалять у абонентов неиспользуемые IP-адреса
$confIsForceDeleteEmptyIp          - флаг - принудительно удалять у абонентов неиспользуемые IP-адреса
$confSkipDeleteIp                  - массив с диапазоном игнорируемых к удалению IP-адресов
$confIsImportLessPhone             - флаг - импортировать пустые значения телефонов (удалять в userside уже заполненные)
$confIsImportLessAddress           - флаг - импортировать пустой адрес абонента (удалять в userside уже заполненный)
$confIsUpdateEmptyLevel            - флаг - импортировать пустой этаж абонента (удалять в userside уже заполненный)
$confIsUpdateEmptyEntrance         - флаг - импортировать пустой подъезд абонента (удалять в userside уже заполненный)
$confIsImportPasswordToUsPassword  - флаг - импортировать пароль абонента из биллинга в пароль на вход в личный кабинет UserSide
$confIsSkipUpdateDateActivity      - флаг - не обновлять дату активности абонентов в биллинге
$confIsSkipSyncCustomerIsCorporate - флаг - не обновлять флаг "юридическое лицо" у абонентов
$confIsSkipUnusedAddress           - флаг - не импортировать неиспользуемые адреса
$isWithoutLog                      - флаг - не создавать файлы логов
$confAlwaysSetCustomerGroupId      - устанавливать ID группы для всех импортируемых абонентов 
$confIsUseStreetFullName           - флаг - использовать полное имя импортируемой улицы (с суффиксом/префиксом)
$confIsImportMessage               - флаг - импортировать сообщения абонентов из биллинга (там где это возможно)

Использование модуля в Docker

В Docker-bundle начиная с версии 3.16.6 входит сервис, включающий в себя usm_billing.

Конфигурация сервиса выполняется при помощи переменных окружения прямо в compose.yaml. Имена переменных окружения идентичны именам переменных конфигурации, приведенных в предыдущем разделе.

Для более расширенной конфигурации можно подключить дополнительный конфигурационный файл, содержащий лишь специальные переменные, значения которых невозможно установить через переменные окружения. Для этого в compose.yaml для службы usm_billing добавьте или раскомментируйте строку в volumes:

- ${ERP_BASE_DIR}/config/usm_billing_config.php:/module/usm_billing_config.php

И измените (создайте) файл в config/usm_billing_config.php в подкаталоге бандла для указания специальных переменных. Первой строкой этого файла обязательно должна быть строка <?php.

Чтобы включить периодический запуск модуля, вам необходимо раскомментировать соответствующую строку в /etc/cron.d/userside.

Вы также можете запускать модуль вне docker-бандла. Для этого вам необходимо также указать в переменной окружения USERSIDE_API_URL URL вашего USERSIDE.