MNNL#37255 filtert plaatsselector nu ook op de ruimtes waarin het (optioneel) verplichte object staat

svn path=/Website/trunk/; revision=32933
This commit is contained in:
2017-02-24 10:01:37 +00:00
parent 883c59b373
commit 00d153d85e
6 changed files with 85 additions and 6 deletions

View File

@@ -421,7 +421,6 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
autfunction = params.autfunction;
this_mld = params.this_mld;
mld_melding = params.mld_melding;
mld_melding = params.mld_melding;
frontend = params.frontend;
BLOCK_START("mldAlg", L("lcl_plaatsgegevens"));
FCLTplaatsselector(this_mld.authparams(autfunction) && this_mld.authparams(autfunction).ALGwritelevel,
@@ -443,7 +442,8 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
eindlevel: (mld_melding.alg_level ? mld_melding.alg_level : 2), // Minimaal Locatie
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",
requiredlevel: 2
requiredlevel: 2,
urlAdd: [{urlParam: "stdm_key", field: "stdm"}]
}); // minstens locatie
BLOCK_END();
}

View File

@@ -33,8 +33,9 @@ var lockey = getQParamInt("lockey", -1);
var filtcode = getQParam("filtcode", "");
var terrein = getQParamInt("terrein", 0) == 1;
var act_key = getQParamInt("act_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var params = {};
var params = { stdm_key: stdm_key };
if (filtcode == "PRK")
{
var date_from = getQParamDate("date_from", new Date());

View File

@@ -31,8 +31,9 @@ var diskey = getQParamInt("diskey", "-1");
var filtcode = getQParam("filtcode", "");
var extracode = getQParam("extraCode", "");
var act_key = getQParamInt("act_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var params = { act_key: act_key };
var params = { act_key: act_key, stdm_key: stdm_key };
chars = chars.replace(/\*/g,"%");

View File

@@ -35,8 +35,9 @@ var gebkey = getQParamInt("gebkey", -1);
var verkey = getQParamInt("verkey", -1);
var filtcode = getQParam("filtcode", "");
var act_key = getQParamInt("act_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var params = { act_key: act_key };
var params = { act_key: act_key, stdm_key: stdm_key };
chars = chars.replace(/\*/g,"%");

View File

@@ -32,8 +32,9 @@ var lockey = getQParamInt("lockey", "-1");
var gebkey = getQParamInt("gebkey", "-1");
var filtcode = getQParam("filtcode", "");
var act_key = getQParamInt("act_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var params = { act_key: act_key };
var params = { act_key: act_key, stdm_key: stdm_key };
chars = chars.replace(/\*/g,"%");

View File

@@ -226,6 +226,9 @@ function getFiltClauseLocatie(pfiltcode, params)
break;
}
}
if (params.stdm_key > 0)
lfiltClause.where += get_rel_obj_filter(params.stdm_key, 2);
return lfiltClause;
}
@@ -314,6 +317,9 @@ function getFiltClauseGebouw(pfiltcode, params)
break;
}
}
if (params.stdm_key > 0)
lfiltClause.where += get_rel_obj_filter(params.stdm_key, 3);
return lfiltClause;
}
@@ -397,11 +403,15 @@ function getFiltClauseVerdieping(pfiltcode, params)
break;
}
}
if (params.stdm_key > 0)
lfiltClause.where += get_rel_obj_filter(params.stdm_key, 4);
return lfiltClause;
}
function getFiltClauseRuimte(pfiltcode, params)
{
params = params || {};
var lfiltClause = {from: "", where: ""};
// Facilitair relevant hebben we vaker nodig
var lfiltClauseFAC = " AND EXISTS"
@@ -473,6 +483,9 @@ function getFiltClauseRuimte(pfiltcode, params)
if (pfiltcode != "INCVR") { // include virtual rooms, default these are NOT included
lfiltClause.where = lfiltClause.where + " AND alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' ";
}
if (params.stdm_key > 0)
lfiltClause.where += get_rel_obj_filter(params.stdm_key, 5);
return lfiltClause;
}
@@ -499,6 +512,68 @@ function getFiltClauseWerkplek(pfiltcode, params)
return lfiltClause;
}
function get_rel_obj_filter(stdm_key, level)
{
var sql = "SELECT ins_srtinst_key,"
+ " ins_srtinst_niveau,"
+ " ins_srtinst_verplicht"
+ " FROM mld_stdmelding"
+ " WHERE mld_stdmelding_key = " + stdm_key;
var oRs = Oracle.Execute(sql);
var rel_obj_filter = "";
var filter_table = "";
if (oRs("ins_srtinst_verplicht").value == 1)
{
var ins_srtinst_key = oRs("ins_srtinst_key").value;
var ins_srtinst_niveau = oRs("ins_srtinst_niveau").value;
var ins_srtdeel_keys = "";
switch (ins_srtinst_niveau)
{
// Soort
case "S": ins_srtdeel_keys = "= " + ins_srtinst_key;
break;
// Groep
case "G": ins_srtdeel_keys = "IN (SELECT ins_srtdeel_key FROM ins_srtdeel WHERE ins_srtgroep_key = " + ins_srtinst_key + ")";
break;
// Discipline
case "D": ins_srtdeel_keys = "IN (SELECT ins_srtdeel_key FROM ins_srtdeel WHERE ins_srtgroep_key IN"
+ " (SELECT ins_srtgroep_key FROM ins_srtgroep WHERE ins_discipline_key = " + ins_srtinst_key + "))";
break;
// Komt niet voor ?
default: ins_srtdeel_keys = "= " + ins_srtinst_key;
break;
}
switch (level)
{
case 5: filter_table = " AND ao.alg_ruimte_key = r.alg_ruimte_key";
break;
case 4: filter_table = " AND ao.alg_verdieping_key = v.alg_verdieping_key";
break;
case 3: filter_table = " AND ao.alg_gebouw_key = g.alg_gebouw_key";
break;
case 2: filter_table = " AND ao.alg_locatie_key = l.alg_locatie_key";
break;
}
if (!oRs.eof && filter_table != "")
{
rel_obj_filter = " AND EXISTS"
+ " (SELECT 'x'"
+ " FROM alg_v_allonroerendgoed ao"
+ " WHERE ao.alg_ruimte_key IN (SELECT ins_alg_ruimte_key"
+ " FROM ins_deel"
+ " WHERE ins_srtdeel_key " + ins_srtdeel_keys + ")"
+ " AND ao.alg_type = 'R'"
+ filter_table + ")";
}
}
oRs.close();
return rel_obj_filter;
}
function get_res_bezorgfilter(params, level)
{
params = params || {};