Compare commits

..

1 Commits

  1. 32
      src-modules/module/costage/conf/costage.xml
  2. 12
      src-modules/module/costage/datentabellen/trans_costage_leistungen.sql
  3. 16
      src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql
  4. 8
      src-modules/module/costage/hilfstabellen/costage_st_einzpruef_aggr_fuellen.sql
  5. 51
      src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql
  6. 132
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql
  7. 9
      src-modules/module/costage/masken/43110_felderinfo.unl
  8. 25
      src-modules/module/costage/masken/43110_maskeninfo.unl
  9. 171
      src-modules/module/costage/rohdaten/costage_unload.xml
  10. 2
      src-modules/module/costage/rohdaten/db-co.properties.sam
  11. 122
      src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml
  12. 21
      src-modules/module/costage/rohdaten_zul/zul_costage_unload.xml
  13. 32
      src-modules/module/costage/schluesseltabellen/konstanten_fuellen.sql
  14. 19
      src-modules/module/costage/schluesseltabellen/sx_repository.unl
  15. 1
      src-modules/module/costage/upgrade/costage_upgrade_man.sql

32
src-modules/module/costage/conf/costage.xml

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module name="costage" version="0.7b" sachgebiet_id="310" <module name="costage" version="0.5b" sachgebiet_id="310"
sachgebiet="CO Basisdaten" systeminfo_id="310" sachgebiet="CO Basisdaten" systeminfo_id="310"
system="CO Basisdaten" thema="CO Basisdaten" thema_parent="Studierende, Prüfungen"> system="CO Basisdaten" thema="CO Basisdaten" thema_parent="Studierende, Prüfungen">
<database name="superx" system="superx"> <database name="superx" system="superx">
@ -483,11 +483,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="second_nationality" type ="INTEGER" size ="4" default ="" notnull ="false" description="Amtl. Schluessel fuer zweite Staatsangehoerigkeit" currentlyUsed="false"/> <column name="second_nationality" type ="INTEGER" size ="4" default ="" notnull ="false" description="Amtl. Schluessel fuer zweite Staatsangehoerigkeit" currentlyUsed="false"/>
<column name="d_exmatr" type ="DATE" size ="4" default ="" notnull ="false" description="Datum der Exmatr. (obsolet)"/> <column name="d_exmatr" type ="DATE" size ="4" default ="" notnull ="false" description="Datum der Exmatr. (obsolet)"/>
<column name="semester_max" type ="INTEGER" size ="4" default ="" notnull ="false" description="Letztes eingeschriebenes Semester" currentlyUsed=""/> <column name="semester_max" type ="INTEGER" size ="4" default ="" notnull ="false" description="Letztes eingeschriebenes Semester" currentlyUsed=""/>
<column name="abm_art_p" type ="CHAR" size ="10" default ="" notnull ="false" description="Art Abmeldung (personbezogen)" > </columns>
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_sem_nr - costage_st_personen_abmeldungen.st_studstamm_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_personen_abmeldungen.person_flag='J'</comment>
</column>
</columns>
<indexes></indexes> <indexes></indexes>
<primaryKeys><rs> <primaryKeys><rs>
</rs></primaryKeys> </rs></primaryKeys>
@ -594,13 +590,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" /> <sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='S'</comment> <comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_abmeldungsarten.bezug='S'</comment>
</column> </column>
<!--<column name="abm_datum_p" type ="DATE" size ="10" default ="" notnull ="false" description="Datum der Abmeldung (personbezogen)" >
<sourcefield table="costage_st_personen_abmeldungen" name="st_abm_art_kurzbezeichnung" sourcesystem="co" />
<comment>Lookup via: st_studium_nr/st_sem_nr - costage_st_personen_abmeldungen.st_studium_nr/st_sem_nr - costage_st_semester.semester_tid / costage_st_personen_abmeldungen.person_flag='J'</comment>
</column>-->
<column name="praxissemester" type ="INTEGER" size ="4" default ="" notnull ="false" description="Praxissemester" />
<column name="klinsem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Klinische Semester" />
<column name="st_studium_nr_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studium des MSG (ID)" />
</columns> </columns>
<indexes> <indexes>
@ -640,10 +629,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="leistungsdatum_msg" type ="DATE" size ="7" default ="" notnull ="false" description="Prüfungsdatum MSG"/> <column name="leistungsdatum_msg" type ="DATE" size ="7" default ="" notnull ="false" description="Prüfungsdatum MSG"/>
<column name="semester_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester MSG" /> <column name="semester_msg" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester MSG" />
<column name="summe" type ="INTEGER" size ="2" default ="" notnull ="false" description="Summe" /> <column name="summe" type ="INTEGER" size ="2" default ="" notnull ="false" description="Summe" />
<column name="po_stp_stp_version_kb" type ="CHAR" size ="10" default ="" notnull ="false" description="SPO-Version" >
<sourcefield table="costage_st_studien_spoversionen" name="po_stp_stp_version_kb" sourcesystem="co" />
<comment>Lookup via: st_studium_nr - costage_st_studien_spoversionen.st_studium_nr, hierbei die jeweils letzte (max(gueltig_ab) </comment>
</column>
</columns> </columns>
<indexes> <indexes>
<index name="ix_costage_st_pruef_aggr1" unique="false"> <index name="ix_costage_st_pruef_aggr1" unique="false">
@ -726,8 +711,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<table name="costage_bw_antr_aggr" thema="Bewerbungen" caption="Bewerbungen (CO)" typ="Hilfstabelle" releaseUnload="empty"> <table name="costage_bw_antr_aggr" thema="Bewerbungen" caption="Bewerbungen (CO)" typ="Hilfstabelle" releaseUnload="empty">
<columns> <columns>
<column name="nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Antragsnummer"/> <column name="nr" type ="INTEGER" size ="4" default ="" notnull ="true" description="Bewerbungsnr."/>
<column name="st_studstamm_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Bewerbernummer" /> <column name="st_studstamm_nr" type ="INTEGER" size ="8" default ="" notnull ="true" description="Person-Nr." />
<column name="matrikelnummer" type ="INTEGER" size ="8" default ="" notnull ="false" description="Matrikelnummer" /> <column name="matrikelnummer" type ="INTEGER" size ="8" default ="" notnull ="false" description="Matrikelnummer" />
<column name="semester" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester" ><comment></comment></column> <column name="semester" type ="INTEGER" size ="8" default ="" notnull ="false" description="Semester" ><comment></comment></column>
<column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID)" /> <column name="st_studiengang_nr" type ="INTEGER" size ="8" default ="" notnull ="false" description="Studiengang (ID)" />
@ -746,7 +731,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<column name="status_dok" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Bewerbungsunterlagen" /> <column name="status_dok" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Bewerbungsunterlagen" />
<column name="status_zul" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Zulassung" /> <column name="status_zul" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Zulassung" />
<column name="status_stpl" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Studienplatzangebot" /> <column name="status_stpl" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Studienplatzangebot" />
<column name="status_qvss" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status fachliche Zulassungsvoraussetzungen" /> <column name="status_qvss" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Fachliche Zulassungsvoraussetzungen" />
<column name="status_abgabe" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Bewerbungsabgabe" /> <column name="status_abgabe" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Bewerbungsabgabe" />
<column name="status_evs" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Einschreibungsvoraussetzungen" /> <column name="status_evs" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Status Einschreibungsvoraussetzungen" />
<column name="bew_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen gültige Bewerbung" /> <column name="bew_kz" type ="VARCHAR" size ="10" default ="" notnull ="false" description="Kennzeichen gültige Bewerbung" />
@ -1111,7 +1096,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
<columns><column name="leistung_nr" type ="INTEGER" size ="4" default ="" notnull ="true" /> <columns><column name="leistung_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="leistungstyp_nr" type ="INTEGER" size ="4" default ="" notnull ="true" /> <column name="leistungstyp_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
<column name="leistungsdetailtyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" /> <column name="leistungsdetailtyp_kb" type ="VARCHAR" size ="10" default ="" notnull ="false" />
<column name="matrikelnummer" type ="INTEGER" size ="12" default ="" notnull ="false" /> <column name="matrikelnummer" type ="VARCHAR" size ="12" default ="" notnull ="false" />
<column name="vorname" type ="VARCHAR" size ="255" default ="" notnull ="true" /> <column name="vorname" type ="VARCHAR" size ="255" default ="" notnull ="true" />
<column name="nachname" type ="VARCHAR" size ="255" default ="" notnull ="true" /> <column name="nachname" type ="VARCHAR" size ="255" default ="" notnull ="true" />
<column name="st_studium_nr" type ="INTEGER" size ="4" default ="" notnull ="true" /> <column name="st_studium_nr" type ="INTEGER" size ="4" default ="" notnull ="true" />
@ -1848,6 +1833,10 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
displayType="select" visibleFields="name" format="%s"> displayType="select" visibleFields="name" format="%s">
<relation-column from="nr" to="bw_zul_art_nr" /> <relation-column from="nr" to="bw_zul_art_nr" />
</relation> </relation>
<relation from="costage_st_studierendenstammdaten" to="costage_bw_antr_aggr" delete="FALSE"
displayType="select" visibleFields="matrikelnummer" format="%s">
<relation-column from="st_studstamm_nr" to="st_studstamm_nr" />
</relation>
<!--costage_st_lv_aggr--> <!--costage_st_lv_aggr-->
<relation from="costage_st_semester" to="costage_st_lv_aggr" delete="FALSE" <relation from="costage_st_semester" to="costage_st_lv_aggr" delete="FALSE"
displayType="select" visibleFields="semester_bezeichnung" format="%s"> displayType="select" visibleFields="semester_bezeichnung" format="%s">
@ -1940,7 +1929,6 @@ parent="CO Basisdaten">Abfragen zu Studienplänen und Ordnungen</thema>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lehrveranstaltungen.sql" database=""/> <nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lehrveranstaltungen.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lv_teilnehmende.sql" database=""/> <nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_lv_teilnehmende.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_st_hochschulsemester.sql" database=""/> <nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_st_hochschulsemester.sql" database=""/>
<nativeaction sql="" scriptfile="$COSTAGE_PFAD/datentabellen/trans_costage_leistungen.sql" database=""/>
</action> </action>
</etl-step> </etl-step>

