Schnittstelle CampusOnline (TU Graz) zu SuperX-Modul COSTAGE
http://www.superx-projekt.de/doku/costage_modul/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
7.7 KiB
280 lines
7.7 KiB
--freemarker template |
|
<sqlvars> |
|
<sqlvar name="beginn_semester"><![CDATA[ |
|
<#assign anz_sem=5 /> |
|
<#if COSTAGE_einzpruef_anz_sem?exists && COSTAGE_einzpruef_anz_sem?string!=""> |
|
<#assign anz_sem=COSTAGE_einzpruef_anz_sem /> |
|
</#if> |
|
select min(S.tid) from semester S where S.sem_beginn >= today()-(182*${anz_sem}) |
|
; |
|
]]> |
|
</sqlvar> |
|
</sqlvars> |
|
--Leistungen mit Veranstaltung -> Semester: |
|
SELECT |
|
L.st_studium_nr, |
|
S.st_studstamm_nr, |
|
val(L.matrikelnummer) as matrikelnummer, |
|
null::integer as st_studiengang_nr, |
|
null::integer as studiengang_nr, |
|
null::integer as fach_nr, |
|
null::integer as st_studienstatus_nr, |
|
null::integer as semester, |
|
E.semester_tid as semester_veranst, |
|
E.st_sem_nr, |
|
null::integer as fachsemester, |
|
null::varchar(255) as unikey, |
|
L.leistung_nr, |
|
L.leistungstyp_nr, |
|
L.leistungsdetailtyp_kb, |
|
L.studienidentifikator, |
|
L.spov_abschluss, |
|
L.stp_sp_nr, |
|
L.veranstaltung_nummer, |
|
L.veranstaltung_semester, |
|
L.veranstaltung_titel, |
|
L.veranstaltung_art, |
|
L.semesterstunden, |
|
L.unterrichtseinheiten, |
|
L.thema_individuell, |
|
L.pv_notenskala_nr, |
|
L.note, |
|
L.note_name, |
|
L.note_zahl, |
|
L.pv_pruef_zusatz_typen_nr, |
|
L.note_zusatz, |
|
L.note_zusatz_name, |
|
L.note_positiv_flag, |
|
L.note_negativ_flag, |
|
L.pv_notenskala_typ_nr, |
|
L.pv_notenskala_typ_kb, |
|
L.pv_notenskala_typ_name, |
|
L.credits, |
|
date(L.leistungsdatum) as leistungsdatum, |
|
L.anerkannt_flag, |
|
L.zusatzleistung_flag, |
|
L.leistungsstatus_nr, |
|
L.leistungsstatus_map_kb, |
|
null::integer as abschnitt, |
|
null::integer as pnr, |
|
null::integer as leistung_nr_msg, |
|
null::integer as st_studiengang_nr_msg, |
|
null::date as leistungsdatum_msg, |
|
null::integer as semester_msg |
|
into temp tmp_pruef |
|
FROM costage_st_semester E, costage_leistungen_typen T, costage_leistungen L, costage_st_studierendenstammdaten S |
|
where E.semester_id=L.veranstaltung_semester |
|
and T.leistungstyp_nr=L.leistungstyp_nr |
|
and S.matrikelnummer::varchar(255)=L.matrikelnummer |
|
-- TSAB/AB: |
|
--and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung |
|
and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung |
|
--px_leistungen_status_typen_v: |
|
--4^F^Letztgültig^Final^ |
|
--1^P^in Bearbeitung^in process^ |
|
--2^V^gültige Leistung^valid^ |
|
--3^I^ungültige Leistung^invalid^ |
|
--5^D^gelöscht^deleted^ |
|
and E.semester_tid >= ${beginn_semester} |
|
; |
|
|
|
--Leistungen ohne Veranstaltungssemester gehen über Prüfungsdatum: |
|
insert into tmp_pruef |
|
SELECT |
|
L.st_studium_nr, |
|
S.st_studstamm_nr, |
|
val(L.matrikelnummer) as matrikelnummer, |
|
null::integer as st_studiengang_nr, |
|
null::integer as studiengang_nr, |
|
null::integer as fach_nr, |
|
null::integer as st_studienstatus_nr, |
|
E.semester_tid as semester, |
|
null::integer as semester_veranst, |
|
null::integer as st_sem_nr, |
|
null::integer as fachsemester, |
|
null::varchar(255) as unikey, |
|
L.leistung_nr, |
|
L.leistungstyp_nr, |
|
L.leistungsdetailtyp_kb, |
|
L.studienidentifikator, |
|
L.spov_abschluss, |
|
L.stp_sp_nr, |
|
L.veranstaltung_nummer, |
|
L.veranstaltung_semester, |
|
L.veranstaltung_titel, |
|
L.veranstaltung_art, |
|
L.semesterstunden, |
|
L.unterrichtseinheiten, |
|
L.thema_individuell, |
|
L.pv_notenskala_nr, |
|
L.note, |
|
L.note_name, |
|
L.note_zahl, |
|
L.pv_pruef_zusatz_typen_nr, |
|
L.note_zusatz, |
|
L.note_zusatz_name, |
|
L.note_positiv_flag, |
|
L.note_negativ_flag, |
|
L.pv_notenskala_typ_nr, |
|
L.pv_notenskala_typ_kb, |
|
L.pv_notenskala_typ_name, |
|
L.credits, |
|
date(L.leistungsdatum) as leistungsdatum, |
|
L.anerkannt_flag, |
|
L.zusatzleistung_flag, |
|
L.leistungsstatus_nr, |
|
L.leistungsstatus_map_kb, |
|
2::integer as abschnitt, --provisorisch erstmal nur Hauptprüfungen |
|
null::integer as pnr, |
|
null::integer as leistung_nr_msg, |
|
null::integer as st_studiengang_nr_msg, |
|
null::date as leistungsdatum_msg, |
|
null::integer as semester_msg |
|
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 |
|
and L.veranstaltung_semester is null |
|
and T.leistungstyp_nr=L.leistungstyp_nr |
|
and S.matrikelnummer::varchar(255)=L.matrikelnummer |
|
-- TSAB/AB: |
|
--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 E.semester_tid >= ${beginn_semester} |
|
; |
|
|
|
update tmp_pruef set semester=E.semester_tid |
|
FROM costage_st_semester E |
|
where tmp_pruef.leistungsdatum between E.semester_anfang and E.semester_ende |
|
and tmp_pruef.semester is null; |
|
|
|
update tmp_pruef set st_sem_nr=E.st_sem_nr |
|
FROM costage_st_semester E |
|
where tmp_pruef.leistungsdatum between E.semester_anfang and E.semester_ende |
|
and tmp_pruef.st_sem_nr is null; |
|
|
|
update tmp_pruef set semester_veranst=semester |
|
where semester_veranst is null; |
|
|
|
--Fachsem. nachladen: |
|
update tmp_pruef |
|
set fachsemester=F.fachsemester |
|
from costage_st_fachsemester F |
|
where F.st_studium_nr=tmp_pruef.st_studium_nr |
|
and F.st_sem_nr=tmp_pruef.st_sem_nr |
|
and F.fachsemestertyp='FS' |
|
; |
|
--Studiengang nachladen |
|
update tmp_pruef set st_studiengang_nr=S.st_studiengang_nr |
|
from costage_st_studien S |
|
where S.st_studium_nr=tmp_pruef.st_studium_nr |
|
and S.st_studstamm_nr=tmp_pruef.st_studstamm_nr |
|
; |
|
--unikey nachladen: |
|
update tmp_pruef set unikey=K.unikey |
|
from costage_st_studiengaenge G, costage_st_studienkennzahlen K |
|
where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr |
|
and K.st_skz_nr=G.st_skz_nr |
|
; |
|
--verknüpfen mit SPO Kontext: |
|
select P.*, |
|
G.context_type, |
|
G.stp_knoten_nr_sichtbar, |
|
G.ghk_nr, |
|
G.st_studium_nr as spo_st_studium_nr, |
|
null::varchar(255) as ghk_typ_kurzbezeichnung |
|
into temp tmp_pruef2 |
|
from tmp_pruef P left outer join costage_studienplankontexte G |
|
on (P.leistung_nr=G.leistungs_nr) |
|
; |
|
|
|
update tmp_pruef2 set ghk_typ_kurzbezeichnung=G.typ_kurzbezeichnung |
|
from costage_gleichheitsknoten G |
|
where G.ghk_nr=tmp_pruef2.ghk_nr |
|
; |
|
truncate table costage_st_einzpruef_aggr; |
|
insert into costage_st_einzpruef_aggr(st_studium_nr, |
|
st_studstamm_nr, |
|
matrikelnummer, |
|
semester, |
|
semester_veranst, |
|
st_studiengang_nr, |
|
st_studiengang_nr_msg, |
|
studiengang_nr, |
|
fach_nr, |
|
unikey, |
|
studienidentifikator, |
|
fachsemester, |
|
leistung_nr, |
|
leistungstyp_nr, |
|
leistungsdetailtyp_kb, |
|
pnr, |
|
abschnitt, |
|
stp_sp_nr, |
|
veranstaltung_nummer, |
|
veranstaltung_titel, |
|
veranstaltung_art, |
|
semesterstunden, |
|
unterrichtseinheiten, |
|
thema_individuell, |
|
note, |
|
credits, |
|
leistungsdatum, |
|
anerkannt_flag, |
|
zusatzleistung_flag, |
|
leistungsstatus_nr, |
|
leistungsstatus_map_kb, |
|
leistung_nr_msg, |
|
leistungsdatum_msg, |
|
semester_msg, |
|
context_type, |
|
stp_knoten_nr_sichtbar, |
|
ghk_nr, |
|
spo_st_studium_nr, |
|
ghk_typ_kurzbezeichnung, |
|
summe) |
|
select |
|
st_studium_nr, |
|
st_studstamm_nr, |
|
matrikelnummer, |
|
semester, |
|
semester_veranst, |
|
st_studiengang_nr, |
|
st_studiengang_nr_msg, |
|
studiengang_nr, |
|
fach_nr, |
|
unikey, |
|
substring(studienidentifikator from 1 for 255), |
|
fachsemester, |
|
leistung_nr, |
|
leistungstyp_nr, |
|
leistungsdetailtyp_kb, |
|
pnr, |
|
abschnitt, |
|
stp_sp_nr, |
|
veranstaltung_nummer, |
|
substring(veranstaltung_titel from 1 for 255), |
|
veranstaltung_art, |
|
semesterstunden, |
|
unterrichtseinheiten, |
|
substring(thema_individuell from 1 for 255), |
|
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, |
|
leistungsdatum, |
|
anerkannt_flag, |
|
zusatzleistung_flag, |
|
leistungsstatus_nr, |
|
leistungsstatus_map_kb, |
|
leistung_nr_msg, |
|
leistungsdatum_msg, |
|
semester_msg, |
|
context_type, |
|
stp_knoten_nr_sichtbar, |
|
ghk_nr, |
|
spo_st_studium_nr, |
|
ghk_typ_kurzbezeichnung, |
|
count(*) |
|
from tmp_pruef2 |
|
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,29,30,31,32,33,34,35,36,37,38,39; |
|
|
|
drop table tmp_pruef; |
|
drop table tmp_pruef2; |
|
|
|
|