diff --git a/src-modules/module/costage/conf/costage.xml b/src-modules/module/costage/conf/costage.xml index 9c4292a..2732ed4 100644 --- a/src-modules/module/costage/conf/costage.xml +++ b/src-modules/module/costage/conf/costage.xml @@ -272,7 +272,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> Studiengänge (CO) - + + @@ -302,7 +303,9 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
- + + + @@ -331,6 +334,14 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> + + +public +costage_dim_studiengang +tid +1 +costage_dim_studiengang_pkey + @@ -548,11 +559,12 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> + nur bei TSG -TSG/ESG/MSG +TSG/ESG @@ -618,6 +630,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> + nur bei TSG @@ -633,7 +646,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> des Prüfungsdatums - + Hauptprüfung/TSAB @@ -1691,7 +1704,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen - + @@ -1782,7 +1795,7 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen - + diff --git a/src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql b/src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql index 7a068e8..4bb18b5 100644 --- a/src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql +++ b/src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql @@ -13,6 +13,7 @@ SELECT L.st_studium_nr, S.st_studstamm_nr, L.matrikelnummer::integer as matrikelnummer, +null::integer as studiengang_tid, null::integer as st_studiengang_nr, null::integer as st_studiengang_nr_tsg, null::integer as studiengang_nr, @@ -89,6 +90,7 @@ SELECT L.st_studium_nr, S.st_studstamm_nr, L.matrikelnummer::integer as matrikelnummer, +null::integer as studiengang_tid, null::integer as st_studiengang_nr, null::integer as st_studiengang_nr_tsg, null::integer as studiengang_nr, @@ -173,6 +175,18 @@ and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr and tmp_pruef.leistungsdetailtyp_kb='TSAB' ; +--Studiengangs-TID ermitteln: +update tmp_pruef set studiengang_tid=D.tid +from costage_dim_studiengang D +where D.st_studiengang_nr=tmp_pruef.st_studiengang_nr +and tmp_pruef.leistungsdetailtyp_kb!='TSAB'; + +update tmp_pruef set studiengang_tid=D.tid +from costage_dim_studiengang D +where D.st_studiengang_nr=tmp_pruef.st_studiengang_nr_tsg +and tmp_pruef.leistungsdetailtyp_kb='TSAB'; + + --Fachsemester aus Sem. des Prüfungsdatums holen: update tmp_pruef set fachsemester = S.fachsemester @@ -291,6 +305,14 @@ and T.semester_max <=tmp_pruef.semester and tmp_pruef.leistungsdetailtyp_kb='BAKN' ; +update tmp_pruef set fachsemester=T.fachsem_max +from tmp_fachsem_msg T +where T.matrikelnummer=tmp_pruef.matrikelnummer +and T.st_studiengang_nr=tmp_pruef.st_studiengang_nr +and T.semester_max >=tmp_pruef.semester +and tmp_pruef.leistungsdetailtyp_kb='TSAB' +; + drop table tmp_fachsem_msg; --unikey setzen, wenn noch nicht vorhanden (z.B. bei MSG): @@ -313,6 +335,7 @@ insert into costage_st_pruef_aggr(st_studium_nr, semester, semester_tsg, semester_veranst, + studiengang_tid, st_studiengang_nr, st_studiengang_nr_tsg, studiengang_nr, @@ -348,6 +371,7 @@ select (case when leistungsdetailtyp_kb='TSAB' then semester else null::integer end) as semester_tsg , semester_veranst, + studiengang_tid, st_studiengang_nr, st_studiengang_nr_tsg, studiengang_nr, @@ -390,6 +414,25 @@ select --group by leistungsdatum,studiengangs_typ_kb,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 ; + +--TSG Daten nachtragen: +update costage_st_pruef_aggr set +studiengang_nr=S.studiengang_nr, +st_studiengang_nr=S.st_studiengang_nr, +st_studiengang_nr_tsg=S.st_studiengang_nr_tsg, +fach_nr=S.fach_nr, +unikey=S.unikey, +fachsemester_tsg=S.fachsemester +from costage_st_studien_aggr S +where 1=1 +and S.st_studium_nr_tsg=costage_st_pruef_aggr.st_studium_nr +and S.matrikelnummer=costage_st_pruef_aggr.matrikelnummer +and costage_st_pruef_aggr.leistungsdetailtyp_kb ='TSAB' +and costage_st_pruef_aggr.semester_tsg=S.semester +; + drop table tmp_pruef; drop table tmp_pruef2; + + diff --git a/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql index 3b52684..de9e830 100644 --- a/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql +++ b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql @@ -1194,6 +1194,18 @@ and A.st_adresse_typ='H' and costage_st_studien_aggr.semester >= ${beginn_semester} ; +--Studiengangs-TID ermitteln: +update costage_st_studien_aggr set studiengang_tid=D.tid +from costage_dim_studiengang D +where D.st_studiengang_nr=costage_st_studien_aggr.st_studiengang_nr +and costage_st_studien_aggr.studiengangs_typ_kb='ESG'; + +update costage_st_studien_aggr set studiengang_tid= D.tid +from costage_dim_studiengang D +where D.st_studiengang_nr=costage_st_studien_aggr.st_studiengang_nr_tsg +and costage_st_studien_aggr.studiengangs_typ_kb='TSG'; + + select 300,timestamp_str(now()) from xdummy; diff --git a/src-modules/module/costage/masken/43040_maskeninfo.unl b/src-modules/module/costage/masken/43040_maskeninfo.unl index 0423496..cf22663 100644 --- a/src-modules/module/costage/masken/43040_maskeninfo.unl +++ b/src-modules/module/costage/masken/43040_maskeninfo.unl @@ -69,8 +69,8 @@ SELECT name,\ /* and semester <= <> */\ /* AND fachsemester <= <> */\ /* and statustyp in(<>) */\ -/* and costage_st_studien_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<>)) */\ -/* and costage_st_studien_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.skz_key in (<>)) */\ +/* and costage_st_studien_aggr.studiengang_tid in (select G.tid from costage_st_studiengaenge G where G.abschluss in (<>)) */\ +/* and costage_st_studien_aggr.studiengang_tid in (select G.tid from costage_st_studiengaenge G where G.skz_key in (<>)) */\ /* and studiengang_nr =<> */\ /* and fach_nr =<> */\ /* and costage_st_studien_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<>) ) */\ @@ -84,7 +84,7 @@ SELECT name,\ \ \ \ -/* <#assign filter = filter + " and 's_' || costage_st_studien_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<> */ \ +/* <#assign filter = filter + " and costage_st_studien_aggr.studiengang_tid in (select D.tid from costage_dim_studiengang D where 's_' ||D.st_studiengang_nr in "+Studiengang.allNeededKeysList +")" /> --<> */ \ \ \ <@generate_resultset_multitable tabellen=table_list\ diff --git a/src-modules/module/costage/masken/43080_maskeninfo.unl b/src-modules/module/costage/masken/43080_maskeninfo.unl index a49f67d..3d5dd19 100644 --- a/src-modules/module/costage/masken/43080_maskeninfo.unl +++ b/src-modules/module/costage/masken/43080_maskeninfo.unl @@ -67,7 +67,7 @@ SELECT name,\ /* and hrst in (<>) */\ /* AND leistungsdetailtyp_kb in (<>) */\ /* and leistungsstatus_map_kb in(<>) */\ -/* and costage_st_pruef_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<>)) */\ +/* and costage_st_pruef_aggr.studiengang_tid in (select G.tid from costage_st_studiengaenge G where G.abschluss in (<>)) */\ /* and studiengang_nr =<> */\ /* and fach_nr =<> */\ /* and costage_st_pruef_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<>) ) */\ @@ -75,11 +75,12 @@ SELECT name,\ /* and costage_st_pruef_aggr.unikey=<> */\ " />\ \ +/* <#assign filter = filter + " and costage_st_pruef_aggr.studiengang_tid in (select D.tid from costage_dim_studiengang D where 's_' ||D.st_studiengang_nr in "+Studiengang.allNeededKeysList +")" /> --<> */ \ +\ \ <#if "<>"!="">\ <#assign filter=filter+" and costage_st_pruef_aggr.matrikelnummer in (<>)"?replace("'","")/>\ \ -/* <#assign filter = filter + " and 's_' || costage_st_pruef_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<> */ \ \ --Feld Auswertungsebene Prüfungen\ --Was wird ausgewertet? Welche Leistungsdetailtypen sin betroffen? Welches Prüfungsdatum/Semester soll ausgewertet werden?\ @@ -92,7 +93,7 @@ SELECT name,\ \ <#assign fach_filter="1=1" />\ --Default: \ -/* <#assign fach_filter="costage_st_pruef_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.skz_key in (<>)) "/> \ +/* <#assign fach_filter="costage_st_pruef_aggr.studiengang_tid in (select G.tid from costage_st_studiengaenge G where G.skz_key in (<>)) "/> \ */\ \ \ @@ -100,16 +101,17 @@ SELECT name,\ <#assign ldt_filter="1=1" />\ <#if <>=="G">\ <#assign ldt_filter="leistungsdetailtyp_kb in ('BAKN', 'MAGN', 'STEX', 'ERGAB')" />\ -<#assign semester_feld="semester_msg" />\ +<#assign semester_feld="semester" />\ \ \ \ <#if <>=="F">\ <#assign ldt_filter="leistungsdetailtyp_kb in ('TSAB')" />\ -<#assign semester_feld="semester_msg" />\ +<#assign semester_feld="semester" />\ \ <#if <>=="T">\ <#assign ldt_filter="leistungsdetailtyp_kb in ('TSAB')" />\ +<#assign semester_feld="semester_tsg" />\ \ \ \ diff --git a/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml b/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml index 9cd383b..15b3270 100644 --- a/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml +++ b/src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml @@ -294,9 +294,10 @@ SELECT P.matrikelnummer, P.studiengang_nr, P.fach_nr, -G.abschluss, -(case when leistungsdetailtyp_kb='TSAB' then P.semester_tsg -else P.semester end) as semester, +G.abschluss_code as abschluss, +--(case when leistungsdetailtyp_kb='TSAB' then P.semester_tsg +--else P.semester end) as semester, +P.semester, P.leistungsdatum, G.skz_key as stg, null::integer as vert, @@ -325,14 +326,14 @@ null::integer as pstatkennz, null::CHAR(1), --stuart G.stufrm, null::CHAR(1), --stutyp -st_studium_nr as degree_program_id, +P.st_studium_nr as degree_program_id, semester_tsg, leistungsdatum_tsg, leistungsstatus_map_kb_tsg as pstatus_tsg, note_tsg, fachsemester_tsg as fach_sem_zahl_tsg -FROM costage_st_pruef_aggr P, costage_st_studiengaenge G -where G.st_studiengang_nr=P.st_studiengang_nr +FROM costage_st_pruef_aggr P, costage_dim_studiengang G +where G.tid=P.studiengang_tid and ($EXTERNAL_SUBJECTS ='true' or P.unikey=(select H.hs_nr::char(10) from hochschulinfo H) ) diff --git a/src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql b/src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql index d8ba077..2414063 100644 --- a/src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql +++ b/src-modules/module/costage/schluesseltabellen/costage_dim_studiengang_fuellen.sql @@ -1,7 +1,40 @@ +create temp table tmp_costage_dim_studiengang (tid serial, + tid_orig integer, + st_studiengang_nr integer, + studiengangs_identifikator character varying(255), + studiengangs_bezeichnung character varying(255), + st_absz_nr integer, + st_skz_nr integer, + fachkennzeichen character varying(255), + st_std_art_nr integer, + studiengangs_typ_name character varying(255), + studiengangs_typ_kb character varying(255), + studientyp_name character varying(255), + studientyp_kb character varying(10), + stp_stp_nr integer, + stuart character(10), + stufrm character(10), + pversion character varying(255), + rsz integer, + skz_key character(10), + skz_name character varying(255), + unikey character varying(255), + fakultaet_key character varying(255), + abschluss_code character varying(255), + abschluss_name character varying(255), + fakultaet_kurztext character varying(255), + fakultaet_drucktext character varying(255), + stort_nr character varying(4), + stort_name character varying(255), + ist_neu smallint +); + + + -truncate table costage_dim_studiengang; -insert into costage_dim_studiengang(st_studiengang_nr, +insert into tmp_costage_dim_studiengang( +st_studiengang_nr, studiengangs_identifikator, studiengangs_bezeichnung, st_absz_nr, @@ -26,7 +59,8 @@ insert into costage_dim_studiengang(st_studiengang_nr, fakultaet_kurztext, fakultaet_drucktext, stort_nr, - stort_name) + stort_name, + ist_neu) SELECT G.st_studiengang_nr, substring(G.studiengangs_identifikator from 1 for 255) as studiengangs_identifikator, @@ -54,11 +88,88 @@ A.name as abschluss_name, null::varchar(255) as fakultaet_kurztext, null::varchar(255) as fakultaet_drucktext, G.stort_nr, -G.stort_name -FROM costage_st_studiengaenge G left outer join costage_st_studienkennzahlen SKZ +G.stort_name, +0 +FROM costage_st_studiengaenge G left outer join costage_st_studienkennzahlen SKZ on ( SKZ.st_skz_nr=G.st_skz_nr) left outer join costage_st_abschlussziele_lokal A on (A.st_absz_nr=G.st_absz_nr); +update tmp_costage_dim_studiengang set tid_orig=D.tid +from costage_dim_studiengang D +where D.st_studiengang_nr=tmp_costage_dim_studiengang.st_studiengang_nr; + +update tmp_costage_dim_studiengang set ist_neu=1 +where tid_orig is null; + + +create temp table tmp_hilf( +maxtid integer); + +insert into tmp_hilf select max(tid) from costage_dim_studiengang; + +update tmp_costage_dim_studiengang set tid_orig=tid+(select maxtid from tmp_hilf) +where ist_neu=1; + +drop table tmp_hilf; + +truncate table costage_dim_studiengang; + +insert into costage_dim_studiengang(tid, +st_studiengang_nr, + studiengangs_identifikator, + studiengangs_bezeichnung, + st_absz_nr, + st_skz_nr, + fachkennzeichen, + st_std_art_nr, + studiengangs_typ_name, + studiengangs_typ_kb, + studientyp_name, + studientyp_kb, + stp_stp_nr, + stuart, + stufrm, + pversion, + rsz, + skz_key, + skz_name, + unikey, + fakultaet_key, + abschluss_code, + abschluss_name, + fakultaet_kurztext, + fakultaet_drucktext, + stort_nr, + stort_name) +select tid_orig, +st_studiengang_nr, + studiengangs_identifikator, + studiengangs_bezeichnung, + st_absz_nr, + st_skz_nr, + fachkennzeichen, + st_std_art_nr, + studiengangs_typ_name, + studiengangs_typ_kb, + studientyp_name, + studientyp_kb, + stp_stp_nr, + stuart, + stufrm, + pversion, + rsz, + skz_key, + skz_name, + unikey, + fakultaet_key, + abschluss_code, + abschluss_name, + fakultaet_kurztext, + fakultaet_drucktext, + stort_nr, + stort_name + from tmp_costage_dim_studiengang; + update costage_dim_studiengang set fakultaet_kurztext=F.fakultaet_bezeichnung, fakultaet_drucktext=F.fakultaet_name from costage_st_fakultaeten F diff --git a/src-modules/module/costage/upgrade/costage_pre_upgrade_pg.sql b/src-modules/module/costage/upgrade/costage_pre_upgrade_pg.sql new file mode 100644 index 0000000..8c1978d --- /dev/null +++ b/src-modules/module/costage/upgrade/costage_pre_upgrade_pg.sql @@ -0,0 +1,8 @@ +--freemarker template + +<#if TableFieldExists?exists && TableFieldExists('costage_dim_studiengang','tid')> +--do nothing +<#else> +drop table if exists costage_dim_studiengang cascade; + +