12
src-modules/module/costage/datentabellen/trans_costage_leistungen.sql

@ -1,12 +0,0 @@
--freemarker template
--(c) 2025 D.Quathamer
<#if COSTAGE_LEISTUNGSSTATUS_MAP?exists>
update costage_leistungen set leistungsstatus_map_kb=${COSTAGE_LEISTUNGSSTATUS_MAP}
;
</#if>

16
src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql

@ -18,7 +18,6 @@ d_geburt DATE ,
ca12_staat INTEGER , ca12_staat INTEGER ,
second_nationality INTEGER , second_nationality INTEGER ,
d_exmatr DATE , d_exmatr DATE ,
abm_art_p char(10),
semester_max INTEGER semester_max INTEGER
) )
; ;
@ -58,7 +57,7 @@ insert into tmp_st_studierendenstammdaten(
-- ca12_staat, -- ca12_staat,
-- second_nationality, -- second_nationality,
d_geburt, d_geburt,
-- d_exmatr, d_exmatr,
semester_max) semester_max)
select select
S.st_studstamm_nr, S.st_studstamm_nr,
@ -78,6 +77,7 @@ when S.geschlecht='W' then 2
when S.geschlecht='X' then 3 when S.geschlecht='X' then 3
else 4 end)::smallint as geschlecht, else 4 end)::smallint as geschlecht,
date(S.geburtsdatum) as d_geburt, date(S.geburtsdatum) as d_geburt,
date(S.abmeldungsdatum) as d_exmatr,
M.semester_max M.semester_max
FROM costage_st_laender L, costage_st_studierendenstammdaten_neu S left outer join tmp_max M FROM costage_st_laender L, costage_st_studierendenstammdaten_neu S left outer join tmp_max M
on (M.st_studstamm_nr=S.st_studstamm_nr) on (M.st_studstamm_nr=S.st_studstamm_nr)
@ -85,16 +85,6 @@ where L.st_land_nr=S.st_land1_nr
and S.matrikelnummer is not null and S.matrikelnummer is not null
; ;
--TODO: statt semesterende das tatsächliche Abmeldungsdatum
update tmp_st_studierendenstammdaten set d_exmatr=date(S.semester_ende),
abm_art_p=A.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen A,costage_st_semester S
where A.st_sem_nr=S.st_sem_nr
and A.st_studstamm_nr=tmp_st_studierendenstammdaten.st_studstamm_nr
and S.semester_tid=tmp_st_studierendenstammdaten.semester_max
and A.person_flag='J';
update tmp_st_studierendenstammdaten set ca12_staat=val(L.statistik_code) update tmp_st_studierendenstammdaten set ca12_staat=val(L.statistik_code)
from costage_st_laender L from costage_st_laender L
where L.st_land_nr=tmp_st_studierendenstammdaten.st_land1_nr; where L.st_land_nr=tmp_st_studierendenstammdaten.st_land1_nr;
@ -125,7 +115,6 @@ insert into costage_st_studierendenstammdaten(
second_nationality, second_nationality,
d_geburt, d_geburt,
d_exmatr, d_exmatr,
abm_art_p,
semester_max) semester_max)
select select
st_studstamm_nr, st_studstamm_nr,
@ -145,7 +134,6 @@ st_studstamm_nr,
second_nationality, second_nationality,
d_geburt, d_geburt,
d_exmatr, d_exmatr,
abm_art_p,
semester_max semester_max
FROM tmp_st_studierendenstammdaten FROM tmp_st_studierendenstammdaten
; ;

8
src-modules/module/costage/hilfstabellen/costage_st_einzpruef_aggr_fuellen.sql

@ -14,7 +14,7 @@ select min(S.tid) from semester S where S.sem_beginn >= today()-(182*${anz_sem})
SELECT SELECT
L.st_studium_nr, L.st_studium_nr,
S.st_studstamm_nr, S.st_studstamm_nr,
L.matrikelnummer::integer as matrikelnummer, val(L.matrikelnummer) as matrikelnummer,
null::integer as st_studiengang_nr, null::integer as st_studiengang_nr,
null::integer as studiengang_nr, null::integer as studiengang_nr,
null::integer as fach_nr, null::integer as fach_nr,
@ -65,7 +65,7 @@ into temp tmp_pruef
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where E.semester_id=L.veranstaltung_semester where E.semester_id=L.veranstaltung_semester
and T.leistungstyp_nr=L.leistungstyp_nr and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer=L.matrikelnummer and S.matrikelnummer::varchar(255)=L.matrikelnummer
-- TSAB/AB: -- TSAB/AB:
--and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung --and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -83,7 +83,7 @@ insert into tmp_pruef
SELECT SELECT
L.st_studium_nr, L.st_studium_nr,
S.st_studstamm_nr, S.st_studstamm_nr,
L.matrikelnummer::integer as matrikelnummer, val(L.matrikelnummer) as matrikelnummer,
null::integer as st_studiengang_nr, null::integer as st_studiengang_nr,
null::integer as studiengang_nr, null::integer as studiengang_nr,
null::integer as fach_nr, null::integer as fach_nr,
@ -134,7 +134,7 @@ FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, co
where L.leistungsdatum between E.semester_anfang and E.semester_ende where L.leistungsdatum between E.semester_anfang and E.semester_ende
and L.veranstaltung_semester is null and L.veranstaltung_semester is null
and T.leistungstyp_nr=L.leistungstyp_nr and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer=L.matrikelnummer and S.matrikelnummer::varchar(255)=L.matrikelnummer
-- TSAB/AB: -- TSAB/AB:
--and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung --and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung

51
src-modules/module/costage/hilfstabellen/costage_st_pruef_aggr_fuellen.sql

