FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization

svn path=/Website/trunk/; revision=34829
This commit is contained in:
Erik Groener
2017-08-04 14:43:53 +00:00
parent d623fd439e
commit abd07f83ea
12 changed files with 471 additions and 78 deletions

View File

@@ -41,8 +41,7 @@ function model_bgt_budget()
"typ": "key",
"required": true,
"insertonly": true,
"foreign": bgt_budgetdiscipline_foreign(),
"emptyoption": null
"foreign": bgt_budgetdiscipline_foreign()
},
"budgetproject": {
"dbs": "bgt_project_key",
@@ -50,8 +49,7 @@ function model_bgt_budget()
"typ": "key",
"required": true,
"insertonly": true,
"foreign": bgt_budgetproject_foreign(),
"emptyoption": null
"foreign": bgt_budgetproject_foreign()
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek_key",
@@ -172,7 +170,7 @@ function model_bgt_budget()
}
%>
<script>
var cur_mode = "<%=mode%>"; // = "edit"
var cur_mode = "budget_edit"; // Laat alleen de kostensoorten zien waaraan nog geen budget gekoppeld is.
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
</script>

View File

@@ -48,41 +48,39 @@ function model_fin_factuur()
"typ": "key",
"foreign": bgt_budgetproject_foreign()
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"company": {
"dbs": "mld_opdr.mld_uitvoerende_keys",
"label": L("lcl_ord_company"),
"typ": "key",
"foreign": bgt_budgetcostcategory_foreign()
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"typ": "key",
"foreign": bgt_costtypegroup_foreign()
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"foreign": bgt_costtype_foreign(),
"hidden_fld": true
"foreign": bgt_company_foreign()
},
"order": {
"dbs": "mld_opdr_key",
"label": L("lcl_fin_mld_opdr"),
"typ": "key",
"required": true,
"foreign": {
"tbl": "mld_opdr",
"key": "mld_opdr_key",
"desc": "mld_opdr_omschrijving"
},
"foreign": bgt_order_foreign(),
"clone": false
},
"additional": {
"dbs": "mld_opdr.mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"),
"typ": "check0",
"defaultvalue": 0,
"filter": "exact"
},
"ordernr_sort": {
"dbs": "mld_opdr_ordernr_int",
"label": L("bgt_opdr_ordernr"),
"sql": "fac.safe_to_number(mld_opdr.mld_opdr_ordernr)",
"typ": "number",
"readonly": true
},
"ordernr": {
"dbs": "mld_opdr.mld_opdr_ordernr",
"label": L("bgt_opdr_ordernr"),
"typ": "varchar"
"typ": "varchar",
"hidden_fld": true
},
"invoice": {
"dbs": "fin_factuur_nr",
@@ -163,6 +161,8 @@ function model_fin_factuur()
};
this.hook_pre_edit = function(obj, fld)
{
// Bij klonen: id=-1, invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten.
@@ -175,6 +175,17 @@ function model_fin_factuur()
var new_inv = cur_inv + "/" + (cur_seq + 1);
obj.invoice = new_inv;
}
else
{
%>
<script>
var cur_mode = "<%=mode%>"; // = "edit"
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
<% if (obj.company) { %> var company = "<%=obj.company.id%>"; <% } %>
</script>
<%
}
// De opdracht moet wel gewijzigd kunnen worden bij het klonen.
if (!obj.id)
fld.order.readonly = false;

View File

