FCLT#55832 PDA reserveer voorzieningen rechten scope verbreed

svn path=/Website/trunk/; revision=41105
This commit is contained in:
2019-02-21 16:14:31 +00:00
parent 067b52c6e0
commit deace0a482

View File

@@ -2089,7 +2089,7 @@ function get_res_deel_sql (params)
function getScopedResDeelSql(params)
{
params = params || {};
params = params || {};
params.reg_key = params.reg_key || -1;
params.dist_key = params.dist_key || -1;
params.loc_key = params.loc_key || -1;
@@ -2122,55 +2122,26 @@ function getScopedResDeelSql(params)
}
// res_deel without alg scope
var res_d = "SELECT ds.* "
+ " FROM res_v_deelscope ds "
+ " WHERE ds.res_deel_alg_level = -1 ";
// res_deel scoped for alg parents
var res_d_arr = [];
if (alg_level != -1)
{
switch (alg_level)
{ // note: no break -> multi switch
case 5: res_d_arr.push("ds.alg_ruimte_key = aob.alg_ruimte_key");
case 4: res_d_arr.push("ds.alg_verdieping_key = aob.alg_verdieping_key");
case 3: res_d_arr.push("ds.alg_gebouw_key = aob.alg_gebouw_key");
case 2: res_d_arr.push("ds.alg_locatie_key = aob.alg_locatie_key");
case 1: res_d_arr.push("ds.alg_district_key = aob.alg_district_key");
case 0: res_d_arr.push("ds.alg_regio_key = aob.alg_regio_key");
}
res_d += "UNION ALL "
+ "SELECT ds.* "
+ " FROM res_v_deelscope ds "
+ " , (SELECT * "
+ " FROM alg_v_onrgoed_boom aob "
+ " WHERE aob." + alg_filter
+ " AND ROWNUM = 1) aob "
+ " WHERE (" + res_d_arr.join(" OR ") + ")"
+ " AND ds.res_deel_alg_level <= " + alg_level;
}
// res_deel scoped for underlying alg level
if (alg_level > -1 && alg_level < 5) // no underlying alg_scope after 5
{
res_d_arr = [];
var temp_sql = "ds.res_deel_alg_level = {0} AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE {1} AND aob." + alg_filter + ")";
switch (alg_level)
{ // note: no break -> multi switch
case 0: res_d_arr.push(temp_sql.format("1", "ds.alg_district_key = aob.alg_district_key"));
case 1: res_d_arr.push(temp_sql.format("2", "ds.alg_locatie_key = aob.alg_locatie_key"));
case 2: res_d_arr.push(temp_sql.format("3", "ds.alg_gebouw_key = aob.alg_gebouw_key"));
case 3: res_d_arr.push(temp_sql.format("4", "ds.alg_verdieping_key = aob.alg_verdieping_key"));
case 4: res_d_arr.push(temp_sql.format("5", "ds.alg_ruimte_key = aob.alg_ruimte_key"));
}
res_d += " UNION ALL "
+ "SELECT ds.* "
+ " FROM res_v_deelscope ds "
+ " WHERE ds.res_deel_alg_level > " + alg_level
+ " AND (" + res_d_arr.join(" OR ") + ")";
}
var res_d = "SELECT ds.res_deel_key"
+ " , ds.res_deel_alg_level"
+ " , aob.alg_regio_key "
+ " , aob.alg_district_key "
+ " , aob.alg_locatie_key "
+ " , aob.alg_gebouw_key "
+ " , aob.alg_verdieping_key "
+ " , ds.alg_ruimte_key "
+ " FROM (SELECT r2.* "
+ " FROM res_deel r1, res_v_deelscope r2 "
+ " WHERE r1.res_deel_key = r2.res_deel_key"
+ " AND r1.res_deel_verwijder IS NULL) ds "
+ " , alg_v_onrgoed_boom aob"
+ " WHERE ds.res_deel_alg_level = -1"
+ " OR ds.alg_ruimte_key = aob.alg_ruimte_key"
+ " OR ds.alg_verdieping_key = aob.alg_verdieping_key"
+ " OR ds.alg_gebouw_key = aob.alg_gebouw_key"
+ " OR ds.alg_locatie_key = aob.alg_locatie_key"
+ " OR ds.alg_district_key = aob.alg_district_key"
+ " OR ds.alg_regio_key = aob.alg_regio_key";
// end res_d (res_deel_alg scoping)
var sql1 = "SELECT " + params.select_fields
@@ -2197,7 +2168,7 @@ function getScopedResDeelSql(params)
"resd.alg_locatie_key",
"resd.alg_gebouw_key",
"resd.alg_verdieping_key",
"resd.alg_ruimte_key",
"", // Niet ondersteund FSN#26495
params.autfunction,
typeof params.sdisc == "number"? params.sdisc : '',
"", // forwrite