@ -12,7 +12,7 @@ where param_id='COSTAGE_start_leistungen_sem';
SELECT SELECT
L.st_studium_nr, L.st_studium_nr,
S.st_studstamm_nr, S.st_studstamm_nr,
L.matrikelnummer::integer as matrikelnummer, val(L.matrikelnummer) as matrikelnummer,
null::integer as st_studiengang_nr, null::integer as st_studiengang_nr,
null::integer as studiengang_nr, null::integer as studiengang_nr,
null::integer as fach_nr, null::integer as fach_nr,
@ -25,6 +25,7 @@ L.leistung_nr,
L.leistungstyp_nr, L.leistungstyp_nr,
L.leistungsdetailtyp_kb, L.leistungsdetailtyp_kb,
L.studienidentifikator, L.studienidentifikator,
L.spov_abschluss,
L.stp_sp_nr, L.stp_sp_nr,
L.veranstaltung_nummer, L.veranstaltung_nummer,
L.veranstaltung_semester, L.veranstaltung_semester,
@ -56,13 +57,12 @@ null::integer as pnr,
null::integer as leistung_nr_msg, null::integer as leistung_nr_msg,
null::integer as st_studiengang_nr_msg, null::integer as st_studiengang_nr_msg,
null::date as leistungsdatum_msg, null::date as leistungsdatum_msg,
null::integer as semester_msg, null::integer as semester_msg
L.spov_abschluss as po_stp_stp_version_kb
into temp tmp_pruef into temp tmp_pruef
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where E.semester_id=L.veranstaltung_semester where E.semester_id=L.veranstaltung_semester
and T.leistungstyp_nr=L.leistungstyp_nr and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer=L.matrikelnummer and S.matrikelnummer::varchar(255)=L.matrikelnummer
-- TSAB/AB: -- TSAB/AB:
and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -80,7 +80,7 @@ insert into tmp_pruef
SELECT SELECT
L.st_studium_nr, L.st_studium_nr,
S.st_studstamm_nr, S.st_studstamm_nr,
L.matrikelnummer::integer as matrikelnummer, val(L.matrikelnummer) as matrikelnummer,
null::integer as st_studiengang_nr, null::integer as st_studiengang_nr,
null::integer as studiengang_nr, null::integer as studiengang_nr,
null::integer as fach_nr, null::integer as fach_nr,
@ -93,6 +93,7 @@ L.leistung_nr,
L.leistungstyp_nr, L.leistungstyp_nr,
L.leistungsdetailtyp_kb, L.leistungsdetailtyp_kb,
L.studienidentifikator, L.studienidentifikator,
L.spov_abschluss,
L.stp_sp_nr, L.stp_sp_nr,
L.veranstaltung_nummer, L.veranstaltung_nummer,
L.veranstaltung_semester, L.veranstaltung_semester,
@ -124,13 +125,12 @@ null::integer as pnr,
null::integer as leistung_nr_msg, null::integer as leistung_nr_msg,
null::integer as st_studiengang_nr_msg, null::integer as st_studiengang_nr_msg,
null::date as leistungsdatum_msg, null::date as leistungsdatum_msg,
null::integer as semester_msg, null::integer as semester_msg
L.spov_abschluss
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S
where L.leistungsdatum between E.semester_anfang and E.semester_ende where L.leistungsdatum between E.semester_anfang and E.semester_ende
and L.veranstaltung_semester is null and L.veranstaltung_semester is null
and T.leistungstyp_nr=L.leistungstyp_nr and T.leistungstyp_nr=L.leistungstyp_nr
and S.matrikelnummer=L.matrikelnummer and S.matrikelnummer::varchar(255)=L.matrikelnummer
-- TSAB/AB: -- TSAB/AB:
and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung
@ -149,14 +149,6 @@ from costage_st_studien S
where S.st_studium_nr=tmp_pruef.st_studium_nr where S.st_studium_nr=tmp_pruef.st_studium_nr
and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr
; ;
--Fachsemester aus Sem. des Prüfungsdatums holen:
update tmp_pruef set
fachsemester = S.fachsemester
from costage_st_studien_aggr S
where S.semester=tmp_pruef.semester
and S.st_studium_nr=tmp_pruef.st_studium_nr
and S.matrikelnummer=tmp_pruef.matrikelnummer
;
--Prüfung kann nach letztem eingeschr. Semester sein, daher zuerst letztes Sem. ermitteln: --Prüfung kann nach letztem eingeschr. Semester sein, daher zuerst letztes Sem. ermitteln:
select S.st_studium_nr, select S.st_studium_nr,
@ -174,10 +166,9 @@ and S.matrikelnummer=P.matrikelnummer
group by 1,2 group by 1,2
; ;
--Dann Studium vom letzten Semester in den Prüfungs-Datensatz schreiben: --Dann Studium vom letzten Semester in den Prüfungs-Datensatz schreiben:
--TODO langsam:
update tmp_pruef set update tmp_pruef set
st_studienstatus_nr=S.st_studienstatus_nr, st_studienstatus_nr=S.st_studienstatus_nr,
--fachsemester = S.fachsemester, --wird oben ermittelt, ab 0.6 nicht mehr aus letztem Studiums-Semester fachsemester = S.fachsemester,
studiengang_nr=S.studiengang_nr, studiengang_nr=S.studiengang_nr,
fach_nr=S.fach_nr, fach_nr=S.fach_nr,
unikey=S.unikey, unikey=S.unikey,
@ -222,24 +213,6 @@ leistungsdatum_msg=leistungsdatum,
semester_msg=semester semester_msg=semester
where tmp_pruef.leistungsdetailtyp_kb !='TSAB' where tmp_pruef.leistungsdetailtyp_kb !='TSAB'
; ;
--Fachsemester bei MSG gibt es in CO nicht. Daher die Regel:
--die Fachsemesterzahl sollte die höchste FS-Zahl aus allen TSG enthalten:
select matrikelnummer,st_studiengang_nr_msg,max(semester) as semester_max,max(fachsemester) as fachsem_max
into temp tmp_fachsem_msg
from tmp_pruef
where leistungsdetailtyp_kb='TSAB'
and st_studiengang_nr_msg is not null
group by 1,2;
update tmp_pruef set fachsemester=T.fachsem_max
from tmp_fachsem_msg T
where T.matrikelnummer=tmp_pruef.matrikelnummer
and T.st_studiengang_nr_msg=tmp_pruef.st_studiengang_nr
and T.semester_max <=tmp_pruef.semester
and tmp_pruef.leistungsdetailtyp_kb='BAKN'
;
drop table tmp_fachsem_msg;
--unikey setzen, wenn noch nicht vorhanden (z.B. bei MSG): --unikey setzen, wenn noch nicht vorhanden (z.B. bei MSG):
update tmp_pruef set unikey=K.unikey update tmp_pruef set unikey=K.unikey
@ -249,8 +222,6 @@ and K.st_skz_nr=G.st_skz_nr
and tmp_pruef.unikey is null and tmp_pruef.unikey is null
; ;
delete from costage_st_pruef_aggr delete from costage_st_pruef_aggr
where semester >= ${beginn_semester}; where semester >= ${beginn_semester};
@ -272,7 +243,6 @@ insert into costage_st_pruef_aggr(st_studium_nr,
pnr, pnr,
abschnitt, abschnitt,
stp_sp_nr, stp_sp_nr,
po_stp_stp_version_kb,
note, note,
credits, credits,
leistungsdatum, leistungsdatum,
@ -302,7 +272,6 @@ select
pnr, pnr,
abschnitt, abschnitt,
stp_sp_nr, stp_sp_nr,
po_stp_stp_version_kb,
case when pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7') or pv_notenskala_typ_kb is null then note_zahl else null::float end as note, case when pv_notenskala_typ_kb in ('DE1','DE2','DE3','DE4','DE5','DE6','DE7') or pv_notenskala_typ_kb is null then note_zahl else null::float end as note,
credits, credits,
leistungsdatum, leistungsdatum,
@ -314,7 +283,7 @@ select
semester_msg, semester_msg,
count(*) count(*)
from tmp_pruef from tmp_pruef
group by 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; group by 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;
drop table tmp_pruef; drop table tmp_pruef;
drop table tmp_pruef2; drop table tmp_pruef2;

132
src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql

@ -41,9 +41,7 @@ null::integer as st_studiengang_nr_msg_primaerflag,
--null::integer as studienfach_sortierung, --null::integer as studienfach_sortierung,
null::char(10) as hrst, null::char(10) as hrst,
null::integer as fachsemester, null::integer as fachsemester,
null::integer as praxissemester,
null::integer as hssem, null::integer as hssem,
null::integer as klinsem,
(case when SG.studiengangs_typ_kb in ('TSG') then SA.studienstatustyp else null::char(10) end) as statustyp_tsg, (case when SG.studiengangs_typ_kb in ('TSG') then SA.studienstatustyp else null::char(10) end) as statustyp_tsg,
(case when ST.hauptstudium_flag='J' then 1::smallint else 0::smallint end) as primaerflag_studien, (case when ST.hauptstudium_flag='J' then 1::smallint else 0::smallint end) as primaerflag_studien,
0::smallint as tsg_generated, 0::smallint as tsg_generated,
@ -63,7 +61,7 @@ null::integer as hzb_jahr,
null::date as hzb_datum , null::date as hzb_datum ,
null::decimal(14,7) as hzb_note, null::decimal(14,7) as hzb_note,
null::char(10) as abm_art_s, null::char(10) as abm_art_s,
rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by SA.gueltig_ab desc,SA.studienstatustyp desc) as status_historie rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by SA.gueltig_ab desc) as status_historie
--rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by (case when SA.gueltig_ab =SM.semester_ende then date_val('01.01.1900') else SA.gueltig_ab end) desc) as status_historie --rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by (case when SA.gueltig_ab =SM.semester_ende then date_val('01.01.1900') else SA.gueltig_ab end) desc) as status_historie
into temp tmp_studien into temp tmp_studien
FROM costage_st_studierendenstammdaten S, FROM costage_st_studierendenstammdaten S,
@ -88,11 +86,8 @@ and (SA.studienstatustyp not in ('Z','X') or (
and SA.gueltig_ab <= today() and SA.gueltig_ab <= today()
and date(SA.gueltig_ab) < date(SM.semester_ende) and date(SA.gueltig_ab) < date(SM.semester_ende)
)) --Studis außer erst/neueinschr/rückmeld/beurlaubt werden in der Semestermitte exmatr. zum Endedatum Semesterende, wenn dieses Datum in der Zukunft liegt soll der Studi mit dem vorherigen Status erscheinen )) --Studis außer erst/neueinschr/rückmeld/beurlaubt werden in der Semestermitte exmatr. zum Endedatum Semesterende, wenn dieses Datum in der Zukunft liegt soll der Studi mit dem vorherigen Status erscheinen
<#if COSTAGE_STUDIENSTATUS_FILTER?exists> --and SA.studienstatustyp not in ('a','o')
and ${COSTAGE_STUDIENSTATUS_FILTER} --group by 1,2,3,4,5,6,7,8,9,10,11,12,13
<#else>
and SA.studienstatustyp not in ('a','o','z')
</#if>
and ${COSTAGE_STUDENT_FILTER} and ${COSTAGE_STUDENT_FILTER}
and SM.semester_tid >= ${beginn_semester} and SM.semester_tid >= ${beginn_semester}
; ;
@ -150,8 +145,7 @@ drop table if exists tmp_studien_esg_tsg;
select *, select *,
1::integer as primaerflag, 1::integer as primaerflag,
null::integer as letztes_tsg_semester, null::integer as letztes_tsg_semester,
null::integer as st_studium_nr_msg, null::integer as st_studium_nr_msg
null::date as endedat_tsg
into temp tmp_studien_esg_tsg from tmp_studien T into temp tmp_studien_esg_tsg from tmp_studien T
where T.studiengangs_typ_kb in ('ESG','TSG') where T.studiengangs_typ_kb in ('ESG','TSG')
and T.status_historie=1 and T.status_historie=1
@ -211,30 +205,6 @@ and F.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and F.fachsemestertyp='FS' and F.fachsemestertyp='FS'
; ;
select 35,timestamp_str(now()) from xdummy;
--praxissemester:
update tmp_studien_esg_tsg
set praxissemester=F.fachsemester
from costage_st_fachsemester F
where F.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and F.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and F.fachsemestertyp='PS'
;
select 36,timestamp_str(now()) from xdummy;
--klinsem
update tmp_studien_esg_tsg
set klinsem=F.fachsemester
from costage_st_fachsemester F
where F.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and F.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and F.fachsemestertyp='KS'
;
select 40,timestamp_str(now()) from xdummy; select 40,timestamp_str(now()) from xdummy;
update tmp_studien_esg_tsg update tmp_studien_esg_tsg
@ -266,27 +236,6 @@ and A.st_abm_art_kurzbezeichnung=P.st_abm_art_kurzbezeichnung
and A.bezug='S' and A.bezug='S'
; ;
select 55,timestamp_str(now()) from xdummy;
--Endedatum bei TSG nachladen bei Abmeldungen:
update tmp_studien_esg_tsg set endedat_tsg=SA.gueltig_ab
from costage_st_studienstatus SA
where SA.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and SA.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and SA.studienstatustyp in ('Z','X')
and tmp_studien_esg_tsg.abm_art_s is not null
;
select 57,timestamp_str(now()) from xdummy;
update tmp_studien_esg_tsg set endedat=SA.gueltig_ab
from costage_st_studienstatus SA
where SA.st_studium_nr=tmp_studien_esg_tsg.st_studium_nr
and SA.st_sem_nr=tmp_studien_esg_tsg.st_sem_nr
and SA.studienstatustyp in ('Z','X')
and tmp_studien_esg_tsg.studiengangs_typ_kb='ESG'
and tmp_studien_esg_tsg.abm_art_s is not null
;
select 60,timestamp_str(now()) from xdummy; select 60,timestamp_str(now()) from xdummy;
@ -429,17 +378,14 @@ null::timestamp as beginn_datum,
null::timestamp AS gueltig_ab, null::timestamp AS gueltig_ab,
null::integer as st_studienstatus_nr, null::integer as st_studienstatus_nr,
null::integer as primaerflag_studien_msg, null::integer as primaerflag_studien_msg,
null::integer as st_studium_nr_msg,
max(T.semester) as letztes_tsg_semester, max(T.semester) as letztes_tsg_semester,
max(T.fachsemester) as fachsemester, max(T.fachsemester) as fachsemester
max(T.praxissemester) as praxissemester,
max(T.klinsem) as klinsem
into temp tmp_studien_msg_tsg_fehlend2 into temp tmp_studien_msg_tsg_fehlend2
from tmp_studien_msg_tsg_fehlend F, tmp_studien_tsg T from tmp_studien_msg_tsg_fehlend F, tmp_studien_tsg T
where F.st_studstamm_nr=T.st_studstamm_nr where F.st_studstamm_nr=T.st_studstamm_nr
and F.st_studiengang_nr_tsg=T.st_studiengang_nr and F.st_studiengang_nr_tsg=T.st_studiengang_nr
and T.semester=F.endsemester_tsg and T.semester=F.endsemester_tsg
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29 ,30 ,31,32 ,33 ,34,35,36,37,38 group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29 ,30 ,31,32 ,33 ,34,35,36
; ;
update tmp_studien_msg_tsg_fehlend2 set update tmp_studien_msg_tsg_fehlend2 set
@ -449,8 +395,7 @@ abm_art_s=S.abm_art_s,
abm_art_s_msg=S.abm_art_s_msg, abm_art_s_msg=S.abm_art_s_msg,
beginn_datum =S.beginn_datum, beginn_datum =S.beginn_datum,
gueltig_ab=S.gueltig_ab, gueltig_ab=S.gueltig_ab,
st_studienstatus_nr=S.st_studienstatus_nr, st_studienstatus_nr=S.st_studienstatus_nr
st_studium_nr_msg=S.st_studium_nr_msg
from tmp_studien_tsg S from tmp_studien_tsg S
where S.st_studiengang_nr=tmp_studien_msg_tsg_fehlend2.st_studiengang_nr_tsg where S.st_studiengang_nr=tmp_studien_msg_tsg_fehlend2.st_studiengang_nr_tsg
and S.st_studstamm_nr=tmp_studien_msg_tsg_fehlend2.st_studstamm_nr and S.st_studstamm_nr=tmp_studien_msg_tsg_fehlend2.st_studstamm_nr
@ -504,12 +449,9 @@ hzb_land_nr,
abm_art_s, abm_art_s,
abm_art_s_msg, abm_art_s_msg,
fachsemester, fachsemester,
praxissemester,
klinsem,
studienfach_sortierung, studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
primaerflag_studien_msg, primaerflag_studien_msg
st_studium_nr_msg
) )
select distinct semester, select distinct semester,
semester_anfang, semester_anfang,
@ -548,12 +490,9 @@ hzb_land_nr,
abm_art_s, abm_art_s,
abm_art_s_msg, abm_art_s_msg,
fachsemester, fachsemester,
praxissemester,
klinsem,
studienfach_sortierung, studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
primaerflag_studien_msg, primaerflag_studien_msg
st_studium_nr_msg
from tmp_studien_msg_tsg_fehlend2 F, costage_st_studiengaenge G from tmp_studien_msg_tsg_fehlend2 F, costage_st_studiengaenge G
where G.st_studiengang_nr=F.st_studiengang_nr_msg where G.st_studiengang_nr=F.st_studiengang_nr_msg
; ;
@ -604,7 +543,6 @@ studiengangs_identifikator,
studiengangs_bezeichnung, studiengangs_bezeichnung,
st_sem_nr, st_sem_nr,
st_studium_nr, st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
studienstatustyp, studienstatustyp,
st_studienstatus_nr, st_studienstatus_nr,
@ -633,8 +571,6 @@ hzb_land_nr,
abm_art_s, abm_art_s,
abm_art_s_msg, abm_art_s_msg,
fachsemester, fachsemester,
praxissemester,
klinsem,
studienfach_sortierung, studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
primaerflag_studien_msg, primaerflag_studien_msg,
@ -642,9 +578,7 @@ primaerflag_studien_msg,
null::integer as fach_nr, null::integer as fach_nr,
null::integer as studiengang_nr, null::integer as studiengang_nr,
null::char(10) as unikey, null::char(10) as unikey,
null::integer as kz_rueck_beur_ein, null::integer as kz_rueck_beur_ein
endedat,
endedat_tsg
into temp tmp_studien2 into temp tmp_studien2
from tmp_studien_tsg; from tmp_studien_tsg;
@ -685,12 +619,9 @@ hzb_note,
hzb_land_nr, hzb_land_nr,
abm_art_s, abm_art_s,
fachsemester, fachsemester,
praxissemester,
klinsem,
studienfach_sortierung, studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
studiengangs_typ_kb, studiengangs_typ_kb
endedat
) )
select select
semester, semester,
@ -729,12 +660,9 @@ hzb_note,
hzb_land_nr, hzb_land_nr,
abm_art_s, abm_art_s,
fachsemester, fachsemester,
praxissemester,
klinsem,
1::integer as studienfach_sortierung, 1::integer as studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
studiengangs_typ_kb, studiengangs_typ_kb
endedat
from tmp_studien_esg_tsg E from tmp_studien_esg_tsg E
where E.studiengangs_typ_kb='ESG'; where E.studiengangs_typ_kb='ESG';
@ -814,7 +742,6 @@ studiengangs_identifikator,
studiengangs_bezeichnung, studiengangs_bezeichnung,
st_sem_nr, st_sem_nr,
T.st_studium_nr, T.st_studium_nr,
T.st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
studienstatustyp, studienstatustyp,
st_studienstatus_nr, st_studienstatus_nr,
@ -843,8 +770,6 @@ hzb_land_nr,
abm_art_s, abm_art_s,
abm_art_s_msg, abm_art_s_msg,
fachsemester, fachsemester,
praxissemester,
klinsem,
studienfach_sortierung, studienfach_sortierung,
letztes_tsg_semester, letztes_tsg_semester,
studiengangs_typ_kb, studiengangs_typ_kb,
@ -852,8 +777,6 @@ fach_nr,
studiengang_nr, studiengang_nr,
unikey, unikey,
kz_rueck_beur_ein, kz_rueck_beur_ein,
endedat,
endedat_tsg,
null::char(10) as po_stp_stp_version_kb, null::char(10) as po_stp_stp_version_kb,
null::integer as po_regelstudienzeit, null::integer as po_regelstudienzeit,
null::integer as kz_rueck_beur_ein_tsg, null::integer as kz_rueck_beur_ein_tsg,
@ -862,7 +785,7 @@ into temp tmp_studien3
from tmp_studien2 T left outer join costage_st_studien_spoversionen SPO from tmp_studien2 T left outer join costage_st_studien_spoversionen SPO
on (SPO.st_studium_nr=T.st_studium_nr on (SPO.st_studium_nr=T.st_studium_nr
and SPO.gueltig_ab < T.semester_ende) and SPO.gueltig_ab < T.semester_ende)
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45 ,46, 47,48,49 --,50,51,52 group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 --,45,46,47,48,49,50,51,52
; ;
select 160,timestamp_str(now()) from xdummy; select 160,timestamp_str(now()) from xdummy;
@ -893,7 +816,6 @@ create index ix_tmp_studien2 on tmp_studien3(kz_rueck_beur_ein)
; ;
insert into costage_st_studien_aggr( insert into costage_st_studien_aggr(
st_studium_nr, st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
matrikelnummer, matrikelnummer,
st_studiengang_nr, st_studiengang_nr,
@ -905,8 +827,6 @@ st_studium_nr_msg,
hrst, hrst,
semester, semester,
fachsemester, fachsemester,
praxissemester,
klinsem,
hssem, hssem,
primaerflag, primaerflag,
studiengang_nr, studiengang_nr,
@ -934,7 +854,6 @@ st_studium_nr_msg,
) )
select st_studium_nr, select st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
matrikelnummer, matrikelnummer,
st_studiengang_nr, st_studiengang_nr,
@ -946,8 +865,6 @@ st_studium_nr_msg,
hrst, hrst,
semester, semester,
fachsemester, fachsemester,
praxissemester,
klinsem,
hssem, hssem,
primaerflag, primaerflag,
--Nun ist studiengang_nr=1 definiert. Die restlichen werden mit RANK ermittelt: --Nun ist studiengang_nr=1 definiert. Die restlichen werden mit RANK ermittelt:
@ -966,11 +883,9 @@ st_studium_nr_msg,
beginn_datum as anfdat, beginn_datum as anfdat,
(case when studienstatustyp not in ('Z','X') then gueltig_ab (case when studienstatustyp not in ('Z','X') then gueltig_ab
else null::date end) as ruebeudat, else null::date end) as ruebeudat,
(case when endedat is not null then endedat (case when studienstatustyp in ('Z','X') then gueltig_ab
when studienstatustyp in ('Z','X') then gueltig_ab
else null::date end) as endedat, else null::date end) as endedat,
(case when endedat_tsg is not null then endedat_tsg (case when statustyp_tsg in ('Z','X') then gueltig_ab
when statustyp_tsg in ('Z','X') then gueltig_ab
else null::date end) as endedat_tsg, else null::date end) as endedat_tsg,
studienform_statistik_code as stufrm, studienform_statistik_code as stufrm,
kz_rueck_beur_ein, kz_rueck_beur_ein,
@ -995,7 +910,6 @@ st_studium_nr_msg,
-- from above to accomodate ranking in studiengangNummer field -- from above to accomodate ranking in studiengangNummer field
insert into costage_st_studien_aggr( insert into costage_st_studien_aggr(
st_studium_nr, st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
matrikelnummer, matrikelnummer,
st_studiengang_nr, st_studiengang_nr,
@ -1007,8 +921,6 @@ st_studium_nr_msg,
hrst, hrst,
semester, semester,
fachsemester, fachsemester,
praxissemester,
klinsem,
hssem, hssem,
primaerflag, primaerflag,
studiengang_nr, studiengang_nr,
@ -1036,7 +948,6 @@ st_studium_nr_msg,
) )
select st_studium_nr, select st_studium_nr,
st_studium_nr_msg,
st_studstamm_nr, st_studstamm_nr,
matrikelnummer, matrikelnummer,
st_studiengang_nr, st_studiengang_nr,
@ -1048,8 +959,6 @@ st_studium_nr_msg,
hrst, hrst,
semester, semester,
fachsemester, fachsemester,
praxissemester,
klinsem,
hssem, hssem,
primaerflag, primaerflag,
--Nun ist studiengang_nr=1 definiert. Die restlichen werden mit RANK ermittelt: --Nun ist studiengang_nr=1 definiert. Die restlichen werden mit RANK ermittelt:
@ -1069,11 +978,9 @@ cast (NULL as int) as studiengang_nr2,
beginn_datum as anfdat, beginn_datum as anfdat,
(case when studienstatustyp not in ('Z','X') then gueltig_ab (case when studienstatustyp not in ('Z','X') then gueltig_ab
else null::date end) as ruebeudat, else null::date end) as ruebeudat,
(case when endedat is not null then endedat (case when studienstatustyp in ('Z','X') then gueltig_ab
when studienstatustyp in ('Z','X') then gueltig_ab
else null::date end) as endedat, else null::date end) as endedat,
(case when endedat_tsg is not null then endedat_tsg (case when statustyp_tsg in ('Z','X') then gueltig_ab
when statustyp_tsg in ('Z','X') then gueltig_ab
else null::date end) as endedat_tsg, else null::date end) as endedat_tsg,
studienform_statistik_code as stufrm, studienform_statistik_code as stufrm,
kz_rueck_beur_ein, kz_rueck_beur_ein,
@ -1123,11 +1030,12 @@ select 190,timestamp_str(now()) from xdummy;
--Abmeldungsart: --Abmeldungsart:
--zuerst personbezogen: --zuerst personbezogen:
update costage_st_studien_aggr set abm_art_p=P.st_abm_art_kurzbezeichnung update costage_st_studien_aggr set abm_art_p=P.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen P, costage_st_semester S from costage_st_personen_abmeldungen P, costage_st_semester S, costage_st_abmeldungsarten A
where S.st_sem_nr=P.st_sem_nr where S.st_sem_nr=P.st_sem_nr
and S.semester_tid=costage_st_studien_aggr.semester and S.semester_tid=costage_st_studien_aggr.semester
and P.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr and P.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr
and P.person_flag='J' and A.st_abm_art_kurzbezeichnung=P.st_abm_art_kurzbezeichnung
and A.bezug='P'
and costage_st_studien_aggr.semester >= ${beginn_semester} and costage_st_studien_aggr.semester >= ${beginn_semester}
; ;

