FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization

svn path=/Website/branches/v2017.2/; revision=36039
This commit is contained in:
Erik Groener
2017-11-17 13:09:04 +00:00
parent 72996fabbf
commit 62a2d0d8f3
13 changed files with 364 additions and 147 deletions

View File

@@ -85,7 +85,7 @@ function model_bgt_budget()
}, },
"amountoriginal": { "amountoriginal": {
"dbs": "bgt_budget_bedrag_origineel", "dbs": "bgt_budget_bedrag_origineel",
"sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, NULL))", "sql": "(BGT.getBudgetOpDatum(bgt_budget.bgt_budget_key, 0, NULL))",
"label": L("bgt_budget_origineel"), "label": L("bgt_budget_origineel"),
"typ": "float", "typ": "float",
"iscurrency": true, "iscurrency": true,
@@ -93,7 +93,7 @@ function model_bgt_budget()
}, },
"amountmutation": { "amountmutation": {
"dbs": "bgt_budget_bedrag_mutatie", "dbs": "bgt_budget_bedrag_mutatie",
"sql": "(BGT.getBudgetMutaties(bgt_budget.bgt_budget_key, NULL, NULL))", "sql": "(BGT.getBudgetMutaties(bgt_budget.bgt_budget_key, 0, NULL, NULL))",
"label": L("bgt_budget_mutaties"), "label": L("bgt_budget_mutaties"),
"typ": "float", "typ": "float",
"iscurrency": true, "iscurrency": true,

View File

@@ -79,7 +79,8 @@ function _model_bgt_discipline()
"dbs": "ins_discipline_btw", "dbs": "ins_discipline_btw",
"label": L("bgt_discipline_btw"), "label": L("bgt_discipline_btw"),
"typ": "check", "typ": "check",
"default": "false" "default": "false",
"hidden_fld": true
} }
}; };

View File

