Usm utm5

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

en | ru

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

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

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

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

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

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

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

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

Убедитесь, что в системе где будет работать модуль присутствует библиотека php_mysqli

Архив 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

Также можно использовать стандартные параметры из модуля usm_billing

$usersideUrl         - URL к ERP "UserSide"
$usersideApiKey      - API-ключ ERP "UserSide"
$billingId           - Номер биллинга в ERP "UserSide" ("Настройка - Биллинги")
$logPath             - Путь для записи логов
$isSilence           - Флаг "Режим тишины" (скрыть вывод информационных сообщений от модуля в консоль)
 
$billingDBHost       - адрес сервера биллинга
$billingDBUser       - имя пользователя для доступа к базе биллинга
$billingDBPassword   - пароль для доступа к базе биллинга
$billingDBName       - имя базы данных биллинга
$billingCodePage     - кодировка базы данных биллинга
$billingDbProvider   - тип СУБД [mysql|postgresql] (по-умолчанию: mysql)
$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]
$confImportCustomerUnlimited            - импортировать поле "accounts.unlimited" в доп.данные UserSide (нужно указать id доп.поля)
$confImportCustomerPassport             - импортировать паспортные данные в доп.данные UserSide (нужно указать id доп.поля)
$confIsDontUpdateDateConnect            - флаг - не импортировать дату подключения абонента
$confIsImportAdditionalServices         - флаг - импортировать дополнительные сервисы
$confIsImportSwitchCommutation          - флаг - импортировать коммутацию абонента к оборудованию (таблица routers_info биллинга)
$confIsImportSwitchTableCommutation     - флаг - импортировать коммутацию абонента к оборудованию (таблица switches биллинга)
$confImportPaidLimit                    - ограничение на количество импорта за один раз платежей абонентов (по-умолчанию: 5000)
$confIsImportLessPhone                  - флаг - импортировать ли пустые телефонные номера абонентов (это даёт возможность стирать в UserSide номера, которых уже нет в биллинге)
$confIsSaveVpnPasswordToComment         - флаг - сохранять пароль от vpn в комментариях к абоненту
$confAddressSrc                         - источник адреса абонента (0 - users.house_id, 1 - users.actual_address)
$confExprIpImport                       - условие для импорта IP-адресов
$lastPaidIdPlus                         - начальный счётчик для импорта платежей
$confIsSkipCustomerBuilding             - флаг - не импортировать номер здания для абонентов
$confImportPaidDisableMethod            - список игнорируемых методов платежей в импорте
$confIsSkipDhsSessionsLogTraffic        - флаг - игнорировать данные по трафику из таблицы dhs_sessions_log
$confIsImportServiceWithAddressAsAliasCustomer - флаг - импортировать сервис с адресом как дочернюю запись абонента
$confIsIgnoreHouseBlock                 - флаг - игнорировать блок дома
$confAdditionalFieldWithAgreementNumber - доп.поле биллинга с номером договора
$confAdditionalFieldWithAgreementDate   - доп.поле биллинга с датой договора
$confImportCustomerAllowedCid           - импортировать "User Allowed Cid" в доп.данные UserSide (нужно указать id доп.поля)
$confImportCustomerPassword             - импортировать пароль абонента в доп.данные UserSide (нужно указать id доп.поля)
$confAccountPattern                     - шаблон при импорте номера лицевого счёта абонента (напр.: 02000000)
$confImportGateway                      - импортировать шлюз абонента в доп.данные UserSide (нужно указать id доп.поля)
$confImportMask                         - импортировать маску абонента в доп.данные UserSide (нужно указать id доп.поля)
$confIsRegionAddressSystem              - флаг - импортировать области/регионы из адресной системы биллинга (только при $confAddressSrc = 0)
$confIsImportServiceLinksAsChild        - флаг - импортировать сервисные связки как дочерние записи абонентов(только для UTM+)
$confIsImportWorkPhoneToPhone           - флаг - импортировать рабочий телефон как "обычный" телефон
$confImportCustomerUnlimited            - импортировать факт безлимита в доп.данные UserSide (нужно указать id доп.поля)
$confImportCustomerVlanId               - импортировать VlanID в доп.данные UserSide (нужно указать id доп.поля)
$confImportCustomerTaxNumber            - импортировать налоговый номер в доп.данные UserSide (нужно указать id доп.поля)

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

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

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

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