FSN#39054 Budgetcontrole uitbreiding: BGT module - savepoint
svn path=/Website/trunk/; revision=33403
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/calendar.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
|
||||
<!-- #include file="../Shared/disciplineselector.inc" -->
|
||||
@@ -100,6 +101,20 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
|
||||
|
||||
<!-- Second column -->
|
||||
<td>
|
||||
<table>
|
||||
<%
|
||||
FCLTcalendar("date_from",
|
||||
{ label: L("lcl_period_from"), /* TODO default startdatum project? */
|
||||
initEmpty: true
|
||||
});
|
||||
|
||||
FCLTcalendar("date_to",
|
||||
{ label: L("lcl_period_to"),
|
||||
initEmpty: true
|
||||
});
|
||||
CHECKBOXTR(L("lcl_fin_total_sum"), "fldbgtinclbtw", "bgt_inclbtw", false);
|
||||
%>
|
||||
</table>
|
||||
</td><!-- end column 2-->
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
$Id$
|
||||
|
||||
File: bgt_search_list.asp
|
||||
Description:
|
||||
Description: Presents an interactive overview of budgets and spents
|
||||
Parameters:
|
||||
|
||||
Context:
|
||||
|
||||
Note: UNDER CONSTRUCTION !
|
||||
Note: UNDER CONSTRUCTION !!
|
||||
|
||||
- actions op kolommen:
|
||||
- budget > budgetmutaties (tbd)
|
||||
@@ -45,6 +45,10 @@ var bgtproj_key_arr = getQParamIntArray("bgtproj_key", []);
|
||||
if (bgtdisc_key > 0)
|
||||
lcl.set_dialect(bgtdisc_key, "INS_TAB_DISCIPLINE_KEY"); // TBD. Nodig?
|
||||
|
||||
var bgt_inclbtw = getQParam("bgt_inclbtw", "off") == "on";
|
||||
var date_from = getQParamDate("date_from", null);
|
||||
var date_to = getQParamDate("date_to", null);
|
||||
|
||||
var groupby = getQParamInt("groupby");
|
||||
// -1. niks
|
||||
// 1. facturen
|
||||
@@ -158,6 +162,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " AND b.prs_bedrijf_key = o.mld_uitvoerende_keys"
|
||||
+ " AND f.mld_opdr_key = o.mld_opdr_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
|
||||
@@ -205,6 +211,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " AND b.prs_bedrijf_key = o.mld_uitvoerende_keys"
|
||||
+ " AND f.mld_opdr_key(+) = o.mld_opdr_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
sql += " GROUP BY "
|
||||
@@ -470,26 +478,29 @@ var transitParam = buildTransitParam([]);
|
||||
+ " GROUP BY "
|
||||
+ " bgt_project_omschrijving ,"
|
||||
+ " ins_discipline_omschrijving";
|
||||
//BTW
|
||||
sql1 +=" UNION SELECT"
|
||||
+ " ins_discipline_omschrijving project,"
|
||||
+ " bgt_project_omschrijving deelproject,"
|
||||
+ " 'BTW' rubriek,"
|
||||
+ " 'B' rcode,"
|
||||
+ " '92' sortcode,"
|
||||
+ " -3 bgt_kostenrubriek_key,"
|
||||
+ " SUM(bud.bgt_budget_btwbedrag) budget"
|
||||
+ " FROM bgt_budget bud,"
|
||||
+ " bgt_project pr,"
|
||||
+ " ins_tab_discipline id"
|
||||
+ " WHERE pr.bgt_project_key = bud.bgt_project_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
// ongeacht reserve
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key
|
||||
+ " GROUP BY "
|
||||
+ " bgt_project_omschrijving ,"
|
||||
+ " ins_discipline_omschrijving";
|
||||
if (bgt_inclbtw)
|
||||
{
|
||||
//BTW
|
||||
sql1 +=" UNION SELECT"
|
||||
+ " ins_discipline_omschrijving project,"
|
||||
+ " bgt_project_omschrijving deelproject,"
|
||||
+ " 'BTW' rubriek,"
|
||||
+ " 'B' rcode,"
|
||||
+ " '92' sortcode,"
|
||||
+ " -3 bgt_kostenrubriek_key,"
|
||||
+ " SUM(bud.bgt_budget_btwbedrag) budget"
|
||||
+ " FROM bgt_budget bud,"
|
||||
+ " bgt_project pr,"
|
||||
+ " ins_tab_discipline id"
|
||||
+ " WHERE pr.bgt_project_key = bud.bgt_project_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
// ongeacht reserve
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key
|
||||
+ " GROUP BY "
|
||||
+ " bgt_project_omschrijving ,"
|
||||
+ " ins_discipline_omschrijving";
|
||||
}
|
||||
}
|
||||
|
||||
if (groupby == 6) // 6. deelproject
|
||||
@@ -498,7 +509,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " ins_discipline_omschrijving project,"
|
||||
+ " bgt_project_omschrijving deelproject,"
|
||||
+ " pr.bgt_project_key,"
|
||||
+ " SUM(bud.bgt_budget_bedrag) budget"
|
||||
+ " SUM(bud.bgt_budget_bedrag" + (bgt_inclbtw ? "+ bud.bgt_budget_btwbedrag" : "") + ") budget"
|
||||
+ " FROM bgt_budget bud,"
|
||||
+ " bgt_project pr,"
|
||||
+ " ins_tab_discipline id"
|
||||
@@ -518,7 +529,10 @@ var transitParam = buildTransitParam([]);
|
||||
// MERK OP: hier zouden in het algemeen ook andere verplichtingen bij moeten (bestellingen, contracten, reserveringen)
|
||||
// zoals die via de kostensoort kunnen worden bijgevonden. Dat is voor een latere versie.
|
||||
|
||||
// TODO: de besteding van de BTW moet er op een of andere manier bijgejoined worden.
|
||||
// TODO: de besteding van de BTW (bgt_inclbtw) moet er op een of andere manier bijgejoined worden.
|
||||
// Dat moet dan op de aparte BTW-regel (rubriek -3) gepresenteerd worden, dus niet in de reguliere besteding
|
||||
// Opdrachten: BTW obv ??? Die weten we nog niet!
|
||||
// Facturen: BTW obv fin_factuur_totaal_btw
|
||||
|
||||
// Eerst maar de OPDRACHTEN PER KOSTENSOORT
|
||||
var sql2a ="SELECT"
|
||||
@@ -528,7 +542,7 @@ var transitParam = buildTransitParam([]);
|
||||
+ " ksg.prs_kostensoortgrp_key,"
|
||||
+ " ks.prs_kostensoort_key,"
|
||||
+ " SUM (o.mld_opdr_kosten) gecontracteerd,"
|
||||
+ " NULL gefactureerd"
|
||||
+ " SUM (o.mld_opdr_kosten*0.21) gecontracteerdbtw" // TODO!
|
||||
+ " FROM mld_opdr o," /* zonder de facturen, anders wordt verdubbeld */
|
||||
+ " prs_kostensoort ks,"
|
||||
+ " prs_kostensoortgrp ksg,"
|
||||
@@ -540,6 +554,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
|
||||
+ " AND pr.bgt_project_key = kr.bgt_project_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
sql2a+= " GROUP BY "
|
||||
@@ -556,8 +572,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " kr.bgt_kostenrubriek_key,"
|
||||
+ " ksg.prs_kostensoortgrp_key,"
|
||||
+ " ks.prs_kostensoort_key,"
|
||||
+ " NULL gecontracteerd,"
|
||||
+ " SUM (f.fin_factuur_totaal) gefactureerd"
|
||||
+ " SUM (f.fin_factuur_totaal) gefactureerd,"
|
||||
+ " SUM (f.fin_factuur_totaal_btw) gefactureerdbtw"
|
||||
+ " FROM fin_factuur f,"
|
||||
+ " mld_opdr o,"
|
||||
+ " prs_kostensoort ks,"
|
||||
@@ -571,6 +587,8 @@ var transitParam = buildTransitParam([]);
|
||||
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
|
||||
+ " AND pr.bgt_project_key = kr.bgt_project_key"
|
||||
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
|
||||
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
|
||||
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
|
||||
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
|
||||
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
|
||||
sql2b+= " GROUP BY "
|
||||
@@ -588,7 +606,9 @@ var transitParam = buildTransitParam([]);
|
||||
+ " opdr.prs_kostensoortgrp_key,"
|
||||
+ " opdr.prs_kostensoort_key prs_kostensoort_key,"
|
||||
+ " SUM(opdr.gecontracteerd) gecontracteerd,"
|
||||
+ " SUM(opdr.gecontracteerdbtw) gecontracteerdbtw,"
|
||||
+ " SUM (fact.gefactureerd) gefactureerd,"
|
||||
+ " SUM (fact.gefactureerdbtw) gefactureerdbtw,"
|
||||
+ " SUM(COALESCE(opdr.gecontracteerd,0)) - SUM (COALESCE(fact.gefactureerd,0)) tefactureren"
|
||||
+ " FROM (" + sql2a + ") opdr, (" + sql2b + ") fact "
|
||||
+ " WHERE opdr.prs_kostensoort_key(+) = fact.prs_kostensoort_key"
|
||||
@@ -603,11 +623,11 @@ var transitParam = buildTransitParam([]);
|
||||
// Hier komen ze bij elkaar: de budgetten en de besteding, met de respectievelijke groeperingen
|
||||
// sql1 heeft de benamingen en de budgetten met kostensoort_key (die NULL kan zijn!), sql2 de kostensoort_key en de bestedingen
|
||||
//
|
||||
var sql ="SELECT"
|
||||
var sql ="SELECT * FROM (SELECT"
|
||||
+ " bud.project project,"
|
||||
+ " bud.deelproject deelproject,"
|
||||
+ " besteding.bgt_project_key,"
|
||||
+ (groupby <= 5 ? " bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key," : "")
|
||||
+ (groupby <= 5 ? " bud.sortcode, bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key," : "")
|
||||
+ (groupby <= 4 ? " bud.groep groep, bud.prs_kostensoortgrp_key," : "")
|
||||
+ (groupby <= 3 ? " bud.onderdeel onderdeel, besteding.prs_kostensoort_key," : "")
|
||||
+ " MAX(bud.budget) budget," /* is voor alle regels hetzelfde, kies er maar eentje, als je maar niet optelt */
|
||||
@@ -620,13 +640,34 @@ var transitParam = buildTransitParam([]);
|
||||
+ (groupby == 4 ? " WHERE bud.prs_kostensoortgrp_key = besteding.prs_kostensoortgrp_key " : "")
|
||||
+ (groupby == 5 ? " WHERE bud.bgt_kostenrubriek_key = besteding.bgt_kostenrubriek_key(+) " : "") // de reserve en BTW hebben geen echte rubriek_key
|
||||
+ (groupby == 6 ? " WHERE bud.bgt_project_key = besteding.bgt_project_key " : "")
|
||||
+ "GROUP BY "
|
||||
// + " AND COALESCE(besteding.bgt_kostenrubriek_key, 99) <> -3"
|
||||
+ " GROUP BY "
|
||||
+ " bud.project, bud.deelproject, besteding.bgt_project_key"
|
||||
+ (groupby <= 5 ? " ,bud.rubriek, bud.rcode, bud.sortcode, bud.bgt_kostenrubriek_key" : "")
|
||||
+ (groupby <= 4 ? " ,bud.groep, bud.prs_kostensoortgrp_key" : "")
|
||||
+ (groupby <= 3 ? " ,bud.onderdeel, besteding.prs_kostensoort_key" : "");
|
||||
|
||||
sql += " ORDER BY "
|
||||
if (false && bgt_inclbtw && groupby==5) // In rubriekoverzicht eventueel een BTW-regel
|
||||
{
|
||||
sql +=" UNION SELECT"
|
||||
+ " bud.project project,"
|
||||
+ " bud.deelproject deelproject,"
|
||||
+ " besteding.bgt_project_key,"
|
||||
+ " bud.sortcode,"
|
||||
+ " bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key,"
|
||||
+ " MAX(bud.budget) budget,"
|
||||
+ " SUM(besteding.gecontracteerdbtw) gecontracteerd,"
|
||||
+ " MAX(bud.budget) - SUM(COALESCE(besteding.gecontracteerdbtw,0)) tecontracteren,"
|
||||
+ " SUM(besteding.gefactureerdbtw) gefactureerd,"
|
||||
+ " SUM(besteding.tefactureren) tefactureren"
|
||||
+ " FROM (" + sql1 + ") bud, (" + sql2 + ") besteding "
|
||||
+ " WHERE bud.bgt_kostenrubriek_key = -3 "
|
||||
+ "GROUP BY "
|
||||
+ " bud.project, bud.deelproject, besteding.bgt_project_key"
|
||||
+ " ,bud.rubriek, bud.rcode, bud.sortcode, bud.bgt_kostenrubriek_key";
|
||||
}
|
||||
|
||||
sql += ") ORDER BY "
|
||||
+ "project"
|
||||
+ (groupby < 6 ? ",sortcode, rubriek" : "")
|
||||
+ (groupby < 5 ? ",groep" : "")
|
||||
|
||||
Reference in New Issue
Block a user