9
src-modules/module/costage/masken/43110_felderinfo.unl

@ -1,10 +1,15 @@
43110^Antragsnummer^32^0^0^140^180^1^char^30^0^0^ ^ ^ ^ 43110^Studiengang-Nr.^110^0^0^140^150^1^integer^70^0^13^<<SQL>> --Freemarker template\
<#list 1..6 as i>\
select ${i},'${i}. Studiengang' from xdummy\
<#if i_has_next> union </#if>\
</#list>\
order by 1^ ^ ^
43111^Seit Semester^3^0^0^140^80^1^integer^30^0^1^<<SQL>> select semester_tid, semester_bezeichnung from costage_st_semester order by 1 DESC;^ ^<<SQL>> select semester_tid, semester_bezeichnung from costage_st_semester where today()-365 between date(semester_anfang) and date(semester_ende);^ 43111^Seit Semester^3^0^0^140^80^1^integer^30^0^1^<<SQL>> select semester_tid, semester_bezeichnung from costage_st_semester order by 1 DESC;^ ^<<SQL>> select semester_tid, semester_bezeichnung from costage_st_semester where today()-365 between date(semester_anfang) and date(semester_ende);^
43112^Studiengang^9^0^0^130^150^50^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('COSTAGE-Studiengang-Sicht') order by 3,2;^ ^ ^ 43112^Studiengang^9^0^0^130^150^50^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('COSTAGE-Studiengang-Sicht') order by 3,2;^ ^ ^
43113^Staatsangehörigkeit^36^0^0^130^150^10^sql^30^0^1^<<SQL>> SELECT st_land_nr, name from costage_st_laender order by 2;^ ^ ^ 43113^Staatsangehörigkeit^36^0^0^130^150^10^sql^30^0^1^<<SQL>> SELECT st_land_nr, name from costage_st_laender order by 2;^ ^ ^
43114^Zulassungsart^14^350^-1^140^180^1^integer^30^0^1^<<SQL>> select nr, name\ 43114^Zulassungsart^14^350^-1^140^180^1^integer^30^0^1^<<SQL>> select nr, name\
FROM costage_bw_zulassungsarten order by 2^ ^ ^ FROM costage_bw_zulassungsarten order by 2^ ^ ^
43115^Bewerbernummer^25^350^-1^150^180^1^char^200^0^0^^ ^ ^ 43115^Person-Nr.^25^350^-1^150^180^1^integer^200^0^0^^ ^ ^
43116^Weitere Tabellen^123^0^0^140^140^10^char^30^0^1^<<SQL>> \ 43116^Weitere Tabellen^123^0^0^140^140^10^char^30^0^1^<<SQL>> \
--freemarker template\ --freemarker template\
select name,string_not_null(caption) || ' - ' || name from sx_tables where name in ('costage_st_studierendenstammdaten','costage_dim_studiengang')\ select name,string_not_null(caption) || ' - ' || name from sx_tables where name in ('costage_st_studierendenstammdaten','costage_dim_studiengang')\

