Usm billing: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
(не показаны 23 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
[[Usm_billing_EN|en]] | [[Usm_billing|ru]] | |||
{{activ}} | {{activ}} | ||
Строка 7: | Строка 9: | ||
'''Текущая версия:''' см. на странице: [[Модули]] | '''Текущая версия:''' см. на странице: [[Модули]] | ||
'''Поддерживаемые стандартные биллинги:''' [[uBilling]] v.0.7.2+, [[MikBill]] v.2.8.16+ | '''Поддерживаемые стандартные биллинги:''' [[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 Бесплатный] | '''Статус модуля:''' [http://userside.eu/price.php Бесплатный] | ||
Строка 52: | Строка 54: | ||
usm_billing.conf.php-example | usm_billing.conf.php-example | ||
1. Выделить отдельный ''(произвольный)'' каталог для модуля и поместить в него эти файлы | |||
2. Выделить отдельный каталог для логов работы модуля. Дайте права на запись в этот каталог. | |||
3. Пример файла конфигурации usm_billing.conf.php-example следует переименовать в usm_billing.conf.php и внести в нём требуемые изменения ''(перечень параметров указан ниже)'' | |||
4. Запустите несколько раз (*) вручную модуль командой | |||
php usm_billing.php | php usm_billing.php | ||
Строка 69: | Строка 74: | ||
''* - При первом запуске - будут предварительно лишь созданы многие объекты. Чем больше объектов импортирует модуль - тем дольше это будет. При втором и последующих запусках сверяются изменённые данные и только они будут обновлены. Второй запуск также будет длиться долго, т.к. после первого запуска новосозданные объекты практические не содержат данных. А вот третий и последующие запуски будут работать гораздо быстрее.'' | ''* - При первом запуске - будут предварительно лишь созданы многие объекты. Чем больше объектов импортирует модуль - тем дольше это будет. При втором и последующих запусках сверяются изменённые данные и только они будут обновлены. Второй запуск также будет длиться долго, т.к. после первого запуска новосозданные объекты практические не содержат данных. А вот третий и последующие запуски будут работать гораздо быстрее.'' | ||
5. Проверьте визуально полноту импортируемых данных в ERP "UserSide" | |||
6. Когда станет понятно, что модуль работает стабильно - добавляем его в системный cron на периодическую работу ''(укажите нужные пути)'' | |||
*/10 * * * * php usm_billing.php | */10 * * * * php usm_billing.php | ||
Строка 77: | Строка 82: | ||
== Параметры конфигурации == | == Параметры конфигурации == | ||
$billingName - Тип биллинга [standart|carbon5] | |||
$usersideUrl - URL к ERP "UserSide" | $usersideUrl - URL к ERP "UserSide" | ||
$usersideApiKey - API-ключ ERP "UserSide" | $usersideApiKey - [[UserSide API Key|API-ключ ERP "UserSide"]] | ||
$billingUrl - URL к API биллинга | $billingUrl - URL к API биллинга | ||
$billingId - Номер биллинга в ERP "UserSide" ''("Настройка - Биллинги")'' | $billingId - Номер биллинга в ERP "UserSide" ''("Настройка - Биллинги")'' | ||
$logPath - Путь для записи логов | $logPath - Путь для записи логов | ||
$isSilence - Флаг "Режим тишины" ''(скрыть вывод информационных сообщений от модуля в консоль)'' | $isSilence - Флаг "Режим тишины" ''(скрыть вывод информационных сообщений от модуля в консоль)'' | ||
$additionalDataMerge - Настройка импорта дополнительных данных/полей | // Можно настроить импорт доп.полей из биллинга в доп.поля абонента 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 в подкаталоге бандла для указания специальных переменных. Первой строкой этого файла обязательно должна быть строка <code><?php</code>. | |||
Чтобы включить периодический запуск модуля, вам необходимо раскомментировать соответствующую строку в /etc/cron.d/userside. | |||
Вы также можете запускать модуль вне docker-бандла. Для этого вам необходимо также указать в переменной окружения <code>USERSIDE_API_URL</code> URL вашего USERSIDE. |
Текущая версия от 07:17, 1 апреля 2024
Эта функция является одной из возможностью |
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.