Интеграция с СОРМ3 VasExperts

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (1)

просмотр истории страницы
h1. Отчеты
h2. 1. Плоский формат выгрузки абонентских данных
{code}
set heading off;select distinct '"0";"' || --стандарт связи абонента--
A.ID || '";"' || --id абонента --
A.ID || '";"' || --логин--
A.CONTRACT_NUMBER || '";"' || --номер договора--
case when A.DELETED=1 then '1' --текущий статус абонента, справочник, 0 – подключен 1 - отключен--
else '0' end || '";"' ||
CAST(lpad(EXTRACT(DAY FROM a.create_date),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM a.create_date),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM a.create_date) || '";"' || --дата заключения договора--
case when A.DELETED=1 then
(select first 1 CAST(lpad(EXTRACT(DAY FROM AH.TIME_CHANGED),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM AH.TIME_CHANGED),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM AH.TIME_CHANGED) from abonents_history ah where ah.abonents_id = a.id and ah.deleted=1)
else '' end || '";"'|| --дата расторжения договора, дата, формат DD.mm.YYYY, для активных абонентов пустая строка--
coalesce(A.COMPANY,'0') || '";"' || --тип абонента, справочник, 0 - физическое лицо, 1 - юридическое лицо--
case when coalesce(A.COMPANY,'0')=0 then '1' --тип данных по ФИО, справочник, 0 - структурированные данные, 1 -неструктурированные, обязателен для физических лиц--
else ' ' end || '";"' ||
'' || '";"' ||
'' || '";"' ||
'' || '";"' ||
case when A.COMPANY=0 then A.NAME || '";"' ||--неструктурированное ФИО--
--iif (position('.19' in av1020.attribute_value) !=0, coalesce(left(replace(replace (replace(av1020.attribute_value, '«', ''),'»',''), ' ', ''),10),''), '') --дата рождения --
iif (coalesce(av22.attribute_value,'')='','',av22.attribute_value) --дата рождения
else '";"' end || '";"' ||
--паспортные данные --
case when A.COMPANY=0 then
'0' || '";"' ||
coalesce(av14.attribute_value, '') || '";"' || --паспорт серия
coalesce(av13.attribute_value, '') || '";"' || --паспорт номер
--coalesce(av17.attribute_value, '') || '";"' || --когда выдан
iif (av17.attribute_value like '%-%',substring(av17.attribute_value from 9 for 2) || '.' || substring (av17.attribute_value from 6 for 2) || '.' || substring (av17.attribute_value from 1 for 4) ,coalesce(av17.attribute_value, '')) || '";"' || --паспорт когда выдан--
iif (coalesce(av16.attribute_value, '') <> '', av16.attribute_value || ' ', '')|| '";"' || --кем выдан

''|| '";"' || --неструктурированные паспортные данные, зарезервировано на будущее - пустая строка--
'Паспорт РФ' || '";"' || --тип документа--
coalesce(av7.attribute_value,'') || '";"' ||--банк абонента--
coalesce(av6.attribute_value,'') --р/с абонента --
else '";"";"";"";"";"";"";"";"' end || '";"' ||
case when A.COMPANY=1 then A.NAME || '";"' || --название ЮР лица --
coalesce(av4.attribute_value,'') || '";"' || '";"' || '";"' ||coalesce(av7.attribute_value,'') || '";"' || coalesce(av6.attribute_value,'') --ИНН,контакты,банк,р/с юр.лица --
else '";"";"";"";"";"' end || '";"' ||
case when a.company=1 then
'1' || '";"' || --тип данных адреса абонента--
'' || '";"' || --индекс--
'' || '";"' || --страна--
'' || '";"' || --тип области--
'' || '";"' || --область--
'' || '";"' || --тип района--
'' || '";"' || --район--
'' || '";"' || --тип города--
'' || '";"' || --город--
'' || '";"' || --тип улицы--
'' || '";"' || --улица--
'' || '";"' || --номер дома--
'' || '";"' || --корпус--
'' || '";"' || --тип квартиры--
'' || '";"' || --квартира--
coalesce(av25.attribute_value,'') --адрес юр лица--
else iif(coalesce(av15.attribute_value,'') <> '' and char_length(av15.attribute_value) between 4 and 5, '0' || '";"' || (select IIF(coalesce(h.ZIP_CODE, '') <> '', h.zip_code, '') || '";"'
|| IIF(coalesce(h.country, '') <> '', h.country, 'Россия') || '";"' || iif(coalesce(h.region_type_id, '') <> '',htn_region.SHORT, '') || '";"' || IIF(coalesce(h.REGION, '') <> '', h.REGION, '')
|| '";"' || iif(coalesce(h.DISTRICT_type_id, '') <> '',htn_district.SHORT, '') || '";"' || IIF(coalesce(h.DISTRICT, '') <> '', h.DISTRICT, '') || '";"'
|| iif(coalesce(h.city_type_id, '') <> '',htn_city.SHORT, 'г') || '";"' || IIF(coalesce(h.CITY, '') <> '', h.CITY, '') || '";"'
|| iif(coalesce(h.street_type_id, '') <> '',htn_street.SHORT, 'ул')|| '";"' || IIF(coalesce(h.STREET,'') <> '', h.STREET, '') || '";"'
|| coalesce(h.S_NUMBER,'') || '";"' || IIF(coalesce(h.S_LITER,'') <> '',h.S_LITER, '') || '";"'
|| '";"' || IIF(coalesce(a.A_HOME_NUMBER, '') <> '',a.A_HOME_NUMBER,'') || '";"' from homes h
left join home_type_name htn_region on h.REGION_TYPE_ID=htn_region.id
left join home_type_name htn_district on h.DISTRICT_TYPE_ID=htn_district.id
left join home_type_name htn_city on h.CITY_TYPE_ID =htn_city.id
left join home_type_name htn_street on h.STREET_TYPE_ID =htn_street.id
where h.id=av15.attribute_value),'0";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"' || coalesce(av26.attribute_value,''))
end || '";"' ||
'1' || '";"' || --тип данных адреса абонента--
'' || '";"' || --индекс--
'' || '";"' || --страна--
'' || '";"' || --тип области--
'' || '";"' || --область--
'' || '";"' || --тип района--
'' || '";"' || --район--
'' || '";"' || --тип города--
'' || '";"' || --город--
'' || '";"' || --тип улицы--
'' || '";"' || --улица--
'' || '";"' || --номер дома--
'' || '";"' || --корпус--
'' || '";"' || --тип квартиры--
'' || '";"' || --квартира--
coalesce(av26.attribute_value,'') || --адрес установки оборудования --

