Browse Source

Laderoutine in HS-KV anzeigen, Semester füllen #1

master
Daniel Quathamer 3 days ago
parent
commit
70a2cfa0ff
  1. 4
      src-modules/module/sxc/conf/sxc.xml
  2. 162
      src-modules/module/sxc/schluesseltabellen/cif_fuellen.sql

4
src-modules/module/sxc/conf/sxc.xml

@ -1488,7 +1488,11 @@ is_custom SMALLINT
</upgrade-step> </upgrade-step>
</upgrade> </upgrade>
<etl> <etl>
<etl-step name="Load" type="load" rohdaten="no"><!-- hier dürfen keine Actions stehen, damit in HIS1 das Ladedatum aktualisiert wird -->
</etl-step>
<etl-step name="Transformation" type="trans"> <etl-step name="Transformation" type="trans">
<nativeaction sql="" scriptfile="$SXC_PFAD/schluesseltabellen/cif_fuellen.sql" database=""/>
<action> <action>
<nativeaction sql="update systeminfo set datum=today() where tid in (360)" scriptfile="" database=""/> <nativeaction sql="update systeminfo set datum=today() where tid in (360)" scriptfile="" database=""/>

162
src-modules/module/sxc/schluesseltabellen/cif_fuellen.sql

@ -0,0 +1,162 @@
--Freemarker Template
--Semester füllen:
<sqlvars>
<sqlvar name="sos_installed">
select count(*) from db_version where his_system ='sos';
</sqlvar>
<sqlvar name="min_jahr">
select year(today())-7 from xdummy;
</sqlvar>
<sqlvar name="max_jahr">
select year(today()) from xdummy;
</sqlvar>
</sqlvars>
create temp table tmp_semester(
tid INTEGER ,
kurz CHAR(50) ,
druck CHAR(200) ,
akad_jahr SMALLINT ,
akad_jahr_absolv SMALLINT ,
akad_jahr_anf SMALLINT ,
sem_beginn DATE ,
sem_ende DATE
)
;
create temp table tmp_cif
(
tid serial,
key smallint ,
hs integer ,
apnr integer,
kurz char(10),
druck varchar(100),
lang_1 varchar(100),
lang_3 varchar(100),
astat INTEGER ,
parent INTEGER ,
sortc1 CHAR(10) ,
bund_apnr CHAR(10) ,
sprache CHAR(3),
d_akt_von date,
d_akt_bis date
);
create temp table tmp_hilf(tid integer);
<#if sos_installed=1>
insert into tmp_semester (
tid,
kurz,
druck,
sem_beginn,
sem_ende
)
select
tid,
eintrag,
eintrag,
sem_beginn,
sem_ende
from semester;
<#else>
<#list min_jahr..max_jahr as i>
--SoSe:
insert into tmp_semester (
tid,
kurz,
druck,
sem_beginn,
sem_ende
)
select ${i}1,${i}1,'SoSe ${i}',
date_val('01.04.${i}'),
date_val('30.09.${i}')
from xdummy;
--WS:
insert into tmp_semester (
tid,
kurz,
druck,
sem_beginn,
sem_ende
)
select ${i}2,${i}2,'WiSe ${i}/${i+1}',
date_val('01.10.${i}'),
date_val('31.03.${i}')
from xdummy;
</#list>
</#if>
-- Akademische Jahre für BAW und SA
-- Erläuterung:
-- Sachsen:
-- Akademisches Jahr für Absolventen: 2016 = 20152 + 20161
-- Akademisches Jahr für Studienanfänger: 2016 = 20161 + 20162
-- Baden Würtemberg:
-- Akademisches Jahr: 2016 = 20162 + 20171
-- Akademisches Jahr: 2017 = 20172 + 20181
--Berechnung akad.Jahr BaWue:
--WS + nachfolgendes SS (2006 = 20062 + 20071)
--WS
update tmp_semester set akad_jahr=(tid/10) where mod(tid,10)=2;
--SS
update tmp_semester set akad_jahr=(tid/10)-1 where mod(tid,10)=1;
--Berechnung akad.Jahr SA Absolventen:
--vorheriges WS + SS (2006 = 20052 + 20061)
--WS
update tmp_semester set akad_jahr_absolv=(tid/10)+1 where mod(tid,10)=2;
--SS
update tmp_semester set akad_jahr_absolv=(tid/10) where mod(tid,10)=1;
--Berechnung akad.Jahr SA Studienanfänger:
--SS + WS (2006 = 20061 + 20062)
--WS
update tmp_semester set akad_jahr_anf=(tid/10) where mod(tid,10)=2;
--SS
update tmp_semester set akad_jahr_anf=(tid/10) where mod(tid,10)=1;
delete from tmp_semester where tid in (select apnr from cif where key=661);
insert into tmp_cif(key,hs,apnr,kurz,druck,lang_1,d_akt_von,d_akt_bis)
select distinct 661::integer,0::integer,tid,tid,druck,druck,sem_beginn,sem_ende
from tmp_semester
where tid is not null;
delete from cif where '' || key || '_' || apnr in
(select '' || key || '_' || apnr from tmp_cif);
insert into tmp_hilf select max(tid) from cif;
update tmp_hilf set tid=1 where tid is null;
insert into cif(tid,key,hs,apnr,kurz,druck,lang_1,lang_3,d_akt_von,d_akt_bis
)
select C.tid+H.tid,key,hs,apnr,kurz,druck,lang_1,lang_3,d_akt_von,d_akt_bis
from tmp_cif C, tmp_hilf H
where apnr is not null;
drop table tmp_cif;
drop table tmp_semester;
drop table tmp_hilf;
Loading…
Cancel
Save