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": {
"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"),
"typ": "float",
"iscurrency": true,
@@ -93,7 +93,7 @@ function model_bgt_budget()
},
"amountmutation": {
"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"),
"typ": "float",
"iscurrency": true,

View File

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

View File

@@ -49,6 +49,13 @@ function model_fin_factuur()
"foreign": bgt_budgetproject_foreign(),
"showtransit": true
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"required": false
},
"company": {
"dbs": "mld_opdr.mld_uitvoerende_keys",
"label": L("lcl_ord_company"),
@@ -65,14 +72,6 @@ function model_fin_factuur()
"showtransit": true,
"clone": false
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"required": false,
"hidden_fld": true
},
"additional": {
"dbs": "mld_opdr.mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"),
@@ -94,6 +93,13 @@ function model_fin_factuur()
"typ": "varchar",
"hidden_fld": true
},
"account": {
"dbs": "mld_opdr.prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": bgt_account_foreign(),
"readonly": true
},
"invoice": {
"dbs": "fin_factuur_nr",
"label": L("lcl_fin_invoice_number"),
@@ -209,13 +215,33 @@ function model_fin_factuur()
</script>
<%
// Bij klonen: id=-1, invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
if (obj.invoice)
if (!obj.id && obj.invoice)
{
// Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
var invoice = obj.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);
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);
obj.invoice = new_inv;
}
@@ -223,10 +249,12 @@ function model_fin_factuur()
{
var mld_opdr_key = getQParamInt("opdrachtcommon", -1);
if (obj.id == -1 && mld_opdr_key > -1)
{
{ // Nieuwe factuur bij bekende opdracht.
var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key"
+ " , o.mld_uitvoerende_keys"
+ " , s.prs_kostensoort_key"
+ " , s.prs_kostensoort_oms"
+ " FROM mld_opdr o"
+ " , prs_kostensoort s"
+ " , prs_kostensoortgrp g"
@@ -241,14 +269,19 @@ function model_fin_factuur()
var v_order = mld_opdr_key;
var v_discipline = oRs("ins_discipline_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;
oRs.Close();
// Er is geen QParam voor costtype gezet, dus deze zelf vullen.
obj.costtype = {id: v_soort, name: v_srtoms};
}
else
{
var v_order = null;
var v_discipline = (obj.budgetdiscipline ? obj.budgetdiscipline.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);
}
%>
@@ -257,6 +290,7 @@ function model_fin_factuur()
<% if (v_order) { %> var mldopdracht = "<%=v_order%>"; <% } %>
<% if (v_discipline) { %> var budgetdiscipline = "<%=v_discipline%>"; <% } %>
<% if (v_project) { %> var budgetproject = "<%=v_project%>"; <% } %>
<% if (v_soort) { %> var costtype = "<%=v_soort%>"; <% } %>
<% if (v_company) { %> var company = "<%=v_company%>"; <% } %>
</script>
<%
@@ -268,32 +302,53 @@ function model_fin_factuur()
this.hook_pre_post = function(params, obj)
{
// Bij toevoegen van een factuur wordt prs_kostensoort_key automatisch gevuld met die van mld_opdr.
/*
*/
__Log(obj);
// Als er niet genoeg budget op het kostensoort van de factuur/contract is moet er uit budget rubriek Reserve
// 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)
//
// Bij toevoegen van een factuur moet prs_kostensoort_key nog gevuld worden.
// Gebruik daarvoor die van mld_opdr.
setKostensoort(obj);
// Is het factuurnummer/volgnummer uniek binnen het project?
checkUniekFactuurnummer(-1, obj.budgetproject, obj.invoice);
}
this.hook_pre_put = function(params, obj, key)
{
// Bij wijzigen van factuur wordt prs_kostensoort_key automatisch overgenomen van mld_opdr.
// Als er niet genoeg budget op het kostensoort van de factuur/contract is moet er uit budget rubriek Reserve
// overgeboekt worden naar het budget kostensoort.
// Bij wijzigen van factuur moet prs_kostensoort_key nog gevuld worden.
// Gebruik daarvoor die van mld_opdr.
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)
{
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.
{
// Vul het contractnummer van het oorspronkelijke contract in.
var sql = "SELECT o.mld_opdr_ordernr"
+ " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + parent_key;
var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("mld_opdr_ordernr").Value;
oRs.Close();
// Kopie contract. Volgnummer moet uniek zijn binnen dit contractnummer.
checkUniekContractnummer(-1, obj.budgetproject.id, obj.ordernr, obj.sequence);
}
else
{
@@ -275,9 +280,31 @@ function model_mld_opdr()
var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("new_ordernr").Value;
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 = {
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_POST = generic_REST_POST(this);

View File

@@ -62,7 +62,7 @@ function model_prs_kostensoort()
},
"name": {
"dbs": "prs_kostensoort_oms",
"label": L("prs_kostensoort_oms"),
"label": (S("bgt_enabled") ? L("prs_kostensoort_opmerking") : L("prs_kostensoort_oms")),
"typ": "varchar",
"required": true, /* proberen */
"translate": true,
@@ -71,7 +71,7 @@ function model_prs_kostensoort()
},
"remark": {
"dbs": "prs_kostensoort_opmerking",
"label": L("prs_kostensoort_opmerking"),
"label": (S("bgt_enabled") ? L("prs_kostensoort_oms") : L("prs_kostensoort_opmerking")),
"typ": "varchar",
"required": (S("bgt_enabled") ? false : true),
"filter": "like"
@@ -146,6 +146,12 @@ function model_prs_kostensoort()
"required": true,
"foreign": bgt_budgetcostcategory_foreign(),
"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);
@@ -163,6 +169,11 @@ function model_prs_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)
{
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.budgetcostcategory.hidden_fld = false;
this.fields.budgetcostcategory.readonly = true;
delete this.fields.costcategorycode;
}
if (obj.costtypegroup && obj.costtypegroup.id != -1)

View File

@@ -69,6 +69,7 @@ function init_budget()
{ req_info: "initsearch",
niveau: init_niveau,
parent_key: (v_budgetproject ? v_budgetproject : -1),
child_key: v_costtype,
init_key: init_key
},
re_init_plaats);
@@ -85,7 +86,7 @@ function re_init_soort(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;
fill_plaatsselector("KP", project_key, init_key);
}
@@ -132,7 +133,16 @@ function change_groep()
}
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)
{
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",
niveau: niveau,
parent_key: parent_key,
init_key: init_key //(init_key ? init_key : -1);
init_key: (init_key ? init_key : -1)
},
process_info);
}
@@ -274,12 +284,14 @@ function process_info(data)
var opt = data.lov[i];
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
{
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>';
if (opt.sel)

View File

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

View File

@@ -180,7 +180,7 @@ var transitParam = buildTransitParam([]);
+ " GROUP BY m2.bgt_budget_key_naar"
+ ") mutatie"
+ " GROUP BY mutatie.bgt_budget_key"
+ " ) mut";
+ " ) ";
// zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig?
if (groupby == 1) // facturen
@@ -313,163 +313,197 @@ var transitParam = buildTransitParam([]);
// Die worden afzonderlijk bijgevoegd (UNION) om wel het totaal te krijgen qua budget
// Eerst de budgetten direct bij kostensoort
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " kg.prs_kostensoortgrp_oms groep,"
+ " bd.prs_kostensoortgrp_key,"
+ " bd.bgt_kostenrubriek_key,"
+ " ks.prs_kostensoort_key,"
+ " ks.prs_kostensoort_oms onderdeel,"
+ " ks.prs_kostensoort_altcode rcode,"
+ " ks.prs_kostensoort_altcode sortcode,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " BGT.getBudgetOverschrijding(ks.prs_kostensoort_key, 0, NULL) budget_reserve,"
+ " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " prs_kostensoortgrp kg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_budget bd,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key = bud.prs_kostensoort_key"
+ mutatie_sql + "mut"
+ " WHERE kg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key = bd.prs_kostensoort_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 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(",") + ")" : "")
+ (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;
sql1 += " GROUP BY ksg.prs_kostensoortgrp_oms,"
sql1 += " GROUP BY kg.prs_kostensoortgrp_oms,"
+ " ks.prs_kostensoort_key,"
+ " ks.prs_kostensoort_opmerking ,"
+ " ks.prs_kostensoort_oms,"
+ " ks.prs_kostensoort_altcode,"
+ " bud.prs_kostensoortgrp_key,"
+ " bd.prs_kostensoortgrp_key,"
+ " kr.bgt_kostenrubriek_oms,"
+ " bud.bgt_kostenrubriek_key,"
+ " bd.bgt_kostenrubriek_key,"
+ " pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
+ " pr.bgt_project_omschrijving ,"
+ " id.ins_discipline_omschrijving";
}
if (groupby == 4) // 4. kostensoortgrp
{
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_altcode rcode,"
+ " ksg.prs_kostensoortgrp_altcode sortcode,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " kg.prs_kostensoortgrp_altcode rcode,"
+ " kg.prs_kostensoortgrp_altcode sortcode,"
+ " kg.prs_kostensoortgrp_oms groep,"
+ " bd.prs_kostensoortgrp_key,"
+ " bd.bgt_kostenrubriek_key,"
+ " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " 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_budget bud,"
+ " bgt_budget bd,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND bud.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key"
+ " (SELECT ks_1.prs_kostensoortgrp_key"
+ " , SUM(BGT.getBudgetOverschrijding(ks_1.prs_kostensoort_key, 0, NULL)) reserve_bedrag"
+ " 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 id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ " AND mut.bgt_budget_key(+) = bd.bgt_budget_key"
+ " AND bd.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ (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 : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " ksg.prs_kostensoortgrp_altcode,"
+ " ksg.prs_kostensoortgrp_oms,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " kg.prs_kostensoortgrp_altcode,"
+ " kg.prs_kostensoortgrp_oms,"
+ " bd.prs_kostensoortgrp_key,"
+ " bd.bgt_kostenrubriek_key,"
+ " pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
+ " pr.bgt_project_omschrijving ,"
+ " id.ins_discipline_omschrijving";
}
if (groupby == 5) // 5. kostenrubriek
{
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " pr.bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " kr.bgt_kostenrubriek_code rcode,"
+ " kr.bgt_kostenrubriek_code sortcode,"
+ " kr.bgt_kostenrubriek_key,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bd.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_budget bd,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE bud.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " (SELECT kg_1.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 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(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " kr.bgt_kostenrubriek_key,"
+ " bgt_project_omschrijving ,"
+ " bgt_kostenrubriek_code ,"
+ " ins_discipline_omschrijving";
+ " pr.bgt_project_omschrijving ,"
+ " kr.bgt_kostenrubriek_code ,"
+ " id.ins_discipline_omschrijving";
if (bgt_inclbtw)
{
//BTW
sql1 += " UNION SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
sql1 += " UNION SELECT id.ins_discipline_omschrijving project,"
+ " pr.bgt_project_omschrijving deelproject,"
+ " 'BTW' rubriek,"
+ " 'B' rcode,"
+ " '92' sortcode,"
+ " -3 bgt_kostenrubriek_key,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_btwbedrag, 0)) budget_actueel,"
+ " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bd.bgt_budget_btwbedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.btwbedrag_naar, 0) + COALESCE(mut.btwbedrag_van, 0)) budget_mutatie"
+ " FROM bgt_budget bud,"
+ " FROM bgt_budget bd,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE pr.bgt_project_key = bud.bgt_project_key"
+ " (SELECT kr_1.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 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(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
+ " GROUP BY pr.bgt_project_omschrijving ,"
+ " id.ins_discipline_omschrijving";
}
}
if (groupby == 6) // 6. deelproject
{
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
var sql1 = "SELECT id.ins_discipline_omschrijving project,"
+ " pr.bgt_project_omschrijving deelproject,"
+ " pr.bgt_project_key,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)"
+ (bgt_inclbtw ? " + COALESCE(bud.bgt_budget_btwbedrag, 0)" : "")
+ " MAX(COALESCE(vn.reserve_bedrag, 0)) budget_reserve,"
+ " SUM(COALESCE(bd.bgt_budget_bedrag, 0)"
+ (bgt_inclbtw ? " + COALESCE(bd.bgt_budget_btwbedrag, 0)" : "")
+ ") budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van,0)) budget_mutatie"
+ " FROM bgt_budget bud,"
+ " FROM bgt_budget bd,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE bud.bgt_project_key = pr.bgt_project_key"
+ " (SELECT kr_1.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 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(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
+ " pr.bgt_project_omschrijving ,"
+ " id.ins_discipline_omschrijving";
}
@@ -573,11 +607,11 @@ var transitParam = buildTransitParam([]);
+ (groupby <= 4 ? " bud.groep groep, bud.prs_kostensoortgrp_key," : "")
+ (groupby <= 3 ? " bud.onderdeel onderdeel, besteding.prs_kostensoort_key," : "")
+ " MAX(bud.budget_reserve) budget_reserve,"
+ " MAX(bud.budget_actueel) budget_actueel,"
+ " MAX(bud.budget_actueel - bud.budget_mutatie + bud.budget_reserve) budget_origineel,"
+ " MAX(bud.budget_actueel + bud.budget_reserve) budget_actueel,"
+ " MAX(bud.budget_actueel - bud.budget_mutatie) budget_origineel,"
+ " MAX(bud.budget_mutatie) budget_mutatie,"
+ " 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.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud,"
@@ -888,8 +922,7 @@ var transitParam = buildTransitParam([]);
if (groupby > 2) // denk ik
{
rst.addColumn(new Column({caption: "Origineel", content: budgetOrigineelShow, fnAmount: budgetOrigineelAmount, datatype: "currency", total: true}));
// if (groupby == 5)
// rst.addColumn(new Column({caption: "Reserve", content: budgetReserveShow, fnAmount: budgetReserveAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: "Van/naar 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: 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("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("S", data.parents.G, data.parents.S, data.parents.S);
}
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 bedrijf_key = (typeof $("#company").val() == "undefined" ? (typeof company == "undefined" ? -1 : company) : $("#company").val() );
fill_rubriekselector("O", project_key, bedrijf_key);
fill_rubriekselector("S", -1, -1, -1);
}
function change_opdracht()
@@ -100,10 +102,12 @@ function change_opdracht()
// Als opdracht bekend is kan het bedrag ingevuld worden:
// we weten dan de btw-percentage dat gebruikt moet worden,
// 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");
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,"."));
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)
{
var select;
var readonly = false;
switch(data.niveau)
{
case "D": select = $("#budgetdiscipline"); break;
case "P": select = $("#budgetproject"); break;
case "R": select = $("#budgetcostcategory"); break;
case "G": select = $("#costtypegroup"); break;
case "S": select = $("#costtype"); break;
case "S": select = $("#costtype"); readonly = true; break;
case "B": select = $("#company"); break;
case "O": select = $("#order"); break;
case "KP": select = $("#account"); break;
@@ -187,13 +192,14 @@ function process_info(data)
{
add_data = ' incl_btw="' + opt.atr.btw_inc + '"'
+ ' perc_btw="' + opt.atr.btw_val + '"'
+ ' grp_key="' + opt.atr.grp_key + '"'
+ ' cost_key="' + opt.atr.srt_key + '"';
}
new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>';
if (opt.sel)
sel_key = opt.key;
}
select.prop("disabled", false);
select.prop("disabled", readonly);
}
else
{

View File

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

View File

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

View File

@@ -136,7 +136,7 @@ if (intern)
readonly: 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_uitvoerende"), "fldalgbez", "bdr_uitv", bedrijf_info.uitvoerende == 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;
oRs.Close();
}
if ("hook_pre_show" in model)
model.hook_pre_show(xxx_data, model.fields);
%>