FSN#39054 Budgetcontrole uitbreiding: BGT module savepoint

svn path=/Website/trunk/; revision=32889
This commit is contained in:
Peter Feij
2017-02-22 08:04:15 +00:00
parent a7e9b9af0d
commit a115cbe811
2 changed files with 322 additions and 93 deletions

View File

@@ -2,7 +2,7 @@
<% /*
$Revision$
$Id$
File: mjb/mjb_search.asp
File: bgt/bgt_search.asp
Description: Menuoptie BGT Totaaloverzicht
Parameters:
Context:
@@ -10,8 +10,7 @@
@todo
- project (dis_key) is vereist
- deelproject (bgt_srtgroep) is optioneel. Indien gegeven dan niet muteerbaar getoond, anders te kiezen default leeg
- zoektekst zoekt fuzzy door vanalles, zoveel als dat er tijd voor is
- deelproject (bgt_project) is optioneel. Indien gegeven dan niet muteerbaar getoond, anders te kiezen default leeg
- groepering kan als groupby ook optioneel worden meegegeven
@@ -21,8 +20,6 @@
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/srtgroepselector.inc" -->
<!-- #include file="../Shared/srtdeelselector.inc" -->
<%
FCLTHeader.Requires({ plugins:["suggest", "jQuery"],
@@ -32,10 +29,9 @@ FCLTHeader.Requires({ plugins:["suggest", "jQuery"],
/***** Get webform parameters *****/
var autosearch = getQParamInt("autosearch", 0) == 1;
var groep = getQParam("groep", ""); // Categorie/Groep
if (groep == -1) groep = "";
var bgtdisc_key = getQParamInt("dis_key"); // Discipline initialisatie
var srtgroep = getQParamInt("srtgroep", -1); // Groep
var bgtdisc_key = getQParamInt("dis_key"); // Project
var bgtproj_key = getQParamInt("bgtproj_key", -1); // Deelproject
var groupby = getQParamInt("groupby", -1); // Groepering
/*if (bgtdisc_key <= 0) // Als er maar eentje is selecteer die automatisch
@@ -91,44 +87,42 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
<tr>
<td class="searchkolom1"><!-- start column 1 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
<!-- Object -->
<tr class="primsearch">
<td class="label"><label for="search"><%=L("lcl_search")%>:</label></td>
<td><input type="text" class="fldseaerch" name="search" value=""></td>
</tr>
<%
// Soort groep
FCLTsrtgroepselector("srtgroep",
"sgSrtgroep",
{ label: L("bgt_srtgroep_omschrijving"),
srtgroep_key: srtgroep,
autfunction: autfunctionBGTUSE,
trclass: "primsearch noxd",
whenEmpty: L("lcl_search_generic")
});
var sql = "SELECT bgt_project_key, bgt_project_code||' '||bgt_project_omschrijving "
+ " FROM bgt_project"
+ " WHERE ins_discipline_key = "+ bgtdisc_key;
FCLTselector("bgtproj_key",
sql,
{ label: L("bgt_project"),
xdisable: bgtproj_key > -1, // dan komt de waarde niet door, jammer
xreadonly: bgtproj_key > -1, // dan komt de waarde niet door, jammer
multi: true,
emptyOption: L("lcl_all"),
initKey: bgtproj_key
}
);
sql = "SELECT "
+ " 1, " + safe.qL("lcl_fin_invoices") + ", 6 FROM DUAL"
+ " UNION SELECT 2, " + safe.qL("lcl_orders") + ", 5 FROM DUAL"
+ " UNION SELECT 3, " + safe.qL("prs_kostensoort") + ", 4 FROM DUAL"
+ " UNION SELECT 4, " + safe.qL("prs_kostensoortgrp") + ", 3 FROM DUAL"
+ " UNION SELECT 5, " + safe.qL("bgt_kostenrubriek") + ", 2 FROM DUAL"
+ " UNION SELECT 6, " + safe.qL("bgt_project") + ", 1 FROM DUAL"
+ " ORDER BY 3";
FCLTselector("groupby",
sql,
{ label: L("lcl_bgt_group"),
xreadonly: groupby > -1,
initKey: (groupby == -1 ? 3 : groupby)
}
);
%>
</table>
</td><!-- end column 1 -->
<!-- Second column -->
<td valign=top>
<table><!-- x rijen, 2 kolommen: label + veld -->
<% sql = "SELECT 1, " + safe.qL("bgt_srtgroep_omschrijving") + ", 1 FROM DUAL"
+ " UNION SELECT 2, " + safe.qL("bgt_kostenrubriek_oms") + ", 2 FROM DUAL"
+ " UNION SELECT 3, " + safe.qL("bgt_srtgroep_omschrijving") + ", 3 FROM DUAL"
+ " UNION SELECT 4, " + safe.qL("prs_kostensoort_opmerking") + ", 4 FROM DUAL"
+ " UNION SELECT 5, " + safe.qL("bgt_opdrachten") + ", 5 FROM DUAL"
+ " UNION SELECT 6, " + safe.qL("bgt_facturen") + ", 6 FROM DUAL";
FCLTselector("groupby",
sql,
{ label: L("lcl_mjb_group")
});
%> </table>
</td><!-- end column 2-->
</tr>

View File

@@ -19,7 +19,7 @@
- totaalregel moet totaaltelling geven
- groepering is leuk stukje
- groepering is leuk stukje, pas op dat je bedragen niet dubbel meetelt
*/ %>
<!-- #include file="../Shared/common.inc" -->
@@ -42,9 +42,24 @@ var excel = (outputmode == 2 || outputmode == 6);
var bgtdisc_key = getQParamInt("dis_key"); // bgt discipline is echt vereist
var bgt_srtgroep_key = getQParamInt("srtgroep_key", -1);
var bgtproj_key_arr = getQParamIntArray("bgtproj_key", []);
if (bgtdisc_key > 0)
lcl.set_dialect(bgtdisc_key, "INS_TAB_DISCIPLINE_KEY");
lcl.set_dialect(bgtdisc_key, "INS_TAB_DISCIPLINE_KEY"); // TBD. Nodig?
var groupby = getQParamInt("groupby");
// -1. niks
// 1. facturen
// 2. opdrachten
// 3. kostensoort
// 4. kostensoortgrp
// 5. kostenrubriek
// 6. project
//
// IK DENK DAT IK HIER TOCH OOK NOG DE PLATTERE GROEPERINGEN WIL: alle opdrachten met SUM(facturen) en zelfs alle facturen
// Dan ben je eigenlijk in 1 scherm klaar!
// Kun je dan zelf een individuele opdracht/factuur in een popup editen? Hoe voeg je dan leuk toe?
// Ik sluit een bgt-variant van mld_opdr.asp resp fin_factuur.asp niet geheel uit. Wel met de bestaande _save.asp's
var params = { };
var transitParam = buildTransitParam([]);
@@ -54,81 +69,301 @@ var transitParam = buildTransitParam([]);
<%
FCLTHeader.Generate({ outputmode: outputmode });
if (outputmode == 0) {
%>
<script type="text/javascript">
function naarbudgetmutaties(ks_key, deze)
{
var url = "appl/bgt/bgt_mutaties.asp?ks_key=" + ks_key ; // todo
FcltMgr.openDetail(url, $(deze).text());
}
function naaropdrachten(ks_key, deze)
{
// zoiets. Of naar opdr_list.asp waar dan kostensoort_key ook een nieuwe optie is?
var url = "appl/mld/opdr_search.asp?urole=bgt&ks_key="+ks_key; //todo
FcltMgr.openDetail(url, $(deze).text());
}
function naarfacturen(ks_key, deze)
{
// zoiets. Of naar fin_search.asp ?
var url = "appl/fin/fin_list.asp?urole=bgt&ks_key="+ks_key; //todo
FcltMgr.openDetail(url, $(deze).text());
}
<%
}
%>
</script>
</head>
<body id="listbody">
<%
// zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig?
var sql = "SELECT "
+ " kr.bgt_kostenrubriek_oms rubriek, "
+ " ksg.prs_kostensoortgrp_oms groep, "
+ " ks.prs_kostensoort_opmerking onderdeel, "
+ " bud.bgt_budget_limiet budget, "
+ " SUM (o.mld_opdr_kosten) gecontracteerd, "
+ " bud.bgt_budget_limiet - SUM (o.mld_opdr_kosten) tecontracteren, "
+ " SUM (f.fin_factuur_totaal) gefactureerd, "
+ " SUM (o.mld_opdr_kosten) - SUM (f.fin_factuur_totaal) tefactureren, "
+ " bgt_budget_key,"
+ " bgt_srtgroep_omschrijving deelproject,"
+ " ins_discipline_omschrijving project"
+ " FROM mld_opdr o, "
+ " prs_kostensoort ks, "
+ " prs_kostensoortgrp ksg, "
+ " bgt_kostenrubriek kr, "
+ " bgt_budget bud, "
+ " bgt_srtgroep sg, "
+ " ins_tab_discipline id, "
+ " fin_factuur f "
+ " WHERE o.prs_kostensoort_key(+) = ks.prs_kostensoort_key "
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key "
+ " AND ks.prs_kostensoort_key(+) = bud.prs_kostensoort_key "
+ " AND sg.bgt_srtgroep_key = kr.bgt_srtgroep_key "
+ " AND ksg.prs_kostensoortgrp_key(+) = ks.prs_kostensoortgrp_key "
+ " AND f.mld_opdr_key(+) = o.mld_opdr_key "
+ " AND id.ins_discipline_key = sg.ins_discipline_key "
+ " AND sg.ins_discipline_key = " + bgtdisc_key
+ " GROUP BY bgt_kostenrubriek_oms, "
+ " prs_kostensoortgrp_oms, "
+ " prs_kostensoort_opmerking, "
+ " bgt_budget_limiet , "
+ " bgt_budget_key , "
+ " bgt_srtgroep_omschrijving , "
+ " ins_discipline_omschrijving "
+ " ORDER BY kr.bgt_kostenrubriek_oms, "
+ " ksg.prs_kostensoortgrp_oms, "
+ " ks.prs_kostensoort_opmerking ";
// zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig?
if (groupby == 1) // facturen
{
var sql ="SELECT"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " ks.prs_kostensoort_opmerking onderdeel,"
// + " bud.bgt_budget_bedrag budget,"
+ " b.prs_bedrijf_naam uitvoerder,"
+ " o.mld_opdr_id opdrachtnr,"
//+ " o.mld_opdr_kosten gecontracteerd,"
// + " bud.bgt_budget_bedrag" + " - SUM (COALESCE(o.mld_opdr_kosten,0)) tecontracteren,"
+ " f.fin_factuur_nr factuur,"
+ " f.fin_factuur_datum factuurdatum,"
+ " f.fin_factuur_totaal gefactureerd,"
+ " bgt_project_omschrijving deelproject,"
+ " ins_discipline_omschrijving project"
+ " FROM mld_opdr o,"
+ " prs_kostensoort ks,"
+ " prs_bedrijf b,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ " fin_factuur f"
+ " WHERE o.prs_kostensoort_key(+) = ks.prs_kostensoort_key"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key(+) = bud.prs_kostensoort_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND ksg.prs_kostensoortgrp_key(+) = ks.prs_kostensoortgrp_key"
+ " 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"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql += " ORDER BY "
+ "bgt_project_omschrijving"
+ ",kr.bgt_kostenrubriek_oms"
+ ",ksg.prs_kostensoortgrp_oms"
+ ",ks.prs_kostensoort_opmerking"
+ ",b.prs_bedrijf_naam"
+ ",f.fin_factuur_datum";
}
else if (groupby ==2) // opdrachten
{
var sql ="SELECT"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " ks.prs_kostensoort_opmerking onderdeel,"
// + " bud.bgt_budget_bedrag budget,"
+ " b.prs_bedrijf_naam uitvoerder,"
+ " o.mld_opdr_id opdrachtnr,"
+ " o.mld_opdr_datumbegin opdrachtdatum,"
+ " o.mld_opdr_kosten gecontracteerd,"
// + " bud.bgt_budget_bedrag" + " - SUM (COALESCE(o.mld_opdr_kosten,0)) tecontracteren,"
+ " SUM (f.fin_factuur_totaal) gefactureerd,"
+ " COALESCE(o.mld_opdr_kosten,0) - SUM (COALESCE(f.fin_factuur_totaal,0)) tefactureren,"
+ " bgt_project_omschrijving deelproject,"
+ " ins_discipline_omschrijving project"
+ " FROM mld_opdr o,"
+ " prs_kostensoort ks,"
+ " prs_bedrijf b,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ " fin_factuur f"
+ " WHERE o.prs_kostensoort_key(+) = ks.prs_kostensoort_key"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key(+) = bud.prs_kostensoort_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND ksg.prs_kostensoortgrp_key(+) = ks.prs_kostensoortgrp_key"
+ " 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"
+ (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 "
+ " kr.bgt_kostenrubriek_oms,"
+ " ksg.prs_kostensoortgrp_oms,"
+ " ks.prs_kostensoort_opmerking,"
+ " bgt_budget_bedrag,"
+ " prs_bedrijf_naam,"
+ " mld_opdr_kosten,"
+ " mld_opdr_id,"
+ " mld_opdr_datumbegin,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
sql += " ORDER BY "
+ "bgt_project_omschrijving"
+ ",kr.bgt_kostenrubriek_oms"
+ ",ksg.prs_kostensoortgrp_oms"
+ ",ks.prs_kostensoort_opmerking";
}
else // de rest
{
var sql ="SELECT"
+ (groupby >= 6 ? "" : " kr.bgt_kostenrubriek_oms rubriek,")
+ (groupby >= 5 ? "" : " ksg.prs_kostensoortgrp_oms groep,")
+ (groupby >= 4 ? "" : " ks.prs_kostensoort_opmerking onderdeel,")
+ (groupby >= 4 ? " SUM(bud.bgt_budget_bedrag)" : " bud.bgt_budget_bedrag") + " budget," // TODO: DIT IS ONJUIST bij hogere groeperingen
+ " SUM (o.mld_opdr_kosten) gecontracteerd,"
+ (groupby >= 4 ? " SUM(bud.bgt_budget_bedrag)" : " bud.bgt_budget_bedrag") + " - SUM (COALESCE(o.mld_opdr_kosten,0)) tecontracteren,"
+ " SUM (f.fin_factuur_totaal) gefactureerd,"
+ " SUM (COALESCE(o.mld_opdr_kosten,0)) - SUM (COALESCE(f.fin_factuur_totaal,0)) tefactureren,"
+ " bgt_project_omschrijving deelproject,"
+ " ins_discipline_omschrijving project"
+ " FROM mld_opdr o,"
+ " prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ " fin_factuur f"
+ " WHERE o.prs_kostensoort_key(+) = ks.prs_kostensoort_key"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key(+) = bud.prs_kostensoort_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND ksg.prs_kostensoortgrp_key(+) = ks.prs_kostensoortgrp_key"
+ " AND f.mld_opdr_key(+) = o.mld_opdr_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ (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 "
+ (groupby >= 6 ? "" : " kr.bgt_kostenrubriek_oms,")
+ (groupby >= 5 ? "" : " ksg.prs_kostensoortgrp_oms,")
+ (groupby >= 4 ? "" : " ks.prs_kostensoort_opmerking,")
+ (groupby >= 4 ? "" : " bgt_budget_bedrag,")
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
sql += " ORDER BY "
+ (groupby >= 7 ? "" : "bgt_project_omschrijving")
+ (groupby >= 6 ? "" : ",kr.bgt_kostenrubriek_oms")
+ (groupby >= 5 ? "" : ",ksg.prs_kostensoortgrp_oms")
+ (groupby >= 4 ? "" : ",ks.prs_kostensoort_opmerking");
}
var buttons = [];
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
// KOLOM BUDGET
function budgetShow(oRs)
{
var v = safe.curr(Math.round(oRs("budget").Value), true);
v = ("<span class='details"+ (v<0 ? " negative" : "") +"' onclick='naarbudgetmutaties({0}, this)'>" + v +"</span>").format(41); // todo ks_key uit query
return v;
}
function budgetAmount(oRs)
{
var v = Math.round(oRs("budget").Value);
return v;
}
var rst = new ResultsetTable({ keyColumn: "bgt_budget_key", //fnkeyFunction,
// KOLOM GECONTRACTEERD
function ordersShow(oRs)
{
var v = safe.curr(Math.round(oRs("gecontracteerd").Value), true);
if (true) v = ("<span class='details' onclick='naaropdrachten({0}, this)'>" + v +"</span>").format(41); // todo ks_key uit query
return v;
}
function ordersAmount(oRs)
{
var v = Math.round(oRs("gecontracteerd").Value);
return v;
}
// KOLOM TE CONTRACTEREN
function orderstogoShow(oRs)
{
var v = safe.curr(Math.round(oRs("tecontracteren").Value), true);
if (v < 0) v = "<span class='negative'>" + v +"</span>";
// en een onclick met params afh. van groupby
if (v != 0) return v;
}
function orderstogoAmount(oRs)
{
var v = Math.round(oRs("tecontracteren").Value);
return v;
}
// KOLOM GEFACTUREERD
function invoicesShow(oRs)
{
var v = safe.curr(Math.round(oRs("gefactureerd").Value), true);
if (true) v = ("<span class='details' onclick='naarfacturen({0}, this)'>" + v +"</span>").format(41); // todo ks_key uit query
return v;
}
function invoicesAmount(oRs)
{
var v = Math.round(oRs("gefactureerd").Value);
return v;
}
// KOLOM TE FACTUREREN
function invoicestogoShow(oRs)
{
var v = safe.curr(Math.round(oRs("tefactureren").Value), true);
if (v < 0) v = "<span class='negative'>" + v +"</span>";
// en een onclick
if (v != 0) return v;
}
function invoicestogoAmount(oRs)
{
var v = Math.round(oRs("tefactureren").Value);
return v;
}
function totalShow(column, rowNum)
{
return safe.curr(column.totalsum, true);
}
var rst = new ResultsetTable({ //keyColumn: "bgt_budget_key", //fnkeyFunction,
sql: sql,
ID: "bgttable",
//rowData: fnrowData,
//rowClass: fnrowClass,
//suppressKeyRepeat: "deelproject",
//rowActionEnabler: fnrowActionEnabler,
//totalShow: true,
totalShow: totalShow,
//filterParams: params,
outputmode: outputmode,
title: L("bgt_totaaloverzicht"),
showAll: true,
buttons: buttons
});
// negatieve getallen .negative maken
rst.addColumn(new Column({caption: L("bgt_discipline_omschrijving"), content: "project", purpose: (bgtdisc_key>-1 ? PRINTING_ONLY : PRINT_AND_VIEW)}));
rst.addColumn(new Column({caption: L("bgt_srtgroep_omschrijving"), content: "deelproject", purpose: (bgt_srtgroep_key>-1 ? PRINTING_ONLY : PRINT_AND_VIEW)}));
rst.addColumn(new Column({caption: L("bgt_kostenrubriek_oms"), content: "rubriek"}));
rst.addColumn(new Column({caption: L("bgt_srtgroep_omschrijving"), content: "groep"}));
rst.addColumn(new Column({caption: L("prs_kostensoort_opmerking"), content: "onderdeel"}));
rst.addColumn(new Column({caption: L("bgt_budget_limiet"), content: "budget", datatype: "currency", total: true}));
rst.addColumn(new Column({caption: L("bgt_opdrachten"), content: "gecontracteerd", datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: "tecontracteren", datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("bgt_facturen"), content: "gefactureerd", datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: "tefactureren", datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("bgt_project"), content: "deelproject", purpose: (bgtproj_key_arr.length > 0 ? PRINTING_ONLY : PRINT_AND_VIEW)}));
if (groupby <= 5)
rst.addColumn(new Column({caption: L("bgt_kostenrubriek"), content: "rubriek"}));
if (groupby <= 4)
rst.addColumn(new Column({caption: L("prs_kostensoortgrp"), content: "groep"}));
if (groupby <= 3)
rst.addColumn(new Column({caption: L("prs_kostensoort"), content: "onderdeel"}));
if (groupby > 2) // denk ik
rst.addColumn(new Column({caption: L("bgt_budget_bedrag"), content: budgetShow, fnAmount: budgetAmount, datatype: "currency", total: true}));
if (groupby <= 2)
{
rst.addColumn(new Column({caption: L("lcl_ord_company_uit"), content: "uitvoerder"}));
}
if (groupby == 2)
{
rst.addColumn(new Column({caption: L("lcl_ord_order_num"), content: "opdrachtnr"}));
rst.addColumn(new Column({caption: L("lcl_orderdate"), content: "opdrachtdatum"}));
}
if (groupby == 1)
{
rst.addColumn(new Column({caption: L("lcl_fin_invoice"), content: "factuur"}));
rst.addColumn(new Column({caption: L("lcl_fin_findate"), content: "factuurdatum"}));
}
if (groupby != 1)
rst.addColumn(new Column({caption: L("bgt_opdrachten"), content: ordersShow, fnAmount: ordersAmount, datatype: "currency", total: true }));
if (groupby > 2) // denk ik
rst.addColumn(new Column({caption: L("bgt_opdrachtentogo"), content: orderstogoShow, fnAmount: orderstogoAmount, datatype: "currency", total: true }));
rst.addColumn(new Column({caption: L("bgt_facturen"), content: invoicesShow, fnAmount: invoicesAmount, datatype: "currency", total: true }));
if (groupby > 2) // denk ik
rst.addColumn(new Column({caption: L("bgt_facturentogo"), content: invoicestogoShow, fnAmount: invoicestogoAmount, datatype: "currency", total: true }));
var count = rst.processResultset();