HSLE#36221 Invulscherm bij cateringbestelling alleen bepaalde ruimtetypen tonen.
svn path=/Website/trunk/; revision=33863
This commit is contained in:
@@ -21,13 +21,6 @@
|
||||
*/ %>
|
||||
|
||||
<%
|
||||
// Deze slaan we bij RESA en RESB over.
|
||||
var not_reserveerbare_ruimte = " AND NOT EXISTS "
|
||||
+ " (SELECT '' "
|
||||
+ " FROM res_alg_ruimte rar"
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
||||
+ " AND rar.alg_ruimte_key = r.alg_ruimte_key)";
|
||||
|
||||
function getFiltClauseRegio(pfiltcode, params)
|
||||
{
|
||||
var lfiltClause = "";
|
||||
@@ -147,18 +140,31 @@ function getFiltClauseLocatie(pfiltcode, params)
|
||||
case "RESB": // Bezorgplaats voor voorzieningen, d.i. locatie met ruimtes zonder louter reserveerbare ruimten
|
||||
var loc_scope_act_filter = get_loc_scope_act_filter(params, 2)
|
||||
lfiltClause.from = loc_scope_act_filter.from;
|
||||
lfiltClause.where = " AND EXISTS"
|
||||
+ " (SELECT '' "
|
||||
+ " FROM alg_ruimte r, alg_verdieping vv, alg_gebouw gg "
|
||||
+ " WHERE r.alg_ruimte_verwijder IS NULL "
|
||||
+ " AND r.alg_verdieping_key = vv.alg_verdieping_key "
|
||||
lfiltClause.where = " AND l.alg_locatie_key IN"
|
||||
+ " (SELECT b.alg_locatie_key"
|
||||
+ " FROM alg_v_onrgoed_boom b"
|
||||
+ " WHERE ( b.alg_locatie_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'L' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_gebouw_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'G' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_verdieping_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'V' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_ruimte_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'R' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " )"
|
||||
+ get_not_reserveerbare_ruimte("b")
|
||||
+ " UNION"
|
||||
+ " SELECT ll.alg_locatie_key"
|
||||
+ " FROM alg_ruimte rr"
|
||||
+ " , alg_verdieping vv"
|
||||
+ " , alg_gebouw gg"
|
||||
+ " , alg_locatie ll "
|
||||
+ " WHERE rr.alg_ruimte_verwijder IS NULL "
|
||||
+ " AND rr.alg_verdieping_key = vv.alg_verdieping_key "
|
||||
+ " AND vv.alg_gebouw_key = gg.alg_gebouw_key "
|
||||
+ " AND gg.alg_locatie_key = l.alg_locatie_key"
|
||||
+ not_reserveerbare_ruimte
|
||||
+ ")"
|
||||
+ " AND gg.alg_locatie_key = ll.alg_locatie_key"
|
||||
+ get_not_reserveerbare_ruimte("rr")
|
||||
+ get_res_bezorgfilter(params, 2);
|
||||
+ " )"
|
||||
+ loc_scope_act_filter.where;
|
||||
lfiltClause.where += get_res_bezorgfilter(params, 2);
|
||||
lfiltClause.where += lfiltClauseFAC; // Ook dat nog
|
||||
|
||||
break;
|
||||
|
||||
case "RES": // Locatie met minstens reserveerbare ruimte, en FAC bovendien
|
||||
@@ -192,7 +198,7 @@ function getFiltClauseLocatie(pfiltcode, params)
|
||||
+ " AND rso.res_srtartikel_og_verwijder IS NULL"
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ get_res_afhaalfilter(params)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ " UNION"
|
||||
+ " SELECT g.alg_locatie_key "
|
||||
+ " FROM res_v_aanwezigdeel, ins_deel, alg_ruimte r, alg_verdieping v, alg_gebouw g"
|
||||
@@ -202,7 +208,7 @@ function getFiltClauseLocatie(pfiltcode, params)
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ get_res_afhaalfilter(params, true)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ ")";
|
||||
break;
|
||||
|
||||
@@ -259,17 +265,33 @@ function getFiltClauseGebouw(pfiltcode, params)
|
||||
case "RESB": // Bezorgplaats voor voorzieningen, d.i. gebouwen met ruimten excl. reserveerbare ruimten
|
||||
var loc_scope_act_filter = get_loc_scope_act_filter(params, 3)
|
||||
lfiltClause.from = loc_scope_act_filter.from;
|
||||
lfiltClause.where = " AND EXISTS"
|
||||
+ " (SELECT '' "
|
||||
+ " FROM alg_ruimte r, alg_verdieping vv"
|
||||
+ " WHERE r.alg_ruimte_verwijder IS NULL "
|
||||
+ " AND r.alg_verdieping_key = vv.alg_verdieping_key "
|
||||
+ " AND vv.alg_gebouw_key = g.alg_gebouw_key "
|
||||
+ not_reserveerbare_ruimte
|
||||
+ ")"
|
||||
lfiltClause.where = " AND g.alg_gebouw_key IN"
|
||||
+ " (SELECT b.alg_gebouw_key"
|
||||
+ " FROM alg_v_onrgoed_boom b"
|
||||
+ " WHERE ( b.alg_locatie_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'L' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_gebouw_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'G' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_verdieping_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'V' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_ruimte_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'R' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " )"
|
||||
+ get_not_reserveerbare_ruimte("b")
|
||||
+ " UNION"
|
||||
+ " SELECT gg.alg_gebouw_key"
|
||||
+ " FROM alg_ruimte rr"
|
||||
+ " , alg_verdieping vv"
|
||||
+ " , alg_gebouw gg"
|
||||
+ " , alg_locatie ll"
|
||||
+ " WHERE rr.alg_ruimte_verwijder IS NULL"
|
||||
+ " AND rr.alg_verdieping_key = vv.alg_verdieping_key"
|
||||
+ " AND vv.alg_gebouw_key = gg.alg_gebouw_key"
|
||||
+ " AND gg.alg_locatie_key = ll.alg_locatie_key"
|
||||
+ get_not_reserveerbare_ruimte("rr")
|
||||
+ get_res_bezorgfilter(params, 3);
|
||||
+ " )"
|
||||
+ loc_scope_act_filter.where;
|
||||
lfiltClause.where += get_res_bezorgfilter(params, 3);
|
||||
lfiltClause.where += lfiltClauseFAC; // Ook dat nog
|
||||
|
||||
|
||||
|
||||
break;
|
||||
case "RESA": // RES Afhaal: 'thuishaven' objecten en catering die een ruimte-scope heeft
|
||||
lfiltClause.where = " AND g.alg_gebouw_key IN"
|
||||
@@ -280,7 +302,7 @@ function getFiltClauseGebouw(pfiltcode, params)
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ " AND rso.res_srtartikel_og_verwijder IS NULL"
|
||||
+ get_res_afhaalfilter(params)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ " UNION"
|
||||
+ " SELECT v.alg_gebouw_key "
|
||||
+ " FROM res_v_aanwezigdeel, ins_deel, alg_ruimte r, alg_verdieping v"
|
||||
@@ -289,7 +311,7 @@ function getFiltClauseGebouw(pfiltcode, params)
|
||||
+ " AND COALESCE(ins_alg_ruimte_key_org, ins_alg_ruimte_key) = r.alg_ruimte_key"
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ get_res_afhaalfilter(params, true)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ ")";
|
||||
break;
|
||||
|
||||
@@ -363,15 +385,29 @@ function getFiltClauseVerdieping(pfiltcode, params)
|
||||
case "RESB": // Bezorgplaats voor voorzieningen, d.i. verdieping met ruimte excl. reserveerbare ruimten
|
||||
var loc_scope_act_filter = get_loc_scope_act_filter(params, 4)
|
||||
lfiltClause.from = loc_scope_act_filter.from;
|
||||
lfiltClause.where = " AND EXISTS"
|
||||
+ " (SELECT '' "
|
||||
+ " FROM alg_ruimte r"
|
||||
+ " WHERE r.alg_ruimte_verwijder IS NULL "
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key "
|
||||
+ not_reserveerbare_ruimte
|
||||
+ ")"
|
||||
lfiltClause.where = " AND v.alg_verdieping_key IN"
|
||||
+ " (SELECT b.alg_verdieping_key"
|
||||
+ " FROM alg_v_onrgoed_boom b"
|
||||
+ " WHERE ( b.alg_locatie_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'L' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_gebouw_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'G' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_verdieping_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'V' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_ruimte_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'R' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " )"
|
||||
+ get_not_reserveerbare_ruimte("b")
|
||||
+ " UNION"
|
||||
+ " SELECT vv.alg_verdieping_key"
|
||||
+ " FROM alg_ruimte rr"
|
||||
+ " , alg_verdieping vv"
|
||||
+ " , alg_gebouw gg"
|
||||
+ " , alg_locatie ll"
|
||||
+ " WHERE rr.alg_ruimte_verwijder IS NULL"
|
||||
+ " AND rr.alg_verdieping_key = vv.alg_verdieping_key"
|
||||
+ " AND vv.alg_gebouw_key = gg.alg_gebouw_key"
|
||||
+ " AND gg.alg_locatie_key = ll.alg_locatie_key"
|
||||
+ get_not_reserveerbare_ruimte("rr")
|
||||
+ get_res_bezorgfilter(params, 4);
|
||||
+ " )"
|
||||
+ loc_scope_act_filter.where;
|
||||
lfiltClause.where += get_res_bezorgfilter(params, 4);
|
||||
lfiltClause.where += lfiltClauseFAC; // Ook dat nog
|
||||
break;
|
||||
|
||||
@@ -383,7 +419,7 @@ function getFiltClauseVerdieping(pfiltcode, params)
|
||||
+ " AND rso.alg_onrgoed_key = r.alg_ruimte_key"
|
||||
+ " AND rso.res_srtartikel_og_verwijder IS NULL"
|
||||
+ get_res_afhaalfilter(params)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ " UNION"
|
||||
+ " SELECT r.alg_verdieping_key "
|
||||
+ " FROM res_v_aanwezigdeel, ins_deel, alg_ruimte r"
|
||||
@@ -391,7 +427,7 @@ function getFiltClauseVerdieping(pfiltcode, params)
|
||||
+ " AND COALESCE(ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'R'"
|
||||
+ " AND COALESCE(ins_alg_ruimte_key_org, ins_alg_ruimte_key) = r.alg_ruimte_key"
|
||||
+ get_res_afhaalfilter(params, true)
|
||||
+ not_reserveerbare_ruimte
|
||||
+ get_not_reserveerbare_ruimte()
|
||||
+ ")";
|
||||
break;
|
||||
|
||||
@@ -457,10 +493,30 @@ function getFiltClauseRuimte(pfiltcode, params)
|
||||
case "RESB": // Bezorgplaats voor voorzieningen, d.i. zonder de reserveerbare ruimten
|
||||
var loc_scope_act_filter = get_loc_scope_act_filter(params, 5)
|
||||
lfiltClause.from = loc_scope_act_filter.from;
|
||||
lfiltClause.where = not_reserveerbare_ruimte
|
||||
+ get_res_bezorgfilter(params, 5)
|
||||
+ loc_scope_act_filter.where
|
||||
+ lfiltClauseFAC; // Ook dat nog
|
||||
lfiltClause.where = " AND r.alg_ruimte_key IN"
|
||||
+ " (SELECT b.alg_ruimte_key"
|
||||
+ " FROM alg_v_onrgoed_boom b"
|
||||
+ " WHERE ( b.alg_locatie_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'L' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_gebouw_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'G' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_verdieping_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'V' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " OR b.alg_ruimte_key IN (SELECT alg_onrgoed_key FROM res_srtartikel_onrgoed WHERE alg_onrgoed_niveau = 'R' AND res_srtartikel_og_verwijder IS NULL)"
|
||||
+ " )"
|
||||
+ get_not_reserveerbare_ruimte("b")
|
||||
+ " UNION"
|
||||
+ " SELECT rr.alg_ruimte_key"
|
||||
+ " FROM alg_ruimte rr"
|
||||
+ " , alg_verdieping vv"
|
||||
+ " , alg_gebouw gg"
|
||||
+ " , alg_locatie ll"
|
||||
+ " WHERE rr.alg_ruimte_verwijder IS NULL"
|
||||
+ " AND rr.alg_verdieping_key = vv.alg_verdieping_key"
|
||||
+ " AND vv.alg_gebouw_key = gg.alg_gebouw_key"
|
||||
+ " AND gg.alg_locatie_key = ll.alg_locatie_key"
|
||||
+ get_not_reserveerbare_ruimte("rr")
|
||||
+ get_res_bezorgfilter(params, 5);
|
||||
+ " )"
|
||||
+ loc_scope_act_filter.where;
|
||||
lfiltClause.where += lfiltClauseFAC; // Ook dat nog
|
||||
break;
|
||||
|
||||
case "RESA": // RES Afhaal: 'thuishaven' objecten en catering die een ruimte-scope heeft
|
||||
@@ -477,7 +533,7 @@ function getFiltClauseRuimte(pfiltcode, params)
|
||||
+ " AND COALESCE(ins_alg_ruimte_type_org, ins_alg_ruimte_type) = 'R'"
|
||||
+ get_res_afhaalfilter(params, true)
|
||||
+ ")"
|
||||
+ not_reserveerbare_ruimte;
|
||||
+ get_not_reserveerbare_ruimte();
|
||||
break;
|
||||
|
||||
case "EXP": lfiltClause.where = lfiltClauseEXP;
|
||||
@@ -584,55 +640,76 @@ function get_rel_obj_filter(stdm_key, level)
|
||||
return rel_obj_filter;
|
||||
}
|
||||
|
||||
function get_not_reserveerbare_ruimte(alias)
|
||||
{
|
||||
// Deze slaan we bij RESA en RESB over.
|
||||
var alias = alias || "r";
|
||||
var nrr = " AND NOT EXISTS "
|
||||
+ " (SELECT '' "
|
||||
+ " FROM res_alg_ruimte rar"
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
||||
+ " AND rar.alg_ruimte_key = " + alias + ".alg_ruimte_key)";
|
||||
return nrr;
|
||||
}
|
||||
|
||||
|
||||
function get_res_bezorgfilter(params, level)
|
||||
{
|
||||
params = params || {};
|
||||
var res_deel_key = getQParamInt("res_deel_key", params.res_deel_key||-1);
|
||||
var res_deel_alg_level = -1;
|
||||
var filter_deel = "";
|
||||
|
||||
if (res_deel_key>0)
|
||||
{
|
||||
sql = "SELECT res_deel_alg_level,"
|
||||
+ " alg_district_key,"
|
||||
+ " alg_regio_key,"
|
||||
+ " alg_locatie_key,"
|
||||
+ " alg_gebouw_key,"
|
||||
+ " alg_verdieping_key,"
|
||||
+ " alg_ruimte_key"
|
||||
+ " FROM res_deel rd,"
|
||||
+ " ins_deel id, "
|
||||
+ " alg_v_onrgoed_boom aob"
|
||||
// if (res_deel_key > 0) // reserveerbare objecten bezorgen
|
||||
// {
|
||||
sql = "SELECT MIN(res_deel_alg_level) res_deel_alg_level"
|
||||
+ " FROM res_deel rd"
|
||||
+ " , ins_deel id"
|
||||
+ " , alg_v_onrgoed_boom aob"
|
||||
+ " WHERE rd.res_ins_deel_key = id.ins_deel_key"
|
||||
+ " AND COALESCE(id.ins_alg_ruimte_type_org, id.ins_alg_ruimte_type) = 'R'"
|
||||
+ " AND COALESCE(id.ins_alg_ruimte_key_org, id.ins_alg_ruimte_key) = aob.alg_ruimte_key"
|
||||
+ " AND res_deel_key = " + res_deel_key;
|
||||
+ (res_deel_key > 0 ? " AND res_deel_key = " + res_deel_key : "");
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var res_deel_alg_level = oRs("res_deel_alg_level").Value;
|
||||
res_deel_alg_level = oRs("res_deel_alg_level").Value;
|
||||
|
||||
if (level >= 5 && res_deel_alg_level == 5) filter_deel = "rr.alg_ruimte_key IN ";
|
||||
if (level >= 4 && res_deel_alg_level == 4) filter_deel = "vv.alg_verdieping_key IN ";
|
||||
if (level >= 3 && res_deel_alg_level == 3) filter_deel = "gg.alg_gebouw_key IN ";
|
||||
if (level >= 2 && res_deel_alg_level == 2) filter_deel = "ll.alg_locatie_key IN ";
|
||||
if (level >= 1 && res_deel_alg_level == 1) filter_deel = "rg.alg_regio_key IN ";
|
||||
if (level >= 0 && res_deel_alg_level == 0) filter_deel = "di.alg_district_key IN ";
|
||||
oRs.close();
|
||||
// }
|
||||
|
||||
|
||||
filter_deel += "(SELECT aob.alg_locatie_key"
|
||||
+ " FROM res_deel rd"
|
||||
+ " , ins_deel id"
|
||||
+ " , alg_v_onrgoed_boom aob"
|
||||
+ " WHERE rd.res_ins_deel_key = id.ins_deel_key"
|
||||
+ " AND COALESCE(id.ins_alg_ruimte_type_org, id.ins_alg_ruimte_type) = 'R'"
|
||||
+ " AND COALESCE(id.ins_alg_ruimte_key_org, id.ins_alg_ruimte_key) = aob.alg_ruimte_key"
|
||||
+ (res_deel_key > 0 ? " AND res_deel_key = " + res_deel_key : "")
|
||||
+ ")";
|
||||
|
||||
|
||||
if (level == 5)
|
||||
filter_deel = (res_deel_alg_level >= 5 ? "r.alg_ruimte_key = " + oRs("alg_ruimte_key").Value : "r.alg_verdieping_key = " + oRs("alg_verdieping_key").Value);
|
||||
if (level == 4)
|
||||
filter_deel = (res_deel_alg_level >= 4 ? "v.alg_verdieping_key = " + oRs("alg_verdieping_key").Value : "v.alg_gebouw_key = " + oRs("alg_gebouw_key").Value);
|
||||
if (level == 3)
|
||||
filter_deel = (res_deel_alg_level >= 3 ? "g.alg_gebouw_key = " + oRs("alg_gebouw_key").Value : "g.alg_locatie_key = " + oRs("alg_locatie_key").Value);
|
||||
if (level == 2)
|
||||
filter_deel = (res_deel_alg_level >= 2 ? "l.alg_locatie_key = " + oRs("alg_locatie_key").Value : "l.alg_district_key = " + oRs("alg_district_key").Value);
|
||||
oRs.Close();
|
||||
}
|
||||
var bezorgfilter = "";
|
||||
if (res_deel_alg_level > -1)
|
||||
{
|
||||
bezorgfilter = " AND (EXISTS"
|
||||
// if (res_deel_alg_level > -1)
|
||||
// {
|
||||
bezorgfilter = (filter_deel ? " AND " + filter_deel : "")
|
||||
+ ")"
|
||||
+ "AND (EXISTS"
|
||||
+ " (SELECT ''"
|
||||
+ " FROM res_srtartikel_onrgoed rao"
|
||||
+ " , res_activiteitdiscipline rad"
|
||||
+ " WHERE ( rao.res_discipline_key = rad.res_discipline_key"
|
||||
+ " AND rad.res_activiteit_key = " + params.act_key
|
||||
+ " )"
|
||||
+ ( (res_deel_key > 0 && filter_deel) ? " OR " + filter_deel : "")
|
||||
+ " )"
|
||||
+ " )";
|
||||
}
|
||||
// }
|
||||
|
||||
return " /* get_res_bezorgfilter */ " + bezorgfilter;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user