25
src-modules/module/costage/masken/43110_maskeninfo.unl

@ -52,39 +52,20 @@ SELECT name,\
</sqlvar>\ </sqlvar>\
</sqlvars>\ </sqlvars>\
\ \
<#assign person_nr_filter="1=1" />\
<#assign person_nr_feldwert="" />\
/* <#assign person_nr_feldwert=<<Bewerbernummer>> />*/\
<#if person_nr_feldwert?starts_with("2-")>\
<#assign person_nr_feldwert=person_nr_feldwert?replace("2-","") />\
</#if>\
/* <#assign person_nr_filter="st_studstamm_nr = "+ person_nr_feldwert /> --<<Bewerbernummer>> */\
\
<#assign antrags_nr_filter="1=1" />\
<#assign antrags_nr_feldwert="" />\
/* <#assign antrags_nr_feldwert=<<Antragsnummer>> />*/\
<#if antrags_nr_feldwert?starts_with("1-")>\
<#assign antrags_nr_feldwert=antrags_nr_feldwert?replace("1-","") />\
</#if>\
/* <#assign antrags_nr_filter="costage_bw_antr_aggr.nr= " + antrags_nr_feldwert /> --<<Antragsnummer>> */\
\
\
\
<#assign filter="and bw_typ_kb not in ('MBW')\ <#assign filter="and bw_typ_kb not in ('MBW')\
/* AND bw_zul_art_nr in (<<Zulassungsart>>) */\ /* AND bw_zul_art_nr in (<<Zulassungsart>>) */\
/* and costage_bw_antr_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<<Abschluss>>)) */\ /* and costage_bw_antr_aggr.st_studiengang_nr in (select G.st_studiengang_nr from costage_st_studiengaenge G where G.abschluss in (<<Abschluss>>)) */\
/* and studiengang_nr =<<Studiengang-Nr.>> */\
/* and fach_nr =<<Fach-Nr.>> */\
/* and costage_bw_antr_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<<Staatsangehörigkeit>>) ) */\ /* and costage_bw_antr_aggr.st_studstamm_nr in (select S.st_studstamm_nr from costage_st_studierendenstammdaten S where S.st_land1_nr in (<<Staatsangehörigkeit>>) ) */\
/* and costage_bw_antr_aggr.st_studstamm_nr in (select S2.st_studstamm_nr from costage_st_studierendenstammdaten S2 where S2.geschlecht = <<Geschlecht>> ) */\ /* and costage_bw_antr_aggr.st_studstamm_nr in (select S2.st_studstamm_nr from costage_st_studierendenstammdaten S2 where S2.geschlecht = <<Geschlecht>> ) */\
/* and costage_bw_antr_aggr.unikey=<<Hochschule>> */\ /* and costage_bw_antr_aggr.unikey=<<Hochschule>> */\
/* and semester >= <<Seit Semester>> */\ /* and semester >= <<Seit Semester>> */\
/* and semester <= <<Bis Semester>> */\ /* and semester <= <<Bis Semester>> */\
/* and fachsemester <= <<bis Fachsemester>> */\ /* and fachsemester <= <<bis Fachsemester>> */\
/* and st_studstamm_nr =<<Person-Nr.>> */\
" />\ " />\
\ \
<#assign filter = filter + " and " + person_nr_filter />\
<#assign filter = filter + " and " + antrags_nr_filter />\
\
\
/* <#assign filter = filter + " and 's_' || costage_bw_antr_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<<Studiengang>> */ \ /* <#assign filter = filter + " and 's_' || costage_bw_antr_aggr.st_studiengang_nr in "+Studiengang.allNeededKeysList /> --<<Studiengang>> */ \
\ \
<#if "<<Matrikel-Nr.>>"!="">\ <#if "<<Matrikel-Nr.>>"!="">\