@@ -49,6 +49,13 @@ function model_fin_factuur()
"foreign": bgt_budgetproject_foreign(), "foreign": bgt_budgetproject_foreign(),
"showtransit": true "showtransit": true
}, },
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"required": false
},
"company": { "company": {
"dbs": "mld_opdr.mld_uitvoerende_keys", "dbs": "mld_opdr.mld_uitvoerende_keys",
"label": L("lcl_ord_company"), "label": L("lcl_ord_company"),
@@ -65,14 +72,6 @@ function model_fin_factuur()
"showtransit": true, "showtransit": true,
"clone": false "clone": false
}, },
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"required": false,
"hidden_fld": true
},
"additional": { "additional": {
"dbs": "mld_opdr.mld_opdr_meerwerk", "dbs": "mld_opdr.mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"), "label": L("lcl_mld_opdr_meerwerk"),
@@ -94,6 +93,13 @@ function model_fin_factuur()
"typ": "varchar", "typ": "varchar",
"hidden_fld": true "hidden_fld": true
}, },
"account": {
"dbs": "mld_opdr.prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": bgt_account_foreign(),
"readonly": true
},
"invoice": { "invoice": {
"dbs": "fin_factuur_nr", "dbs": "fin_factuur_nr",
"label": L("lcl_fin_invoice_number"), "label": L("lcl_fin_invoice_number"),
@@ -209,13 +215,33 @@ function model_fin_factuur()
</script> </script>
<% <%
// Bij klonen: id=-1, invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten. if (!obj.id && obj.invoice)
if (obj.invoice)
{ {
// Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
var invoice = obj.invoice; var invoice = obj.invoice;
var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")-1) : invoice); var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")-1) : invoice);
var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0); var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0);
cur_seq = (cur_seq ? cur_seq : 0); cur_seq = parseInt(cur_seq ? cur_seq : 0);
var sql = "SELECT MAX(CASE WHEN INSTR(f.fin_factuur_nr, '/') > 0"
+ " THEN TO_NUMBER(SUBSTR(f.fin_factuur_nr, INSTR(f.fin_factuur_nr, '/')+1))"
+ " ELSE 0"
+ " END) max_seq"
+ " FROM bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , fin_factuur f"
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = f.mld_opdr_key"
+ " AND r.bgt_project_key = " + obj.budgetproject.id
+ " AND f.fin_factuur_nr LIKE " + safe.quoted_sql(cur_inv + "%");
var oRs = Oracle.Execute(sql);
cur_seq = oRs("max_seq").Value;
oRs.Close();
var new_inv = cur_inv + "/" + (cur_seq + 1); var new_inv = cur_inv + "/" + (cur_seq + 1);
obj.invoice = new_inv; obj.invoice = new_inv;
} }
@@ -223,10 +249,12 @@ function model_fin_factuur()
{ {
var mld_opdr_key = getQParamInt("opdrachtcommon", -1); var mld_opdr_key = getQParamInt("opdrachtcommon", -1);
if (obj.id == -1 && mld_opdr_key > -1) if (obj.id == -1 && mld_opdr_key > -1)
{ { // Nieuwe factuur bij bekende opdracht.
var sql = "SELECT p.ins_discipline_key" var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key" + " , p.bgt_project_key"
+ " , o.mld_uitvoerende_keys" + " , o.mld_uitvoerende_keys"
+ " , s.prs_kostensoort_key"
+ " , s.prs_kostensoort_oms"
+ " FROM mld_opdr o" + " FROM mld_opdr o"
+ " , prs_kostensoort s" + " , prs_kostensoort s"
+ " , prs_kostensoortgrp g" + " , prs_kostensoortgrp g"
@@ -241,14 +269,19 @@ function model_fin_factuur()
var v_order = mld_opdr_key; var v_order = mld_opdr_key;
var v_discipline = oRs("ins_discipline_key").Value; var v_discipline = oRs("ins_discipline_key").Value;
var v_project = oRs("bgt_project_key").Value; var v_project = oRs("bgt_project_key").Value;
var v_soort = oRs("prs_kostensoort_key").Value;
var v_srtoms = oRs("prs_kostensoort_oms").Value;
var v_company = oRs("mld_uitvoerende_keys").Value; var v_company = oRs("mld_uitvoerende_keys").Value;
oRs.Close(); oRs.Close();
// Er is geen QParam voor costtype gezet, dus deze zelf vullen.
obj.costtype = {id: v_soort, name: v_srtoms};
} }
else else
{ {
var v_order = null; var v_order = null;
var v_discipline = (obj.budgetdiscipline ? obj.budgetdiscipline.id : null); var v_discipline = (obj.budgetdiscipline ? obj.budgetdiscipline.id : null);
var v_project = (obj.budgetproject ? obj.budgetproject.id : null); var v_project = (obj.budgetproject ? obj.budgetproject.id : null);
var v_soort = (obj.costtype ? obj.costtype.id : null);
var v_company = (obj.company ? obj.company.id : null); var v_company = (obj.company ? obj.company.id : null);
} }
%> %>
@@ -257,6 +290,7 @@ function model_fin_factuur()
<% if (v_order) { %> var mldopdracht = "<%=v_order%>"; <% } %> <% if (v_order) { %> var mldopdracht = "<%=v_order%>"; <% } %>
<% if (v_discipline) { %> var budgetdiscipline = "<%=v_discipline%>"; <% } %> <% if (v_discipline) { %> var budgetdiscipline = "<%=v_discipline%>"; <% } %>
<% if (v_project) { %> var budgetproject = "<%=v_project%>"; <% } %> <% if (v_project) { %> var budgetproject = "<%=v_project%>"; <% } %>
<% if (v_soort) { %> var costtype = "<%=v_soort%>"; <% } %>
<% if (v_company) { %> var company = "<%=v_company%>"; <% } %> <% if (v_company) { %> var company = "<%=v_company%>"; <% } %>
</script> </script>
<% <%
@@ -268,32 +302,53 @@ function model_fin_factuur()
this.hook_pre_post = function(params, obj) this.hook_pre_post = function(params, obj)
{ {
// Bij toevoegen van een factuur wordt prs_kostensoort_key automatisch gevuld met die van mld_opdr. // Bij toevoegen van een factuur moet prs_kostensoort_key nog gevuld worden.
/* // Gebruik daarvoor die van mld_opdr.
*/ setKostensoort(obj);
__Log(obj); // Is het factuurnummer/volgnummer uniek binnen het project?
// Als er niet genoeg budget op het kostensoort van de factuur/contract is moet er uit budget rubriek Reserve checkUniekFactuurnummer(-1, obj.budgetproject, obj.invoice);
// overgeboekt worden naar het budget kostensoort.
var sql = "SELECT NVL(MAX(b.bgt_budget_bedrag) - SUM(f.fin_factuur_totaal), 0) budget_exc_over"
+ " , NVL(MAX(b.bgt_budget_btwbedrag) - SUM(f.fin_factuur_totaal_btw), 0) budget_btw_over"
+ " FROM bgt_budget b"
+ " , fin_factuur f"
+ " WHERE b.prs_kostensoort_key = f.prs_kostensoort_key"
+ " AND f.prs_kostensoort_key = " + obj.costtype;
var oRs = Oracle.Execute(sql);
var budget_exc_over = oRs("budget_exc_over").Value;
var budget_btw_over = oRs("budget_btw_over").Value;
oRs.Close();
// if (budget_exc_over < 0)
//
} }
this.hook_pre_put = function(params, obj, key) this.hook_pre_put = function(params, obj, key)
{ {
// Bij wijzigen van factuur wordt prs_kostensoort_key automatisch overgenomen van mld_opdr. // Bij wijzigen van factuur moet prs_kostensoort_key nog gevuld worden.
// Als er niet genoeg budget op het kostensoort van de factuur/contract is moet er uit budget rubriek Reserve // Gebruik daarvoor die van mld_opdr.
// overgeboekt worden naar het budget kostensoort. setKostensoort(obj);
// Is de combinatie factuurnummer/volgnummer nog steeds uniek?
checkUniekFactuurnummer(key, obj.budgetproject, obj.invoice);
}
function setKostensoort(obj)
{
var sql = "SELECT o.prs_kostensoort_key"
+ " FROM mld_opdr o"
+ " WHERE mld_opdr_key = " + obj.order;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
obj.costtype = (!oRs.eof ? oRs("prs_kostensoort_key").Value : NULL);
oRs.Close();
}
function checkUniekFactuurnummer(p_factuur_key, p_project_key, p_factuurnr)
{
var sql = "SELECT count(*) aantal"
+ " FROM bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , fin_factuur f"
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = f.mld_opdr_key"
+ " AND r.bgt_project_key = " + p_project_key
+ " AND f.fin_factuur_nr = " + safe.quoted_sql(p_factuurnr)
+ (p_factuur_key != -1 ? " AND f.fin_factuur_key <> " + p_factuur_key : "");
var oRs = Oracle.Execute(sql);
var uniek_factuurnr = (oRs("aantal").Value == 0);
oRs.Close();
if (!uniek_factuurnr)
abort_with_warning("Factuurnummer {0} bestaat al in dit project.".format(p_factuurnr));
} }

View File

@@ -247,15 +247,20 @@ function model_mld_opdr()
this.hook_pre_post = function(params, obj) this.hook_pre_post = function(params, obj)
{ {
var parent_key = getQParamInt("id", -1); var parent_key = getQParamInt("id", -1);
if (!obj.sequence && obj.sequence!=0)
abort_with_warning("Vul een volgnummer voor het contract in.");
if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren. if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren.
{ {
// Vul het contractnummer van het oorspronkelijke contract in.
var sql = "SELECT o.mld_opdr_ordernr" var sql = "SELECT o.mld_opdr_ordernr"
+ " FROM mld_opdr o" + " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + parent_key; + " WHERE o.mld_opdr_key = " + parent_key;
var oRs = Oracle.Execute(sql); var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("mld_opdr_ordernr").Value; obj.ordernr = oRs("mld_opdr_ordernr").Value;
oRs.Close(); oRs.Close();
// Kopie contract. Volgnummer moet uniek zijn binnen dit contractnummer.
checkUniekContractnummer(-1, obj.budgetproject.id, obj.ordernr, obj.sequence);
} }
else else
{ {
@@ -275,9 +280,31 @@ function model_mld_opdr()
var oRs = Oracle.Execute(sql); var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("new_ordernr").Value; obj.ordernr = oRs("new_ordernr").Value;
oRs.Close(); oRs.Close();
// Nieuw contract, dus volgnummer is altijd uniek hierbinnen.
} }
} }
this.hook_pre_put = function(params, obj, key)
{
// Is de combinatie projectnummer/volgnummer nog steeds uniek?
var sql = "SELECT p.bgt_project_key"
+ " , o.mld_opdr_ordernr"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_opdr_key = " + key;
var oRs = Oracle.Execute(sql);
var v_ordernr = oRs("mld_opdr_ordernr").Value;
var v_project_key = oRs("bgt_project_key").Value;
oRs.Close();
checkUniekContractnummer(key, v_project_key, v_ordernr, obj.sequence);
}
var gparams = { var gparams = {
GET: { GET: {
@@ -296,6 +323,29 @@ function model_mld_opdr()
} }
}; };
function checkUniekContractnummer(p_contract_key, p_project_key, p_contractnr, p_volgnr)
{
var sql = "SELECT count(*) aantal"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE p.bgt_project_key = r.bgt_project_key"
+ " AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND p.bgt_project_key = " + p_project_key
+ " AND o.mld_opdr_ordernr = " + safe.quoted_sql(p_contractnr)
+ " AND o.mld_opdr_bedrijfopdr_volgnr = " + p_volgnr
+ (p_contract_key != -1 ? " AND o.mld_opdr_key <> " + p_contract_key : "");
var oRs = Oracle.Execute(sql);
var uniek_contractnr = (oRs("aantal").Value == 0);
oRs.Close();
if (!uniek_contractnr)
abort_with_warning("Contractnummer {0}.{1} bestaat al in dit project.".format(p_contractnr, p_volgnr));
}
this.REST_GET = generic_REST_GET(this, gparams); this.REST_GET = generic_REST_GET(this, gparams);
this.REST_POST = generic_REST_POST(this); this.REST_POST = generic_REST_POST(this);

View File

@@ -62,7 +62,7 @@ function model_prs_kostensoort()
}, },
"name": { "name": {
"dbs": "prs_kostensoort_oms", "dbs": "prs_kostensoort_oms",
"label": L("prs_kostensoort_oms"), "label": (S("bgt_enabled") ? L("prs_kostensoort_opmerking") : L("prs_kostensoort_oms")),
"typ": "varchar", "typ": "varchar",
"required": true, /* proberen */ "required": true, /* proberen */
"translate": true, "translate": true,
@@ -71,7 +71,7 @@ function model_prs_kostensoort()
}, },
"remark": { "remark": {
"dbs": "prs_kostensoort_opmerking", "dbs": "prs_kostensoort_opmerking",
"label": L("prs_kostensoort_opmerking"), "label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_opmerking")),
"typ": "varchar", "typ": "varchar",
"required": (S("bgt_enabled") ? false : true), "required": (S("bgt_enabled") ? false : true),
"filter": "like" "filter": "like"
@@ -146,6 +146,12 @@ function model_prs_kostensoort()
"required": true, "required": true,
"foreign": bgt_budgetcostcategory_foreign(), "foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true "showtransit": true
},
"costcategorycode": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_code",
"label": L("bgt_kostenrubriek_code"),
"typ": "varchar",
"readonly": true
} }
}; };
this.fields = object_merge({}, fields_ext, fields_main); this.fields = object_merge({}, fields_ext, fields_main);
@@ -163,6 +169,11 @@ function model_prs_kostensoort()
}; };
// this.print = { xmlnode: "budget", where: "kostensoort"}; // this.print = { xmlnode: "budget", where: "kostensoort"};
this.hook_pre_show = function (obj, fld)
{
delete this.fields.costcategorycode;
}
this.hook_pre_edit = function (obj, fld) this.hook_pre_edit = function (obj, fld)
{ {
if ((obj.id > -1) || (obj.costtypegroup && obj.costtypegroup.id > -1)) if ((obj.id > -1) || (obj.costtypegroup && obj.costtypegroup.id > -1))
@@ -173,6 +184,8 @@ function model_prs_kostensoort()
this.fields.budgetproject.readonly = true; this.fields.budgetproject.readonly = true;
this.fields.budgetcostcategory.hidden_fld = false; this.fields.budgetcostcategory.hidden_fld = false;
this.fields.budgetcostcategory.readonly = true; this.fields.budgetcostcategory.readonly = true;
delete this.fields.costcategorycode;
} }
if (obj.costtypegroup && obj.costtypegroup.id != -1) if (obj.costtypegroup && obj.costtypegroup.id != -1)

