Конвертация и загрузка тарифов Телефонии в биллинг

Материал из BiTel WiKi

Перейти к: навигация, поиск

Ставится задача сконвертировать МГ и ВЗ тарифы телефонии в формат, пригодный для загрузки биллингом. В качестве исходных данных - CSV файлы следующего формата (разделитель - точка с запятой):

<Направление>;<Префикс>;<Стоимость льготная юр. лица>;<Стоимость обычная физ. лица>;<Стоимость льготная физ. лица>;<Стоимость обычная физ. лица>;<Тип связи>

Пример фрагмента файла:

Самарская (mob) - Билайн;7961392;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7961391;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7961390;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7961381;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7961380;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7960850;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7960834;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7960809;1,5;1,5;1,5;1,5;ВЗ связь

Льготное и обычное время описывается в справочнике типов времени биллинга.

Настройка типов времени

В справочнике карт зон создается карта Основная карта, в справочнике услуг модуля - услуги МГ и ВЗ связи.

Архив с программой конвертации: Медиа:phone_tariff_convert.zip Запускается Perl скрипт process.pl, генерирует в каталог result четыре файла:

  • codes.txt - Файл для загрузки в справочкник географических кодов
  • jur.xml - тарифный план для юридических лиц
  • phis.xml - тарифный план для физических лиц
  • zone_map.xml - карта зон

Принцип конвертации - выделение из файла с тарифами уникальных комбинаций цен и создание на их основе зон тарификаций для биллинга. Формат справочника географических кодов и карты зон сложностей не представляет, остановимся подробнее на файле с тарифом. Рассмотрим фрагмент:

<?xml version="1.0" encoding="windows-1251"?>
<nodes>
	<use_map id="1" title="Основная карта"/>
	<config data="0;5;0:0:60"/>
	<zone zone="R0;0;0;0">
		<service_set regexp="^8" sid="14"/>
		<time_filter id="2" title="Выходные и праздники">
			<costout default="true" value="0"/>
		</time_filter>
		<time_filter id="1" title="Рабочее время">
			<costout default="true" value="0"/>
		</time_filter>
	</zone>
	<zone zone="R3.36;3.36;3.36;3.36">
		<service_set regexp="^8" sid="14"/>
		<time_filter id="2" title="Выходные и праздники">
			<costout default="true" value="3.36"/>
		</time_filter>
		<time_filter id="1" title="Рабочее время">
			<costout default="true" value="3.36"/>
		</time_filter>
	</zone>
........
Личные инструменты