171
src-modules/module/costage/rohdaten/costage_unload.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<superx-unload version="4.0"> <superx-unload version="4.0">
<module id="costage" version="0.7b" systeminfo_id="310">COSTAGE-Modul</module> <module id="costage" version="0.4b" systeminfo_id="310">COSTAGE-Modul</module>
<parameters> <parameters>
<param name="VERSION" defaultValue="2" description="Datenbank-Version"><comment>CO-Version, wird derzeit ignoriert</comment></param> <param name="VERSION" defaultValue="2" description="Datenbank-Version"><comment>CO-Version, wird derzeit ignoriert</comment></param>
@ -733,9 +733,9 @@ SELECT leistung_nr,
anerkannt_flag, anerkannt_flag,
zusatzleistung_flag, zusatzleistung_flag,
leistungsstatus_nr, leistungsstatus_nr,
null ,--leistungsstatus_map_kb, leistungsstatus_map_kb,
null --abs_fach_st_studium_nr abs_fach_st_studium_nr
FROM px_leistungen_v FROM sx_leistungen_v
--da das Semester bei Leistungen nicht immer gefuellt ist bzw. der Datum der Leistung nach dem Studium sein kann, hier keine Where Bedingung aufs Startsemester --da das Semester bei Leistungen nicht immer gefuellt ist bzw. der Datum der Leistung nach dem Studium sein kann, hier keine Where Bedingung aufs Startsemester
; ;
]]> ]]>
@ -935,20 +935,163 @@ where 1=0
]]> ]]>
</extraction-sql> </extraction-sql>
</unload-job> </unload-job>
<unload-job id="px_bewerb_mzb_v" target-table="costage_bewerb_mzb" extraction-script="" transfer-unload-file="unl/costage_bewerb_mzb.unl" >
<comment>Bewerbungen zugeordnete MZB</comment> <!-- 12.04.2024: Neue Views im Bereich Basis-Ressourcen -->
<unload-job id="px_personen_v" target-table="costage_personen" extraction-script="" transfer-unload-file="unl/costage_personen.unl" >
<comment>Personen</comment>
<extraction-sql sourcesystem="co" database="" version=""> <extraction-sql sourcesystem="co" database="" version="">
<![CDATA[ <![CDATA[
SELECT SELECT
bw_bewerbng_nr, NR,
mzb_typ_kb, NACHNAME,
abschluss_status_flag, VORNAME,
abschluss_note GEBDATUM,
FROM GESCHLECHT,
px_bewerb_mzb_v IMPORT_UID,
; STAATSBUERGER1,
STAATSBUERGER2
FROM PX_PERSONEN_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_geschlecht_v" target-table="costage_geschlecht" extraction-script="" transfer-unload-file="unl/costage_geschlecht.unl" >
<comment>Geschlecht</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
KURZBEZEICHNUNG,
NAME,
NAME_EN
FROM PX_GESCHLECHT_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_pers_titel_v" target-table="costage_pers_titel" extraction-script="" transfer-unload-file="unl/costage_pers_titel.unl" >
<comment>Akademische Titel der Person</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
PERSON_NR,
TITEL_KURZ,
TITEL,
SORT,
POSITION
FROM PX_PERS_TITEL_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_pers_org_v" target-table="costage_pers_org" extraction-script="" transfer-unload-file="unl/costage_pers_org.unl" >
<comment>Daten zur Personen-Organisationen-Zuordnung</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
PERSON_NR,
ORG_NR,
BEGINN,
ENDE,
ART_KB,
AUSMASS
FROM PX_PERS_ORG_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_organisationen_v" target-table="costage_organisationen" extraction-script="" transfer-unload-file="unl/costage_organisationen.unl" >
<comment>Organisationen</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
ORG_NR,
NAME,
NAME_EN,
KENNUNG,
KURZBEZEICHNUNG,
KURZBEZEICHNUNG_EN,
SORT,
GUELTIG_AB,
GUELTIG_BIS,
ORG_TYP
FROM PX_ORGANISATIONEN_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_identitaeten_v" target-table="costage_identitaeten" extraction-script="" transfer-unload-file="unl/costage_identitaeten.unl" >
<comment>Identitäten</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
PERSON_NR,
ST_PERSON_NR,
EXT_PERSON_NR
FROM PX_IDENTITAETEN_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_kostenstellen_v" target-table="costage_kostenstellen" extraction-script="" transfer-unload-file="unl/costage_kostenstellen.unl" >
<comment>Kostenstellen</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
KSTTYP_NR,
BEZEICHNUNG,
NAME,
GUELTIG_AB,
GUELTIG_BIS
FROM PX_KOSTENSTELLEN_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_ksttypen_v" target-table="costage_ksttypen" extraction-script="" transfer-unload-file="unl/costage_ksttypen.unl" >
<comment>Kostenstellentypen</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
KURZBEZEICHNUNG,
NAME
FROM PX_KSTTYPEN_V;
]]>
</extraction-sql>
</unload-job>
<unload-job id="px_kst_org_v" target-table="costage_kst_org" extraction-script="" transfer-unload-file="unl/costage_kst_org.unl" >
<comment>Relation von Kostenstellen und Organisationen</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
ORG_NR,
KST_NR
FROM PX_KST_ORG_V;
]]> ]]>
</extraction-sql> </extraction-sql>
</unload-job> </unload-job>
<unload-job id="px_ext_personen_v" target-table="costage_ext_personen" extraction-script="" transfer-unload-file="unl/costage_ext_personen.unl" >
<comment>Relation von Kostenstellen und Organisationen</comment>
<extraction-sql sourcesystem="co" database="" version="">
<![CDATA[
SELECT
NR,
NACHNAME,
VORNAME,
GEBDATUM,
GESCHLECHT
FROM PX_EXT_PERSONEN_V;
]]>
</extraction-sql>
</unload-job>
</superx-unload> </superx-unload>

2
src-modules/module/costage/rohdaten/db-co.properties.sam

@ -3,7 +3,7 @@ driverName=oracle.jdbc.OracleDriver
maxIdle= maxIdle=
logLevelXML=FINEST logLevelXML=FINEST
maxActive= maxActive=
connectionName=CO_INTERFACE_PUBLIC_EXTERNAL connectionName=CO_INTERFACE_PX_SUPERX
minIdle=5 minIdle=5
logLevelSQL=FINEST logLevelSQL=FINEST
connectionURL=jdbc\:oracle\:thin\:@192.168.0.11\:1521\:coprod connectionURL=jdbc\:oracle\:thin\:@192.168.0.11\:1521\:coprod

122
src-modules/module/costage/rohdaten_sos/sos_costage_unload.xml