View File

@@ -69,6 +69,7 @@ function init_budget()
{ req_info: "initsearch", { req_info: "initsearch",
niveau: init_niveau, niveau: init_niveau,
parent_key: (v_budgetproject ? v_budgetproject : -1), parent_key: (v_budgetproject ? v_budgetproject : -1),
child_key: v_costtype,
init_key: init_key init_key: init_key
}, },
re_init_plaats); re_init_plaats);
@@ -85,7 +86,7 @@ function re_init_soort(data)
function re_init_plaats(data) function re_init_plaats(data)
{ {
var init_key = ($("#account").val() != -1 ? $("#account").val() : -1); var init_key = ($("#account").val() != -1 ? $("#account").val() : data.parents.K);
var project_key = $("#budgetproject").val() || data.parents.P; var project_key = $("#budgetproject").val() || data.parents.P;
fill_plaatsselector("KP", project_key, init_key); fill_plaatsselector("KP", project_key, init_key);
} }
@@ -132,7 +133,16 @@ function change_groep()
} }
function change_soort() function change_soort()
{ {
var btw_perc = parseFloat($("#costtype option:selected").attr("perc_btw").replace(/,/g,".")); var project_key = $("#budgetproject").val();
var kplaats_key = -1;
var btw_perc = 0;
if ($("#costtype").val() != -1 )
{
kplaats_key = $("#costtype option:selected").attr("kpn_key");
btw_perc = parseFloat($("#costtype option:selected").attr("perc_btw").replace(/,/g,"."));
}
fill_plaatsselector("KP", project_key, kplaats_key);
if ($("#amount").val() && btw_perc != kostensoort_btw) if ($("#amount").val() && btw_perc != kostensoort_btw)
{ {
FcltMgr.confirm(L("bgt_confirm_recalc_vat"), function() { change_amount(); } ); FcltMgr.confirm(L("bgt_confirm_recalc_vat"), function() { change_amount(); } );
@@ -232,7 +242,7 @@ function fill_plaatsselector(niveau, parent_key, init_key)
{ req_info: "plaatssearch", { req_info: "plaatssearch",
niveau: niveau, niveau: niveau,
parent_key: parent_key, parent_key: parent_key,
init_key: init_key //(init_key ? init_key : -1); init_key: (init_key ? init_key : -1)
}, },
process_info); process_info);
} }
@@ -274,12 +284,14 @@ function process_info(data)
var opt = data.lov[i]; var opt = data.lov[i];
if (data.niveau == "KP") if (data.niveau == "KP")
{ {
add_data = ' par_key="' + opt.atr.par_key + '"'; add_data = ' par_key="' + opt.atr.par_key + '"'
+ ' kpn_key="' + opt.atr.kpn_key + '"';
} }
else else
{ {
add_data = ' incl_btw="' + opt.atr.btw_inc + '"' add_data = ' incl_btw="' + opt.atr.btw_inc + '"'
+ ' perc_btw="' + opt.atr.btw_val + '"'; + ' perc_btw="' + opt.atr.btw_val + '"'
+ ' kpn_key="' + opt.atr.kpn_key + '"';
} }
new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>'; new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>';
if (opt.sel) if (opt.sel)

View File

@@ -206,7 +206,7 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
{ label: L("lcl_period_to"), { label: L("lcl_period_to"),
initEmpty: true initEmpty: true
}); });
CHECKBOXTR(L("lcl_fin_total_sum"), "fldbgtinclbtw", "bgt_inclbtw", false); CHECKBOXTR(L("lcl_fin_total_sum"), "fldbgtinclbtw", "bgt_inclbtw", true);
%> %>
</table> </table>
</td><!-- end column 2--> </td><!-- end column 2-->

View File

