-- Hier werden die Daten aus kenn_hochschulen in die Tabelle organigramm geladen
-- nur für SuperX-Connect

delete from organigramm;


create temp table tmp_organigramm (
tid serial  not null, 
key_apnr CHAR(10) , 
parent CHAR(10) , 
drucktext CHAR(50) , 
name NCHAR(150) , 
ebene INTEGER , 
lehre SMALLINT  not null, 
gueltig_seit DATE  not null, 
gueltig_bis DATE  not null, 
orgstruktur INTEGER 
) 
;
--root
insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Hochschulen',
       'Hochschulen', --drucktext
       '0',--key_apnr
       null::char(10), --parent
       1, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;


-- UNI (parent=1)

insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Universitäten',
       'Universitäten', --drucktext
       '1',--key_apnr
       '0'::char(10), --parent
       2, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;


insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT substring(name from 1 for 150),
       substring(name from 1 for 50), --drucktext
       trim(hs_nr::char(10)),--key_apnr
       '1'::char(10), --parent
       3, --ebene
       0, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       10 --orgstruktur
FROM kenn_hochschulen where art='U'
--nur Hochschulen, die auch als Org-Einheiten drin sind:
and hs_nr in (select H.hs_nr from hochschulinfo H);
;

-- PH (parent=2)

insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Pädagogische Hochschulen',
       'Pädagogische Hochschulen', --drucktext
       '2',--key_apnr
       '0'::char(10), --parent
       2, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;


insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT substring(name from 1 for 150),
       substring(name from 1 for 50), --drucktext
       trim(hs_nr::char(10)),--key_apnr
       '2'::char(10), --parent
       3, --ebene
       0, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       10 --orgstruktur
FROM kenn_hochschulen where art='PH'
--nur Hochschulen, die auch als Org-Einheiten drin sind:
and hs_nr in (select H.hs_nr from hochschulinfo H);
;

-- FH (parent=3)
insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Hochschulen für angewandte Wissenschaften',
       'Hochschulen für angewandte Wissenschaften', --drucktext
       '3',--key_apnr
       '0'::char(10), --parent
       2, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;

insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT substring(name from 1 for 150),
       substring(name from 1 for 50), --drucktext
       trim(hs_nr::char(10)),--key_apnr
       '3'::char(10), --parent
       3, --ebene
       0, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       10 --orgstruktur
FROM kenn_hochschulen where art='FH'

--nur Hochschulen, die auch als Org-Einheiten drin sind:
and hs_nr in (select H.hs_nr from hochschulinfo H);
;

-- Kunst Musik (parent=4)

insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Kunst- und Musikhochschulen',
       'Kunst- und Musikhochschulen', --drucktext
       '4',--key_apnr
       '0'::char(10), --parent
       2, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;


insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT substring(name from 1 for 150),
       substring(name from 1 for 50), --drucktext
       trim(hs_nr::char(10)),--key_apnr
       '4'::char(10), --parent
       3, --ebene
       0, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       10 --orgstruktur
FROM kenn_hochschulen where art='KMW'

--nur Hochschulen, die auch als Org-Einheiten drin sind:
and hs_nr in (select H.hs_nr from hochschulinfo H);
;

-- DH (parent=5)

insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT 'Duale Hochschulen',
       'Duale Hochschulen', --drucktext
       '5',--key_apnr
       '0'::char(10), --parent
       2, --ebene
       1, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       0 --orgstruktur
FROM xdummy;


insert into tmp_organigramm
(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT substring(name from 1 for 150),
       substring(name from 1 for 50), --drucktext
       trim(hs_nr::char(10)),--key_apnr
       '5'::char(10), --parent
       3, --ebene
       0, --lehre
       date_val('01.01.1900'),
       date_val('31.12.2999'),
       10 --orgstruktur
FROM kenn_hochschulen where art='DH'

--nur Hochschulen, die auch als Org-Einheiten drin sind:
and hs_nr in (select H.hs_nr from hochschulinfo H);
;

--BaWue-spez. Duplikate entfernen:

delete from tmp_organigramm
where key_apnr in ('1240','1820','1270','1250','8171','8172','8173','8174','8175','8176','8177','8178','8179');


--hochschulen bekommen orgstruktur 10, damit Sichten mit nodeattrib klappen:
update organigramm set orgstruktur=10
where key_apnr in (select T.key_apnr
from tmp_organigramm T
where T.orgstruktur=10)
;

delete from organigramm
where key_apnr in (select key_apnr from tmp_organigramm )
and 0=(select count(*) from tmp_organigramm T 
where organigramm.key_apnr || '_' || organigramm.name = T.key_apnr || '_' || T.name);




delete from tmp_organigramm
where key_apnr in (select key_apnr from organigramm);

create temp table tmp_hilf (tid integer);
insert into tmp_hilf select max(tid) from organigramm;

update tmp_hilf set tid=1 where tid is null;



insert into organigramm
(tid,name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur)
SELECT O.tid+H.tid,name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur
FROM tmp_organigramm O, tmp_hilf H;


drop table tmp_organigramm;
drop table tmp_hilf;

