FCLT-SUP#43507 Rubriek verplicht bij kostensoortgroepen
svn path=/Website/branches/v2017.2/; revision=35523
This commit is contained in:
@@ -35,8 +35,11 @@ function model_prs_kostensoort()
|
||||
this.record_title = L("prs_kostensoort");
|
||||
this.records_title = L("prs_kostensoort_m");
|
||||
|
||||
var fields_main = {};
|
||||
var fields_ext = {};
|
||||
|
||||
this.fields = {
|
||||
|
||||
fields_main = {
|
||||
"id": {
|
||||
"dbs": "prs_kostensoort_key",
|
||||
"label": L("lcl_key"),
|
||||
@@ -52,14 +55,11 @@ function model_prs_kostensoort()
|
||||
"required": true,
|
||||
//"insertonly" : true,
|
||||
"typ": "key",
|
||||
"foreign": {
|
||||
"tbl": "prs_kostensoortgrp",
|
||||
"key": "prs_kostensoortgrp_key",
|
||||
"desc": "prs_kostensoortgrp_oms"
|
||||
},
|
||||
"foreign": bgt_costtypegroup_foreign(),
|
||||
"LOVinit": "",
|
||||
"filter": "exact",
|
||||
"multiedit": true
|
||||
"multiedit": true,
|
||||
"showtransit": true
|
||||
},
|
||||
"name": {
|
||||
"dbs": "prs_kostensoort_oms",
|
||||
@@ -88,7 +88,6 @@ function model_prs_kostensoort()
|
||||
"typ": "varchar",
|
||||
"translate": true
|
||||
},
|
||||
|
||||
"charge": {
|
||||
"dbs": "prs_kostensoort_doorbelasten",
|
||||
"label": L("prs_kostensoort_doorbelasten"),
|
||||
@@ -123,6 +122,35 @@ function model_prs_kostensoort()
|
||||
|
||||
if (S("bgt_enabled")) // alleen voor budgetcontrole
|
||||
{
|
||||
// Via Admin moet de context discipline/project toegevoegd worden.
|
||||
fields_ext = {
|
||||
"budgetdiscipline": {
|
||||
"dbs": "bgt_project.ins_discipline_key",
|
||||
"label": L("bgt_discipline_omschrijving"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_budgetdiscipline_foreign(),
|
||||
"showtransit": true
|
||||
},
|
||||
"budgetproject": {
|
||||
"dbs": "bgt_project.bgt_project_key",
|
||||
"label": L("bgt_project_omschrijving"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_budgetproject_foreign(),
|
||||
"showtransit": true
|
||||
},
|
||||
"budgetcostcategory": {
|
||||
"dbs" : "bgt_kostenrubriek.bgt_kostenrubriek_key",
|
||||
"label": L("bgt_kostenrubriek"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_budgetcostcategory_foreign(),
|
||||
"showtransit": true
|
||||
}
|
||||
};
|
||||
this.fields = object_merge({}, fields_ext, fields_main);
|
||||
|
||||
delete this.fields.charge;
|
||||
delete this.fields.refcode;
|
||||
this.fields.inclvat.hidden_fld = true;
|
||||
@@ -135,6 +163,75 @@ function model_prs_kostensoort()
|
||||
}
|
||||
};
|
||||
// this.print = { xmlnode: "budget", where: "kostensoort"};
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
if ((obj.id > -1) || (obj.costtypegroup && obj.costtypegroup.id > -1))
|
||||
{
|
||||
this.fields.budgetdiscipline.hidden_fld = false;
|
||||
this.fields.budgetdiscipline.readonly = true;
|
||||
this.fields.budgetproject.hidden_fld = false;
|
||||
this.fields.budgetproject.readonly = true;
|
||||
this.fields.budgetcostcategory.hidden_fld = false;
|
||||
this.fields.budgetcostcategory.readonly = true;
|
||||
}
|
||||
|
||||
if (obj.costtypegroup && obj.costtypegroup.id != -1)
|
||||
{ // Nog even de parent gegevens erbij halen zodat deze readonly getoond worden.
|
||||
var sql = "SELECT p.ins_discipline_key"
|
||||
+ " , p.bgt_project_key"
|
||||
+ " , r.bgt_kostenrubriek_key"
|
||||
+ " , dp.bgt_disc_params_code ||' - '|| di.ins_discipline_omschrijving oms_disc"
|
||||
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving oms_proj"
|
||||
+ " , r.bgt_kostenrubriek_oms oms_rubr"
|
||||
+ " FROM bgt_disc_params dp"
|
||||
+ " , ins_tab_discipline di"
|
||||
+ " , bgt_project p"
|
||||
+ " , bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
+ " WHERE dp.bgt_ins_discipline_key = p.ins_discipline_key"
|
||||
+ " AND di.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 = " + obj.costtypegroup.id
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
obj.budgetdiscipline = {id:oRs("ins_discipline_key").Value, name: oRs("oms_disc").Value};
|
||||
obj.budgetproject = {id: oRs("bgt_project_key").Value, name: oRs("oms_proj").Value};
|
||||
obj.budgetcostcategory = {id: oRs("bgt_kostenrubriek_key").Value, name: oRs("oms_rubr").Value};
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
var prj_key = (obj.budgetproject ? obj.budgetproject.id : -1);
|
||||
fld["costcentre"].foreign.tbl = bgt_account_foreign_tbl(prj_key);
|
||||
fld["costcentre"].multiedit = false;
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
<% 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%>"; <% } %>
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, {
|
||||
"GET": {
|
||||
"tables": [
|
||||
"bgt_project",
|
||||
"bgt_kostenrubriek",
|
||||
"prs_kostensoortgrp"
|
||||
],
|
||||
"wheres": [
|
||||
"bgt_project.bgt_project_key = bgt_kostenrubriek.bgt_project_key",
|
||||
"bgt_kostenrubriek.bgt_kostenrubriek_key = prs_kostensoortgrp.bgt_kostenrubriek_key",
|
||||
"prs_kostensoortgrp.prs_kostensoortgrp_key = prs_kostensoort.prs_kostensoortgrp_key"
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -147,10 +244,8 @@ function model_prs_kostensoort()
|
||||
"multiadd": "group"
|
||||
}
|
||||
};
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
}
|
||||
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
Notes:
|
||||
*/
|
||||
%>
|
||||
<!-- #include file="../api2/model_bgt_budget.inc" -->
|
||||
<!-- #include file="../api2/model_prs_kostensoort.inc" -->
|
||||
<%
|
||||
|
||||
@@ -24,7 +25,11 @@ function model_prs_kostensoortgrp()
|
||||
this.record_title = L("prs_kostensoortgrp");
|
||||
this.records_title = L("prs_kostensoortgrp_m");
|
||||
|
||||
this.fields = {
|
||||
var fields_main = {};
|
||||
var fields_ext = {};
|
||||
|
||||
|
||||
fields_main = {
|
||||
"id": {
|
||||
"dbs": "prs_kostensoortgrp_key",
|
||||
"label": L("lcl_key"),
|
||||
@@ -38,13 +43,10 @@ function model_prs_kostensoortgrp()
|
||||
"dbs" : "bgt_kostenrubriek_key",
|
||||
"label": L("bgt_kostenrubriek"),
|
||||
"typ": "key",
|
||||
"required": true, /* TODO alleen als BGT */
|
||||
"required": true,
|
||||
"insertonly": true,
|
||||
"foreign": {
|
||||
"tbl": "bgt_kostenrubriek",
|
||||
"key": "bgt_kostenrubriek_key",
|
||||
"desc": "bgt_kostenrubriek_oms"
|
||||
}
|
||||
"foreign": bgt_budgetcostcategory_foreign(),
|
||||
"showtransit": true
|
||||
},
|
||||
"name": {
|
||||
"dbs": "prs_kostensoortgrp_oms",
|
||||
@@ -62,12 +64,93 @@ function model_prs_kostensoortgrp()
|
||||
}
|
||||
};
|
||||
|
||||
// if (S("bgt_enabled")) // alleen voor budgetcontrole
|
||||
// {
|
||||
// this.print = { xmlnode: "budget", where: "kostengroep"};
|
||||
// }
|
||||
if (S("bgt_enabled"))
|
||||
{
|
||||
// Via Admin moet de context discipline/project toegevoegd worden.
|
||||
fields_ext = {
|
||||
"budgetdiscipline": {
|
||||
"dbs": "bgt_project.ins_discipline_key",
|
||||
"label": L("bgt_discipline_omschrijving"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_budgetdiscipline_foreign(),
|
||||
"showtransit": true
|
||||
},
|
||||
"budgetproject": {
|
||||
"dbs": "bgt_project.bgt_project_key",
|
||||
"label": L("bgt_project_omschrijving"),
|
||||
"typ": "key",
|
||||
"required": true,
|
||||
"foreign": bgt_budgetproject_foreign(),
|
||||
"showtransit": true
|
||||
}
|
||||
};
|
||||
this.fields = object_merge({}, fields_ext, fields_main);
|
||||
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
|
||||
this.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
if ((obj.id > -1) || (obj.budgetcostcategory && obj.budgetcostcategory.id > -1))
|
||||
{
|
||||
this.fields.budgetdiscipline.hidden_fld = false;
|
||||
this.fields.budgetdiscipline.readonly = true;
|
||||
this.fields.budgetproject.hidden_fld = false;
|
||||
this.fields.budgetproject.readonly = true;
|
||||
}
|
||||
|
||||
if (obj.budgetcostcategory && obj.budgetcostcategory.id != -1)
|
||||
{ // Nog even de parent gegevens erbij halen zodat deze readonly getoond worden.
|
||||
var sql = "SELECT p.ins_discipline_key"
|
||||
+ " , p.bgt_project_key"
|
||||
+ " , r.bgt_kostenrubriek_key"
|
||||
+ " , dp.bgt_disc_params_code ||' - '|| di.ins_discipline_omschrijving oms_disc"
|
||||
+ " , p.bgt_project_code ||' - '|| p.bgt_project_omschrijving oms_proj"
|
||||
+ " FROM bgt_disc_params dp"
|
||||
+ " , ins_tab_discipline di"
|
||||
+ " , bgt_project p"
|
||||
+ " , bgt_kostenrubriek r"
|
||||
+ " WHERE dp.bgt_ins_discipline_key = p.ins_discipline_key"
|
||||
+ " AND di.ins_discipline_key = p.ins_discipline_key"
|
||||
+ " AND p.bgt_project_key = r.bgt_project_key"
|
||||
+ " AND r.bgt_kostenrubriek_key = " + obj.budgetcostcategory.id;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
obj.budgetdiscipline = {id:oRs("ins_discipline_key").Value, name: oRs("oms_disc").Value};
|
||||
obj.budgetproject = {id: oRs("bgt_project_key").Value, name: oRs("oms_proj").Value};
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
<% 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%>"; <% } %>
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
|
||||
this.REST_GET = generic_REST_GET(this, {
|
||||
"GET": {
|
||||
"tables": [
|
||||
"bgt_project",
|
||||
"bgt_kostenrubriek"
|
||||
],
|
||||
"wheres": [
|
||||
"bgt_kostenrubriek.bgt_kostenrubriek_key = prs_kostensoortgrp.bgt_kostenrubriek_key",
|
||||
"bgt_kostenrubriek.bgt_project_key = bgt_project.bgt_project_key"
|
||||
]
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
this.fields = fields_main;
|
||||
delete this.fields.budgetcostcategory;
|
||||
this.REST_GET = generic_REST_GET(this);
|
||||
}
|
||||
this.REST_POST = generic_REST_POST(this);
|
||||
this.REST_PUT = generic_REST_PUT(this);
|
||||
this.REST_DELETE = generic_REST_DELETE(this);
|
||||
|
||||
@@ -68,7 +68,7 @@ function init_budget()
|
||||
$.getJSON( "../bgt/get_bgt_info_ajax.asp",
|
||||
{ req_info: "initsearch",
|
||||
niveau: init_niveau,
|
||||
parent_key: v_budgetproject,
|
||||
parent_key: (v_budgetproject ? v_budgetproject : -1),
|
||||
init_key: init_key
|
||||
},
|
||||
re_init_plaats);
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
*/
|
||||
%>
|
||||
<%
|
||||
function object_merge(){
|
||||
for (var i=1; i<arguments.length; i++)
|
||||
for (var a in arguments[i])
|
||||
arguments[0][a] = arguments[i][a];
|
||||
return arguments[0];
|
||||
}
|
||||
|
||||
function bgt_budgetdiscipline_foreign()
|
||||
{
|
||||
return {
|
||||
|
||||
@@ -15,19 +15,33 @@
|
||||
<!-- #include file="../scf/scaffolding.inc" -->
|
||||
<!-- #include file="../api2/model_prs_kostensoort.inc" -->
|
||||
<%
|
||||
var discipline_key = getQParamInt("budgetdiscipline", -1);
|
||||
var project_key = getQParamInt("budgetproject", -1);
|
||||
var kostenrubriek_key = getQParamInt("budgetcostcategory", -1);
|
||||
var kostensoortgrp_key = getQParamInt("costtypegroup", -1);
|
||||
var kostensoort_key = getQParamInt("costtype", -1);
|
||||
var this_model = new model_prs_kostensoort();
|
||||
|
||||
var model_params = {
|
||||
"search": {
|
||||
"autosearch": true,
|
||||
"filters": [
|
||||
"budgetdiscipline",
|
||||
"budgetproject",
|
||||
"budgetcostcategory",
|
||||
"costtypegroup",
|
||||
"name",
|
||||
"remark",
|
||||
"altcode"
|
||||
]
|
||||
],
|
||||
"transit": [
|
||||
"budgetdiscipline",
|
||||
"budgetproject",
|
||||
"budgetcostcategory",
|
||||
"costtypegroup"
|
||||
],
|
||||
"requires": {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"columns": [
|
||||
@@ -36,34 +50,20 @@ var model_params = {
|
||||
"remark",
|
||||
"altcode"
|
||||
]
|
||||
},
|
||||
"edit": {
|
||||
"requires": {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (S("bgt_enabled"))
|
||||
{
|
||||
model_params.transit = { "costtypegroup": kostensoortgrp_key};
|
||||
model_params.wrap = {
|
||||
"no_default_frames": true,
|
||||
"frames": [ { url: "../bgt/bgt_budget.asp?mode=list&costtype={0}" } ]
|
||||
}
|
||||
|
||||
this_model.hook_pre_edit = function (obj, fld)
|
||||
{
|
||||
var v_kostensoort_key = (kostensoort_key > -1 ? kostensoort_key : obj.id);
|
||||
var sql = "SELECT DISTINCT r.bgt_project_key"
|
||||
+ " FROM bgt_kostenrubriek r"
|
||||
+ " , prs_kostensoortgrp g"
|
||||
+ " , prs_kostensoort s"
|
||||
+ " WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key"
|
||||
+ " AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key"
|
||||
+ (kostensoortgrp_key > -1 ? " AND g.prs_kostensoortgrp_key = " + kostensoortgrp_key : "")
|
||||
+ (v_kostensoort_key > -1 ? " AND s.prs_kostensoort_key = " + v_kostensoort_key : "");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var prj_key = (!oRs.eof ? oRs("bgt_project_key").Value : -1);
|
||||
oRs.Close();
|
||||
fld["costcentre"].foreign.tbl = bgt_account_foreign_tbl(prj_key);
|
||||
fld["costcentre"].multiedit = false;
|
||||
}
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -15,15 +15,27 @@
|
||||
<!-- #include file="../scf/scaffolding.inc" -->
|
||||
<!-- #include file="../api2/model_prs_kostensoortgrp.inc" -->
|
||||
<%
|
||||
var discipline_key = getQParamInt("budgetdiscipline", -1);
|
||||
var project_key = getQParamInt("budgetproject", -1);
|
||||
var kostenrubriek_key = getQParamInt("budgetcostcategory", -1);
|
||||
var this_model = new model_prs_kostensoortgrp();
|
||||
var model_params = {
|
||||
"search": {
|
||||
"autosearch": true,
|
||||
"filters": [
|
||||
"name",
|
||||
"budgetdiscipline",
|
||||
"budgetproject",
|
||||
"budgetcostcategory",
|
||||
"name"
|
||||
],
|
||||
"transit": [
|
||||
"budgetdiscipline",
|
||||
"budgetproject",
|
||||
"budgetcostcategory"
|
||||
]
|
||||
],
|
||||
"requires": {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
}
|
||||
},
|
||||
"list": {
|
||||
"columns": [
|
||||
@@ -32,6 +44,11 @@ var model_params = {
|
||||
"altcode"
|
||||
]
|
||||
},
|
||||
"edit": {
|
||||
"requires": {
|
||||
"js": ["../bgt/bgt_budget.js"]
|
||||
}
|
||||
},
|
||||
"wrap": {
|
||||
"frames": [{ url: "prs_kostensoort.asp?mode=list&costtypegroup={0}",
|
||||
autfunction: (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"])
|
||||
@@ -39,14 +56,5 @@ var model_params = {
|
||||
}
|
||||
};
|
||||
|
||||
if (S("bgt_enabled"))
|
||||
{
|
||||
model_params.transit = { "budgetcostcategory": kostenrubriek_key };
|
||||
}
|
||||
else
|
||||
{
|
||||
delete this_model.fields.budgetcostcategory;
|
||||
}
|
||||
|
||||
scaffolding(this_model, model_params);
|
||||
%>
|
||||
Reference in New Issue
Block a user