Usm utm5

Материал из WiKi - UserSide

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

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

Данный модуль является заменой устаревшему модулю us_utm5 - См.: Переход с us utm5 на usm utm5

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

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

Статус модуля: Платный

Дополнительную информацию и перечень импортируемых данных см. на странице: UTM5

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

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

usm_utm5.php
usm_utm5.conf.php-example

1. На любом сервере (без разницы - сервер биллинга, userside или третья машина) выделить отдельный (произвольный) каталог для модуля и поместить в него эти файлы

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

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

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

php usm_utm5.php

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

usm_utm5
====================================
 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_utm5.php

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

Настройка модуля осуществляется в файле usm_utm5.conf.php

$usersideUrl         - URL к ERP "UserSide"
$usersideApiKey      - API-ключ ERP "UserSide" (Указывается в файле "userside3/main/config/config.php")
$billingId           - Номер биллинга в ERP "UserSide" ("Настройка - Биллинги")
$logPath             - Путь для записи логов
$isSilence           - Флаг "Режим тишины" (скрыть вывод информационных сообщений от модуля в консоль)

$billingDBHost       - адрес сервера биллинга
$billingDBUser       - имя пользователя для доступа к базе биллинга
$billingDBPassword   - пароль для доступа к базе биллинга
$billingDBName       - имя базы данных биллинга
$billingCodePage     - кодировка базы данных биллинга

$confServiceData                    - использовать сервисные связки вместо тарифных (0 - сервисные связки, 1 - тарифные связки, 2 - и то и другое)
$confIsHideShablonsFromTariffList   - флаг - не включать шаблоны в импорт тарифов
$confServiceDataServiceTypeRestrict - импортировать тарифы (и абонентов) с таким services_data.service_type
$confRentId                         - ID поля с абонентской платой для тарифа (services_data.service_type в биллинге)
$confDontImportTariffWithComment    - НЕ импортировать тарифы с таким комментарием
$confMultiplicationTariffFees       - коэффициент умножения для абонентской платы в тарифах (1.20 - 20% НДС и т.п.)