@@ -180,7 +180,7 @@ var transitParam = buildTransitParam([]);
+ " GROUP BY m2.bgt_budget_key_naar" + " GROUP BY m2.bgt_budget_key_naar"
+ ") mutatie" + ") mutatie"
+ " GROUP BY mutatie.bgt_budget_key" + " GROUP BY mutatie.bgt_budget_key"
+ " ) mut"; + " ) ";
// zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig? // zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig?
if (groupby == 1) // facturen if (groupby == 1) // facturen
@@ -313,163 +313,197 @@ var transitParam = buildTransitParam([]);
// Die worden afzonderlijk bijgevoegd (UNION) om wel het totaal te krijgen qua budget // Die worden afzonderlijk bijgevoegd (UNION) om wel het totaal te krijgen qua budget
// Eerst de budgetten direct bij kostensoort // Eerst de budgetten direct bij kostensoort
var sql1 = "SELECT ins_discipline_omschrijving project," var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject," + " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek," + " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_oms groep," + " kg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key," + " bd.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key," + " bd.bgt_kostenrubriek_key,"
+ " ks.prs_kostensoort_key," + " ks.prs_kostensoort_key,"
+ " ks.prs_kostensoort_oms onderdeel," + " ks.prs_kostensoort_oms onderdeel,"
+ " ks.prs_kostensoort_altcode rcode," + " ks.prs_kostensoort_altcode rcode,"
+ " ks.prs_kostensoort_altcode sortcode," + " ks.prs_kostensoort_altcode sortcode,"
+ " 0 budget_reserve," + " BGT.getBudgetOverschrijding(ks.prs_kostensoort_key, 0, NULL) budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel," + " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie" + " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM prs_kostensoort ks," + " FROM prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg," + " prs_kostensoortgrp kg,"
+ " bgt_kostenrubriek kr," + " bgt_kostenrubriek kr,"
+ " bgt_budget bud," + " bgt_budget bd,"
+ " bgt_project pr," + " bgt_project pr,"
+ " ins_tab_discipline id," + " ins_tab_discipline id,"
+ mutatie_sql + mutatie_sql + "mut"
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key" + " WHERE kg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key = bud.prs_kostensoort_key" + " AND ks.prs_kostensoort_key = bd.prs_kostensoort_key(+)"
+ " AND pr.bgt_project_key = kr.bgt_project_key" + " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key" + " AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key" + " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key" + " AND mut.bgt_budget_key(+) = bd.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "") + (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? "AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "") + (bgtrubr_key > 0 ? "AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "") + (bgtgrp_key > 0 ? " AND kg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key; + " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY ksg.prs_kostensoortgrp_oms," sql1 += " GROUP BY kg.prs_kostensoortgrp_oms,"
+ " ks.prs_kostensoort_key," + " ks.prs_kostensoort_key,"
+ " ks.prs_kostensoort_opmerking ," + " ks.prs_kostensoort_opmerking ,"
+ " ks.prs_kostensoort_oms," + " ks.prs_kostensoort_oms,"
+ " ks.prs_kostensoort_altcode," + " ks.prs_kostensoort_altcode,"
+ " bud.prs_kostensoortgrp_key," + " bd.prs_kostensoortgrp_key,"
+ " kr.bgt_kostenrubriek_oms," + " kr.bgt_kostenrubriek_oms,"
+ " bud.bgt_kostenrubriek_key," + " bd.bgt_kostenrubriek_key,"
+ " pr.bgt_project_key," + " pr.bgt_project_key,"
+ " bgt_project_omschrijving ," + " pr.bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving"; + " id.ins_discipline_omschrijving";
} }
if (groupby == 4) // 4. kostensoortgrp if (groupby == 4) // 4. kostensoortgrp
{ {
var sql1 = "SELECT ins_discipline_omschrijving project," var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject," + " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek," + " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_altcode rcode," + " kg.prs_kostensoortgrp_altcode rcode,"
+ " ksg.prs_kostensoortgrp_altcode sortcode," + " kg.prs_kostensoortgrp_altcode sortcode,"
+ " ksg.prs_kostensoortgrp_oms groep," + " kg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key," + " bd.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key," + " bd.bgt_kostenrubriek_key,"
+ " 0 budget_reserve," + " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel," + " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie" + " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM prs_kostensoortgrp ksg," + " FROM prs_kostensoortgrp kg,"
+ " bgt_kostenrubriek kr," + " bgt_kostenrubriek kr,"
+ " bgt_budget bud," + " bgt_budget bd,"
+ " bgt_project pr," + " bgt_project pr,"
+ " ins_tab_discipline id," + " ins_tab_discipline id,"
+ mutatie_sql + " (SELECT ks_1.prs_kostensoortgrp_key"
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key" + " , SUM(BGT.getBudgetOverschrijding(ks_1.prs_kostensoort_key, 0, NULL)) reserve_bedrag"
+ " AND bud.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key" + " FROM prs_kostensoort ks_1"
+ " GROUP BY ks_1.prs_kostensoortgrp_key"
+ " ) vn,"
+ mutatie_sql + "mut"
+ " WHERE kg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND kg.prs_kostensoortgrp_key = bd.prs_kostensoortgrp_key(+)"
+ " AND kg.prs_kostensoortgrp_key = vn.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key" + " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key" + " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key" + " AND mut.bgt_budget_key(+) = bd.bgt_budget_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk + " AND bd.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "") + (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "") + (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key; + " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY kr.bgt_kostenrubriek_oms," sql1 += " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " ksg.prs_kostensoortgrp_altcode," + " kg.prs_kostensoortgrp_altcode,"
+ " ksg.prs_kostensoortgrp_oms," + " kg.prs_kostensoortgrp_oms,"
+ " bud.prs_kostensoortgrp_key," + " bd.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key," + " bd.bgt_kostenrubriek_key,"
+ " pr.bgt_project_key," + " pr.bgt_project_key,"
+ " bgt_project_omschrijving ," + " pr.bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving"; + " id.ins_discipline_omschrijving";
} }
if (groupby == 5) // 5. kostenrubriek if (groupby == 5) // 5. kostenrubriek
{ {
var sql1 = "SELECT ins_discipline_omschrijving project," var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject," + " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek," + " kr.bgt_kostenrubriek_oms rubriek,"
+ " kr.bgt_kostenrubriek_code rcode," + " kr.bgt_kostenrubriek_code rcode,"
+ " kr.bgt_kostenrubriek_code sortcode," + " kr.bgt_kostenrubriek_code sortcode,"
+ " kr.bgt_kostenrubriek_key," + " kr.bgt_kostenrubriek_key,"
+ " 0 budget_reserve," + " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel," + " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie" + " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM bgt_kostenrubriek kr," + " FROM bgt_kostenrubriek kr,"
+ " bgt_budget bud," + " bgt_budget bd,"
+ " bgt_project pr," + " bgt_project pr,"
+ " ins_tab_discipline id," + " ins_tab_discipline id,"
+ mutatie_sql + " (SELECT kg_1.bgt_kostenrubriek_key"
+ " WHERE bud.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key" + " , SUM(BGT.getBudgetOverschrijding(ks_1.prs_kostensoort_key, 0, NULL)) reserve_bedrag"
+ " FROM prs_kostensoort ks_1"
+ " , prs_kostensoortgrp kg_1"
+ " WHERE ks_1.prs_kostensoortgrp_key = kg_1.prs_kostensoortgrp_key"
+ " GROUP BY kg_1.bgt_kostenrubriek_key"
+ " ) vn,"
+ mutatie_sql + "mut"
+ " WHERE kr.bgt_kostenrubriek_key = bd.bgt_kostenrubriek_key(+)"
+ " AND kr.bgt_kostenrubriek_key = vn.bgt_kostenrubriek_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key" + " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key" + " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key" + " AND bd.bgt_budget_key = mut.bgt_budget_key(+)"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "") + (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key + " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY kr.bgt_kostenrubriek_oms," + " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " kr.bgt_kostenrubriek_key," + " kr.bgt_kostenrubriek_key,"
+ " bgt_project_omschrijving ," + " pr.bgt_project_omschrijving ,"
+ " bgt_kostenrubriek_code ," + " kr.bgt_kostenrubriek_code ,"
+ " ins_discipline_omschrijving"; + " id.ins_discipline_omschrijving";
if (bgt_inclbtw) if (bgt_inclbtw)
{ {
//BTW //BTW
sql1 += " UNION SELECT ins_discipline_omschrijving project," sql1 += " UNION SELECT id.ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject," + " pr.bgt_project_omschrijving deelproject,"
+ " 'BTW' rubriek," + " 'BTW' rubriek,"
+ " 'B' rcode," + " 'B' rcode,"
+ " '92' sortcode," + " '92' sortcode,"
+ " -3 bgt_kostenrubriek_key," + " -3 bgt_kostenrubriek_key,"
+ " 0 budget_reserve," + " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_btwbedrag, 0)) budget_actueel," + " SUM(COALESCE(bd.bgt_budget_btwbedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.btwbedrag_naar, 0) + COALESCE(mut.btwbedrag_van, 0)) budget_mutatie" + " SUM(COALESCE(mut.btwbedrag_naar, 0) + COALESCE(mut.btwbedrag_van, 0)) budget_mutatie"
+ " FROM bgt_budget bud," + " FROM bgt_budget bd,"
+ " bgt_project pr," + " bgt_project pr,"
+ " ins_tab_discipline id," + " ins_tab_discipline id,"
+ mutatie_sql + " (SELECT kr_1.bgt_project_key"
+ " WHERE pr.bgt_project_key = bud.bgt_project_key" + " , SUM(BGT.getBudgetOverschrijding(ks_1.prs_kostensoort_key, 1, NULL)) reserve_bedrag"
+ " FROM prs_kostensoort ks_1"
+ " , prs_kostensoortgrp kg_1"
+ " , bgt_kostenrubriek kr_1"
+ " WHERE ks_1.prs_kostensoortgrp_key = kg_1.prs_kostensoortgrp_key"
+ " AND kg_1.bgt_kostenrubriek_key = kr_1.bgt_kostenrubriek_key"
+ " GROUP BY kr_1.bgt_project_key"
+ " ) vn,"
+ mutatie_sql + "mut"
+ " WHERE pr.bgt_project_key = bd.bgt_project_key(+)"
+ " AND pr.bgt_project_key = vn.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key" + " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key" + " AND mut.bgt_budget_key(+) = bd.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "") + (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key + " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY bgt_project_omschrijving ," + " GROUP BY pr.bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving"; + " id.ins_discipline_omschrijving";
} }
} }
if (groupby == 6) // 6. deelproject if (groupby == 6) // 6. deelproject
{ {
var sql1 = "SELECT ins_discipline_omschrijving project," var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject," + " pr.bgt_project_omschrijving deelproject,"
+ " pr.bgt_project_key," + " pr.bgt_project_key,"
+ " 0 budget_reserve," + " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)" + " SUM(COALESCE(bd.bgt_budget_bedrag, 0)"
+ (bgt_inclbtw ? " + COALESCE(bud.bgt_budget_btwbedrag, 0)" : "") + (bgt_inclbtw ? " + COALESCE(bd.bgt_budget_btwbedrag, 0)" : "")
+ ") budget_actueel," + ") budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van,0)) budget_mutatie" + " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van,0)) budget_mutatie"
+ " FROM bgt_budget bud," + " FROM bgt_budget bd,"
+ " bgt_project pr," + " bgt_project pr,"
+ " ins_tab_discipline id," + " ins_tab_discipline id,"
+ mutatie_sql + " (SELECT kr_1.bgt_project_key"
+ " WHERE bud.bgt_project_key = pr.bgt_project_key" + " , SUM(BGT.getBudgetOverschrijding(ks_1.prs_kostensoort_key, 0, NULL)) reserve_bedrag"
+ " FROM prs_kostensoort ks_1"
+ " , prs_kostensoortgrp kg_1"
+ " , bgt_kostenrubriek kr_1"
+ " WHERE ks_1.prs_kostensoortgrp_key = kg_1.prs_kostensoortgrp_key"
+ " AND kg_1.bgt_kostenrubriek_key = kr_1.bgt_kostenrubriek_key"
+ " GROUP BY kr_1.bgt_project_key"
+ " ) vn,"
+ mutatie_sql + "mut"
+ " WHERE pr.bgt_project_key = bd.bgt_project_key(+)"
+ " AND pr.bgt_project_key = vn.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key" + " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key" + " AND bd.bgt_budget_key = mut.bgt_budget_key(+)"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "") + (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key; + " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY pr.bgt_project_key," sql1 += " GROUP BY pr.bgt_project_key,"
+ " bgt_project_omschrijving ," + " pr.bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving"; + " id.ins_discipline_omschrijving";
} }
@@ -573,11 +607,11 @@ var transitParam = buildTransitParam([]);
+ (groupby <= 4 ? " bud.groep groep, bud.prs_kostensoortgrp_key," : "") + (groupby <= 4 ? " bud.groep groep, bud.prs_kostensoortgrp_key," : "")
+ (groupby <= 3 ? " bud.onderdeel onderdeel, besteding.prs_kostensoort_key," : "") + (groupby <= 3 ? " bud.onderdeel onderdeel, besteding.prs_kostensoort_key," : "")
+ " MAX(bud.budget_reserve) budget_reserve," + " MAX(bud.budget_reserve) budget_reserve,"
+ " MAX(bud.budget_actueel) budget_actueel," + " MAX(bud.budget_actueel + bud.budget_reserve) budget_actueel,"
+ " MAX(bud.budget_actueel - bud.budget_mutatie + bud.budget_reserve) budget_origineel," + " MAX(bud.budget_actueel - bud.budget_mutatie) budget_origineel,"
+ " MAX(bud.budget_mutatie) budget_mutatie," + " MAX(bud.budget_mutatie) budget_mutatie,"
+ " SUM(besteding.gecontracteerd) gecontracteerd," + " SUM(besteding.gecontracteerd) gecontracteerd,"
+ " MAX(COALESCE(bud.budget_actueel, 0)) - SUM(COALESCE(besteding.gecontracteerd, 0)) tecontracteren," + " MAX(COALESCE(bud.budget_actueel + bud.budget_reserve, 0)) - SUM(COALESCE(besteding.gecontracteerd, 0)) tecontracteren,"
+ " SUM(besteding.gefactureerd) gefactureerd," + " SUM(besteding.gefactureerd) gefactureerd,"
+ " SUM(besteding.tefactureren) tefactureren" + " SUM(besteding.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud," + " FROM (" + sql1 + ") bud,"
@@ -888,8 +922,7 @@ var transitParam = buildTransitParam([]);
if (groupby > 2) // denk ik if (groupby > 2) // denk ik
{ {
rst.addColumn(new Column({caption: "Origineel", content: budgetOrigineelShow, fnAmount: budgetOrigineelAmount, datatype: "currency", total: true})); rst.addColumn(new Column({caption: "Origineel", content: budgetOrigineelShow, fnAmount: budgetOrigineelAmount, datatype: "currency", total: true}));
// if (groupby == 5) rst.addColumn(new Column({caption: "Van/naar Reserve", content: budgetReserveShow, fnAmount: budgetReserveAmount, datatype: "currency", total: true}));
// rst.addColumn(new Column({caption: "Reserve", content: budgetReserveShow, fnAmount: budgetReserveAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: "Mutatie", content: budgetMutatieShow, fnAmount: budgetMutatieAmount, datatype: "currency", total: true})); rst.addColumn(new Column({caption: "Mutatie", content: budgetMutatieShow, fnAmount: budgetMutatieAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: L("bgt_budget_bedrag"), content: budgetActueelShow, fnAmount: budgetActueelAmount, datatype: "currency", total: true})); rst.addColumn(new Column({caption: L("bgt_budget_bedrag"), content: budgetActueelShow, fnAmount: budgetActueelAmount, datatype: "currency", total: true}));
} }

