FCLT#90168 REVERT: de lopende zaken *kun* je nu ook vanuit het perspectief van een object opvragen

svn path=/Website/trunk/; revision=70474
This commit is contained in:
Jos Groot Lipman
2025-09-30 15:15:56 +00:00
parent 800fbecf53
commit f0ff8579bf

View File

@@ -5,7 +5,7 @@
File: res_fe_worker.asp
Description: Levert JSON op voor een shared/fullcalendar.asp
met mijn lopende reserveringen of de reservering van een gegeven ruimte of object
met mijn lopende reserveringen
waar ik contactpersoon en/of gastheer/vrouw ben
Parameters: date-from/date-to
Context:
@@ -19,113 +19,74 @@ var JSON_Result = true;
var date_from = getQParamDate("date_from", new Date(getQParamInt("start") * 1000));
var date_to = getQParamDate("date_to", new Date(getQParamInt("end") * 1000));
var urole = getQParamSafe("urole", "fe");
var authparams = user.checkAutorisation(urole == "fo" ? "WEB_RESFOF" : "WEB_RESUSE");
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
var res_deel_key = getQParamInt("res_deel_key", -1); // of uit res_rsv_deel_key?
if (res_deel_key == -1)
{
var res_rsv_deel_key = getQParamInt("res_rsv_deel_key", -1); // omzetten naar res_deel_key..
if (res_rsv_deel_key > 0)
{
var sql = "SELECT res_deel_key FROM res_rsv_deel WHERE res_rsv_deel_key = " + res_rsv_deel_key;
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
res_deel_key = oRs("res_deel_key").Value;
oRs.Close();
}
}
// iets met func_enabled om de lees/schrijfrechten op deze reservering te checken
var canRead = true;
var canWrite = true;
var authparams = user.checkAutorisation("WEB_RESUSE");
var result = [];
if (canRead || canWrite)
{
var sql = "SELECT item || ' ' || detail oms"
+ " , datum1 van"
+ " , datum2 tot"
+ " , 'default.asp?internal=1&u=reservering&k='||item_key fclturl"
+ " FROM ("
+ (res_deel_key < 0 // bij gegeven key is de ruimte er niet
? " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr item," // Ruimte reserveringen
+ " rr.res_rsv_ruimte_key item_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra"
+ " WHERE res_activiteit_key = rr.res_activiteit_key)) detail,"
+ " DECODE (res_rsv_ruimte_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr"
+ " WHERE rr.res_status_bo_key IN (2)"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ (rsv_ruimte_key > 0
? " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key
: " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
)
+ " UNION ALL"
: "")
+ " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr item," // Object reserveringen
+ " rr.res_rsv_ruimte_key item_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra"
+ " WHERE res_activiteit_key = rr.res_activiteit_key)) detail,"
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_deel_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_deel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ (rsv_ruimte_key > 0
? " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key
: " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
)
+ (res_deel_key > 0
? " AND dd.res_deel_key = " + res_deel_key
: ""
)
+ (res_deel_key < 0 // bij gegeven key is de ruimte er niet
? " UNION ALL"
+ " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr item," // Artikel reserveringen
+ " rr.res_rsv_ruimte_key item_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra "
+ " WHERE res_activiteit_key = rr.res_activiteit_key)) detail,"
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_artikel_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_artikel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ (rsv_ruimte_key > 0
? " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key
: " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
)
: "")
+ ")";
var oRs = Oracle.Execute(sql);
var sql = "SELECT item || ' ' || detail oms"
+ " , datum1 van"
+ " , datum2 tot"
+ " , 'default.asp?internal=1&u=reservering&k='||item_key fclturl"
+ " FROM ("
+ " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr item," // Ruimte reserveringen
+ " rr.res_rsv_ruimte_key item_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra"
+ " WHERE res_activiteit_key = rr.res_activiteit_key)) detail,"
+ " DECODE (res_rsv_ruimte_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr"
+ " WHERE rr.res_status_bo_key IN (2)"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
+ " UNION ALL"
+ " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr," // Object reserveringen
+ " rr.res_rsv_ruimte_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra"
+ " WHERE res_activiteit_key = rr.res_activiteit_key)),"
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_deel_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_deel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
+ " UNION ALL"
+ " SELECT 'R'||TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr," // Artikel reserveringen
+ " rr.res_rsv_ruimte_key,"
+ " rr.res_rsv_ruimte_van datum1,"
+ " rr.res_rsv_ruimte_tot datum2,"
+ " COALESCE (rr.res_rsv_ruimte_omschrijving, (SELECT "+ lcl.xsql('ra.res_activiteit_omschrijving', 'res_activiteit_key')
+ " FROM res_activiteit ra "
+ " WHERE res_activiteit_key = rr.res_activiteit_key)),"
+ " DECODE (res_rsv_ruimte_dirtlevel + res_rsv_artikel_dirtlevel, 0, rr.res_status_fo_key, -1)"
+ " FROM res_v_aanwezigrsv_ruimte rr, res_v_aanwezigrsv_artikel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rr.res_rsv_ruimte_tot >= " + date_from.toSQL(true)
+ " AND rr.res_rsv_ruimte_van <= " + date_to.toSQL(true)
+ " AND ( rr.res_rsv_ruimte_contact_key = " + user_key
+ " OR rr.res_rsv_ruimte_host_key = " + user_key + ")"
+ ")";
var oRs = Oracle.Execute(sql);
while (!oRs.Eof) {
result.push({
title: oRs("oms").Value || L("lcl_unknown"),
start: new Date(oRs("van").Value).getTime() / 1000,
end: new Date(oRs("tot").Value).getTime() / 1000,
fclturl: oRs("fclturl").Value,
allDay: false
});
oRs.MoveNext();
}
oRs.Close();
while (!oRs.Eof) {
result.push({
title: oRs("oms").Value || L("lcl_unknown"),
start: new Date(oRs("van").Value).getTime() / 1000,
end: new Date(oRs("tot").Value).getTime() / 1000,
fclturl: oRs("fclturl").Value,
allDay: false
});
oRs.MoveNext();
}
oRs.Close();
Response.Write(JSON.stringify(result));
ASPPAGE_END();
%>