diff --git a/masken/888880080-Kostenartenbericht.xml b/masken/888880080-Kostenartenbericht.xml new file mode 100644 index 0000000..d233120 --- /dev/null +++ b/masken/888880080-Kostenartenbericht.xml @@ -0,0 +1,808 @@ + + + + + + +delete from maskeninfo where tid = 888880080; +delete from themenbaum where maskeninfo_id = 888880080; +delete from felderinfo where tid in (select felderinfo_id from masken_felder_bez where maskeninfo_id = 888880080); +delete from masken_felder_bez where maskeninfo_id = 888880080; +delete from sachgeb_maske_bez where maskeninfo_id = 888880080; +delete from maske_system_bez where maskeninfo_id = 888880080; + + + +insert into maske_system_bez (maskeninfo_id,systeminfo_id) values (888880080,3); +insert into sachgeb_maske_bez (maskeninfo_id,sachgebiete_id) values (888880080,50); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880080); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880081); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880082); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880083); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880084); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880085); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880086); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880087); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880088); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880089); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880090); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880091); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880092); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880093); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880094); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880095); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880096); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880097); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880098); +insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880080,888880099); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> SELECT year(today()) FROM xdummy;' where tid=888880080;]]> + + + + + + + + + + + + + + + + + +> select ''FIN_KOSTENART'',''FIN_KOSTENART'' from xdummy' where tid=888880098;]]> + +<#include "SuperX_general"/> + + +select month(today()) from xdummy where year(today())=<> union select 12 from xdummy where year(today())!=<> +CDATASTARTselect id,caption,content as strukturstr from sx_repository where aktiv=1 and +<#if "<>"!='FIN_KOSTENART'> art=<> <#else> art='FIN_KOSTENART' and gueltig_seit<=date_val('1.1.<>') and gueltig_bis>=('1.1.<>') order by sort1CDATAEND +select id,caption,content from sx_repository where aktiv=1 +/* and id in (<>) */ +and gueltig_seit<=date_val('1.1.<>') and gueltig_bis>=('1.1.<>') + +select min(name_intern) from sichten where +name = 'KST_Budgetbericht_<>' and systeminfoid=3 --FIN-Kopie + +select count(*) from user_institution where userid=<> + + +--<#if KST_SICHT?length<2> +--Keine Kostenstellensicht KST_Budgetbericht_<> gefunden +-- +<#assign linkbuchstart=""/> -- bei altem Kernmodul SuperXmlTabelle?tid= +<#assign verfuegbar_misch_aktiv=false/> +<#if CUSTOM_888880080?exists> +<#assign inlineTemplate=CUSTOM_888880080?interpret> +<@inlineTemplate/> + + +<#assign linkbuch="SuperXmlTabelle?tid=888880040&Haushaltsjahr=<>&navi=true"/> + +<#if .vars['Kostenstelle-Sicht']?exists><#assign linkbuch=linkbuch+"&Kostenstelle-Sicht=${.vars['Kostenstelle-Sicht']}"/> +--Referenz auf erste Kostenstelle wird fuer FREIES benoetigt +--<#assign kstelle='-999'> +--<#if anzahl_klr_rechte>0> +--<#assign kstelle=Kostenstelle.elements?first/> +--<#assign linkbuch=linkbuch+"&Kostenstelle="+kstelle.key> +--&+"Kostenstelle-Sicht="+KST_SICHT/> +--<#else> +--TODO klappt noch nicht als Fehlermeldung - verbessern +--<#if Finanzierungsquelle?index_of("FREIES")>-1> FEHLER FueR FREIES BUDGET MUSS EINE KOSTENSTELLE AUSGEWaeHLT SEIN +-- +<#assign linkbuch=linkbuch+"&cachingcontrol=clearmask&Finanzierungsquelle="/> +--Finanzierungsquelle obligatorisch vorausgesetzt + +<#assign baus="&Buchungsart=6-aus"/> +<#if LinkFestlegung?exists&&LinkFestlegung='nur offene'> +<#assign bf="&Buchungsart=4b-ofest"/> +<#else> +<#assign bf="&Buchungsart=4-fest"/> + +<#assign bakts="&Buchungsart=3b-aks"/> +<#assign bhhans="&Buchungsart=9-hhans"/> +<#assign bhhans_reste="&Buchungsart=9b-hhans-reste"/> +<#assign bein="&Buchungsart=7-ein"/> + +<#foreach finanzierungsquelle in TMP_FINANZIERUNGSQUELLEN> +<#assign linkbuch=linkbuch+finanzierungsquelle.id/> +<#if finanzierungsquelle_has_next> <#assign linkbuch=linkbuch+","/> + +<#if "<>"!=""> +<#assign linkbuch=linkbuch+"&Buchungsab_fb="+Buchungsab_fb?replace("'","")?replace("|",",")/> + +<#if "<>"!=""> + <#assign linkbuch=linkbuch+"&Projnr_ins="+Projnr_ins?replace("'","")?replace("|",",")/> + +<#if "<>"!=""&&ins2?exists> + <#assign linkbuch=linkbuch+"&ins2="+ins2?replace("'","")?replace("|",",")/> + +<#if "<>"!=""&&ins3?exists> + <#assign linkbuch=linkbuch+"&ins3="+ins3?replace("'","")?replace("|",",")/> + +<#if "<>"!=""&&FB_INS?exists> + <#assign linkbuch=linkbuch+"&FB_INS="+FB_INS?replace("'","")?replace("|",",")/> + +<#if "<>"!=""&&Titel?exists> + <#assign linkbuch=linkbuch+"&Titel="+Titel?replace("'","")?replace("|",",")/> + +<#if "<>"!=""&&Deckungsring?exists> +<#assign linkbuch=linkbuch+"&Deckungsring="+Deckungsring?replace("'","")?replace("|",",")/> + +<#if sx_butype?exists&&"<>"!=""> + <#assign linkbuch=linkbuch+"&sx_butype="+sx_butype/> + +<#if Kostenstelle?exists&&"<>"!=""><#assign linkbuch=linkbuch+"&Kostenstelle=<>"?replace("'","")> +<#assign linkbuchspezKoa=linkbuch/> +<#if (Kostenarten.selectionCount>0)> +<#assign linkbuch=linkbuch+"&Kostenarten=<>"?replace("'","")/> + + +<#macro kamrights> + --( + --(select count(*) from userinfo where tid=<> and administration=1)>0 or + --(select count(*) from fin_user_kam where buchungsab_fb='0' and projnr_ins='0' and userid=<>)>0 +--or +--( +--buchungsab_fb in (select buchungsab_fb from fin_user_kam where projnr_ins='0' and userid=<> ) +--or +--projnr_ins in (select projnr_ins from fin_user_kam where buchungsab_fb='0' and userid=<> ) +--or + --'ba_'|| buchungsab_fb || '_pr_' ||projnr_ins in (select 'ba_'|| buchungsab_fb || '_pr_' ||projnr_ins from fin_user_kam --where userid=<> ) +--) +--) +--kst_sql wird momentan nicht gebraucht +<#assign kst_sql>ch110_institut in <@printkeys Kostenstelle.allNeededKeysList /> +${SxFinRechte(kst_sql,'31.12.<>')} + + +create temp table tmp_roh +( + koa char(100), + dritt smallint, + titel char(10), + monat smallint, + fikr char(12), + hhans decimal (14,2) default 0, + reste decimal (14,2) default 0, + akt_soll decimal (14,2) default 0, + akts_plus_vojs decimal(14,2) default 0, + sperr decimal (14,2) default 0, + ausgaben decimal (14,2) default 0, + einnahmen decimal(14,2) default 0, + fest decimal (14,2) default 0, + verfuegbar decimal (14,2) default 0, + verfuegbar_geld decimal (14,2) default 0, + verfuegbar_misch decimal (14,2) default 0 -- gegen Ansatz bei Haushalt, gegen Geldeingang bei Drittmitteln + +) <@informixnolog/>; +create temp table tmp_fikrsum +( + koa char(100), + monat smallint, + fikr char(12), + ausgaben decimal (14,2) default 0, + einnahmen decimal (14,2) default 0 + +) <@informixnolog/>; +create temp table tmp_erg +( +ebene smallint default 1, +koa char(100), +fikr char(12), + name char(100), + sortnr integer default 0, sort2 integer default 0, + hhans decimal (14,2) default 0, + reste decimal(14,2) default 0, + hhans_reste decimal(14,2) default 0, + akt_soll decimal (14,2) default 0, + sperr decimal (14,2) default 0, + akts_plus_vojs decimal(14,2) default 0, + ausgaben decimal (14,2) default 0, + prozent decimal(14,2), + gesamtausgaben decimal(16,6), + einnahmen decimal (14,2) default 0, + <#list 1..maxmonat as i> + aus${i} decimal(14,2) default 0, + linkbuchaus${i} <#if SQLdialect='Postgres'>text<#else>lvarchar, + + fest decimal (14,2) default 0, + verfuegbar decimal (14,2) default 0, + verfuegbar_geld decimal (14,2) default 0, + verfuegbar_misch decimal (14,2) default 0, -- gegen Ansatz bei Haushalt, gegen Geldeingang bei Drittmitteln + verfuegbar_misch_of decimal (14,2) default 0, -- gegen Ansatz bei Haushalt, gegen Geldeingang bei Drittmitteln +--linkbuchhhans <#if SQLdialect='Postgres'>text<#else>lvarchar, gibt's nicht im Buchungsbericht + linkbuchakts <#if SQLdialect='Postgres'>text<#else>lvarchar, + linkbuchhhans <#if SQLdialect='Postgres'>text<#else>lvarchar, + linkbuchhhans_reste <#if SQLdialect='Postgres'>text<#else>lvarchar, +linkbuchf <#if SQLdialect='Postgres'>text<#else>lvarchar, +linkbuchaus <#if SQLdialect='Postgres'>text<#else>lvarchar, +linkbuchein <#if SQLdialect='Postgres'>text<#else>lvarchar +) <@informixnolog/>; +-- left outer join auf xdummy fügt gegenfalls null als Werte ein, daher kommt unten noch mal update + +-- das Makro +<#macro insert koa> +<#assign koaTemplate = koa.strukturStr?interpret> +<#assign showKLRKostenarten='nein'> --defaultwert wird ggfs. im folgenden Schritt ueberschriebenen +select count(*) from fin_konto_aggr where 1=0 and <@koaTemplate/>; + +<#foreach finanzierungsquelle in TMP_FINANZIERUNGSQUELLEN> +--defaults +<#assign drtitparam='dr'/> +<#assign aktsollausdruck="sum(akt_soll_"+drtitparam+")"/> +<#assign verfuegbarausdruck="sum(verfuegbar_"+drtitparam+")"/> +<#assign drtit="dr"/> --default kann von FInanzierungsquelle überschrieben werden +<#assign inlineTemplate = finanzierungsquelle.strukturStr?interpret> + select 0 from fin_konto_aggr where 1=0 and <@inlineTemplate />; +<#if koa.id!='FIN_KSONSTIGES'&&koa.strukturStr?index_of("titel")>-1||"<>"="'no_dr'"><#assign drtit="tit"/> +<#if drtit="tit"||("<>"!=""&&Titel?exists)||(koa.id!='FIN_KSONSTIGES'&&koa.strukturStr?index_of("titel")>1)> +<#assign drtitparam='tit'/> +<#assign aktsollausdruck=aktsollausdruck?replace("_dr","_tit")/> +<#assign verfuegbarausdruck=verfuegbarausdruck?replace("_dr","_tit")/> + + +insert into tmp_roh (koa,titel,monat <#if showKLRKostenarten!='nein'>,fikr <#if verfuegbar_misch_aktiv>, dritt, + hhans,reste,akt_soll,akts_plus_vojs,sperr,ausgaben,einnahmen,fest,verfuegbar,verfuegbar_geld) +select '${koa.id}'::char(100),titel,monat <#if showKLRKostenarten!='nein'>,fikr <#if verfuegbar_misch_aktiv>, dritt, + sum(hhans_${drtitparam}),sum(reste_${drtitparam}),${aktsollausdruck},sum(akt_soll_${drtitparam})+sum(vojs_${drtitparam}),sum(sperr_${drtitparam}),sum(ausgaben_${drtitparam}), + sum(einnahmen_${drtitparam}),sum(festgelegt_${drtitparam}),${verfuegbarausdruck},sum(verfuegbar_geld) +from fin_konto_aggr where +rechnungsjahr=<> +/* and buchungsab_fb in (<>) */ +/* and projnr_ins in (<>) */ +/* and ins2 in (<>) */ +/* and ins3 in (<>) */ +/* and (buchungsab_fb in (<>) */ +/* or projnr_ins in (<>) ) */ +/* and titel in (<>) */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + +/* and zweckbestimmung_ut in (<>) */ +/* and sx_butype in (<>) */ +<#if (Kostenarten.selectionCount>0)> +and fikr in <@printkeys Kostenarten.allNeededKeys /> + + --Kostenstellenrechte brauchen nicht abgefragt zu werden, wird ggfs. ber Finanzierungsquelle gemacht + and (<@inlineTemplate />) + +and <@koaTemplate/> + group by 1,2,3 <#if showKLRKostenarten!='nein'>,fikr <#if verfuegbar_misch_aktiv>,dritt; + +<#if verfuegbar_misch_aktiv> + update tmp_roh set verfuegbar_misch=verfuegbar where dritt=0; + update tmp_roh set verfuegbar_misch=verfuegbar_geld where dritt=1; + + + +<#foreach koa in finkostenarten> +<#if koa.strukturStr?length<2>Achtung - fuer ${koa.id} kein SQL definiert +<@insert koa=koa/> + +create index tmp_ixroh on tmp_roh(fikr); + + +<#assign sort=1/> +<#foreach koa in finkostenarten> +--defaultwerte falls nicht gewuenscht anders in repository definieren +<#assign showAnsatz='ja'> +<#assign showSperre='ja'> +<#assign showFestgelegt='ja'> +<#assign showVerfuegbar='ja'> +<#assign showKLRKostenart=''/> +<#assign showEinzeltitel='nein'/> +--Variablen ggfs. durch repository Wert ueberschreiben +<#assign inlineTemplate = koa.strukturStr?interpret> +select count(*) from fin_konto_aggr where 1=0 and <@inlineTemplate />; + +<#assign sort=sort+1/> +insert into tmp_erg (koa,name,sortnr,sort2,hhans,reste,akt_soll,akts_plus_vojs,sperr,ausgaben,einnahmen,fest,verfuegbar,verfuegbar_geld,verfuegbar_misch, +linkbuchhhans,linkbuchhhans_reste,linkbuchakts,linkbuchf,linkbuchaus,linkbuchein) +select '${koa.id}'::char(100),'${koa.name}'::char(100),${sort},0, +--hier könnte eigentlich in if show Ansatz rein, aber die Spalten werden standardmäßig eh nicht dargestellt, nur bei entsprechender CUSTOM_888880080 Variable +sum(hhans),sum(reste), +<#if showAnsatz!='nein'>sum(akt_soll),sum(akts_plus_vojs)<#else>null::decimal(14,2),null::decimal(14,2), +<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2),sum(ausgaben),sum(einnahmen), +<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2), +<#if showVerfuegbar!='nein'>sum(verfuegbar),sum(verfuegbar_geld),sum(verfuegbar_misch)<#else>null::decimal(14,2),null::decimal(14,2),null::decimal(14,2), +'${linkbuch}&FIN-Kostenart=${koa.id}${bhhans}','${linkbuch}&FIN-Kostenart=${koa.id}${bhhans_reste}', +<#if showAnsatz!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bakts}'<#else>null::char(255), +<#if showFestgelegt!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bf}'<#else>null::char(255), +'${linkbuch}&FIN-Kostenart=${koa.id}${baus}', +'${linkbuch}&FIN-Kostenart=${koa.id}${bein}' +from xdummy left outer join tmp_roh on (koa='${koa.id}'::char(100)) + group by 1,2,3,4; + +<#if showEinzeltitel!='nein'> +<#assign sort=sort+1/> +insert into tmp_erg (ebene,koa,fikr,name,sortnr,sort2,hhans,reste,akt_soll,akts_plus_vojs,sperr,ausgaben,einnahmen,fest,verfuegbar,verfuegbar_geld,verfuegbar_misch, +linkbuchhhans,linkbuchhhans_reste,linkbuchakts,linkbuchf,linkbuchaus,linkbuchein) +select +2, +'${koa.id}'::char(100),'titel',titel,${sort},titel::integer, +--hier könnte eigentlich in if show Ansatz rein, aber die Spalten werden standardmäßig eh nicht dargestellt, nur bei entsprechender CUSTOM_888880080 Variable +sum(hhans),sum(reste), +<#if showAnsatz!='nein'>sum(akt_soll),sum(akts_plus_vojs)<#else>null::decimal(14,2),null::decimal(14,2), +<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2), +sum(ausgaben), +sum(einnahmen), +<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2), +<#if showVerfuegbar!='nein'>sum(verfuegbar),sum(verfuegbar_geld),sum(verfuegbar_misch)<#else>null::decimal(14,2),null::decimal(14,2),null::decimal(14,2), +'${linkbuch}&FIN-Kostenart=${koa.id}${bhhans}&Titel='||trim(titel),'${linkbuch}&FIN-Kostenart=${koa.id}${bhhans_reste}&Titel='||trim(titel), +<#if showAnsatz!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bakts}&Titel='||trim(titel)<#else>null::char(255), +<#if showFestgelegt!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bf}&Titel='||trim(titel)<#else>null::char(255), +'${linkbuch}&FIN-Kostenart=${koa.id}${baus}&Titel='||trim(titel), +'${linkbuch}&FIN-Kostenart=${koa.id}${bein}&Titel='||trim(titel) +from tmp_roh where koa='${koa.id}'::char(100) and titel!='' + group by 1,2,3,4,5,6; + + +-- KLR-Kostenarten muessen jetzt auf Ebene zwei sein, unter Titel nicht vorgesehen +<#if showKLRKostenarten!='nein'> +<#assign sort=sort+1/> +<#assign sort2=1/> +<#foreach klrkoa in Kostenarten.elements> +<#if (Kostenarten.selectionCount==0)> + <#assign klrkoa_ebene=klrkoa.level/> + +<#else> + <#assign klrkoa_ebene=klrkoa.levelFromSelection+2/> + + +<#if klrkoa.level>=2> +insert into tmp_erg (ebene,koa,fikr,name,sortnr,sort2,hhans,reste,akt_soll,akts_plus_vojs,sperr,ausgaben,einnahmen,fest,verfuegbar,verfuegbar_geld,verfuegbar_misch, +linkbuchakts,linkbuchf,linkbuchaus,linkbuchein) +select +${klrkoa_ebene}, +'${koa.id}'::char(100),'${klrkoa.key}'::char(12),'${klrkoa.name}'::char(150),${sort},${sort2}, +--hier könnte eigentlich in if show Ansatz rein, aber die Spalten werden standardmäßig eh nicht dargestellt, nur bei entsprechender CUSTOM_888880080 Variable +sum(hhans),sum(reste), +<#if showAnsatz!='nein'>sum(akt_soll),sum(akts_plus_vojs)<#else>null::decimal(14,2),null::decimal(14,2), +<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2), +sum(ausgaben), +sum(einnahmen), +<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2), +<#if showVerfuegbar!='nein'>sum(verfuegbar),sum(verfuegbar_geld),sum(verfuegbar_misch)<#else>null::decimal(14,2),null::decimal(14,2),null::decimal(14,2), +<#if showAnsatz!='nein'>'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bakts}'<#else>null::char(255), +<#if showFestgelegt!='nein'>'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bf}'<#else>null::char(255), +'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${baus}', +'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bein}' +from tmp_roh where koa='${koa.id}'::char(100) +and fikr in <@printkeys klrkoa.subkeys/> + group by 1,2,3,4,5,6; +<#assign sort2=sort2+1/> + + + + + +--Summe fuer KLR_kostenarten einschliesslich untergeordneter +<#foreach klrkoa in Kostenarten.elements> +insert into tmp_fikrsum (koa,fikr,monat,ausgaben,einnahmen) +select koa,'${klrkoa.key}'::char(12),monat,sum(ausgaben),sum(einnahmen) from tmp_roh where fikr in <@printkeys klrkoa.subkeys/> +group by 1,2,3; + +create index tmp_ix1 on tmp_fikrsum (koa,monat); +create index tmp_ix2 on tmp_fikrsum (fikr,monat); + +<#list 1..maxmonat as i> + update tmp_erg set aus${i}=(select sum(ausgaben) from tmp_roh where monat=${i} and tmp_erg.koa=tmp_roh.koa) where ebene=1; + --fuer KLR-Koa + update tmp_erg set aus${i}= + (select sum(ausgaben) from tmp_fikrsum where monat=${i} and tmp_erg.koa=tmp_fikrsum.koa and tmp_erg.fikr=tmp_fikrsum.fikr) where ebene>1; + -- für Einzeltitel + update tmp_erg set aus${i}= + (select sum(ausgaben) from tmp_roh where monat=${i} and tmp_erg.koa=tmp_roh.koa and tmp_erg.name=tmp_roh.titel) where + fikr='titel' and ebene>1; + + update tmp_erg set aus${i}=0 where aus${i} is null; + + +drop table tmp_fikrsum; +drop table tmp_roh; + +--update tmp_erg set akt_soll=0 where akt_soll is null; +--update tmp_erg set sperr=0 where sperr is null; +update tmp_erg set ausgaben=0 where ausgaben is null; +--update tmp_erg set fest=0 where fest is null; +--update tmp_erg set verfuegbar=0 where verfuegbar is null; +update tmp_erg set name=(select max(ktobez) from fin_titel where tmp_erg.name=fin_titel.titel and fin_titel.jahr=<>) +where fikr='titel'; + +<@selectintotmp source="tmp_erg" target="tmp_erg2" select="*"/><@informixnolog/>; +<#if finkostenarten?size>1> +insert into tmp_erg2 (name,sortnr,linkbuchhhans,linkbuchhhans_reste,linkbuchakts,linkbuchf,linkbuchaus,linkbuchein,hhans, +akt_soll,akts_plus_vojs,sperr,<#list 1..maxmonat as i>aus${i},ausgaben,einnahmen,fest,verfuegbar,verfuegbar_geld, +verfuegbar_misch) +select 'Summe'::char(5),${sort+1}, +<#if showAnsatz!='nein'>'${linkbuch}${bhhans}'<#else>null::char(255), +<#if showAnsatz!='nein'>'${linkbuch}${bhhans_reste}'<#else>null::char(255), +<#if showAnsatz!='nein'>'${linkbuch}${bakts}'<#else>null::char(255), +<#if showFestgelegt!='nein'>'${linkbuch}${bf}'<#else>null::char(255), +'${linkbuch}${baus}', +'${linkbuch}${bein}' +,sum(hhans),sum(akt_soll),sum(akts_plus_vojs),sum(sperr), +<#list 1..maxmonat as i>sum(aus${i}),sum(ausgaben),sum(einnahmen),sum(fest),sum(verfuegbar),sum(verfuegbar_geld),sum(verfuegbar_misch) from tmp_erg +where ebene=1 group by 1,2,3,4,5,6; + +update tmp_erg2 set gesamtausgaben=(select sum(ausgaben) from tmp_erg where ebene=1); +update tmp_erg2 set prozent=(ausgaben/gesamtausgaben)*100 where gesamtausgaben is not null and gesamtausgaben!=0; +drop table tmp_erg; + +update tmp_erg2 set verfuegbar_misch_of=verfuegbar_misch+fest; + +update tmp_erg2 set hhans=0 where hhans is null; +update tmp_erg2 set reste=0 where reste is null; +update tmp_erg2 set hhans_reste=hhans+reste; +update tmp_erg2 set akt_soll=0 where akt_soll is null; +update tmp_erg2 set sperr=0 where sperr is null; +update tmp_erg2 set akts_plus_vojs=0 where akts_plus_vojs is null; +update tmp_erg2 set ausgaben=0 where ausgaben is null; +update tmp_erg2 set einnahmen=0 where einnahmen is null; +update tmp_erg2 set fest=0 where fest is null; +update tmp_erg2 set verfuegbar=0 where verfuegbar is null; +update tmp_erg2 set verfuegbar_geld=0 where verfuegbar_geld is null; +update tmp_erg2 set verfuegbar_misch=0 where verfuegbar_misch is null; +update tmp_erg2 set verfuegbar_misch_of=0 where verfuegbar_misch_of is null; + +<#if Username?starts_with("demo")> +<#function rand min max> +<#assign objectConstructor = "freemarker.template.utility.ObjectConstructor"?new()> +<#local n1 = objectConstructor("java.util.Date")> + <#local n2 = n1.getTime()/> + <#local now=n2?string /> + <#local leng=now?length/> + <#local randomNum=0.36+("0."+now[(leng-1)]+now[(leng-2)..(leng-1)])?number/> + <#if (randomNum > 1)> + <#assign _rand = randomNum % 1 /> + <#else> + <#assign _rand = randomNum /> + + <#return (min + ((max - min) * _rand))/> + +<#assign zufall=rand(3,9)?string?replace(",",".")/> + update tmp_erg2 set hhans=hhans*${zufall} , + sperr=sperr*${zufall} , + akt_soll=akt_soll*${zufall} , + akts_plus_vojs=akts_plus_vojs*${zufall} , + einnahmen =einnahmen*${zufall}, + ausgaben=ausgaben*${zufall}, + <#list 1..maxmonat as i>aus${i}=aus${i}*${zufall}, + verfuegbar=verfuegbar*${zufall} , +verfuegbar_geld=verfuegbar_geld*${zufall}, +verfuegbar_misch=verfuegbar_misch*${zufall}, +verfuegbar_misch_of=verfuegbar_misch_of*${zufall}; + + + +<#list 1..maxmonat as i> +update tmp_erg2 set linkbuchaus${i}=linkbuchaus||'&Monat=${i}'; + + + +<#if customize?exists> +-- wenn das Feld nicht versteckt ist, muss Link gekürzt werden +<#foreach f in customize.resulttable> +<#if f.field?index_of("linkbuchhhans")>-1&&f.field?index_of("hidden")==-1> + update tmp_erg2 set linkbuchhhans=replace(linkbuchhhans,'SuperXmlTabelle?tid=',''); + update tmp_erg2 set linkbuchhhans_reste=replace(linkbuchhhans_reste,'SuperXmlTabelle?tid=',''); + +<#if f.field?index_of("linkbuchakts")>-1&&f.field?index_of("hidden")==-1> + update tmp_erg2 set linkbuchakt=replace(linkbuchakts,'SuperXmlTabelle?tid=',''); + + <#if f.field?index_of("linkbuchf")>-1&&f.field?index_of("hidden")==-1> + update tmp_erg2 set linkbuchf=replace(linkbuchf,'SuperXmlTabelle?tid=',''); + + <#if f.field?index_of("linkbuchaus")>-1&&f.field?index_of("hidden")==-1> + update tmp_erg2 set linkbuchaus=replace(linkbuchaus,'SuperXmlTabelle?tid=',''); + + <#if f.field?index_of("linkbuchein")>-1&&f.field?index_of("hidden")==-1> + update tmp_erg2 set linkbuchein=replace(linkbuchein,'SuperXmlTabelle?tid=',''); + + + + + +select <#foreach f in customize.resulttable> +<#if f.caption='Ausgaben'> + <#if Finanzierungsquelle!='FIN_EINNAHMEN'> + <#list 1..maxmonat as i>aus${i}, ausgaben, + <#list 1..maxmonat as i>linkbuchaus${i} as hidden_aus${i}, linkbuchaus as hidden_ausgaben, + +<#else> +<#if !f.field?starts_with("linkbuchaus")||Finanzierungsquelle!='FIN_EINNAHMEN'> +${f.field} <#if f_has_next>, + + + + from tmp_erg2 order by sortnr,sort2,name; +<#else> +select ebene,name,akt_soll,einnahmen,sperr, +<#if Finanzierungsquelle!='FIN_EINNAHMEN'> + <#list 1..maxmonat as i>aus${i}, ausgaben, + <#list 1..maxmonat as i>linkbuchaus${i} as hidden_aus${i}, linkbuchaus as hidden_ausgaben, + +fest, verfuegbar, +linkbuchakts as hidden_akt_soll, linkbuchf as hidden_fest, +linkbuchein as hidden_einnahmen + from tmp_erg2 order by sortnr,sort2,name; +]]> + +<#include "SuperX_general"/> +<#assign monate=["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]/> + + +select month(today()) from xdummy where year(today())=<> union select 12 from xdummy where year(today())!=<> + + sizable_columns horizontal_scrolling + white_space_color=COLOR_WHITE +fixed_columns=2 + min_heading_height=35 +<#if CUSTOM_888880080?exists> +<#assign inlineTemplate=CUSTOM_888880080?interpret> +<@inlineTemplate/> + +<#if customize?exists> +<#foreach f in customize.resulttable> +<#if f.caption='Ausgaben'> + <#if Finanzierungsquelle!='FIN_EINNAHMEN'> + <#list 1..maxmonat as i> +Column CID=0 heading_text="Ausgaben\000${monate[i-1]}" explanation="" center_heading row_selectable heading_platform readonly width=10 text_size=10 + +Column CID=0 heading_text="Ausgaben\000GESAMT" explanation="" center_heading row_selectable heading_platform readonly width=10 text_size=10 + + <#list 1..maxmonat as i> +Column CID=0 heading_text="hidden_Ausgaben${monate[i-1]}" explanation="" center_heading row_selectable heading_platform readonly width=1 text_size=10 + +Column CID=0 heading_text="hidden_Ausgaben" explanation="" center_heading row_selectable heading_platform readonly width=10 text_size=1 +<#else> +<#if !f.field?starts_with("linkbuchaus")||Finanzierungsquelle!='FIN_EINNAHMEN'> +Column CID=2 heading_text="${f.caption}" explanation="" center_heading +row_selectable col_selectable heading_platform readonly width=${f.width} + + + + +<#else> +Column CID=0 heading_text="Ebene" explanation="" center_heading + row_selectable heading_platform readonly + width=8 text_size=8 +Column CID=0 heading_text="Kostenart" explanation="" center_heading + row_selectable heading_platform readonly + width=30 text_size=30 +Column CID=0 heading_text="Ansatz inkl.Reste" explanation="" center_heading + row_selectable heading_platform readonly + width=10 text_size=10 +Column CID=0 heading_text="Einnahmen" explanation="" center_heading + row_selectable heading_platform readonly + width=10 text_size=10 +Column CID=0 heading_text="Sperre" explanation="" center_heading + row_selectable heading_platform readonly + width=10 text_size=10 +<#if Finanzierungsquelle!='FIN_EINNAHMEN'> +<#list 1..maxmonat as i> +Column CID=0 heading_text="Ausgaben\000${monate[i-1]}" explanation="" center_heading + row_selectable heading_platform readonly + width=10 text_size=10 + + +Column CID=0 heading_text="Ausgaben\000GESAMT" explanation="" center_heading + row_selectable heading_platform readonly + width=10 text_size=10 + <#list 1..maxmonat as i> +Column CID=0 heading_text="hidden_Ausgaben${monate[i-1]}" explanation="" center_heading row_selectable heading_platform readonly width=1 text_size=10 + +Column CID=0 heading_text="hidden_Ausgaben" explanation="" center_heading row_selectable heading_platform readonly width=10 text_size=1 +Column CID=0 heading_text="Festgelegt" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 +Column CID=0 heading_text="Verfügbar" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 +Column CID=0 heading_text="Buchungen\nAnsatz" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 +Column CID=0 heading_text="Buchungen\nFestgelegt" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 +<#if Finanzierungsquelle!='FIN_EINNAHMEN'> +Column CID=0 heading_text="Buchungen\nAusgaben" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 + +Column CID=0 heading_text="Buchungen\nEinnahmen" explanation="" center_heading + row_selectable heading_platform readonly + width=12 text_size=12 +]]> + +> +--freemarker template +select 'Achtung Demodaten' from xdummy where 1=0 <#if Username?starts_with("demo")> or 1=1]]> +> SELECT distinct ord,name FROM aggregierung where kategorie='FIN-Jahr' and ord>=2020 order by 1 DESC;]]> +> select kapitel,ktobez from fin_kapitel where 1=1 /* and jahr=<> */ order by ktobez]]> +> select id,caption from sx_repository where art='FIN_FINANZIERUNGSQUELLE' and aktiv=1 and gueltig_seit<=date_val('1.1.<>') and gueltig_bis>=date_val('31.12.<>')]]> +> +--freemarker template + select distinct titel,ktobez from fin_titel where 1=1 /* and jahr=<> */ /* and kapitel=<> */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + + order by ktobez]]> +> select tid,type,name from sichten where art='FIN-Kostenstellen-Sicht' and aktiv=1 order by type,tid]]> +> +<#assign template = FIN_DRITTMITTELPROJEKTE?interpret> +<@template/> +--erwartet drittmittelstartjahr und drittmittelprojektebedingung +select distinct buchungsab_fb,trim(buchungsab_fb)||'-'||max(ktobez) from fin_buchab_fb where jahr=<> +/* and kapitel in (<>) */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + + /* and titel in (<>) */ +/* and zweckbestimmung_ut in (<>) */ +and ${SxFinRechte("K1","31.12.<>","","","","")} +and not (${drittmittelprojektebedingung}) +group by 1 +union +select distinct projnr_ins,trim(projnr_ins)||'-'||max(ktobez) from fin_projnr_ins where jahr=<> +/* and kapitel in (<>) */ +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + /* and titel in (<>) */ +/* and zweckbestimmung_ut in (<>) */ +and ${SxFinRechte("K2","31.12.<>","","","","","")} +and not (${drittmittelprojektebedingung}) +group by 1 order by 1;]]> +> +--freemarker template +select distinct buchungsab_fb,trim(buchungsab_fb)||'-'||max(ktobez) from fin_buchab_fb where jahr=<> +/* and kapitel in (<>) */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + + +and ${SxFinRechte("K1","31.12.<>","","","","")} +group by 1 order by 1]]> +> +--Freemarker Template +<#include "SQL_lingua_franca"/> +select distinct projnr_ins,trim(projnr_ins)||'-'||max(ktobez) from fin_projnr_ins where jahr=<> +/* and kapitel in (<>) */ +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + /* and buchungsab_fb in (<>) */ +and ${SxFinRechte("K2","31.12.<>","","","","","")} +group by 1 order by 1;]]> +> +--Freemarker Template +select ins2,trim(ins2)||'-'||max(ktobez) from fin_ins2 where + ${SxFinRechte("K3","31.12.<>","","","","","")} +/* and jahr=<> */ +/* and kapitel in (<>) */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + + /* and buchungsab_fb in (<>) */ +/* and projnr_ins in (<>) */ +group by 1 order by 1;]]> +> +--Freemarker Template +select ins3,trim(ins3)||'-'||max(ktobez) from fin_ins3 + where + ${SxFinRechte("K4","31.12.<>","","","","","")} +/* and jahr=<> */ +/* and kapitel=<> */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + +/* and titel in (<>) */ +/* and zweckbestimmung_ut in (<>) */ +/* and buchungsab_fb in (<>) */ + /* and projnr_ins in (<>) */ + /* and ins2 in (<>) */ +group by 1 order by 1]]> +> + +--freemarker template +select distinct zweckbestimmung_ut,ktobez from fin_zweck_ut where 1=1 /* and jahr=<> */ /* and kapitel=<> */ +<#if "<>"="'no_dr'"> +and (dr='' or dr is null) +<#else> +/* and (dr in (<>) */ +/* or dr2 in (<>)) */ + + /* and titel in (<>) */ order by ktobez]]> +> select tid,type,name,sortnr from sichten where art='FIN-Kosten-/Erlösarten-Sicht' and aktiv=1 order by sortnr,type,name]]> +> select tid,type,name,sortnr from sichten where art='FIN-Kostenträger-Sicht' and aktiv=1 order by sortnr,type,name]]> +>select tid,type,name,sortnr from sichten where art ='Geldgeber-Sicht (FIN)' and aktiv=1 order by sortnr,type,name;]]> +> select distinct kapitel,ktobez from fin_kapitel where jahr=<> order by ktobez]]> +> select distinct dr,ktobez from fin_dr where 1=1 /* and jahr=<> */ /* and kapitel=<> */ +union select 'no_dr','Keine Titelgruppe' from xdummy +order by ktobez]]> +> select tid,name,sortnr from sichten where art='Buchungstyp-Sicht' and aktiv=1 order by sortnr,name]]> + +> select 'FIN_KOSTENART','FIN_KOSTENART' from xdummy union select 'FIN_KOSTENART2','FIN_KOSTENART2' from xdummy]]> +