$confIsUseDateConnect               - использовать поле users.connect_date для получения даты подключения к сети (0 - users.create_date, 1 - users.connect_date)
$confIsCustomerConnectFix           - флаг - дописывать в доп.данные информацию о привязке абонентов к коммутаторам
$confIsImportBankInformation        - флаг - импортировать банковские реквизиты абонента в поле "Доп. данные"
$confDontImportCustomerFromGroupId  - флаг - не импортировать абонентов из этой группы (groups.id)
$confImportCustomerOnlyFromGroupId  - импортировать абонентов ТОЛЬКО из этой группы (groups.id)
$confImportCustomerExpr             - условие для импорта абонентов. Даёт возможность импорта только части абонентов из биллинга (выполняется до WHERE)
$confImportCustomerExpr2            - условие для импорта абонентов. Даёт возможность импорта только части абонентов из биллинга (выполняется после WHERE)
$confTrafficRxClass                 - класс входящего трафика 
$confTrafficTxClass                 - класс исходящего трафика (можно через запятую несколько)
$confUseIpMethod                    - вариант работы (рекомендуется не менять)
$confIsUseDhcpData                  - подгрузка DHCP-данных из таблицы dhs_sessions_log (0 - не подгружать, 2 - dhs_sessons_log)
$confDhcpServiceLinkId              - ID сервисной связки из "dhs_sessions_log.Acct_Status_Type" (по-умолчанию: 3)
$confIsHostByteOrder                - флаг - host byte order в dhs_sessions_log.Framed_IP_Address (Актуально для версий UTM5 >=5.3 update 3. Не включайте если не понимаете о чем речь) 
$confIsActiveAllDhcp                - флаг - для активности записей dhs_sessions_log использовать текущую дату
$confIsDhcpLeasesLogUse             - подгрузка DHCP-данных из таблицы dhcp_leases_log (0 - не подгружать, 1 - подгружать)
$confIsBlockType1IsPause            - флаг - блокировку block_info.block_type #1 считать ПАУЗОЙ
$confIsBlockType2IsStop             - флаг - блокировку block_info.block_type #2 считать СТОП
$confIsUseIdToAgreement             - в качестве номера договора подставлять ID абонента
$confIsSavePasswordToComment        - флаг - сохранять пароль абонента из биллинга в поле "доп.данные"
$confIsImportPaidHistory            - флаг - импортировать данные о платежах абонентов (payment_transactions)
$confVersionFramedIp                - тип импорта dhs_sessions_log.Framed_IP_Address [0|1]
$confIsImportHistoryTariff          - флаг - импортировать историю смены тарифов абонентом
$confCustomerAccountSrc             - источник номера лицевого счёта абонента [accounts.external_id|accounts.id|users.basic_account]
$confImportUnlimited                - импортировать поле "accounts.unlimited" в доп.данные UserSide (нужно указать id поля tbl_conf_basedopdata.CODE)
$confImportPassport                 - импортировать паспортные данные в доп.данные UserSide (нужно указать id поля tbl_conf_basedopdata.CODE)
$confIsDontUpdateDateConnect        - флаг - не импортировать дату подключения абонента
$confIsImportAdditionalServices     - флаг - импортировать дополнительные сервисы
$confIsImportSwitchCommutation      - флаг - импортировать коммутацию абонента к оборудованию (таблица routers_info биллинга)
$confIsImportSwitchTableCommutation - флаг - импортировать коммутацию абонента к оборудованию (таблица switches биллинга)
$confImportPaidLimit                - ограничение на количество импорта за один раз платежей абонентов (по-умолчанию: 5000)
$confIsImportLessPhone              - флаг - импортировать ли пустые телефонные номера абонентов (это даёт возможность стирать в UserSide номера, которых уже нет в биллинге)
$confIsSaveVpnPasswordToComment     - флаг - сохранять пароль от vpn в комментариях к абоненту
$confAddressSrc                     - источник адреса абонента (0 - users.house_id, 1 - users.actual_address)

$confAddressRemoveStr1              - строка №1 для замены в текстовом адресе
$confAddressRemoveStr2              - строка №2 для замены в текстовом адресе
$confAddressRemoveStr3              - строка №3 для замены в текстовом адресе

# Если необходимо внутренний IP-адрес пользователю при импорте внешнего IP-адреса - заполняем следующие параметры
$confIpGrayNet                      - какую подсеть IP-адресов считать внешней - напр: "172.16.0.0" или же "0" - не обрабатывать 
$confIpWhiteNet                     - какую подсеть IP-адресов добавлять - напр: "10.0.0.0" или же "0" - не добавлять

# Можно настроить импорт доп.полей из биллинга в доп.поля абонента ERP "UserSide" (при необходимости)
# Заполняется массив $additionalDataMerge. Можно добавлять свои поля. Если значение кода поля равно нулю - импорт не производится
# Импорт производится в уже созданные доп.поля. Т.е. предварительно - это доп.поле должно быть создано в UserSide для карточки абонента
$additionalDataMerge[1] = 1; - [utm5.uaddparams_desc.paramid] = userside.id
$additionalDataMerge[2] = 2; - [utm5.uaddparams_desc.paramid] = userside.id

# Можно настроить проставление доп.меток на абоненте в зависимости от значения доп.поля в биллинге
$markMerge[6]['id']     = 1; - [utm5.uaddparams_desc.paramid]['id'] = userside.id
$markMerge[6]['value']  = 'test_string'; - [utm5.uaddparams_desc.paramid]['value'] = Compare String

$confExprIpImport                   - условие для импорта IP-адресов
$lastPaidIdPlus                     - начальный счётчик для импорта платежей
$confIsSkipCustomerBuilding         - флаг - не импортировать номер здания для абонентов