@@ -40,67 +40,71 @@ function model_mld_opdr()
"label": L("bgt_discipline_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetdiscipline_foreign(),
"emptyoption": null
"foreign": bgt_budgetdiscipline_foreign()
},
"budgetproject": {
"dbs": "bgt_project.bgt_project_key",
"label": L("bgt_project_omschrijving"),
"typ": "key",
"required": true,
"foreign": bgt_budgetproject_foreign()
},
"budgetcostcategory": {
"dbs": "bgt_kostenrubriek.bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"required": true,
"foreign": bgt_budgetcostcategory_foreign()
},
"costtypegroup": {
"dbs": "prs_kostensoortgrp.prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"typ": "key",
"required": true,
"foreign": bgt_costtypegroup_foreign()
},
"costtype": {
"dbs": "prs_kostensoort_key",
"label": L("prs_kostensoort_key"),
"typ": "key",
"required": true,
"foreign": bgt_costtype_foreign()
},
"company": {
"dbs": "mld_uitvoerende_keys",
"label": L("lcl_ord_company"),
"typ": "key",
"foreign": {
"tbl": "prs_bedrijf",
"key": "prs_bedrijf_key",
"desc": "prs_bedrijf_naam"
}
"foreign": bgt_company_foreign()
},
"reference": {
"dbs": "mld_opdr_id",
"label": L("lcl_opdr_id"),
"typ": "varchar"
},
"ordernr_sort": {
"dbs": "mld_opdr_ordernr_int",
"label": L("bgt_opdr_ordernr"),
"sql": "fac.safe_to_number(mld_opdr_ordernr)",
"typ": "number",
"readonly": true
},
"ordernr": {
"dbs": "mld_opdr_ordernr",
"label": L("bgt_opdr_ordernr"),
"typ": "varchar"
"typ": "varchar",
"hidden_fld": true
},
"sequence": {
"dbs": "mld_opdr_bedrijfopdr_volgnr",
"label": L("lcl_ins_volgnr"),
"typ": "number"
"typ": "number",
"defaultvalue": 0
},
"account": {
"dbs": "prs_kostenplaats_key",
"label": L("bgt_budget_account"),
"typ": "key",
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
}
"foreign": bgt_account_foreign()
},
"description": {
"dbs": "mld_opdr_omschrijving",
@@ -174,18 +178,71 @@ function model_mld_opdr()
"dbs": "mld_opdr_meerwerk",
"label": L("lcl_mld_opdr_meerwerk"),
"typ": "check0",
"defaultvalue": "0",
"defaultvalue": 0,
"filter": "exact"
}
};
this.includes = {
"invoices": {
"model": new model_fin_factuur(),
"joinfield": "order",
"enable_update": true
if (mode == "show")
{
this.fields.ordernr_sort.hidden_fld = false;
this.fields.ordernr_sort.readonly = true;
}
this.hook_pre_edit = function (obj, fld)
{
if (obj.id > -1 || obj.ordernr_sort)
{
fld.ordernr.hidden_fld = false;
fld.ordernr.readonly = true;
}
};
%>
<script>
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
<% if (obj.budgetcostcategory) { %> var budgetcostcategory = "<%=obj.budgetcostcategory.id%>"; <% } %>
<% if (obj.costtypegroup) { %> var costtypegroup = "<%=obj.costtypegroup.id%>"; <% } %>
<% if (obj.costtype) { %> var costtype = "<%=obj.costtype.id%>"; <% } %>
</script>
<%
}
this.hook_pre_post = function(params, obj)
{
var parent_key = getQParamInt("id", -1);
if (parent_key > -1) // Bij kopie van opdracht geen nieuw nummer genereren.
{
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();
}
else
{
// Genereer een uniek volgnummer binnen het project voor een nieuwe opdracht.
var prj_key = (obj.budgetproject ? obj.budgetproject : project_key);
var sql = "SELECT COALESCE(MAX(TO_NUMBER(o.mld_opdr_ordernr)), 0) + 1 new_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 p.bgt_project_key = " + prj_key;
var oRs = Oracle.Execute(sql);
obj.ordernr = oRs("new_ordernr").Value;
oRs.Close();
}
}
var gparams = {
GET: {

View File

@@ -12,7 +12,6 @@
*/
%>
<!-- #include file="../bgt/bgt_tools.inc" -->
<!-- #include file="../api2/model_prs_kostensoort.inc" -->
<%
function model_prs_kostenplaats()
@@ -137,7 +136,6 @@ function model_prs_kostenplaats()
{
%>
<script>
var cur_mode = "<%=mode%>"; // = "edit"
<% if (obj.budgetdiscipline) { %> var budgetdiscipline = "<%=obj.budgetdiscipline.id%>"; <% } %>
<% if (obj.budgetproject) { %> var budgetproject = "<%=obj.budgetproject.id%>"; <% } %>
</script>

View File

@@ -15,10 +15,10 @@
<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../api2/model_bgt_budget.inc" -->
<%
var kostensoort_key = getQParamInt("costtype", -1);
var this_model = new model_bgt_budget();
scaffolding(this_model,
{
var model_params = {
"search": {
"autosearch": true,
"filters": [
@@ -64,5 +64,34 @@ scaffolding(this_model,
"no_default_frames": true,
"frames": [ { url: "./bgt_budgetmutatie.asp?mode=list&budgetcommon={0}" } ]
}
});
}
// Het budget-scherm wordt aangeroepen vanuit het scherm kostensoort.
// Als deze key bekend in kunnen alle parents worden ingevuld.
if (kostensoort_key > 0)
{
var sql = "SELECT p.ins_discipline_key"
+ " , p.bgt_project_key"
+ " , r.bgt_kostenrubriek_key"
+ " , g.prs_kostensoortgrp_key"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " 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 = " + kostensoort_key;
var oRs = Oracle.Execute(sql);
model_params.transit = {
"budgetdiscipline": oRs("ins_discipline_key").Value,
"budgetproject": oRs("bgt_project_key").Value,
"budgetcostcategory": oRs("bgt_kostenrubriek_key").Value,
"costtypegroup": oRs("prs_kostensoortgrp_key").Value
// Geen "costtype" omdat er slecht 1 budget per costensoort mag bestaan.
}
}
scaffolding(this_model, model_params);
%>

View File

@@ -67,7 +67,7 @@ function init_budget()
$.getJSON( "../bgt/get_bgt_info_ajax.asp",
{ req_info: "initsearch",
niveau: init_niveau,
parent_key: -1,
parent_key: v_budgetproject,
init_key: init_key
},
re_init_plaats);
@@ -85,7 +85,8 @@ function re_init_soort(data)
function re_init_plaats(data)
{
var init_key = ($("#account").val() != -1 ? $("#account").val() : -1);
fill_plaatsselector("KP", data.parents.P, init_key);
var project_key = $("#budgetproject").val() || data.parents.P;
fill_plaatsselector("KP", project_key, init_key);
}
function change_discipline()

View File

@@ -16,7 +16,7 @@ function bgt_budgetdiscipline_foreign()
{
return {
"tbl": "(SELECT d.ins_discipline_key"
+ ", p.bgt_disc_params_code ||' '|| d.ins_discipline_omschrijving oms"
+ ", p.bgt_disc_params_code ||' - '|| d.ins_discipline_omschrijving oms"
+ " FROM ins_tab_discipline d"
+ " , bgt_disc_params p"
+ " WHERE d.ins_discipline_key = p.bgt_ins_discipline_key"
@@ -31,7 +31,7 @@ function bgt_budgetproject_foreign()
{
return {
"tbl": "(SELECT bgt_project_key"
+ " , bgt_project_code ||' '|| bgt_project_omschrijving oms"
+ " , bgt_project_code ||' - '|| bgt_project_omschrijving oms"
+ " FROM bgt_project"
+ " WHERE bgt_project_verwijder IS NULL)",
"key": "bgt_project_key",
@@ -90,7 +90,7 @@ function bgt_account_foreign()
{
return {
"tbl": "(SELECT prs_kostenplaats_key"
+ " , prs_kostenplaats_nr ||' '|| prs_kostenplaats_omschrijving oms"
+ " , prs_kostenplaats_nr ||' - '|| prs_kostenplaats_omschrijving oms"
+ " FROM prs_kostenplaats"
+ " WHERE prs_kostenplaats_verwijder IS NULL)",
"key": "prs_kostenplaats_key",
@@ -101,7 +101,7 @@ function bgt_account_foreign()
function bgt_account_foreign_tbl(project_key)
{
var tbl = "(SELECT kp.prs_kostenplaats_key"
+ " , kp.prs_kostenplaats_nr ||' '|| kp.prs_kostenplaats_omschrijving oms"
+ " , kp.prs_kostenplaats_nr ||' - '|| kp.prs_kostenplaats_omschrijving oms"
+ " FROM prs_kostenplaats kp"
+ " , prs_kostenplaatsgrp kg"
+ " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key"
@@ -115,10 +115,42 @@ function bgt_accountgroup_foreign()
{
return {
"tbl": "(SELECT prs_kostenplaatsgrp_key"
+ " , prs_kostenplaatsgrp_nr ||' '|| prs_kostenplaatsgrp_oms oms"
+ " , prs_kostenplaatsgrp_nr ||' - '|| prs_kostenplaatsgrp_oms oms"
+ " FROM prs_kostenplaatsgrp)",
"key": "prs_kostenplaatsgrp_key",
"desc": "oms"
};
}
function bgt_company_foreign()
{
return {
"tbl": "(SELECT prs_bedrijf_key"
+ " , prs_leverancier_nr ||' - '|| prs_bedrijf_naam oms"
+ " FROM prs_bedrijf)",
"key": "prs_bedrijf_key",
"desc": "oms"
};
}
function bgt_order_foreign()
{
return {
"tbl": "(SELECT DISTINCT"
+ " o.mld_opdr_key"
+ " , o.mld_opdr_ordernr ||'/'|| mld_opdr_bedrijfopdr_volgnr ||' - '|| mld_opdr_omschrijving oms"
+ " 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)",
"key": "mld_opdr_key",
"desc": "oms"
};
}
%>

View File

@@ -16,7 +16,9 @@
<!-- #include file="../api2/model_fin_factuur.inc" -->
<%
var p_mld_opdr_key = getQParamInt("opdrachtcommon", -1);
var this_model = new model_fin_factuur();
var project_key = getQParamInt("budgetproject", -1);
var this_model = new model_fin_factuur();
scaffolding(this_model,
{
"search": {
@@ -24,22 +26,30 @@ scaffolding(this_model,
"filters": [
"budgetdiscipline",
"budgetproject",
"budgetcostcategory",
"costtypegroup",
"costtype",
"company",
"order",
"additional"
],
"transit": [
"budgetdiscipline",
"budgetproject",
"company",
"order"
],
"requires": {
"js": ["../bgt/bgt_budget.js"]
"js": ["../bgt/fin_factuur.js"]
}
},
"list": {
"columns": [
"invoice",
"month",
"date",
"ordernr",
"budgetproject",
"costtype",
"company",
"remark",
"advice",
"total",
"totalvat"
,
@@ -47,13 +57,12 @@ scaffolding(this_model,
],
"orderby": [
"invoice",
"date",
"costtype"
"date"
]
},
"edit": {
"requires": {
"js": ["../bgt/bgt_budget.js"]
"js": ["../bgt/fin_factuur.js"]
}
},
"transit": {

143
APPL/BGT/fin_factuur.js Normal file
View File

@@ -0,0 +1,143 @@
$(document).ready(function () {
setTimeout("init_factuur()", 100);
});
function init_factuur()
{
$("#budgetdiscipline").change(function() {change_discipline(); });
$("#budgetproject").change(function() {change_project(); });
$("#company").change(function() {change_bedrijf(); });
// budgetdiscipline en budgetproject kunnen ook als gekozen filter worden meegegeven
// en worden dan als readonly velden getoond.
var v_budgetdiscipline = (typeof $("#budgetdiscipline").val() == "undefined" ? (typeof budgetdiscipline == "undefined" ? -1 : budgetdiscipline) : $("#budgetdiscipline").val() );
var v_budgetproject = (typeof $("#budgetproject").val() == "undefined" ? (typeof budgetproject == "undefined" ? -1 : budgetproject) : $("#budgetproject").val() );
var v_company = (typeof $("#company").val() == "undefined" ? (typeof company == "undefined" ? -1 : company) : $("#company").val() );
var v_order = (typeof $("#order").val() == "undefined" ? (typeof order == "undefined" ? -1 : order) : $("#order").val() );
var init_niveau = "";
var init_key = -1;
if (v_budgetdiscipline != -1) { init_niveau = "D"; init_key = v_budgetdiscipline; }
if (v_budgetproject != -1) { init_niveau = "P"; init_key = v_budgetproject; }
if (v_company != -1) { init_niveau = "B"; init_key = v_company; }
if (v_order != -1) { init_niveau = "O"; init_key = v_order; }
if (init_key > 0)
{
$.getJSON( "../bgt/get_bgt_info_ajax.asp",
{ req_info: "initsearch",
niveau: init_niveau,
parent_key: -1,
init_key: init_key
},
re_init_soort);
}
else
{
var data = { niveau: "D",
parents: { D: -1,
P: -1,
R: -1,
G: -1,
S: -1,
B: -1,
O: -1
}
};
re_init_soort(data);
}
}
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("O", data.parents.P, data.parents.B, data.parents.O);
}
function change_discipline()
{
var discipline_key = $("#budgetdiscipline").val();
process_info({niveau:"B",lov:[]});
process_info({niveau:"O",lov:[]});
fill_rubriekselector("P", discipline_key);
}
function change_project()
{
var project_key = $("#budgetproject").val();
process_info({niveau:"O",lov:[]});
fill_rubriekselector("B", project_key);
}
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);
}
function fill_rubriekselector(niveau, parent_key, child_key, init_key)
{
var sel_mode = (typeof cur_mode == "undefined" ? "list" : cur_mode);
$.getJSON( "../bgt/get_bgt_info_ajax.asp",
{ req_info: "projectsearch",
niveau: niveau,
parent_key: parent_key,
child_key: child_key,
init_key: init_key,
sel_mode: sel_mode
},
process_info);
}
function process_info(data)
{
var select;
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 "B": select = $("#company"); break;
case "O": select = $("#order"); break;
case "KP": select = $("#account"); break;
case "OP": select = $("#order"); break;
}
var add_data = "";
var sel_key = -1;
var new_lov = '<option value="-1" ></option>';
if (data.lov.length > 0)
{
for (i=0; i < data.lov.length;i++)
{
var opt = data.lov[i];
if (data.niveau == "KP")
{
add_data = ' par_key="' + opt.atr.par_key + '"';
}
else
{
add_data = ' incl_btw="' + opt.atr.btw_inc + '"'
+ ' perc_btw="' + opt.atr.btw_val + '"';
}
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);
}
else
{
select.prop("disabled", true);
}
select.empty().append(new_lov);
if (sel_key > -1)
select.val(sel_key);
$("input#contingency").prop("disabled", true );
}

View File

@@ -24,6 +24,7 @@ var JSON_Result = true;
var req_info = getQParam("req_info");
var niveau = getQParam("niveau");
var parent_key = getQParamInt("parent_key");
var child_key = getQParamInt("child_key", -1);
var init_key = getQParamInt("init_key", -1);
var sel_mode = getQParam("sel_mode", "");
var sql = "";
@@ -42,6 +43,8 @@ switch (req_info)
+ " , -1 rubriek_key"
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " , -1 opdracht_key"
+ " , -1 bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , ins_tab_discipline t"
+ " WHERE t.ins_discipline_key = d.bgt_ins_discipline_key"
@@ -57,6 +60,8 @@ switch (req_info)
+ " , -1 rubriek_key"
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " , -1 opdracht_key"
+ " , -1 bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
@@ -64,6 +69,56 @@ switch (req_info)
+ (init_key != -1 ? " AND p.bgt_project_key = " + init_key : "");
break;
}
case "O":
{
sql = "SELECT DISTINCT"
+ " d.bgt_ins_discipline_key disc_key"
+ " , p.bgt_project_key project_key"
+ " , -1 rubriek_key"
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " , o.mld_opdr_key opdracht_key"
+ " , -1 bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND 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"
+ (init_key != -1 ? " AND o.mld_opdr_key = " + init_key : "");
break;
}
case "B":
{
sql = "SELECT DISTINCT"
+ " d.bgt_ins_discipline_key disc_key"
+ " , p.bgt_project_key project_key"
+ " , -1 rubriek_key"
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " , o.mld_opdr_key opdracht_key"
+ " , b.prs_bedrijf_key bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , prs_bedrijf b"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND 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_uitvoerende_keys = b.prs_bedrijf_key"
+ (init_key != -1 ? " AND b.prs_bedrijf_key = " + init_key : "");
break;
}
case "R":
{ sql = "SELECT DISTINCT"
+ " d.bgt_ins_discipline_key disc_key"
@@ -71,6 +126,8 @@ switch (req_info)
+ " , r.bgt_kostenrubriek_key rubriek_key"
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " , NULL opdracht_key"
+ " , NULL bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
@@ -86,6 +143,8 @@ switch (req_info)
+ " , r.bgt_kostenrubriek_key rubriek_key"
+ " , g.prs_kostensoortgrp_key groep_key"
+ " , -1 soort_key"
+ " , NULL opdracht_key"
+ " , NULL bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
@@ -103,6 +162,8 @@ switch (req_info)
+ " , r.bgt_kostenrubriek_key rubriek_key"
+ " , g.prs_kostensoortgrp_key groep_key"
+ " , s.prs_kostensoort_key soort_key"
+ " , NULL opdracht_key"
+ " , NULL bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , bgt_kostenrubriek r"
@@ -123,6 +184,8 @@ switch (req_info)
+ " , NULL rubriek_key"
+ " , NULL groep_key"
+ " , NULL soort_key"
+ " , NULL opdracht_key"
+ " , NULL bedrijf_key"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " , prs_kostenplaatsgrp g"
@@ -131,7 +194,8 @@ switch (req_info)
+ " AND p.bgt_project_key = g.bgt_project_key"
+ " AND g.prs_kostenplaatsgrp_key = s.prs_kostenplaatsgrp_key"
+ " AND s.prs_kostenplaats_verwijder IS NULL"
+ (init_key != -1 ? " AND s.prs_kostenplaats_key = " + init_key : "");
+ (parent_key != -1 ? " AND p.bgt_project_key = " + parent_key : "")
+ (init_key != -1 ? " AND s.prs_kostenplaats_key = " + init_key : "");
break;
}
}
@@ -142,7 +206,9 @@ switch (req_info)
"P": oRs("project_key").Value,
"R": oRs("rubriek_key").Value,
"G": oRs("groep_key").Value,
"S": oRs("soort_key").Value
"S": oRs("soort_key").Value,
"O": oRs("opdracht_key").Value,
"B": oRs("bedrijf_key").Value
}
}
oRs.Close();
@@ -156,7 +222,7 @@ switch (req_info)
case "D":
{
sql = "SELECT d.ins_discipline_key sel_key"
+ " , 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"
+ " , NULL btw_val"
+ " FROM ins_tab_discipline d"
@@ -170,7 +236,7 @@ switch (req_info)
case "P":
{
sql = "SELECT p.bgt_project_key sel_key"
+ " , p.bgt_project_code ||' '|| p.bgt_project_omschrijving sel_oms"
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving sel_oms"
+ " , (SELECT d1.ins_discipline_btw"
+ " FROM ins_tab_discipline d1"
+ " WHERE d1.ins_discipline_key = p.ins_discipline_key"
@@ -224,7 +290,7 @@ switch (req_info)
+ ") btw_val"
+ " FROM prs_kostensoort s"
+ " WHERE s.prs_kostensoortgrp_key = " + parent_key
+ ( sel_mode == "edit"
+ ( sel_mode == "budget_edit"
? " AND NOT EXISTS (SELECT '' FROM bgt_budget b WHERE b.prs_kostensoort_key = s.prs_kostensoort_key)"
: ""
);
@@ -242,6 +308,47 @@ switch (req_info)
+ " AND kg.bgt_project_key = " + parent_key;
break;
}
case "B":
{
sql = "SELECT DISTINCT"
+ " b.prs_bedrijf_key sel_key"
+ " , b.prs_leverancier_nr ||' - '|| b.prs_bedrijf_naam sel_oms"
+ " , NULL btw_inc"
+ " , NULL btw_val"
+ " FROM bgt_project p"
+ " , bgt_kostenrubriek r"
+ " , prs_kostensoortgrp g"
+ " , prs_kostensoort s"
+ " , mld_opdr o"
+ " , prs_bedrijf b"
+ " 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_uitvoerende_keys = b.prs_bedrijf_key"
+ " AND p.bgt_project_key = " + parent_key;
break;
}
case "O":
{
sql = "SELECT DISTINCT"
+ " o.mld_opdr_key sel_key"
+ " , o.mld_opdr_ordernr ||'/'|| mld_opdr_bedrijfopdr_volgnr ||' - '|| mld_opdr_omschrijving sel_oms"
+ " , NULL btw_inc"
+ " , NULL btw_val"
+ " 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_uitvoerende_keys = " + child_key
+ " AND p.bgt_project_key = " + parent_key;
break;
}
}
sql += " ORDER BY 2";
var new_lov = [];
@@ -292,6 +399,7 @@ switch (req_info)
+ " , bgt_project p"
+ " WHERE kp.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key"
+ " AND kg.bgt_project_key = p.bgt_project_key"
+ " AND kp.prs_kostenplaats_verwijder IS NULL"
+ " AND kg.bgt_project_key = " + parent_key;
}
}

View File

@@ -15,7 +15,7 @@
<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../api2/model_mld_opdr.inc" -->
<%
var kostensoort = getQParamInt("costtype", -1);
var project_key = getQParamInt("budgetproject", -1);
var this_model = new model_mld_opdr();
scaffolding(this_model,
{
@@ -31,6 +31,13 @@ scaffolding(this_model,
"company",
"additional"
],
"transit": [
"budgetdiscipline",
"budgetproject",
"budgetcostcategory",
"costtypegroup",
"costtype"
],
"requires": {
"js": ["../bgt/bgt_budget.js"]
}
@@ -50,7 +57,7 @@ scaffolding(this_model,
"additional"
],
"orderby": [
"ordernr",
"ordernr_sort",
"sequence",
"reference"
]

View File

@@ -375,7 +375,7 @@ function scaffolding_edit(model, scf_params)
delete model.fields[fld]; // Die is niet multi-edit enabled
continue;
}
if (field.hidden_fld || (field.readonly && !(key > 0) && !(xxx_data[fld].id > 0))) // Als het veld een waarde heeft deze wel tonen.
if (field.hidden_fld || (field.readonly && !(key > 0) && !(xxx_data[fld] && xxx_data[fld].id > 0))) // Als het veld een waarde heeft deze wel tonen.
{ // Eerst de hidden velden.
scf_RWHIDDENTR(model, fld, xxx_data[fld]);
}