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.

602 lines
35 KiB

<?xml version="1.0" encoding="UTF-8"?>
<xupdate>
<!-- fuer Maske 888880140-->
<themenbaum maskentid="888880140" parentname="Drittmittel"/>
<!--Hier Themenbaumparent eintragen Name z.B: Haushalt-->
<sql>delete from maskeninfo where tid = 888880140;</sql>
<sql>delete from themenbaum where maskeninfo_id = 888880140;</sql>
<sql>delete from felderinfo where tid in (select felderinfo_id from masken_felder_bez where maskeninfo_id = 888880140);</sql>
<sql>delete from masken_felder_bez where maskeninfo_id = 888880140;</sql>
<sql>delete from sachgeb_maske_bez where maskeninfo_id = 888880140;</sql>
<sql>delete from maske_system_bez where maskeninfo_id = 888880140;</sql>
<sql><![CDATA[insert into maskeninfo (tid,name,chart_xtitel,chart_ytitel) values (888880140,'','','');]]></sql>
<sql><![CDATA[update maskeninfo set name='Kostenartenbericht Drittmittel' where tid=888880140;]]></sql>
<sql><![CDATA[update maskeninfo set cleanup_stmt='drop table tmp_erg2;', frontend=1, breite=750, hoehe=550, hilfe=1 where tid=888880140;]]></sql>
<sql>insert into maske_system_bez (maskeninfo_id,systeminfo_id) values (888880140,3);</sql>
<sql>insert into sachgeb_maske_bez (maskeninfo_id,sachgebiete_id) values (888880140,50);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880140);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880141);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880142);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880143);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880144);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880145);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880146);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880147);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880148);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880149);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880150);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880151);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880152);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880153);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880154);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880155);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880156);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880157);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880158);</sql>
<sql>insert into masken_felder_bez (maskeninfo_id,felderinfo_id) values (888880140,888880159);</sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880140,'',0,0,0,100,50,1,'integer',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880141,'',10,0,0,100,150,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880142,'',15,0,0,100,400,3,'char',150);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880143,'',21,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880144,'',1020,0,0,100,150,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880145,'',5,300,-1,100,100,1,'sql',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880146,'',30,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880147,'',60,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880148,'',70,0,0,100,150,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880149,'',60,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880150,'',25,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880151,'',1022,300,-1,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880152,'',1035,300,-1,100,150,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880153,'',1045,300,-1,100,150,1,'char',20);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880154,'',1027,400,-1,100,100,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880155,'',19,0,0,100,150,3,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880156,'',11,300,-1,100,150,1,'char',30);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880157,'',70,300,-1,100,30,1,'integer',5);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880158,'',55,300,0,100,150,1,'char',20);]]></sql>
<sql><![CDATA[insert into felderinfo (tid,name,nummer,x,y,buttonbreite,feldbreite,zeilenanzahl,typ,laenge) values (888880159,'',1,300,-1,100,50,1,'integer',30);]]></sql>
<sql><![CDATA[update felderinfo set name='ab Haushaltsjahr' where tid=888880140;]]></sql>
<sql><![CDATA[update felderinfo set name='Kapitel' where tid=888880141;]]></sql>
<sql><![CDATA[update felderinfo set name='Finanzierungsquelle' where tid=888880142;]]></sql>
<sql><![CDATA[update felderinfo set name='Titel' where tid=888880143;]]></sql>
<sql><![CDATA[update felderinfo set name='Kostenstelle' where tid=888880144;]]></sql>
<sql><![CDATA[update felderinfo set name='Zeitraum' where tid=888880145;]]></sql>
<sql><![CDATA[update felderinfo set name='Buchungsab_fb' where tid=888880146;]]></sql>
<sql><![CDATA[update felderinfo set name='Projnr_ins' where tid=888880147;]]></sql>
<sql><![CDATA[update felderinfo set name='ins2' where tid=888880148;]]></sql>
<sql><![CDATA[update felderinfo set name='ins3' where tid=888880149;]]></sql>
<sql><![CDATA[update felderinfo set name='Untertitel' where tid=888880150;]]></sql>
<sql><![CDATA[update felderinfo set name='Kostenarten' where tid=888880151;]]></sql>
<sql><![CDATA[update felderinfo set name='Kostenträger' where tid=888880152;]]></sql>
<sql><![CDATA[update felderinfo set name='Budgetherkunft' where tid=888880153;]]></sql>
<sql><![CDATA[update felderinfo set name='Untergeordnete KoA aufsummieren?' where tid=888880154;]]></sql>
<sql><![CDATA[update felderinfo set name='Deckungsring' where tid=888880155;]]></sql>
<sql><![CDATA[update felderinfo set name='Budgettyp' where tid=888880156;]]></sql>
<sql><![CDATA[update felderinfo set name='Filter bis Ebene' where tid=888880157;]]></sql>
<sql><![CDATA[update felderinfo set name='Art' where tid=888880158;]]></sql>
<sql><![CDATA[update felderinfo set name='bis Haushaltsjahr' where tid=888880159;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=1, art=1, attribut='', defaultwert='<<SQL>> SELECT max(ord) FROM aggregierung where kategorie=''FIN-Jahr'' ;' where tid=888880140;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880141;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=1, art=999, attribut='', defaultwert='' where tid=888880142;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880143;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=12, attribut='hidden', defaultwert='' where tid=888880144;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880145;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=1, attribut='', defaultwert='' where tid=888880146;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=1, attribut='', defaultwert='' where tid=888880147;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=1, attribut='hidden', defaultwert='' where tid=888880148;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='hidden', defaultwert='' where tid=888880149;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880150;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=12, attribut='', defaultwert='' where tid=888880151;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880152;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880153;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=1, art=999, attribut='', defaultwert='<<SQL>> select ''ja'',''ja'' from xdummy;' where tid=888880154;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880155;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880156;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=999, attribut='', defaultwert='' where tid=888880157;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=1, art=1, attribut='hidden', defaultwert='<<SQL>> select ''FIN_KOSTENART'',''FIN_KOSTENART'' from xdummy' where tid=888880158;]]></sql>
<sql><![CDATA[update felderinfo set obligatorisch=0, art=1, attribut='', defaultwert='<<SQL>> SELECT max(ord) FROM aggregierung where kategorie=''FIN-Jahr'' ;' where tid=888880159;]]></sql>
<text table="maskeninfo" field="select_stmt" where="tid=888880140"><![CDATA[--Freemarker Template
-- Drittmittel Kostenartenbericht
-- 18.6.10 Option nur offene Festlegungen
-- 20.9.10 verschd.
-- 15.10.10 Variable use_FIN_DRITT_KOSTENARTEN in FIN_DRITTMITTELPROJEKTE
-- 19.10.10 ${drittmittelprojektebedingung} weil ein Projekt dr 76 und 92
-- 20.12.10 fixed columns 2 in XIL, statt today fest 1.1.2011 für SxFinRechte - wird nicht ausgewertet
-- 30.6.11 aktiv=1 in sqlvar
-- 12.7.11 hft unten immer 0 bei festlegungen -- ggfs prüfen, festlegungen anzeigen ja/nein einstellen
-- 25.7.12 kamrights Rechtekontrolle aktiviert
-- 8/13 art_finkostenart 2, showeinzeltitel
-- 4.11.13 titel auf 10stellig
-- 6/17 prozent der Gesamtausgaben
-- 4/18 abgelaufene Projekte
-- 6/22 links zu Buchungen für KOA Monatsweise
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<sqlvars>
<sqlvar name="maxmonat">CDATASTARTselect month(today()) from xdummy where year(today())=<<ab Haushaltsjahr>> union select 12 from xdummy where year(today())!=<<ab Haushaltsjahr>>CDATAEND</sqlvar>
<sqlvar name="finkostenarten">CDATASTART
<#assign template = FIN_DRITTMITTELPROJEKTE?interpret>
<@template/>
select id,caption,content as strukturstr from sx_repository where aktiv=1 and
<#if use_FIN_DRITT_KOSTENARTEN?exists&&use_FIN_DRITT_KOSTENARTEN>
<#if "<<Art>>"!="'FIN_KOSTENART'"> art='FIN_DRITT_KOSTENART2' <#else> art='FIN_DRITT_KOSTENART'</#if>
<#else>
<#if "<<Art>>"!="'FIN_KOSTENART'"> art=<<Art>> <#else> art='FIN_KOSTENART'</#if>
</#if>
and gueltig_seit<=date_val('1.1.<<ab Haushaltsjahr>>') and gueltig_bis>=('1.1.<<ab Haushaltsjahr>>')
and aktiv=1 order by sort1CDATAEND
</sqlvar>
<sqlvar name="KST_SICHT">CDATASTARTselect min(name_intern) from sichten where
name = 'KST_Budgetbericht_<<ab Haushaltsjahr>>' and systeminfoid=3
CDATAEND
</sqlvar>
<sqlvar name="anzahl_klr_rechte">CDATASTARTselect count(*) from user_institution where userid=<<UserID>>CDATAEND
</sqlvar>
</sqlvars>
--<#if KST_SICHT?length<2>
--Keine Kostenstellensicht KST_Budgetbericht_<<Haushaltsjahr>> gefunden
--</#if>
<#assign template = FIN_DRITTMITTELPROJEKTE?interpret>
<@template/>
<#if CUSTOM_888880140?exists>
<#assign inlineTemplate=CUSTOM_888880140?interpret>
<@inlineTemplate/>
</#if>
<#assign linkbuch="SuperXmlTabelle?tid=888880160&ab%20Haushaltsjahr=<<ab Haushaltsjahr>>&Sortierung%20nach=1-bdat&navi=true"/>
<#if "<<bis Haushaltsjahr>>"!="">
<#assign linkbuch=linkbuch+"&bis%20Haushaltsjahr=<<bis Haushaltsjahr>>">
</#if>
<#if "<<Buchungsab_fb>>"!="">
<#assign linkbuch=linkbuch+"&Buchungsab_fb="+Buchungsab_fb/>
</#if>
<#if "<<Projnr_ins>>"!="">
<#assign linkbuch=linkbuch+"&Projnr_ins="+Projnr_ins/>
</#if>
<#if "<<ins2>>"!="">
<#assign linkbuch=linkbuch+"&ins2="+ins2/>
</#if>
<#assign linkbuch=linkbuch+"&cachingcontrol=clearmask"/>
--Finanzierungsquelle obligatorisch vorausgesetzt
<#assign linkbuchspezKoa=linkbuch/>
<#if (Kostenarten.selectionCount>0)>
<#assign linkbuch=linkbuch+"&Kostenarten=<<Kostenarten>>"?replace("'","")/>
</#if>
<#assign baus="&Buchungsart=6-aus"/>
<#assign bein="&Buchungsart=7-ein"/>
<#if LinkFestlegung?exists&&LinkFestlegung='nur offene'>
<#assign bf="&Buchungsart=4b-ofest"/>
<#else>
<#assign bf="&Buchungsart=4-fest"/>
</#if>
<#assign bakts="&Buchungsart=3b-aks"/>
<#macro kamrights>
--(
--(select count(*) from userinfo where tid=<<UserID>> and administration=1)>0 or
--(select count(*) from fin_user_kam where buchungsab_fb='0' and projnr_ins='0' and userid=<<UserID>>)>0
--or
--(
--buchungsab_fb in (select buchungsab_fb from fin_user_kam where projnr_ins='0' and userid=<<UserID>> )
--or
--projnr_ins in (select projnr_ins from fin_user_kam where buchungsab_fb='0' and userid=<<UserID>> )
--or
--'ba_'|| buchungsab_fb || '_pr_' ||projnr_ins in (select 'ba_'|| buchungsab_fb || '_pr_' ||projnr_ins from fin_user_kam --where userid=<<UserID>> )
--)
--)
--kst_sql wird momentan nicht gebraucht
<#assign kst_sql>ch110_institut in <@printkeys Kostenstelle.allNeededKeysList /></#assign>
${SxFinRechte(kst_sql,'1.1.2011')} -- vorher today geht nicht mit Postgres--
</#macro>
create temp table tmp_roh
(
koa char(100),
titel char(10),
monat smallint,
fikr char(12),
bewill 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
) <@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,
bewill decimal (14,2) default 0,
sperr 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(1000)</#if>,
</#list>
fest decimal (14,2) default 0,
verfuegbar decimal (14,2) default 0,
linkbuchakts <#if SQLdialect='Postgres'>text<#else>lvarchar(1000)</#if>,
linkbuchf <#if SQLdialect='Postgres'>text<#else>lvarchar(1000)</#if>,
linkbuchein <#if SQLdialect='Postgres'>text<#else>lvarchar(1000)</#if>,
linkbuchaus <#if SQLdialect='Postgres'>text<#else>lvarchar(1000)</#if>
) <@informixnolog/>;
<#foreach koa in finkostenarten>
<#if koa.strukturStr?length<2>Achtung - fuer ${koa.id} kein SQL definiert</#if>
<#assign koaTemplate = koa.strukturStr?interpret>
<#assign showKLRKostenarten='nein'> --defaultwert wird ggfs. im folgenden Schritt überschriebenen
<#assign showEinzeltitel='nein'>
<#assign drtit="dr"/> --Standard kann von einzelnen Finanzierungsquellen umgestellt werden
select count(*) from fin_konto_aggr where 1=0 and <@koaTemplate/>;
<#if koa.strukturStr?index_of("titel")&gt;-1>
<#assign drtit="tit"/>
</#if>
insert into tmp_roh (koa,titel,monat <#if showKLRKostenarten!='nein'>,fikr</#if> ,
bewill,sperr,ausgaben,einnahmen,fest,verfuegbar)
select '${koa.id}'::char(100),titel,monat <#if showKLRKostenarten!='nein'>,fikr</#if>,
sum(hhans_${drtit}),sum(sperr_${drtit}),sum(ausgaben_${drtit}),sum(einnahmen_${drtit}),sum(festgelegt_${drtit}),
sum(verfuegbar_${drtit})
from fin_konto_aggr where
<@kamrights/>
and ${drittmittelprojektebedingung} and
rechnungsjahr>=<<ab Haushaltsjahr>>
/* and rechnungsjahr<=<<bis Haushaltsjahr>> */
<#if MaxJahreProjektAbgelaufen?exists>
and buchungsab_fb in (select projnr from fin_proj where ${ProjektAbgelaufenFeld} is null or year(${ProjektAbgelaufenFeld})>=(year(today())-${MaxJahreProjektAbgelaufen}))
</#if>
/* and buchungsab_fb in (<<Buchungsab_fb>>) */
/* and projnr_ins in (<<Projnr_ins>>) */
/* and ins2 in (<<ins2>>) */
<#if "<<Deckungsring>>"="'no_dr'">
and (dr='' or dr is null)
<#else>
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
</#if>
/* and zweckbestimmung_ut in (<<Untertitel>>) */
/* and sx_butype in (<<sx_butype>>) */
<#if (Kostenarten.selectionCount>0)>
and fikr in <@printkeys Kostenarten.allNeededKeys />
</#if>
and <@koaTemplate/>
group by 1,2,3 <#if showKLRKostenarten!='nein'>,fikr</#if>;
</#foreach>
create index tmp_ixroh on tmp_roh(fikr);
<#assign sort=1/>
<#foreach koa in finkostenarten>
--defaultwerte falls nicht gewünscht anders in repository definieren
<#assign showAnsatz='ja'>
<#assign showSperre='ja'>
<#assign showFestgelegt='ja'>
<#assign showVerfuegbar='ja'>
--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,bewill,sperr,ausgaben,einnahmen,fest,verfuegbar,linkbuchakts,linkbuchf,linkbuchein,linkbuchaus)
select '${koa.id}'::char(100),'${koa.name}'::char(100),${sort},
<#if showAnsatz!='nein'>sum(bewill)<#else>null::decimal(14,2)</#if>,
<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2)</#if>,sum(ausgaben),sum(einnahmen),
<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2)</#if>,
<#if showVerfuegbar!='nein'>sum(verfuegbar)<#else>null::decimal(14,2)</#if>,
<#if showAnsatz!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bakts}'<#else>null::char(10)</#if>,
<#if showFestgelegt!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bf}'<#else>null::char(10)</#if>,
'${linkbuch}&FIN-Kostenart=${koa.id}${bein}',
'${linkbuch}&FIN-Kostenart=${koa.id}${baus}'
from xdummy left outer join tmp_roh on (koa='${koa.id}'::char(100))
group by 1,2,3;
<#if showEinzeltitel!='nein'>
<#assign sort=sort+1/>
insert into tmp_erg (ebene,koa,fikr,name,sortnr,sort2,linkbuchakts,linkbuchf,linkbuchein,linkbuchaus,bewill,sperr,ausgaben,einnahmen,fest,verfuegbar)
select 2,'${koa.id}'::char(100),'titel'::char(12),titel::char(150),${sort},titel::integer,
<#if showAnsatz!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bakts}'||'&Titel='||trim(titel)<#else>null::char(10)</#if>,
<#if showFestgelegt!='nein'>'${linkbuch}&FIN-Kostenart=${koa.id}${bf}'||'&Titel='||trim(titel)<#else>null::char(10)</#if>,
'${linkbuch}&FIN-Kostenart=${koa.id}${bein}'||'&Titel='||trim(titel),
'${linkbuch}&FIN-Kostenart=${koa.id}${baus}'||'&Titel='||trim(titel),
<#if showAnsatz!='nein'>sum(bewill)<#else>null::decimal(14,2)</#if>,
<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2)</#if>,
sum(ausgaben),sum(einnahmen),
<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2)</#if>,
<#if showVerfuegbar!='nein'>sum(verfuegbar)<#else>null::decimal(14,2)</#if>
from tmp_roh where koa='${koa.id}'::char(100)
and titel!=''
group by 1,2,3,4,5,6,7,8,9,10;
</#if>
-------
<#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>
<#if klrkoa.level&gt;=2>
insert into tmp_erg (ebene,koa,fikr,name,sortnr,sort2,bewill,sperr,ausgaben,einnahmen,fest,verfuegbar,linkbuchakts,linkbuchf,linkbuchein,linkbuchaus)
select ${klrkoa_ebene},'${koa.id}'::char(100),'${klrkoa.key}'::char(12),'${klrkoa.name}'::char(150),${sort},${sort2},
<#if showAnsatz!='nein'>sum(bewill)<#else>null::decimal(14,2)</#if>,
<#if showSperre!='nein'>sum(sperr)<#else>null::decimal(14,2)</#if>,
sum(ausgaben),sum(einnahmen),
<#if showFestgelegt!='nein'>sum(fest)<#else>null::decimal(14,2)</#if>,
<#if showVerfuegbar!='nein'>sum(verfuegbar)<#else>null::decimal(14,2)</#if>,
<#if showAnsatz!='nein'>'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bakts}'<#else>null::char(10)</#if>,
<#if showFestgelegt!='nein'>'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bf}'<#else>null::char(10)</#if>,
'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${bein}',
'${linkbuchspezKoa}&FIN-Kostenart=${koa.id}&Kostenarten=${klrkoa.key}${baus}'
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/>
</#if>
</#foreach>
</#if>
</#foreach>
--Summe für 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;
</#foreach>
create index tmp_ix1 on tmp_fikrsum (koa);
create index tmp_ix2 on tmp_fikrsum (fikr);
create index tmp_ix3 on tmp_fikrsum (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;
--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;
</#list>
drop table tmp_fikrsum;
drop table tmp_roh;
--update tmp_erg set bewill=0 where bewill 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=<<ab Haushaltsjahr>>)
where fikr='titel';
<@selectintotmp source="tmp_erg" target="tmp_erg2" select="*"/><@informixnolog/>;
insert into tmp_erg2 (name,sortnr,linkbuchakts,linkbuchf,linkbuchein,linkbuchaus,bewill,sperr,<#list 1..maxmonat as i>aus${i},</#list>ausgaben,einnahmen,fest,verfuegbar)
select 'Summe'::char(5),70,
<#if showAnsatz!='nein'>'${linkbuch}${bakts}'<#else>null::char(10)</#if>,
<#if showFestgelegt!='nein'>'${linkbuch}${bf}'<#else>null::char(10)</#if>,
'${linkbuch}${bein}',
'${linkbuch}${baus}',
sum(bewill),sum(sperr),<#list 1..maxmonat as i>sum(aus${i}),</#list>sum(ausgaben),sum(einnahmen),sum(fest),sum(verfuegbar) 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;
<#if K_hs_nr=6850>--hft immer 0 bei festlegungen anzeigen
update tmp_erg2 set fest=0 where fest is null;
</#if>
<#if K_hs_nr=6860>
update tmp_erg2 set einnahmen=0 where einnahmen is null;
update tmp_erg2 set fest=0 where fest is null;
</#if>
--war für eine Hochschule in ISO
--update tmp_erg2 set linkbuchakts= replace(linkbuchakts,'Ö','%D6');
--update tmp_erg2 set linkbuchf= replace(linkbuchf,'Ö','%D6');
--update tmp_erg2 set linkbuchein= replace(linkbuchein,'Ö','%D6');
--update tmp_erg2 set linkbuchaus= replace(linkbuchaus,'Ö','%D6');
<#list 1..maxmonat as i>
update tmp_erg2 set linkbuchaus${i}=linkbuchaus||'&Monat=${i}';
</#list>
<#if customize?exists>
select <#foreach f in customize.resulttable>
<#if f.caption='Ausgaben'>
<#list 1..maxmonat as i>aus${i},</#list> ausgaben,
<#list 1..maxmonat as i>linkbuchaus${i} as hidden_aus${i},</#list> linkbuchaus as hidden_ausgaben,
<#else>
${f.field} <#if f_has_next>,</#if>
</#if>
</#foreach>
from tmp_erg2 order by sortnr,sort2,name;;
<#else>
select ebene,name,
--bewill,sperr,
<#list 1..maxmonat as i>aus${i},</#list> ausgaben,
<#list 1..maxmonat as i>linkbuchaus${i} as hidden_aus${i},</#list> linkbuchaus as hidden_ausgaben,
einnahmen,fest,
linkbuchf as hidden_fest,
linkbuchein as hidden_einnahmen
from tmp_erg2 order by sortnr,sort2,name;
</#if>]]></text>
<text table="maskeninfo" field="xil_proplist" where="tid=888880140"><![CDATA[XIL List
--Freemarker Template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#assign monate=["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]/>
<sqlvars>
<sqlvar name="maxmonat">CDATASTARTselect month(today()) from xdummy where year(today())=<<ab Haushaltsjahr>> union select 12 from xdummy where year(today())!=<<ab Haushaltsjahr>>CDATAEND</sqlvar>
</sqlvars>
sizable_columns horizontal_scrolling
white_space_color=COLOR_WHITE
fixed_columns=2
min_heading_height=35
<#if CUSTOM_888880140?exists>
<#assign inlineTemplate=CUSTOM_888880140?interpret>
<@inlineTemplate/>
</#if>
<#if customize?exists>
<#foreach f in customize.resulttable>
<#if f.caption='Ausgaben'>
<#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
</#list>
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
</#list>
Column CID=0 heading_text="hidden_Ausgaben" explanation="" center_heading row_selectable heading_platform readonly width=10 text_size=1
<#else>
Column CID=2 heading_text="${f.caption}" explanation="" center_heading
row_selectable col_selectable heading_platform readonly width=${f.width}
</#if>
</#foreach>
<#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
<#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
</#list>
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
</#list>
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="Einnahmen" explanation="" center_heading
row_selectable heading_platform readonly
width=10 text_size=10
Column CID=0 heading_text="Festgelegt" 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
Column CID=0 heading_text="Buchungen\nEinnahmen" explanation="" center_heading
row_selectable heading_platform readonly
width=12 text_size=12
</#if>
@@@]]></text>
<text table="maskeninfo" field="erlaeuterung" where="tid=888880140"><![CDATA[Übersicht über Verteilung nach Kostenarten für Drittmittel]]></text>
<text table="maskeninfo" field="hinweis" where="tid=888880140"><![CDATA[null]]></text>
<text table="felderinfo" field="relation" where="tid=888880140"><![CDATA[<<SQL>> SELECT distinct ord,name FROM aggregierung where kategorie='FIN-Jahr' order by 1;]]></text>
<text table="felderinfo" field="relation" where="tid=888880141"><![CDATA[<<SQL>> select kapitel,ktobez from fin_kapitel where 1=1 /* and jahr=<<Haushaltsjahr>> */ order by ktobez]]></text>
<text table="felderinfo" field="relation" where="tid=888880142"><![CDATA[<<SQL>> select id,caption from sx_repository where art='FIN_FINANZIERUNGSQUELLE' and aktiv=1 and gueltig_seit<=date_val('1.1.<<Haushaltsjahr>>') and gueltig_bis>=date_val('31.12.<<Haushaltsjahr>>')]]></text>
<text table="felderinfo" field="relation" where="tid=888880143"><![CDATA[<<SQL>> select distinct titel,ktobez from fin_titel where 1=1 /* and jahr=<<Haushaltsjahr>> */ /* and kapitel=<<Kapitel>> */
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
order by ktobez]]></text>
<text table="felderinfo" field="relation" where="tid=888880144"><![CDATA[<<SQL>> select tid,type,name from sichten where art='FIN-Kostenstellen-Sicht' and aktiv=1 order by type,tid]]></text>
<text table="felderinfo" field="relation" where="tid=888880145"><![CDATA[<<SQL>> select wert, name from aggregierung where kategorie = 'ZeitraumMonat';]]></text>
<text table="felderinfo" field="relation" where="tid=888880146"><![CDATA[<<SQL>>
--freemarker template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#assign template = FIN_DRITTMITTELPROJEKTE?interpret>
<@template/>
--erwartet drittmittelstartjahr und drittmittelprojektebedingung
create temp table tmp_proj (key char(12),jahr smallint) <@informixnolog/>;
insert into tmp_proj (key,jahr) select buchungsab_fb,max(jahr) from fin_buchab_fb B
where
(
<#if berechtigung_via_hauptbetreuungskostenstellen&&Kostenstelle.elementsMaxEbene&gt;1>
buchungsab_fb in (select distinct projnr from fin_proj_to_inst where haupt_kst_kz='1' and inst_nr in <@printkeys Kostenstelle.allNeededKeys/> )
or
</#if>
(${SxFinRechte("K1","31.12.2010","","","","")})
)
<#if "<<Kostenstelle>>"!=""&&Kostenstelle.elementsMaxEbene&gt;1>
and buchungsab_fb in (select distinct projnr from fin_proj_to_inst where haupt_kst_kz='1' and inst_nr in <@printkeys Kostenstelle.allNeededKeys/> )
</#if>
and jahr>=${drittmittelprojektestartjahr}
and ${drittmittelprojektebedingung}
<#if Projektleiter?exists&&"<<Projektleiter>>"!="">
and buchungsab_fb in (select projnr from fin_proj where pjlname1 in (<<Projektleiter>>))
</#if>
<#if MaxJahreProjektAbgelaufen?exists>
and buchungsab_fb in (select projnr from fin_proj where ${ProjektAbgelaufenFeld} is null or year(${ProjektAbgelaufenFeld})>=(year(today())-${MaxJahreProjektAbgelaufen}))
</#if>
/* and jahr=<<Haushaltsjahr>> */
group by buchungsab_fb
;
select distinct key, trim(key)||'-'::char(1)||trim(ktobez) from fin_buchab_fb join tmp_proj
on fin_buchab_fb.buchungsab_fb = tmp_proj.key and fin_buchab_fb.jahr = tmp_proj.jahr
order by key;
drop table tmp_proj;]]></text>
<text table="felderinfo" field="relation" where="tid=888880147"><![CDATA[<<SQL>>
--freemarker template
<#include "SQL_lingua_franca"/>
select distinct projnr_ins,trim(projnr_ins)||'-'||max(ktobez) from fin_projnr_ins where jahr>=<<ab Haushaltsjahr>>
/* and kapitel in (<<Kapitel>>) */
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
/* and titel in (<<Titel>>) */
/* and zweckbestimmung_ut in (<<Untertitel>>) */
/* and buchungsab_fb in (<<Buchungsab_fb>>) */
and ${SxFinRechte("K2","31.12.<<ab Haushaltsjahr>>","","","","","")}
group by 1 order by 1;]]></text>
<text table="felderinfo" field="relation" where="tid=888880148"><![CDATA[<<SQL>> select distinct ins2,trim(ins2)||'-'||max(ktobez) from fin_ins2 where 1=1 /* and jahr=<<Haushaltsjahr>> */ /* and kapitel in (<<Kapitel>>) */
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
/* and titel in (<<Titel>>) */ /* and buchungsab_fb in (<<Buchungsab_fb>>) */
/* and projnr_ins in (<<Projnr_ins>>) */
group by 1 order by 1;]]></text>
<text table="felderinfo" field="relation" where="tid=888880149"><![CDATA[<<SQL>> select distinct ins3,trim(ins3)||'-'||max(ktobez) from fin_ins3 where 1=1 /* and jahr=<<Haushaltsjahr>> */ /* and kapitel=<<Kapitel>> */
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
/* and titel=<<Titel>> */ /* and buchungsab_fb in (<<Buchungsab_fb>>) */ /* and projnr_ins in (<<Projnr_ins>>) */ /* and ins2 in (<<ins2>>) */ group by 1 order by 1]]></text>
<text table="felderinfo" field="relation" where="tid=888880150"><![CDATA[<<SQL>> select distinct zweckbestimmung_ut,ktobez from fin_zweck_ut where 1=1 /* and jahr=<<Haushaltsjahr>> */ /* and kapitel=<<Kapitel>> */
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>)) */
/* and titel=<<Titel>> */ order by ktobez]]></text>
<text table="felderinfo" field="relation" where="tid=888880151"><![CDATA[<<SQL>> select tid,type,name,sortnr from sichten where art='FIN-Kosten-/Erlösarten-Sicht' and aktiv=1 order by sortnr,type,name]]></text>
<text table="felderinfo" field="relation" where="tid=888880152"><![CDATA[<<SQL>> select tid,type,name,sortnr from sichten where art='FIN-Kostenträger-Sicht' and aktiv=1 order by sortnr,type,name]]></text>
<text table="felderinfo" field="relation" where="tid=888880153"><![CDATA[<<SQL>>select tid,type,name,sortnr from sichten where art ='Geldgeber-Sicht (FIN)' and aktiv=1 order by sortnr,type,name;]]></text>
<text table="felderinfo" field="relation" where="tid=888880154"><![CDATA[<<SQL>> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy;]]></text>
<text table="felderinfo" field="relation" where="tid=888880155"><![CDATA[<<SQL>> select distinct dr,ktobez from fin_dr where 1=1 /* and jahr=<<Haushaltsjahr>> */ /* and kapitel=<<Kapitel>> */ order by ktobez]]></text>
<text table="felderinfo" field="relation" where="tid=888880156"><![CDATA[<<SQL>> select tid,name,sortnr from sichten where art='Buchungstyp-Sicht' and aktiv=1 order by sortnr,name]]></text>
<text table="felderinfo" field="relation" where="tid=888880157"><![CDATA[]]></text>
<text table="felderinfo" field="relation" where="tid=888880158"><![CDATA[<<SQL>> select 'FIN_KOSTENART','FIN_KOSTENART' from xdummy union select 'FIN_KOSTENART2','FIN_KOSTENART2' from xdummy]]></text>
<text table="felderinfo" field="relation" where="tid=888880159"><![CDATA[<<SQL>> SELECT distinct ord,name FROM aggregierung where kategorie='FIN-Jahr' order by 1;]]></text>
</xupdate>