6 changed files with 567 additions and 1 deletions
@ -0,0 +1,545 @@
@@ -0,0 +1,545 @@
|
||||
--freemarker template |
||||
<sqlvars> |
||||
<sqlvar name="sos_lab_pord_ppruef_exists"> |
||||
select count(*) from rpta_resultset where uniquename='sos_lab_pord_ppruef'; |
||||
</sqlvar> |
||||
<sqlvar name="rpta_resultset"> |
||||
select uniquename from rpta_resultset where uniquename='sos_lab_pord_ppruef'; |
||||
</sqlvar> |
||||
</sqlvars> |
||||
<#assign rpta_column_layouts = [ {"uniquename":"sos_lab_pord_ppruef_modul", |
||||
"caption":"Modulprüfungen und Prüfer_innen Einzeldaten", |
||||
"rpta_resultset":"sos_lab_pord_ppruef", |
||||
"whereclause":"is_modul=1", |
||||
"description":"Modulprüfungen und Prüfer_innen" |
||||
}, |
||||
{"uniquename":"sos_lab_pord_ppruef_thesis", |
||||
"caption":"Abschlussarbeiten und Betreuer_innen Einzeldaten", |
||||
"rpta_resultset":"sos_lab_pord_ppruef", |
||||
"whereclause":"labnr in (select labnr from sos_dipl_pos_swf)", |
||||
"description":"Abschlussarbeiten und Betreuer_innen" |
||||
}] |
||||
/> |
||||
|
||||
<#assign rpta_columns = [ |
||||
|
||||
{"uniquename":"matrikel_nr", |
||||
"srcfieldname":"matrikel_nr", |
||||
"column_type":"physicalColumn", |
||||
"format_code":"INT_NO_SEP", |
||||
"is_aggregate":0, |
||||
"caption":"Matrikel-Nr.", |
||||
"is_visible":"1", |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"sourcesystem", |
||||
"srcfieldname":"sourcesystem", |
||||
"column_type":"physicalColumn", |
||||
"format_code":"", |
||||
"is_aggregate":0, |
||||
"caption":"Quellsystem", |
||||
"is_visible":"0", |
||||
"is_aggregate":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"labnr", |
||||
"srcfieldname":"labnr", |
||||
"column_type":"physicalColumn", |
||||
"format_code":"", |
||||
"is_aggregate":0, |
||||
"caption":"ID der Prüfung", |
||||
"is_visible":"0", |
||||
"is_aggregate":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"sem_der_pruefung", |
||||
"srcfieldname":"sem_der_pruefung", |
||||
"column_type":"physicalColumn", |
||||
"format_code":"INT_NO_SEP", |
||||
"is_aggregate":0, |
||||
"caption":"Semester", |
||||
"is_visible":"0", |
||||
"is_aggregate":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"sem_rueck_beur_ein_max", |
||||
"srcfieldname":"sem_rueck_beur_ein_max", |
||||
"targetfieldname":"sos_lab_sem_rueck_beur_ein_max", |
||||
"column_type":"lookupColumn", |
||||
"format_code":"INT_NO_SEP", |
||||
"is_aggregate":0, |
||||
"caption":"Letztes Semester", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"select sem_rueck_beur_ein from sos_sos S where S.matrikel_nr=tmp_sos_lab_pord_ppruef.matrikel_nr"} |
||||
, |
||||
{"uniquename":"status", |
||||
"srcfieldname":"status", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Status", |
||||
"is_visible":1, |
||||
"is_aggregate":0, |
||||
"visible_size":5, |
||||
"col_function":"select ST.apnr from sos_k_status ST where val(ST.astat)=kz_rueck_beur_ein"}, |
||||
|
||||
{"uniquename":"hrst", |
||||
"srcfieldname":"hrst", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Hörerstatus", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"vorname", |
||||
"srcfieldname":"vorname", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Vorname", |
||||
"is_visible":1, |
||||
"is_aggregate":0, |
||||
"visible_size":5, |
||||
"col_function":"select A.firstname from sos_stud_address A where A.matrikel_nr=tmp_sos_lab_pord_ppruef.matrikel_nr"}, |
||||
|
||||
{"uniquename":"nachname", |
||||
"srcfieldname":"nachname", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Nachname", |
||||
"is_visible":1, |
||||
"is_aggregate":0, |
||||
"visible_size":5, |
||||
"col_function":"select A.surname from sos_stud_address A where A.matrikel_nr=tmp_sos_lab_pord_ppruef.matrikel_nr"}, |
||||
|
||||
{"uniquename":"res1", |
||||
"srcfieldname":"res1", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Austauschstudierende/Doppelabsolventen", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"select min(attributevalue) from personattribute A where tmp_sos_lab_pord_ppruef.sem_der_pruefung between A.semester_von and A.semester_bis and A.personattributetype_id="+K_SOS_PERSATTR_AUSTAUSCH+" and A.matrikel_nr=tmp_sos_lab_pord_ppruef.matrikel_nr"}, |
||||
|
||||
{"uniquename":"stg", |
||||
"srcfieldname":"dim_studiengang_stg", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Fach", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"abschluss", |
||||
"srcfieldname":"dim_studiengang_abschluss", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Abschluss", |
||||
"is_visible":1, |
||||
"visible_size":5} |
||||
|
||||
{"uniquename":"fach_sem_zahl", |
||||
"srcfieldname":"fach_sem_zahl", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Fachsemester", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"stgnr", |
||||
"srcfieldname":"stgnr", |
||||
"column_type":"logicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Studiengangnr.", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"'''' || studiengang_nr || fach_nr"}, |
||||
|
||||
{"uniquename":"part", |
||||
"srcfieldname":"part", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsart", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pnr_pos", |
||||
"srcfieldname":"pnr", |
||||
"column_type":"physicalColumn", |
||||
"format_code":"INT_NO_SEP", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsnummer POS", |
||||
"is_visible":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"elementnr", |
||||
"srcfieldname":"", |
||||
"targetfieldname":"elementnr", |
||||
"column_type":"logicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsnummer", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"pktxt"}, |
||||
|
||||
|
||||
{"uniquename":"pversuch", |
||||
"srcfieldname":"pversuch", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsversuch", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"prueck", |
||||
"srcfieldname":"prueck", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Rücktritt", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pversion_ktxt", |
||||
"srcfieldname":"pversion_ktxt", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"PO-Version", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pstatus", |
||||
"srcfieldname":"pstatus", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsstatus", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"d_abg_pruefung", |
||||
"srcfieldname":"d_abg_pruefung", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsdatum", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"note", |
||||
"srcfieldname":"note", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Note", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"sos_lab_panerk", |
||||
"srcfieldname":"sos_lab_panerk", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Anerkennung", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pvermerk", |
||||
"srcfieldname":"pvermerk", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Vermerk", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pform", |
||||
"srcfieldname":"pform", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Prüfungsform", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"pdtxt", |
||||
"srcfieldname":"pdtxt", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"PO-Element Name", |
||||
"is_visible":1, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"ppruef1", |
||||
"srcfieldname":"sos_lab_ppruef1", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Erstprüfer_in Schlüssel", |
||||
"is_visible":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"ppruef1_str", |
||||
"srcfieldname":"ppruef1", |
||||
"targetfieldname":"sos_lab_ppruef1_str", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Erstprüfer_in", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"select replace(C.druck,'','','''') from cifx C where C.key=9011 and C.apnr=tmp_sos_lab_pord_ppruef.sos_lab_ppruef1"}, |
||||
|
||||
{"uniquename":"ppruef2", |
||||
"srcfieldname":"sos_lab_ppruef2", |
||||
"column_type":"physicalColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Zweitprüfer_in", |
||||
"is_visible":0, |
||||
"visible_size":5}, |
||||
|
||||
{"uniquename":"ppruef2_str", |
||||
"srcfieldname":"ppruef2", |
||||
"targetfieldname":"sos_lab_ppruef2_str", |
||||
"column_type":"lookupColumn", |
||||
"is_aggregate":0, |
||||
"caption":"Zweitprüfer_in", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"select replace(C.druck,'','','''') from cifx C where C.key=9011 and C.apnr=tmp_sos_lab_pord_ppruef.sos_lab_ppruef2"} |
||||
, |
||||
{"uniquename":"sem_d_abg_pruefung", |
||||
"srcfieldname":"sem_d_abg_pruefung", |
||||
"targetfieldname":"sos_lab_sem_d_abg_pruefung", |
||||
"column_type":"logicalColumn", |
||||
"format_code":"INT_NO_SEP", |
||||
"is_aggregate":0, |
||||
"caption":"Semester der Prüfung", |
||||
"is_visible":1, |
||||
"visible_size":5, |
||||
"col_function":"sem_der_pruefung"} |
||||
|
||||
|
||||
|
||||
] /> |
||||
|
||||
---ab hier nicht mehr ändern: |
||||
|
||||
CREATE temp TABLE tmp_rpta_column |
||||
( |
||||
uniquename varchar(255) NOT NULL, |
||||
caption varchar(255), |
||||
srcfieldname varchar(255), |
||||
targetfieldname varchar(255), |
||||
column_type integer, |
||||
col_function text, |
||||
is_visible smallint, |
||||
visible_size smallint, |
||||
is_aggregate smallint, |
||||
resultset_id integer, |
||||
sortnr integer, |
||||
description TEXT, |
||||
format_code_uniquename varchar(255), |
||||
format_code_id integer |
||||
); |
||||
|
||||
CREATE temp TABLE tmp_rpta_column_layout |
||||
( |
||||
uniquename varchar(255) NOT NULL, |
||||
caption varchar(255), |
||||
resultset_id integer, |
||||
whereclause text, |
||||
description text |
||||
); |
||||
|
||||
|
||||
<#foreach rpta_column_layout in rpta_column_layouts> |
||||
|
||||
insert into tmp_rpta_column_layout( |
||||
resultset_id, |
||||
uniquename, |
||||
caption, |
||||
whereclause, |
||||
description |
||||
) |
||||
select tid, |
||||
'${rpta_column_layout.uniquename}', |
||||
'${rpta_column_layout.caption}', |
||||
'${rpta_column_layout.whereclause}', |
||||
'${rpta_column_layout.description}' |
||||
FROM rpta_resultset |
||||
where uniquename='${rpta_column_layout.rpta_resultset}'; |
||||
|
||||
</#foreach > |
||||
|
||||
<#assign sortnr=0 /> |
||||
<#foreach column in rpta_columns> |
||||
<#assign sortnr=sortnr +1 /> |
||||
|
||||
INSERT INTO tmp_rpta_column |
||||
(resultset_id, |
||||
uniquename, |
||||
caption, |
||||
srcfieldname, |
||||
targetfieldname, |
||||
column_type, |
||||
col_function, |
||||
is_visible, |
||||
visible_size, |
||||
is_aggregate, |
||||
sortnr, |
||||
description, |
||||
format_code_uniquename |
||||
) |
||||
select R.tid, |
||||
'${column.uniquename}', |
||||
'${column.caption}', |
||||
'${column.srcfieldname}', |
||||
<#if !column.targetfieldname?exists || column.targetfieldname=="">null::varchar <#else>'${column.targetfieldname}' </#if>, |
||||
T.tid as column_type, |
||||
<#if column.col_function?exists>'${column.col_function}'<#else>null::varchar </#if>, |
||||
${column.is_visible}, |
||||
${column.visible_size}, |
||||
${column.is_aggregate}, |
||||
${sortnr*10}, |
||||
<#if column.description?exists>'${column.description}'<#else>null::varchar </#if>, |
||||
<#if column.format_code?exists>'${column.format_code}'<#else>null::varchar </#if> |
||||
FROM rpta_resultset R, rpta_column_type T |
||||
where R.uniquename='${rpta_resultset}' |
||||
and T.uniquename='${column.column_type}'; |
||||
|
||||
</#foreach> |
||||
|
||||
update tmp_rpta_column set format_code_id=C.tid |
||||
from rpta_format_code C |
||||
where C.uniquename=tmp_rpta_column.format_code_uniquename |
||||
and format_code_uniquename is not null; |
||||
|
||||
|
||||
select * into temp tmp_rpta_column2layout |
||||
from rpta_column2layout |
||||
where layout_id in (select L.tid |
||||
from rpta_column_layout L,rpta_resultset R |
||||
where R.tid=L.resultset_id |
||||
and R.uniquename='${rpta_resultset}' |
||||
and L.uniquename in ( |
||||
<#foreach rpta_column_layout in rpta_column_layouts> |
||||
'${rpta_column_layout.uniquename}', |
||||
</#foreach>'xy') |
||||
) |
||||
; |
||||
|
||||
select * into temp tmp_rpta_column_layout_target |
||||
from rpta_column_layout |
||||
where resultset_id in (select tid |
||||
FROM rpta_resultset |
||||
where uniquename='${rpta_resultset}') |
||||
and uniquename in (select uniquename from tmp_rpta_column_layout) |
||||
; |
||||
|
||||
insert into rpta_column_layout |
||||
(uniquename, |
||||
caption, |
||||
resultset_id, |
||||
whereclause, |
||||
description) |
||||
select uniquename, |
||||
caption, |
||||
resultset_id, |
||||
whereclause, |
||||
description |
||||
FROM tmp_rpta_column_layout T |
||||
where 0=(select count(*) from tmp_rpta_column_layout_target T2 |
||||
where T.uniquename=T2.uniquename); |
||||
|
||||
drop table tmp_rpta_column_layout_target; |
||||
|
||||
delete from rpta_column2layout |
||||
where layout_id in (select L.tid |
||||
from rpta_column_layout L,rpta_resultset R |
||||
where R.tid=L.resultset_id |
||||
and R.uniquename='${rpta_resultset}' |
||||
and L.uniquename in ( |
||||
<#foreach rpta_column_layout in rpta_column_layouts> |
||||
'${rpta_column_layout.uniquename}', |
||||
</#foreach>'xy') |
||||
) |
||||
; |
||||
|
||||
select * into temp tmp_rpta_column2 |
||||
from tmp_rpta_column T |
||||
where (resultset_id,uniquename) not in |
||||
(select resultset_id,uniquename from rpta_column); |
||||
|
||||
INSERT INTO rpta_column |
||||
(resultset_id, |
||||
uniquename, |
||||
caption, |
||||
srcfieldname, |
||||
targetfieldname, |
||||
column_type, |
||||
col_function, |
||||
is_aggregate, |
||||
description, |
||||
custom |
||||
) |
||||
select |
||||
resultset_id, |
||||
uniquename, |
||||
caption, |
||||
srcfieldname, |
||||
targetfieldname, |
||||
column_type, |
||||
col_function, |
||||
is_aggregate, |
||||
description, |
||||
0 as custom |
||||
from tmp_rpta_column2; |
||||
|
||||
--evtl. neuen Satz einfügen, dann alle updaten |
||||
|
||||
update rpta_column set ( caption, |
||||
srcfieldname, |
||||
targetfieldname, |
||||
column_type, |
||||
col_function, |
||||
is_aggregate, |
||||
description) |
||||
= (select caption, |
||||
srcfieldname, |
||||
targetfieldname, |
||||
column_type, |
||||
col_function, |
||||
is_aggregate, |
||||
description |
||||
from tmp_rpta_column T |
||||
where T.resultset_id=rpta_column.resultset_id |
||||
and T.uniquename=rpta_column.uniquename) |
||||
where custom=0 |
||||
and (resultset_id,uniquename) in |
||||
(select T.resultset_id,T.uniquename |
||||
from tmp_rpta_column T) |
||||
; |
||||
|
||||
drop table tmp_rpta_column2; |
||||
|
||||
insert into rpta_column2layout(column_id, |
||||
layout_id, |
||||
sortnr, |
||||
is_visible, |
||||
visible_size, |
||||
caption, |
||||
description, |
||||
format_code_id) |
||||
select C.tid as column_id, |
||||
L.tid as layout_id, |
||||
T.sortnr, |
||||
T.is_visible, |
||||
T.visible_size, |
||||
T.caption, |
||||
T.description, |
||||
T.format_code_id |
||||
FROM rpta_column C, rpta_column_layout L, tmp_rpta_column T |
||||
where C.uniquename=T.uniquename |
||||
and C.resultset_id=T.resultset_id |
||||
and L.uniquename in ( |
||||
<#foreach rpta_column_layout in rpta_column_layouts> |
||||
'${rpta_column_layout.uniquename}', |
||||
</#foreach>'xy') |
||||
and L.resultset_id=T.resultset_id |
||||
; |
||||
drop table tmp_rpta_column; |
||||
drop table if exists tmp_rpta_column2; |
||||
drop TABLE tmp_rpta_column_layout; |
||||
drop table tmp_rpta_column2layout; |
||||
|
||||
|
Loading…
Reference in new issue