Usm utm5: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
(не показано 16 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Usm_utm5_EN|en]] | [[Usm_utm5|ru]] | |||
{{activ}} | {{activ}} | ||
Строка 14: | Строка 16: | ||
== Информация по установке модуля == | == Информация по установке модуля == | ||
'''Убедитесь, что в системе где будет работать модуль присутствует библиотека php_mysqli''' | |||
Архив usm_utm5.zip содержит файлы | Архив usm_utm5.zip содержит файлы | ||
Строка 20: | Строка 24: | ||
usm_utm5.conf.php-example | usm_utm5.conf.php-example | ||
1. | 1. На любом сервере ''(без разницы - сервер биллинга, userside или третья машина)'' выделить отдельный ''(произвольный)'' каталог для модуля и поместить в него эти файлы | ||
2. Выделить отдельный каталог для логов работы модуля. Дайте права на запись в этот каталог. | 2. Выделить отдельный каталог для логов работы модуля. Дайте права на запись в этот каталог. | ||
Строка 49: | Строка 53: | ||
Настройка модуля осуществляется в файле '''usm_utm5.conf.php''' | Настройка модуля осуществляется в файле '''usm_utm5.conf.php''' | ||
Также можно использовать стандартные параметры из модуля [[usm_billing#Параметры конфигурации|usm_billing]] | |||
$usersideUrl - URL к ERP "UserSide" | $usersideUrl - URL к ERP "UserSide" | ||
$usersideApiKey - API-ключ ERP "UserSide" | $usersideApiKey - [[UserSide API Key|API-ключ ERP "UserSide"]] | ||
$billingId - Номер биллинга в ERP "UserSide" ''("Настройка - Биллинги")'' | $billingId - Номер биллинга в ERP "UserSide" ''("Настройка - Биллинги")'' | ||
$logPath - Путь для записи логов | $logPath - Путь для записи логов | ||
$isSilence - Флаг "Режим тишины" ''(скрыть вывод информационных сообщений от модуля в консоль)'' | $isSilence - Флаг "Режим тишины" ''(скрыть вывод информационных сообщений от модуля в консоль)'' | ||
$billingDBHost - адрес сервера биллинга | $billingDBHost - адрес сервера биллинга | ||
$billingDBUser - имя пользователя для доступа к базе биллинга | $billingDBUser - имя пользователя для доступа к базе биллинга | ||
Строка 61: | Строка 67: | ||
$billingDBName - имя базы данных биллинга | $billingDBName - имя базы данных биллинга | ||
$billingCodePage - кодировка базы данных биллинга | $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) | |||
$confIsUseDateConnect | $confTrafficRxClass - класс входящего трафика | ||
$confIsCustomerConnectFix | $confTrafficTxClass - класс исходящего трафика (можно через запятую несколько) | ||
$confIsImportBankInformation | $confUseIpMethod - вариант работы (рекомендуется не менять) | ||
$confDontImportCustomerFromGroupId | $confIsUseDhcpData - подгрузка DHCP-данных из таблицы dhs_sessions_log (0 - не подгружать, 2 - dhs_sessons_log) | ||
$confImportCustomerOnlyFromGroupId | $confDhcpServiceLinkId - ID сервисной связки из "dhs_sessions_log.Acct_Status_Type" (по-умолчанию: 3) | ||
$confImportCustomerExpr | $confIsHostByteOrder - флаг - host byte order в dhs_sessions_log.Framed_IP_Address (Актуально для версий UTM5 >=5.3 update 3. Не включайте если не понимаете о чем речь) | ||
$confImportCustomerExpr2 | $confIsActiveAllDhcp - флаг - для активности записей dhs_sessions_log использовать текущую дату | ||
$confTrafficRxClass | $confDhsSessionLogCondition - условие для выборки записей из таблицы dhs_sessions_log | ||
$confTrafficTxClass | $confIsDhcpLeasesLogUse - подгрузка DHCP-данных из таблицы dhcp_leases_log (0 - не подгружать, 1 - подгружать) | ||
$confUseIpMethod | $confIsBlockType1IsPause - флаг - блокировку block_info.block_type #1 считать ПАУЗОЙ | ||
$confIsUseDhcpData | $confIsBlockType2IsStop - флаг - блокировку block_info.block_type #2 считать СТОП | ||
$confDhcpServiceLinkId | $confIsUseIdToAgreement - в качестве номера договора подставлять ID абонента | ||
$confIsHostByteOrder | $confIsSavePasswordToComment - флаг - сохранять пароль абонента из биллинга в поле "доп.данные" | ||
$confIsActiveAllDhcp | $confIsImportPaidHistory - флаг - импортировать данные о платежах абонентов (payment_transactions) | ||
$confIsDhcpLeasesLogUse | $confVersionFramedIp - тип импорта dhs_sessions_log.Framed_IP_Address [0|1] | ||
$confIsBlockType1IsPause | $confIsImportHistoryTariff - флаг - импортировать историю смены тарифов абонентом | ||
$confIsBlockType2IsStop | $confCustomerAccountSrc - источник номера лицевого счёта абонента [accounts.external_id|accounts.id|users.basic_account] | ||
$confIsUseIdToAgreement | $confImportCustomerUnlimited - импортировать поле "accounts.unlimited" в доп.данные UserSide ''(нужно указать id доп.поля)'' | ||
$confIsSavePasswordToComment | $confImportCustomerPassport - импортировать паспортные данные в доп.данные UserSide ''(нужно указать id доп.поля)'' | ||
$confIsImportPaidHistory | $confIsDontUpdateDateConnect - флаг - не импортировать дату подключения абонента | ||
$confVersionFramedIp | $confIsImportAdditionalServices - флаг - импортировать дополнительные сервисы | ||
$confIsImportHistoryTariff | $confIsImportSwitchCommutation - флаг - импортировать коммутацию абонента к оборудованию (таблица routers_info биллинга) | ||
$confCustomerAccountSrc | $confIsImportSwitchTableCommutation - флаг - импортировать коммутацию абонента к оборудованию (таблица switches биллинга) | ||
$ | $confImportPaidLimit - ограничение на количество импорта за один раз платежей абонентов (по-умолчанию: 5000) | ||
$ | $confIsImportLessPhone - флаг - импортировать ли пустые телефонные номера абонентов (это даёт возможность стирать в UserSide номера, которых уже нет в биллинге) | ||
$confIsDontUpdateDateConnect | $confIsSaveVpnPasswordToComment - флаг - сохранять пароль от vpn в комментариях к абоненту | ||
$confIsImportAdditionalServices | $confAddressSrc - источник адреса абонента (0 - users.house_id, 1 - users.actual_address) | ||
$confIsImportSwitchCommutation | $confExprIpImport - условие для импорта IP-адресов | ||
$confIsImportSwitchTableCommutation - флаг - импортировать коммутацию абонента к оборудованию (таблица switches биллинга) | $lastPaidIdPlus - начальный счётчик для импорта платежей | ||
$confImportPaidLimit | $confIsSkipCustomerBuilding - флаг - не импортировать номер здания для абонентов | ||
$confIsImportLessPhone | $confImportPaidDisableMethod - список игнорируемых методов платежей в импорте | ||
$confIsSaveVpnPasswordToComment | $confIsSkipDhsSessionsLogTraffic - флаг - игнорировать данные по трафику из таблицы dhs_sessions_log | ||
$confAddressSrc | $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 для замены в текстовом адресе | $confAddressRemoveStr1 - строка №1 для замены в текстовом адресе | ||
Строка 107: | Строка 135: | ||
$confAddressRemoveStr3 - строка №3 для замены в текстовом адресе | $confAddressRemoveStr3 - строка №3 для замены в текстовом адресе | ||
// Если необходимо внутренний IP-адрес пользователю при импорте внешнего IP-адреса - заполняем следующие параметры | |||
$confIpGrayNet - какую подсеть IP-адресов считать внешней - напр: "172.16.0.0" или же "0" - не обрабатывать | $confIpGrayNet - какую подсеть IP-адресов считать внешней - напр: "172.16.0.0" или же "0" - не обрабатывать | ||
$confIpWhiteNet - какую подсеть IP-адресов добавлять - напр: "10.0.0.0" или же "0" - не добавлять | $confIpWhiteNet - какую подсеть IP-адресов добавлять - напр: "10.0.0.0" или же "0" - не добавлять | ||
// Можно настроить проставление доп.меток на абоненте в зависимости от значения доп.поля в биллинге | |||
$markMerge[6]['id'] = 1; - [utm5.uaddparams_desc.paramid]['id'] = 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 | $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 |
Текущая версия от 18:26, 25 апреля 2024
Эта функция является одной из возможностью |
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 использовать текущую дату $confDhsSessionLogCondition - условие для выборки записей из таблицы 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