'' || '";"' ||
'1' || '";"' || --тип данных адреса абонента--
'' || '";"' || --индекс--
'' || '";"' || --страна--
'' || '";"' || --тип области--
'' || '";"' || --область--
'' || '";"' || --тип района--
'' || '";"' || --район--
'' || '";"' || --тип города--
'' || '";"' || --город--
'' || '";"' || --тип улицы--
'' || '";"' || --улица--
'' || '";"' || --номер дома--
'' || '";"' || --корпус--
'' || '";"' || --тип квартиры--
'' || '";"' || --квартира--
coalesce(av27.attribute_value,'') || --почтовый адрес абонента --

'' || '";"' ||
'1' || '";"' || --тип данных адреса абонента--
'' || '";"' || --индекс--
'' || '";"' || --страна--
'' || '";"' || --тип области--
'' || '";"' || --область--
'' || '";"' || --тип района--
'' || '";"' || --район--
'' || '";"' || --тип города--
'' || '";"' || --город--
'' || '";"' || --тип улицы--
'' || '";"' || --улица--
'' || '";"' || --номер дома--
'' || '";"' || --корпус--
'' || '";"' || --тип квартиры--
'' || '";"' || --квартира--
coalesce(av27.attribute_value,'') || --адрес доставки счета --
'";"' ||
CAST(lpad(EXTRACT(DAY FROM a.create_date),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM a.create_date),2,'0') AS varchar(2))||'.'|| EXTRACT(YEAR FROM a.create_date) || 'T'
|| CAST(lpad(EXTRACT(HOUR FROM a.create_date),2,'0')AS varchar(2)) ||':'|| CAST(lpad(EXTRACT(MINUTE FROM a.create_date),2,'0') AS varchar(2))||':'|| SUBSTRING(a.create_date from 18 for 2)|| '";"' || --дата начала интервала, на котором актуальна информация--
case when A.DELETED=1 then
(select first 1 CAST(lpad(EXTRACT(DAY FROM AH.TIME_CHANGED),2,'0') AS varchar(2))||'.'|| CAST(lpad(EXTRACT(MONTH FROM AH.TIME_CHANGED),2,'0') AS varchar(2))||'.'||
EXTRACT(YEAR FROM AH.TIME_CHANGED) || 'T00:00:00' from abonents_history ah where ah.abonents_id = a.id and ah.deleted=1)
else '' end || '"' --дата расторжения договора, дата, формат DD.mm.YYYY, для активных абонентов пустая строка--
from ABONENTS A
left join USERS U on A.ID = U.ABONENT_ID
left join ATTRIBUTE_VALUES as av4 on a.id=av4.ABONENT_ID and av4.ATTRIBUTE_ID=4
left join ATTRIBUTE_VALUES as av6 on a.id=av6.ABONENT_ID and av6.ATTRIBUTE_ID=6
left join ATTRIBUTE_VALUES as av7 on a.id=av7.ABONENT_ID and av7.ATTRIBUTE_ID=7
left join ATTRIBUTE_VALUES as av13 on a.id=av13.ABONENT_ID and av13.ATTRIBUTE_ID=13
left join ATTRIBUTE_VALUES as av14 on a.id=av14.ABONENT_ID and av14.ATTRIBUTE_ID=14
left join ATTRIBUTE_VALUES as av15 on a.id=av15.ABONENT_ID and av15.ATTRIBUTE_ID=15
left join ATTRIBUTE_VALUES as av16 on a.id=av16.ABONENT_ID and av16.ATTRIBUTE_ID=16
left join ATTRIBUTE_VALUES as av17 on a.id=av17.ABONENT_ID and av17.ATTRIBUTE_ID=17
left join ATTRIBUTE_VALUES as av22 on a.id=av22.ABONENT_ID and av22.ATTRIBUTE_ID=22
left join ATTRIBUTE_VALUES as av25 on a.id=av25.ABONENT_ID and av25.ATTRIBUTE_ID=25
left join ATTRIBUTE_VALUES as av26 on a.id=av26.ABONENT_ID and av26.ATTRIBUTE_ID=26
left join ATTRIBUTE_VALUES as av27 on a.id=av27.ABONENT_ID and av27.ATTRIBUTE_ID=27
left join ATTRIBUTE_VALUES as av34 on a.id=av34.ABONENT_ID and av34.ATTRIBUTE_ID=34
left join ATTRIBUTE_VALUES as av1011 on a.id=av1011.ABONENT_ID and av1011.ATTRIBUTE_ID=1011
left join ATTRIBUTE_VALUES as av1019 on a.id=av1019.ABONENT_ID and av1019.ATTRIBUTE_ID=1019
left join ATTRIBUTE_VALUES as av1020 on a.id=av1020.ABONENT_ID and av1020.ATTRIBUTE_ID=1020
where A.IS_FOLDER=0
and a.parent_id not in (2,244)
and a.id is not null
and a.id >0;
{code}