HSLE#39254 Catering - verbruiksartikelen - autorisatie

svn path=/Website/branches/v2017.3/; revision=37437
This commit is contained in:
Erik Groener
2018-03-21 13:18:24 +00:00
parent 68a847f3f8
commit 0cdf34023e

View File

@@ -372,44 +372,58 @@ var new_item_key = 0; // Globaal
// Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte // Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte
fixed_room = (portal_alg_ruimte_key > 0); 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)
{
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" sql = "SELECT d.ins_discipline_key"
+ " , "+ lcl.xsqla('d.ins_discipline_omschrijving','d.ins_discipline_key') + " , "+ lcl.xsqla('d.ins_discipline_omschrijving','d.ins_discipline_key')
+ " , d.ins_discipline_kpnverplicht" + " , d.ins_discipline_kpnverplicht"
+ " FROM RES_v_aanwezigDISCIPLINE d" + " FROM RES_v_aanwezigDISCIPLINE d"
+ " WHERE ins_discipline_min_level = 2" + " WHERE ins_discipline_min_level = 2"
+ " AND d.ins_discipline_key IN (" + " AND d.ins_discipline_key IN"
+ " SELECT ins_discipline_key" + "(SELECT g.ins_discipline_key"
+ " FROM fac_v_webgebruiker g," + " FROM fac_v_webgebruiker g"
+ " fac_functie f " + " , fac_functie f"
+ " WHERE g.fac_functie_key = f.fac_functie_key " + " WHERE g.fac_functie_key = f.fac_functie_key"
+ " AND f.fac_functie_code = " + safe.quoted_sql(autfunction) + " " + " AND f.fac_functie_code = " + safe.quoted_sql(autfunction)
+ " AND g.prs_perslid_key = " + user_key + " AND g.prs_perslid_key = " + user_key
+ " AND fac_gebruiker_prs_level_write < 9" + " AND fac_gebruiker_prs_level_write < 9"
+ " AND fac_gebruiker_alg_level_write < 9" + " AND fac_gebruiker_alg_level_write < 9"
+ " AND d.ins_discipline_key IN" + sql_fo_catering_scope
// 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) + " AND EXISTS"
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key + "(SELECT res_activiteit_key"
+ " (SELECT res_discipline_key" + " FROM res_activiteitdiscipline rad"
+ " FROM res_v_srtartikel_onrgoed " + " WHERE rad.res_discipline_key = d.ins_discipline_key"
+ " WHERE 1 = 1 " + " AND rad.res_activiteit_key = " + activiteit_key
if (fixed_room) sql += " AND alg_onrgoed_niveau = 'R'"; + ")"
if (alg_ruimte_key > 0) + " ORDER BY ins_discipline_volgnr, 2";
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";
oRs = Oracle.Execute(sql); oRs = Oracle.Execute(sql);
while (!oRs.eof) while (!oRs.eof)