FCLT#41463 Scaffolding stdmelding en kostenplaats beheerscherm

svn path=/Website/trunk/; revision=35610
This commit is contained in:
Erik Groener
2017-10-09 13:05:45 +00:00
parent f0786b3f39
commit 07aea0317b
5 changed files with 126 additions and 37 deletions

View File

@@ -12,6 +12,7 @@
*/
%>
<!-- #include file="../bgt/bgt_tools.inc" -->
<!-- #include file="../mgt/mgt_tools.inc" -->
<%
function model_prs_kostenplaats()
@@ -21,8 +22,8 @@ function model_prs_kostenplaats()
this.table = "prs_kostenplaats";
this.primary = "prs_kostenplaats_key";
this.autfunction = (S("bgt_enabled")==1 ? ["WEB_FINMSU", "WEB_BGTMGT"] : ["WEB_FINMSU"]);
this.record_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats") : L("lcl_account"));
this.records_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats_m") : L("lcl_menu_fin_kostenplaatsen"));
this.record_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats") : L("prs_kostenplaats"));
this.records_title = (S("bgt_enabled")==1 ? L("bgt_kostenplaats_m") : L("prs_kostenplaats_m"));
this.soft_delete = "prs_kostenplaats_verwijder";
this.fields = {
@@ -67,6 +68,16 @@ function model_prs_kostenplaats()
"required": true,
"filter": "like"
},
"module": {
"dbs": "prs_kostenplaats_module",
"label": L("lcl_prs_type"),
"typ": "varchar",
"LOV": "ALG;" + L("lcl_prs_kosttype_alg")
+ ";PRJ;" + L("lcl_prs_kosttype_prj")
+ ";PRS;" + L("lcl_prs_kosttype_prs"),
"hidden_fld": true,
"defaultvalue": "PRJ"
},
"description": {
"dbs": "prs_kostenplaats_omschrijving",
"label": L("lcl_prs_descr"),
@@ -75,35 +86,12 @@ function model_prs_kostenplaats()
"required": true,
"filter": "like"
},
"begin": {
"dbs": "prs_kostenplaats_begin",
"label": "Startdatum", // L("lcl_start_date"),
"typ": "date"
},
"end": {
"dbs": "prs_kostenplaats_eind",
"label": L("lcl_end_date"),
"typ": "date"
},
"person": {
"dbs": "prs_perslid_key",
"label": L("lcl_prs_budgethouder"),
"typ": "key",
"foreign" : "prs_perslid"
},
"costlimit": {
"dbs": "prs_kostenplaats_limiet",
"label": L("lcl_prs_limiet"),
"typ": "number"
},
"limitperiod": {
"dbs": "prs_kostenplaats_limietperiode",
"label": L("lcl_prs_budgetperiode"),
"typ": "number",
"LOV": "0;" + L("lcl_prs_none") +
";1;" + L("lcl_prs_month") +
";2;" + L("lcl_prs_year")
},
"external": {
"dbs": "prs_kostenplaats_extern",
"label": L("lcl_prs_kpnextern"),
@@ -114,12 +102,28 @@ function model_prs_kostenplaats()
"label": L("lcl_prs_kpnfiat"),
"typ": "check0"
},
"module": {
"dbs": "prs_kostenplaats_module",
"label": L("bgt_discipline_module"),
"typ": "varchar",
"hidden_fld": true,
"defaultvalue": "PRJ"
"begin": {
"dbs": "prs_kostenplaats_begin",
"label": "Startdatum", // L("lcl_start_date"),
"typ": "date"
},
"end": {
"dbs": "prs_kostenplaats_eind",
"label": L("lcl_end_date"),
"typ": "date"
},
"costlimit": {
"dbs": "prs_kostenplaats_limiet",
"label": L("lcl_prs_budget") + "&nbsp;(" + L("lcl_valutasign")+")",
"typ": "number"
},
"limitperiod": {
"dbs": "prs_kostenplaats_limietperiode",
"label": L("lcl_prs_budgetperiode"),
"typ": "number",
"LOV": "0;" + L("lcl_prs_none") +
";1;" + L("lcl_prs_month") +
";2;" + L("lcl_prs_year")
}
};
@@ -200,7 +204,56 @@ function model_prs_kostenplaats()
}
else
{
delete this.fields.budgetdiscipline;
delete this.fields.budgetproject;
delete this.fields.begin;
delete this.fields.module.hidden_fld;
delete this.fields.module.defaultvalue;
this.hook_pre_edit = function (obj, fld)
{
var sql = "SELECT kp.prs_kostenplaats_limietperiode"
+ " , kpg.prs_kostenplaatsgrp_limperiode"
+ " , kpg.prs_perslid_key"
+ " FROM prs_kostenplaats kp"
+ " , prs_kostenplaatsgrp kpg"
+ " WHERE kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)"
+ " AND kp.prs_kostenplaats_key = " + obj.id;
var oRs = Oracle.Execute(sql);
var kpngrp_prs_key = oRs("prs_perslid_key").Value? oRs("prs_perslid_key").Value : -1;
var kpg_limperiode = oRs("prs_kostenplaatsgrp_limperiode").Value ? oRs("prs_kostenplaatsgrp_limperiode").Value : 0;
var kpn_limietperiode = kpg_limperiode ? kpg_limperiode : (oRs("prs_kostenplaats_limietperiode").Value ? oRs("prs_kostenplaats_limietperiode").Value : 0);
oRs.Close();
// Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}.
// WEB_FINMSU rechten of budgethouder.
var authparams = user.checkAutorisation("WEB_FINMSU", true);
var canChangeAlg = (authparams && authparams.ALGwritelevel < 9);
var canChange = (canChangeAlg ||
(S("prs_restrict_kpedit") == 1 && (obj.person == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
user.auth_required_or_abort(canChange);
fld.name.readonly = !canChangeAlg;
fld.module.readonly = !canChangeAlg;
fld.description.readonly = !canChangeAlg;
fld.person.readonly = !canChangeAlg;
fld.costgroup.readonly = !canChangeAlg;
fld.external.readonly = !canChangeAlg;
fld.approval.readonly = !canChangeAlg;
fld.end.readonly = !canChangeAlg;
fld.limitperiod.readonly = kpg_limperiode;
%>
<script type="text/javascript">
// Deze variabelen zijn nodig in prs_kostenplaats.js
var p_kpn_limietperiode = <%=kpn_limietperiode%>;
</script>
<%
}
this.REST_GET = generic_REST_GET(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
}
%>

View File

@@ -128,9 +128,11 @@ function bgt_accountgroup_foreign()
return {
"tbl": "(SELECT prs_kostenplaatsgrp_key"
+ " , prs_kostenplaatsgrp_nr ||' - '|| prs_kostenplaatsgrp_oms oms"
+ " , COALESCE(prs_kostenplaatsgrp_limperiode, 0) prs_kostenplaatsgrp_limperiode"
+ " FROM prs_kostenplaatsgrp)",
"key": "prs_kostenplaatsgrp_key",
"desc": "oms"
"desc": "oms",
"extravalue": "prs_kostenplaatsgrp_limperiode"
};
}

View File

@@ -17,8 +17,9 @@
<%
var this_model = new model_prs_kostenplaats();
scaffolding(this_model,
{
if (S("bgt_enabled"))
{
var model_params = {
"search": {
"filters": [
"name",
@@ -51,5 +52,35 @@ scaffolding(this_model,
"js": ["../bgt/bgt_budget.js"]
}
}
});
}
}
else
{
var model_params = {
"search": {
"filters": [
"name",
"description",
"person",
"costcentregroup",
"costgroup"
]
},
"list": {
"columns": [
"name",
"description",
"person",
"costcentregroup"
]
},
"edit": {
"requires": {
"js": ["../mgt/prs_kostenplaats.js"]
}
}
}
};
scaffolding(this_model, model_params);
%>

View File

@@ -21,6 +21,7 @@ DOCTYPE_Disable = true;
<%
// Maak een limietperiode selector lijst.
var fld = getFParam("fld", "kpn_limietperiode");
var kpn_limietperiode = getFParamInt("kpn_limietperiode", 0);
var readonly = (getFParamInt("readonly", 0) == 1);
@@ -28,7 +29,7 @@ var sql = "SELECT 0, " + safe.quoted_sql(L("lcl_prs_none")) + " FROM DUA
+ " UNION SELECT 1, " + safe.quoted_sql(L("lcl_prs_per_month")) + " FROM DUAL"
+ " UNION SELECT 2, " + safe.quoted_sql(L("lcl_prs_annual")) + " FROM DUAL";
FCLTselector("kpn_limietperiode",
FCLTselector(fld,
sql,
{ initKey: kpn_limietperiode,
readonly: readonly

View File

@@ -443,6 +443,7 @@ function scf_RWFIELDTR(model, fld, val, key, params)
{
var sql = "SELECT " + foreign.key
+ " , " + foreign.desc
+ (foreign.extravalue ? ", " + foreign.extravalue : "")
+ " FROM " + foreign.tbl + " " + (foreign.alias||"")
+ (foreign.where?" WHERE " + foreign.where:"")
+ " ORDER BY 2";
@@ -468,7 +469,8 @@ function scf_RWFIELDTR(model, fld, val, key, params)
required: params.required,
multi: canmultiadd,
size: 5,
whenEmpty: params.search ? L("lcl_search_generic") : null
whenEmpty: params.search ? L("lcl_search_generic") : null,
extraParamValue: (foreign.extravalue ? foreign.extravalue : null)
});
}
}