@ -98,7 +98,7 @@ null::integer ,--poplz,
null::integer ,--poort, null::integer ,--poort,
date(aufnahmedatum) as immdat, date(aufnahmedatum) as immdat,
null::integer ,--beugrund as gdbu, null::integer ,--beugrund as gdbu,
abm_art_p as gdex, null::char(1) as gdex,
ca12_staat, ca12_staat,
null::integer as bland, null::integer as bland,
null::char(1) ,--hssem, null::char(1) ,--hssem,
@ -168,13 +168,7 @@ SELECT distinct matrikelnummer,
L.statistik_code as hzbkfzkz, L.statistik_code as hzbkfzkz,
(select R.statistik_code from costage_land_subregionen R where R.land_sub_reg_nr = H.hzb_land_sub_r_nr) as hzbkfz, (select R.statistik_code from costage_land_subregionen R where R.land_sub_reg_nr = H.hzb_land_sub_r_nr) as hzbkfz,
H.hzb_datum as hzbdatum, H.hzb_datum as hzbdatum,
(case when substring(H.hzb_note from 1 for 1) ~ '[0-9]' null::char(1) as hzbnote, --substring(replace(replace(H.hzb_note,',',''),'.','') from 1 for 10) as hzbnote,
and substring(H.hzb_note from 2 for 1) in (',','.')
and substring(H.hzb_note from 3 for 1) ~ '[0-9]'
and (substring(H.hzb_note from 4 for 1) ~ '[0-9]' or substring(H.hzb_note from 4 for 1)='')
and length(H.hzb_note)<=4 then to_number(replace(H.hzb_note,',','.'),'9.99')
when H.hzb_note ~ '[0-9]' and length(H.hzb_note) <=4 then decval(H.hzb_note)
else null::decimal(8,4) end ) as hzbnote,
null::char(1) as ersthzbart, null::char(1) as ersthzbart,
null::char(1) as ersthzbjahr, null::char(1) as ersthzbjahr,
null::char(1) as ersthzbkfzkz, null::char(1) as ersthzbkfzkz,
@ -212,12 +206,12 @@ F.urlaub_art::char(10) as gdbu,
F.abm_art_p as gdex, F.abm_art_p as gdex,
F.fachsemester::integer, F.fachsemester::integer,
F.hrst, F.hrst,
F.klinsem, null::integer as klinsem,
F.hssem, F.hssem,
(case when praxissemester >0 then '3' else '' end) as stuart, '' ,--stuart,
'' ,--stutyp, '' ,--stutyp,
F.stufrm, F.stufrm,
G.stort_nr ,--stort, '' ,--stort,
F.ruebeudat, F.ruebeudat,
null::char(1) ,--semgewicht, null::char(1) ,--semgewicht,
null::char(1) ,--stggewicht, null::char(1) ,--stggewicht,
@ -236,18 +230,14 @@ null::char(1) as field_of_study,
primaerflag as primaerfach, primaerflag as primaerfach,
unikey , unikey ,
po_regelstudienzeit ,-- individual_number_of_semesters po_regelstudienzeit ,-- individual_number_of_semesters
coalesce(F.st_studium_nr_msg,F.st_studium_nr) as degree_program_id , F.st_studium_nr as degree_program_id ,
null::char(10) as hssem_valid, null::char(10) as hssem_valid,
null::Char(10) as k_field_of_study_subj_id,
F.kz_rueck_beur_ein_tsg, F.kz_rueck_beur_ein_tsg,
endedat_tsg, endedat_tsg,
(case when G.studiengangs_typ_kb='TSG' then abm_art_s_msg urlaub_art as ch27_grund_beurl_tsg,
else abm_art_s end) as abmeldegrund, abm_art_s_msg as abmeldegrund,
(case when G.studiengangs_typ_kb='TSG' then abm_art_s abm_art_s as abmeldegrund_tsg,
else null::char(10) F.studiengangs_identifikator_msg as degree_program_uniquename
end) as abmeldegrund_tsg,
(case when G.studiengangs_typ_kb='TSG' then F.studiengangs_identifikator_msg
else G.studiengangs_identifikator end) as degree_program_uniquename
FROM costage_st_studiengaenge G, costage_st_studien_aggr F FROM costage_st_studiengaenge G, costage_st_studien_aggr F
WHERE G.st_studiengang_nr=F.st_studiengang_nr WHERE G.st_studiengang_nr=F.st_studiengang_nr
@ -292,18 +282,18 @@ P.studiengang_nr,
P.fach_nr, P.fach_nr,
G.abschluss, G.abschluss,
P.semester, P.semester,
(case when leistungsdetailtyp_kb!='TSAB' then P.leistungsdatum else null::date end), P.leistungsdatum,
G.skz_key as stg, G.skz_key as stg,
null::integer as vert, null::integer as vert,
null::integer as schwp, null::integer as schwp,
string_not_null(G.fachkennzeichen), string_not_null(G.fachkennzeichen),
(case when leistungsdetailtyp_kb!='TSAB' then round(P.note::decimal(15,4),2) else null::decimal end) as note, round(P.note::decimal(15,4),2) as note,
null::integer as vken1, null::integer as vken1,
null::char(7), --pruefungsamt_nr null::char(7), --pruefungsamt_nr
P.abschnitt as pnr, P.abschnitt as pnr,
P.po_stp_stp_version_kb as pversion, val(G.pversion),
(case when leistungsdetailtyp_kb!='TSAB' then P.leistungsstatus_map_kb else null::char(10) end) as pstatus, P.leistungsstatus_map_kb as pstatus,
(case when leistungsdetailtyp_kb!='TSAB' then P.fachsemester else null::integer end) as fachsemester, P.fachsemester ,
P.leistungsdetailtyp_kb as part, P.leistungsdetailtyp_kb as part,
P.leistung_nr, P.leistung_nr,
null::integer as pversuch, null::integer as pversuch,
@ -316,7 +306,7 @@ null::integer as psws,
null::char(1), --relation_id nur bei HIS1 null::char(1), --relation_id nur bei HIS1
null::integer as pvermerk, null::integer as pvermerk,
null::integer as prueck, null::integer as prueck,
G.studiengangs_typ_kb as zeitabschnitt, --term_segment null::integer as ptermin, --term_segment
null::integer as pform, null::integer as pform,
null::char(1), --anger. fs insg. null::char(1), --anger. fs insg.
null::char(1), --berufspraktische taetigkeit null::char(1), --berufspraktische taetigkeit
@ -336,16 +326,11 @@ null::char(1) as ut_top_k_elementtype_id,
null::char(1) as child_ut_top_unit_id, null::char(1) as child_ut_top_unit_id,
null::char(1) as child_ut_top_unit_stat, null::char(1) as child_ut_top_unit_stat,
null::char(1) as k_unit_purpose_id, null::char(1) as k_unit_purpose_id,
(case when leistungsdetailtyp_kb='TSAB' then semester else null::integer end) as sem_der_pruefung_exa, null::char(1) as sem_der_pruefung_exa,
(case when leistungsdetailtyp_kb='TSAB' then leistungsdatum else null::date end) as d_abg_pruefung_exa, null::char(1) as d_abg_pruefung_exa,
(case when leistungsdetailtyp_kb='TSAB' then leistungsstatus_map_kb else null::char(10) end) as pstatus_tsg, null::char(1) as pstatus_tsg
(case when leistungsdetailtyp_kb='TSAB' then note else null::float end) as note_tsg,
(case when leistungsdetailtyp_kb='TSAB' then fachsemester else null::integer end) as fach_sem_zahl_tsg
FROM costage_st_pruef_aggr P, costage_st_studiengaenge G FROM costage_st_pruef_aggr P, costage_st_studiengaenge G
where G.st_studiengang_nr=P.st_studiengang_nr where G.st_studiengang_nr=P.st_studiengang_nr
and ($EXTERNAL_SUBJECTS ='true'
or P.unikey=(select H.hs_nr::char(10) from hochschulinfo H)
)
AND P.semester >= $start_pruef_sem AND P.semester >= $start_pruef_sem
; ;
@ -470,7 +455,7 @@ SELECT distinct
po_stp_stp_version_kb, po_stp_stp_version_kb,
null , --astat null , --astat
null, null,
po_stp_stp_version_kb ,--uniquename '' ,--sortc1
null, null,
'' --sprache '' --sprache
FROM costage_st_studien_spoversionen FROM costage_st_studien_spoversionen
@ -483,7 +468,7 @@ SELECT distinct
druck, druck,
null , --astat null , --astat
null, null,
uniquename, '' ,--sortc1
null, null,
'' --sprache '' --sprache
from cif from cif
@ -498,7 +483,7 @@ SELECT distinct
'Hauptprüfung' as lang, 'Hauptprüfung' as lang,
null , --astat null , --astat
null, null,
'2' as uniquename, '' ,--sortc1
null, null,
'' --sprache '' --sprache
from xdummy from xdummy
@ -860,54 +845,7 @@ null as lid,
null as parent_lid, null as parent_lid,
null as sortorder null as sortorder
FROM costage_st_studiengaenge FROM costage_st_studiengaenge
union ;
--stuart
SELECT
616,
0,
'3',--praxissem,
'Praxis' as ktxt,
'Praxissemester' as dtxt,
'Praxissemester' as ltxt ,
'3' as astat,
' ',
'3',--Praxissemester,
' ',
' ',
null::date as gueltig_von,
null::date as gueltig_bis,
'3', --sourcesystem_id
' ' , --hiskey_id
' ' , --struktur_c
null as lid,
null as parent_lid,
null as sortorder
FROM xdummy
union
SELECT
9002,
-1,
leistungsdetailtyp_kb as apnr,
substring(name_de from 1 for 10),--ktxt,
substring(name_de from 1 for 255) as dtxt,
substring(name_de from 1 for 255) as ltxt,
null::char(10) as astat,
null::char(10) as parent,
leistungsdetailtyp_kb,--sortc1 wird später uniquename
' ',
null as sprache,
null::date as gueltig_von,
null::date as gueltig_bis,
leistungsdetailtyp_kb::varchar(255), --sourcesystem_id
(case when leistungsdetailtyp_kb in ('BAKN','MAGN','STEX','ERGAB','RIGZP','TSAB') then '99'
when leistungsdetailtyp_kb in ('AP1','AP2','ZVP','ZW1','SCHW') then '98' else null::char(1) end) as hiskey_id,
'A', --struktur_c
null as lid,
null as parent_lid,
null as sortorder
FROM costage_leistungen_detail_typen
WHERE leistungsdetailtyp_kb is not null
]]> ]]>
</extraction-sql> </extraction-sql>
@ -1068,18 +1006,8 @@ select * from k_stg where 1=0;
</unload-job> </unload-job>
<unload-job id="sos_labzuord" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_labzuord.unl" > <unload-job id="sos_labzuord" extraction-table="" extraction-script="" transfer-unload-file="unl/sos_labzuord.unl" >
<extraction-sql sourcesystem="co" database="" version=""> <extraction-sql sourcesystem="co" database="" version="">
<![CDATA[ select <![CDATA[
matrikelnummer as mtknr, select * from k_stg where 1=0;
leistung_nr as labnr,
null::char(1) as artzuordnung,
null::char(1) as pordnrzu,
leistung_nr_msg as labnrzu,
null::char(1) as bonus,
null::char(1) as malus
from costage_st_pruef_aggr
where leistung_nr_msg != leistung_nr
--AND semester >= $start_pruef_sem
;
]]> ]]>
</extraction-sql> </extraction-sql>
</unload-job> </unload-job>