View File

@@ -67,8 +67,9 @@ function re_init_soort(data)
{ {
fill_rubriekselector("D", -1 , -1, data.parents.D); fill_rubriekselector("D", -1 , -1, data.parents.D);
fill_rubriekselector("P", data.parents.D, -1, data.parents.P); fill_rubriekselector("P", data.parents.D, -1, data.parents.P);
fill_rubriekselector("B", data.parents.P, -1, data.parents.B); fill_rubriekselector("B", -1 , data.parents.P, data.parents.B);
fill_rubriekselector("O", data.parents.P, data.parents.B, data.parents.O); fill_rubriekselector("O", data.parents.P, data.parents.B, data.parents.O);
fill_rubriekselector("S", data.parents.G, data.parents.S, data.parents.S);
} }
function change_discipline() function change_discipline()
@@ -93,6 +94,7 @@ function change_bedrijf()
var project_key = (typeof $("#budgetproject").val() == "undefined" ? (typeof budgetproject == "undefined" ? -1 : budgetproject) : $("#budgetproject").val() ); var project_key = (typeof $("#budgetproject").val() == "undefined" ? (typeof budgetproject == "undefined" ? -1 : budgetproject) : $("#budgetproject").val() );
var bedrijf_key = (typeof $("#company").val() == "undefined" ? (typeof company == "undefined" ? -1 : company) : $("#company").val() ); var bedrijf_key = (typeof $("#company").val() == "undefined" ? (typeof company == "undefined" ? -1 : company) : $("#company").val() );
fill_rubriekselector("O", project_key, bedrijf_key); fill_rubriekselector("O", project_key, bedrijf_key);
fill_rubriekselector("S", -1, -1, -1);
} }
function change_opdracht() function change_opdracht()
@@ -100,10 +102,12 @@ function change_opdracht()
// Als opdracht bekend is kan het bedrag ingevuld worden: // Als opdracht bekend is kan het bedrag ingevuld worden:
// we weten dan de btw-percentage dat gebruikt moet worden, // we weten dan de btw-percentage dat gebruikt moet worden,
// en sla de key voor kostensoort bij deze opdracht op. // en sla de key voor kostensoort bij deze opdracht op.
var kostengroep_key = $("#order option:selected").attr("grp_key");
var kostensoort_key = $("#order option:selected").attr("cost_key"); var kostensoort_key = $("#order option:selected").attr("cost_key");
if (kostensoort_key) if (kostensoort_key)
$("#costtype").val(kostensoort_key); {
fill_rubriekselector("S", kostengroep_key, kostensoort_key, kostensoort_key);
}
var btw_perc = parseFloat($("#order option:selected").attr("perc_btw").replace(/,/g,".")); var btw_perc = parseFloat($("#order option:selected").attr("perc_btw").replace(/,/g,"."));
if ($("#total").val() && btw_perc != kostensoort_btw) if ($("#total").val() && btw_perc != kostensoort_btw)
{ {
@@ -158,13 +162,14 @@ function fill_rubriekselector(niveau, parent_key, child_key, init_key)
function process_info(data) function process_info(data)
{ {
var select; var select;
var readonly = false;
switch(data.niveau) switch(data.niveau)
{ {
case "D": select = $("#budgetdiscipline"); break; case "D": select = $("#budgetdiscipline"); break;
case "P": select = $("#budgetproject"); break; case "P": select = $("#budgetproject"); break;
case "R": select = $("#budgetcostcategory"); break; case "R": select = $("#budgetcostcategory"); break;
case "G": select = $("#costtypegroup"); break; case "G": select = $("#costtypegroup"); break;
case "S": select = $("#costtype"); break; case "S": select = $("#costtype"); readonly = true; break;
case "B": select = $("#company"); break; case "B": select = $("#company"); break;
case "O": select = $("#order"); break; case "O": select = $("#order"); break;
case "KP": select = $("#account"); break; case "KP": select = $("#account"); break;
@@ -187,13 +192,14 @@ function process_info(data)
{ {
add_data = ' incl_btw="' + opt.atr.btw_inc + '"' add_data = ' incl_btw="' + opt.atr.btw_inc + '"'
+ ' perc_btw="' + opt.atr.btw_val + '"' + ' perc_btw="' + opt.atr.btw_val + '"'
+ ' grp_key="' + opt.atr.grp_key + '"'
+ ' cost_key="' + opt.atr.srt_key + '"'; + ' cost_key="' + opt.atr.srt_key + '"';
} }
new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>'; new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>';
if (opt.sel) if (opt.sel)
sel_key = opt.key; sel_key = opt.key;
} }
select.prop("disabled", false); select.prop("disabled", readonly);
} }
else else
{ {

View File

@@ -45,6 +45,7 @@ switch (req_info)
+ " , -1 soort_key" + " , -1 soort_key"
+ " , -1 opdracht_key" + " , -1 opdracht_key"
+ " , -1 bedrijf_key" + " , -1 bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , ins_tab_discipline t" + " , ins_tab_discipline t"
+ " WHERE t.ins_discipline_key = d.bgt_ins_discipline_key" + " WHERE t.ins_discipline_key = d.bgt_ins_discipline_key"
@@ -62,6 +63,7 @@ switch (req_info)
+ " , -1 soort_key" + " , -1 soort_key"
+ " , -1 opdracht_key" + " , -1 opdracht_key"
+ " , -1 bedrijf_key" + " , -1 bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key" + " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
@@ -75,10 +77,11 @@ switch (req_info)
+ " d.bgt_ins_discipline_key disc_key" + " d.bgt_ins_discipline_key disc_key"
+ " , p.bgt_project_key project_key" + " , p.bgt_project_key project_key"
+ " , -1 rubriek_key" + " , -1 rubriek_key"
+ " , -1 groep_key" + " , g.prs_kostensoortgrp_key groep_key"
+ " , -1 soort_key" + " , s.prs_kostensoort_key soort_key"
+ " , o.mld_opdr_key opdracht_key" + " , o.mld_opdr_key opdracht_key"
+ " , b.prs_bedrijf_key bedrijf_key" + " , b.prs_bedrijf_key bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
@@ -105,6 +108,7 @@ switch (req_info)
+ " , -1 soort_key" + " , -1 soort_key"
+ " , -1 opdracht_key" + " , -1 opdracht_key"
+ " , b.prs_bedrijf_key bedrijf_key" + " , b.prs_bedrijf_key bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
@@ -130,6 +134,7 @@ switch (req_info)
+ " , -1 soort_key" + " , -1 soort_key"
+ " , NULL opdracht_key" + " , NULL opdracht_key"
+ " , NULL bedrijf_key" + " , NULL bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
@@ -147,6 +152,7 @@ switch (req_info)
+ " , -1 soort_key" + " , -1 soort_key"
+ " , NULL opdracht_key" + " , NULL opdracht_key"
+ " , NULL bedrijf_key" + " , NULL bedrijf_key"
+ " , NULL kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
@@ -166,6 +172,7 @@ switch (req_info)
+ " , s.prs_kostensoort_key soort_key" + " , s.prs_kostensoort_key soort_key"
+ " , NULL opdracht_key" + " , NULL opdracht_key"
+ " , NULL bedrijf_key" + " , NULL bedrijf_key"
+ " , -1 kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
@@ -188,6 +195,10 @@ switch (req_info)
+ " , NULL soort_key" + " , NULL soort_key"
+ " , NULL opdracht_key" + " , NULL opdracht_key"
+ " , NULL bedrijf_key" + " , NULL bedrijf_key"
+ ( (init_key == -1 && child_key)
? " , (SELECT prs_kostenplaats_key FROM prs_kostensoort WHERE prs_kostensoort_key = "+ child_key +")"
: " , -1"
) + " kostenplaats_key"
+ " FROM bgt_disc_params d" + " FROM bgt_disc_params d"
+ " , bgt_project p" + " , bgt_project p"
+ " , prs_kostenplaatsgrp g" + " , prs_kostenplaatsgrp g"
@@ -210,7 +221,8 @@ switch (req_info)
"G": oRs("groep_key").Value, "G": oRs("groep_key").Value,
"S": oRs("soort_key").Value, "S": oRs("soort_key").Value,
"O": oRs("opdracht_key").Value, "O": oRs("opdracht_key").Value,
"B": oRs("bedrijf_key").Value "B": oRs("bedrijf_key").Value,
"K": oRs("kostenplaats_key").Value
} }
} }
oRs.Close(); oRs.Close();
@@ -227,7 +239,9 @@ switch (req_info)
+ " , p.bgt_disc_params_code ||' - '||d.ins_discipline_omschrijving sel_oms" + " , p.bgt_disc_params_code ||' - '||d.ins_discipline_omschrijving sel_oms"
+ " , d.ins_discipline_btw btw_inc" + " , d.ins_discipline_btw btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM ins_tab_discipline d" + " FROM ins_tab_discipline d"
+ " , bgt_disc_params p" + " , bgt_disc_params p"
+ " WHERE p.bgt_ins_discipline_key = d.ins_discipline_key" + " WHERE p.bgt_ins_discipline_key = d.ins_discipline_key"
@@ -249,7 +263,9 @@ switch (req_info)
+ " WHERE d1.ins_discipline_key = p.ins_discipline_key" + " WHERE d1.ins_discipline_key = p.ins_discipline_key"
+ ") btw_inc" + ") btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM bgt_project p" + " FROM bgt_project p"
+ " WHERE p.bgt_project_verwijder IS NULL" + " WHERE p.bgt_project_verwijder IS NULL"
+ " AND p.ins_discipline_key = " + parent_key; + " AND p.ins_discipline_key = " + parent_key;
@@ -266,7 +282,9 @@ switch (req_info)
+ " AND p1.bgt_project_key = r.bgt_project_key" + " AND p1.bgt_project_key = r.bgt_project_key"
+ ") btw_inc" + ") btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM bgt_kostenrubriek r" + " FROM bgt_kostenrubriek r"
+ " WHERE r.bgt_project_key = " + parent_key; + " WHERE r.bgt_project_key = " + parent_key;
break; break;
@@ -284,7 +302,9 @@ switch (req_info)
+ " AND r1.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key" + " AND r1.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
+ ") btw_inc" + ") btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM prs_kostensoortgrp g" + " FROM prs_kostensoortgrp g"
+ " WHERE g.bgt_kostenrubriek_key = " + parent_key; + " WHERE g.bgt_kostenrubriek_key = " + parent_key;
break; break;
@@ -298,7 +318,9 @@ switch (req_info)
+ " FROM fin_btwtabelwaarde f1" + " FROM fin_btwtabelwaarde f1"
+ " WHERE f1.fin_btwtabelwaarde_key = s.fin_btwtabelwaarde_key" + " WHERE f1.fin_btwtabelwaarde_key = s.fin_btwtabelwaarde_key"
+ ") btw_val" + ") btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NVL(prs_kostenplaats_key, -1) kpn_key"
+ " FROM prs_kostensoort s" + " FROM prs_kostensoort s"
+ " WHERE s.prs_kostensoortgrp_key = " + parent_key + " WHERE s.prs_kostensoortgrp_key = " + parent_key
+ ( sel_mode == "budget_edit" + ( sel_mode == "budget_edit"
@@ -313,7 +335,9 @@ switch (req_info)
+ " , kp.prs_kostenplaats_nr ||' - '|| kp.prs_kostenplaats_omschrijving sel_oms" + " , kp.prs_kostenplaats_nr ||' - '|| kp.prs_kostenplaats_omschrijving sel_oms"
+ " , NULL btw_inc" + " , NULL btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM prs_kostenplaats kp" + " FROM prs_kostenplaats kp"
+ " , prs_kostenplaatsgrp kg" + " , prs_kostenplaatsgrp kg"
+ " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key" + " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key"
@@ -327,7 +351,9 @@ switch (req_info)
+ " , b.prs_leverancier_nr ||' - '|| b.prs_bedrijf_naam sel_oms" + " , b.prs_leverancier_nr ||' - '|| b.prs_bedrijf_naam sel_oms"
+ " , NULL btw_inc" + " , NULL btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , NULL grp_key"
+ " , NULL srt_key" + " , NULL srt_key"
+ " , NULL kpn_key"
+ " FROM bgt_project p" + " FROM bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g" + " , prs_kostensoortgrp g"
@@ -339,7 +365,7 @@ switch (req_info)
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key" + " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
+ " AND s.prs_kostensoort_key = o.prs_kostensoort_key" + " AND s.prs_kostensoort_key = o.prs_kostensoort_key"
+ " AND o.mld_uitvoerende_keys = b.prs_bedrijf_key" + " AND o.mld_uitvoerende_keys = b.prs_bedrijf_key"
+ " AND p.ins_discipline_key = " + parent_key + (parent_key > 0 ? " AND p.ins_discipline_key = " + parent_key : "")
+ (child_key > 0 ? " AND p.bgt_project_key = " + child_key : ""); + (child_key > 0 ? " AND p.bgt_project_key = " + child_key : "");
break; break;
} }
@@ -353,7 +379,9 @@ switch (req_info)
+ " FROM fin_btwtabelwaarde f1" + " FROM fin_btwtabelwaarde f1"
+ " WHERE f1.fin_btwtabelwaarde_key = s.fin_btwtabelwaarde_key" + " WHERE f1.fin_btwtabelwaarde_key = s.fin_btwtabelwaarde_key"
+ ") btw_val" + ") btw_val"
+ " , s.prs_kostensoortgrp_key grp_key"
+ " , o.prs_kostensoort_key srt_key" + " , o.prs_kostensoort_key srt_key"
+ " , NULL kpn_key"
+ " FROM bgt_project p" + " FROM bgt_project p"
+ " , bgt_kostenrubriek r" + " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g" + " , prs_kostensoortgrp g"
@@ -378,7 +406,9 @@ switch (req_info)
sel: oRs("sel_key").Value == init_key, sel: oRs("sel_key").Value == init_key,
atr: { btw_inc: oRs("btw_inc").Value, atr: { btw_inc: oRs("btw_inc").Value,
btw_val: oRs("btw_val").Value, btw_val: oRs("btw_val").Value,
srt_key: oRs("srt_key").Value grp_key: oRs("grp_key").Value,
srt_key: oRs("srt_key").Value,
kpn_key: oRs("kpn_key").Value
} }
}); });
oRs.MoveNext(); oRs.MoveNext();
@@ -412,26 +442,37 @@ switch (req_info)
+ " , kp.prs_kostenplaatsgrp_key par_key" + " , kp.prs_kostenplaatsgrp_key par_key"
+ " , NULL btw_inc" + " , NULL btw_inc"
+ " , NULL btw_val" + " , NULL btw_val"
+ " , p.prs_kostenplaats_key" + " , NULL kpn_key"
+ " , ks.prs_kostensoort_key"
+ " FROM prs_kostenplaats kp" + " FROM prs_kostenplaats kp"
+ " , prs_kostenplaatsgrp kg" + " , prs_kostenplaatsgrp kg"
+ " , bgt_project p" + " , prs_kostensoort ks"
+ " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key" + " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key"
+ " AND kg.bgt_project_key = p.bgt_project_key" + " AND kp.prs_kostenplaats_key = ks.prs_kostenplaats_key(+)"
+ " AND kp.prs_kostenplaats_verwijder IS NULL" + " AND kp.prs_kostenplaats_verwijder IS NULL"
+ " AND kg.bgt_project_key = " + parent_key; + " AND kg.bgt_project_key = " + parent_key;
} }
} }
sql += " ORDER BY 2"; sql += " ORDER BY 2";
var new_lov = []; var new_lov = [];
var last_lov = "";
var oRs = Oracle.Execute(sql); var oRs = Oracle.Execute(sql);
while(!oRs.eof) while(!oRs.eof)
{
if (last_lov != oRs("sel_oms").Value)
{ {
new_lov.push({key: oRs("sel_key").Value, new_lov.push({key: oRs("sel_key").Value,
oms: oRs("sel_oms").Value, oms: oRs("sel_oms").Value,
sel: oRs("sel_key").Value == (init_key == -1 ? oRs("prs_kostenplaats_key").Value : init_key), sel: oRs("sel_key").Value == (init_key == -1 ? oRs("prs_kostensoort_key").Value : init_key),
atr: { par_key: oRs("par_key").Value} atr: { par_key: oRs("par_key").Value}
}); });
last_lov = oRs("sel_oms").Value;
}
else
{
var opt = new_lov[new_lov.length-1];
opt.sel = opt.sel || (oRs("sel_key").Value == (init_key == -1 ? oRs("prs_kostensoort_key").Value : init_key));
}
oRs.MoveNext(); oRs.MoveNext();
} }
oRs.Close(); oRs.Close();

