HSLE#39254 Catering - verbruiksartikelen - autorisatie
svn path=/Website/trunk/; revision=37443
This commit is contained in:
@@ -372,44 +372,61 @@ var new_item_key = 0; // Globaal
|
||||
// Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte
|
||||
fixed_room = (portal_alg_ruimte_key > 0);
|
||||
|
||||
var sql_fo_catering_scope = "";
|
||||
var sql = "SELECT count(*) aantal"
|
||||
+ " FROM fac_gebruikersgroep"
|
||||
+ " WHERE fac_groep_key = " + S("res_fo_catering_scopeless_key", "-1")
|
||||
+ " AND prs_perslid_key = " + user_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs("aantal").Value == 0)
|
||||
{
|
||||
// RES_V_SRTARTIKEL_ONRGOED i.p.v. res_v_srtartikel_ruimte:
|
||||
// niet alleen kijken naar max(prio) 'R' (ruimte) maar ook naar onderliggende prio's 'L' (locatie) en 'G' (gebouw)
|
||||
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key
|
||||
sql_fo_catering_scope = " AND g.ins_discipline_key IN"
|
||||
+ "(SELECT res_discipline_key"
|
||||
+ " FROM res_v_srtartikel_onrgoed"
|
||||
+ " WHERE 1 = 1"
|
||||
+ ( fixed_room
|
||||
? " AND alg_onrgoed_niveau = 'R'"
|
||||
: ""
|
||||
)
|
||||
+ ( alg_ruimte_key > 0
|
||||
? " AND alg_ruimte_key = " + alg_ruimte_key
|
||||
: " AND alg_ruimte_key IN"
|
||||
+ "(SELECT alg_ruimte_key"
|
||||
+ " FROM res_v_rsv_ruimte_2_alg_ruimte "
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
||||
+ " AND res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ ")"
|
||||
)
|
||||
+ ")";
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
sql = "SELECT d.ins_discipline_key"
|
||||
+ " , "+ lcl.xsqla('d.ins_discipline_omschrijving','d.ins_discipline_key')
|
||||
+ " , d.ins_discipline_kpnverplicht"
|
||||
+ " FROM RES_v_aanwezigDISCIPLINE d"
|
||||
+ " WHERE ins_discipline_min_level = 2"
|
||||
+ " AND d.ins_discipline_key IN ("
|
||||
+ " SELECT ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g,"
|
||||
+ " fac_functie f "
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction) + " "
|
||||
+ " AND g.prs_perslid_key = " + user_key
|
||||
+ " AND fac_gebruiker_prs_level_write < 9"
|
||||
+ " AND fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND d.ins_discipline_key IN"
|
||||
// RES_V_SRTARTIKEL_ONRGOED i.p.v. res_v_srtartikel_ruimte:
|
||||
// niet alleen kijken naar max(prio) 'R' (ruimte) maar ook naar onderliggende prio's 'L' (locatie) en 'G' (gebouw)
|
||||
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key
|
||||
+ " (SELECT res_discipline_key"
|
||||
+ " FROM res_v_srtartikel_onrgoed "
|
||||
+ " WHERE 1 = 1 "
|
||||
if (fixed_room) sql += " AND alg_onrgoed_niveau = 'R'";
|
||||
if (alg_ruimte_key > 0)
|
||||
sql += " AND alg_ruimte_key = " + alg_ruimte_key + ")) ";
|
||||
else
|
||||
{
|
||||
if (rsv_ruimte_key > 0)
|
||||
sql += " AND alg_ruimte_key IN"
|
||||
+ " (SELECT alg_ruimte_key"
|
||||
+ " FROM res_v_rsv_ruimte_2_alg_ruimte "
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
||||
+ " AND res_rsv_ruimte_key = " + rsv_ruimte_key + ")))"
|
||||
}
|
||||
sql += " AND EXISTS (select res_activiteit_key from res_activiteitdiscipline rad"
|
||||
+ " WHERE rad.res_discipline_key = d.ins_discipline_key"
|
||||
+ " AND rad.res_activiteit_key = " + activiteit_key
|
||||
+ " )"
|
||||
+ " ORDER BY ins_discipline_volgnr, 2";
|
||||
+ " AND d.ins_discipline_key IN"
|
||||
+ "(SELECT g.ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g"
|
||||
+ " , fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction)
|
||||
+ " AND g.prs_perslid_key = " + user_key
|
||||
+ " AND fac_gebruiker_prs_level_write < 9"
|
||||
+ " AND fac_gebruiker_alg_level_write < 9"
|
||||
+ sql_fo_catering_scope
|
||||
+ ")"
|
||||
+ " AND EXISTS"
|
||||
+ "(SELECT res_activiteit_key"
|
||||
+ " FROM res_activiteitdiscipline rad"
|
||||
+ " WHERE rad.res_discipline_key = d.ins_discipline_key"
|
||||
+ " AND rad.res_activiteit_key = " + activiteit_key
|
||||
+ ")"
|
||||
+ " ORDER BY ins_discipline_volgnr, 2";
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
while (!oRs.eof)
|
||||
|
||||
Reference in New Issue
Block a user