21
src-modules/module/costage/rohdaten_zul/zul_costage_unload.xml

@ -52,9 +52,9 @@ null,--bew_efh,
null,--bew_vorname, null,--bew_vorname,
null,--bew_gebname, null,--bew_gebname,
null,--bew_gebort, null,--bew_gebort,
date(S.geburtsdatum) as bew_gebdat, d_geburt as bew_gebdat,
S.geschlecht as geschl, geschlecht as geschl,
val(L.statistik_code) as staat, ca12_staat as staat,
null,--pozusatz, null,--pozusatz,
null,--postrasse, null,--postrasse,
null,--poplz, null,--poplz,
@ -126,7 +126,7 @@ null,--bew_efh,
null,--zusastrasse, null,--zusastrasse,
null,--zusaort, null,--zusaort,
null,--ord_kuenstname, null,--ord_kuenstname,
val(L.statistik_code) as gebland, ca12_staat as gebland,
null,--dokvorname, null,--dokvorname,
null,--bew_zvs_zusatz, null,--bew_zvs_zusatz,
null,--bew_bewnrhist, null,--bew_bewnrhist,
@ -158,12 +158,10 @@ null,--bew_efh,
null, --zvs_ekritpaket_18, null, --zvs_ekritpaket_18,
null --zvs_spezkrit null --zvs_spezkrit
FROM FROM
costage_bw_antr_aggr B left outer join costage_st_studierendenstammdaten_neu S costage_bw_antr_aggr B,costage_st_studierendenstammdaten S
on (S.st_studstamm_nr=B.st_studstamm_nr) where S.st_studstamm_nr=B.st_studstamm_nr
left outer join and B.bw_typ_kb !='MBW'
costage_st_laender L ;
on( L.st_land_nr=S.st_land1_nr)
where B.bw_typ_kb !='MBW'
]]> ]]>
</extraction-sql> </extraction-sql>
@ -180,7 +178,6 @@ SELECT A.st_studstamm_nr as bewnr,
G.fachkennzeichen as kzfa, G.fachkennzeichen as kzfa,
G.skz_key as stg, G.skz_key as stg,
G.abschluss, G.abschluss,
null, --schwerpunkt
null,--antr_vert, null,--antr_vert,
null,--antr_stuart, null,--antr_stuart,
null,--antr_stutyp, null,--antr_stutyp,
@ -189,7 +186,7 @@ A.fachsemester as stgsem,
null,--stgspz, null,--stgspz,
null,--dowunsch1, null,--dowunsch1,
null,--dowunsch2, null,--dowunsch2,
(case when exists(select id from sx_repository R where R.id='COSTAGE_STORT' and aktiv=1) then G.stort_nr else null::char(10) end ) as antr_stort, null, --antr_stort,
null,--haerteantr, null,--haerteantr,
null,--haerte, null,--haerte,
null,--haertegrd, null,--haertegrd,

32
src-modules/module/costage/schluesseltabellen/konstanten_fuellen.sql

@ -41,7 +41,7 @@ beschreibung,
'Teilstudiengänge Status aus MSG ausdehnen', 'Teilstudiengänge Status aus MSG ausdehnen',
310, 310,
'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',--doku link '',--doku link
0, 0,
'1,Ja'|| ${newline} || '0,Nein', '1,Ja'|| ${newline} || '0,Nein',
'>0.3', '>0.3',
@ -65,39 +65,15 @@ beschreibung,
'Anzahl der Semester, für die rückwirkend Einzelprüfungen berechnet werden', 'Anzahl der Semester, für die rückwirkend Einzelprüfungen berechnet werden',
310, 310,
'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm', 'Modul_Studienerfolg_Admin-HISinOne.xhtml#Konstanten',
0 , 0 ,
null::Char(1), null::Char(1),
'0.3', '2023.06',
'Datenquelle, Entladestartzeitpunkt, -umfang', 'Datenquelle, Entladestartzeitpunkt, -umfang',
310); 120);
insert into tmp_konstanten(apnr,
beschreibung,
defaultvalue,
description,
systeminfo_id,
doku_link,
read_only,
wertebereich,
ab_version,
gruppe,
sachgebiete_id)
values (0,
'SOS_CO_allow_external',
0,
'Erlaube externe Hochschuldaten',
310,
'https://www.superx-projekt.de/doku/costage_modul/admin/f_Konstanten.htm',
0 ,
'1,Ja'|| ${newline} || '0,Nein',
'0.5',
'Datenquelle, Entladestartzeitpunkt, -umfang',
310);
--vorhandene Schlüssel Metadaten updaten: --vorhandene Schlüssel Metadaten updaten:
<#if SQLdialect='Postgres'> <#if SQLdialect='Postgres'>

19
src-modules/module/costage/schluesseltabellen/sx_repository.unl

@ -1,21 +1,2 @@
1^COSTAGE_STUDENT_FILTER^1=1^Filter Studierende für CO^Hier werden Studierende für Auswertungen aus CO gefiltert^^COSTAGE_STUD_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^ 1^COSTAGE_STUDENT_FILTER^1=1^Filter Studierende für CO^Hier werden Studierende für Auswertungen aus CO gefiltert^^COSTAGE_STUD_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^
2^COSTAGE_STORT^^Standorte^Hier werden Standorte konfiguriert^^COSTAGE_STORT^^^310^1^0^0^^0^01.01.1900^31.12.3000^ 2^COSTAGE_STORT^^Standorte^Hier werden Standorte konfiguriert^^COSTAGE_STORT^^^310^1^0^0^^0^01.01.1900^31.12.3000^
3^COSTAGE_LEISTUNGSSTATUS_MAP^case when leistungstyp_nr=1 --reale Prüfung\
and leistungsstatus_nr=1 --in Bearbeitung\
then 'AN' --angemeldet\
when leistungstyp_nr=1 --reale Prüfung\
and leistungsstatus_nr=5 --gelöscht\
then 'AB' --abgemeldet\
when note_negativ_flag='J' \
and leistungstyp_nr in (4,9) -- AP Abschlussprüfung, AAP anerkannte Abschlussprüfung\
then 'EN' --endgültig nicht bestanden\
when note_negativ_flag='J' \
then 'NB' --nicht bestanden\
when note='Q' --keine Beurteilung\
and note_zusatz='Q' --Rücktritt mit anerkanntem Grund\
then 'R' --Rücktritt von der Prüfungsanmeldung\
when note='Q' --keine Beurteilung\
then 'NE' --nicht erschienen\
else 'BE' --bestanden\
end^Leistungsstatus-Gruppen (CO)^Hier werden Leistungsstatus-Gruppen (CO) konfiguriert. Beispiel der UZK für sx_leistungen_v^^COSTAGE_LEISTUNGSSTATUS^^^310^1^0^0^^1^01.01.1900^31.12.3000^
4^COSTAGE_STUDIENSTATUS_FILTER^studienstatustyp not in ('a','o','z')^Filter Studienstatus für CO^Hier werden Studienstatus-Typen für Auswertungen aus CO gefiltert^^COSTAGE_STUD_STATUS_FILTER^^^310^1^0^0^^1^01.01.1900^31.12.3000^

1
src-modules/module/costage/upgrade/costage_upgrade_man.sql

@ -11,7 +11,6 @@ alter table costage_bw_bewerb_hzb alter column hzb_punkte_max type float;
alter table costage_leistungen alter column note_zahl type float; alter table costage_leistungen alter column note_zahl type float;
alter table costage_leistungen alter column credits type float; alter table costage_leistungen alter column credits type float;
alter table costage_leistungen alter column semesterstunden type float; alter table costage_leistungen alter column semesterstunden type float;
alter table costage_leistungen alter column matrikelnummer type integer using val(matrikelnummer)::integer;
ALTER TABLE costage_st_studierendenstammdaten ALTER TABLE costage_st_studierendenstammdaten
ALTER COLUMN matrikelnummer drop not null; ALTER COLUMN matrikelnummer drop not null;

Loading…
Cancel
Save