View File

@@ -49,7 +49,11 @@ else if (level == "B")
authparams = user.checkAutorisation("WEB_PRSMAN", true); authparams = user.checkAutorisation("WEB_PRSMAN", true);
bDeletePRSMAN = authparams && authparams.PRSwritelevel < 9; bDeletePRSMAN = authparams && authparams.PRSwritelevel < 9;
if (S("bgt_enabled")==1)
authparams = user.checkAutorisation("WEB_BGTUSE", true);
else
authparams = user.checkAutorisation("WEB_RELMAN", true); authparams = user.checkAutorisation("WEB_RELMAN", true);
bDeleteRELMAN = authparams && authparams.PRSwritelevel < 9; bDeleteRELMAN = authparams && authparams.PRSwritelevel < 9;
canDelete = (bDeletePRSMAN || bDeleteRELMAN); canDelete = (bDeletePRSMAN || bDeleteRELMAN);
} }

View File

@@ -136,7 +136,7 @@ if (intern)
readonly: false, readonly: false,
required: false required: false
}); });
RWFIELDTR("bdr_levnr", "fld", L("lcl_prs_companies_leverancier_nr"), bedrijf_info.prs_leverancier_nr, {maxlength: 50}); RWFIELDTR("bdr_levnr", "fld", L("lcl_prs_companies_leverancier_nr"), bedrijf_info.prs_leverancier_nr, {required: (S("prs_bedrijf_leveranciernr_unique")==1 ? true : false),maxlength: 50});
CHECKBOXTR(L("lcl_prs_companies_leverancier"), "fldalgbez", "bdr_lev", bedrijf_info.leverancier == 1); CHECKBOXTR(L("lcl_prs_companies_leverancier"), "fldalgbez", "bdr_lev", bedrijf_info.leverancier == 1);
CHECKBOXTR(L("lcl_prs_companies_uitvoerende"), "fldalgbez", "bdr_uitv", bedrijf_info.uitvoerende == 1); CHECKBOXTR(L("lcl_prs_companies_uitvoerende"), "fldalgbez", "bdr_uitv", bedrijf_info.uitvoerende == 1);
CHECKBOXTR(L("lcl_prs_companies_contract"), "fldalgbez", "bdr_cntr", bedrijf_info.contract == 1); CHECKBOXTR(L("lcl_prs_companies_contract"), "fldalgbez", "bdr_cntr", bedrijf_info.contract == 1);

View File

@@ -144,6 +144,8 @@ function scaffolding_show(model, scf_params)
var cnt = oRs(0).Value; var cnt = oRs(0).Value;
oRs.Close(); oRs.Close();
} }
if ("hook_pre_show" in model)
model.hook_pre_show(xxx_data, model.fields);
%> %>