Files
Facilitor/APPL/PDA/reservering.asp
Jos Groot Lipman 90a1a8409d FSN#37512 PENTEST 4.6.3 Cross-site scripting
svn path=/Website/trunk/; revision=30390
2016-08-23 13:43:17 +00:00

600 lines
26 KiB
Plaintext
Raw Blame History

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: pda/reservering.asp
Description: Add/wijzig reservering (Mobile version)
Parameters: rsv_ruimte_key voor bestaande deelreservering
rsv_ruimte_key=-1 voor nieuwe (deel)reservering
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<!-- #include file="../PRS/prs.inc" -->
<!-- #include file="../RES/res.inc" -->
<!-- #include file="../Shared/getkenmerksql.inc" -->
<!-- #include file="../Shared/discx3d.inc" -->
<!-- #include file="../Shared/discxalg3d.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="../RES/res_plan_room.inc" -->
<!-- #include file="../RES/res_flexkenmerk.inc" -->
<%
FCLTHeader.Requires({ js: ["./modernizr-3.3.0.custom.min.js"] });
FCLTHeader.Requires({ js: ["jquery.timepicker-table.js"],
css: ["timePicker-table.css"] });
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1); // -1 betekent nieuwe
var qrc = getQParamInt("qrc", 0) != 0;
// MGE: Toevoegen kan tot op heden nog niet
// Mogelijke parameters voor toevoegen only
// Deze zijn niet waarschijnlijk meegegeven, maar de defaultwaarde is ook al handig
//var locatie_key = getQParamInt("locatie_key", user.alg_locatie_key({withcurrent: true})); // Locatie
//var gebouw_key = getQParamInt("gebouw_key", user.alg_gebouw_key({withcurrent: true})); // Gebouw, kan -1 zijn, dan niet gebruiken
//var verdieping_key = getQParamInt("verdieping_key", user.alg_verdieping_key({withcurrent: true}));
//var ruimte_key = getQParamInt("ruimte_key", user.alg_ruimte_key({withcurrent: true}));
var sql = "SELECT COALESCE(MIN(fac_gebruiker_alg_level_write), 9) writelevel"
+ " FROM fac_v_webgebruiker g, fac_functie f "
+ " WHERE g.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code IN ('WEB_RESUSE')"
+ " AND g.prs_perslid_key = " + user_key;
var oRs = Oracle.Execute(sql);
var autlevel = oRs("writelevel").Value; // Pas op: kan ook '0' zijn (regio)
oRs.Close();
var afs_key = -1;
if (rsv_ruimte_key > -1)
{
// BESTAANDE DEELRESERVERING
res.res_set_dialect(rsv_ruimte_key);
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
user.auth_required_or_abort(this_res.canReadAny);
sql = "SELECT * FROM res_rsv_ruimte WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRsR = Oracle.Execute(sql);
var rsv = { opstel_key: oRsR("res_ruimte_opstel_key").Value
, account: oRsR("prs_kostenplaats_key").Value || -1
, bezoekers: oRsR("res_rsv_ruimte_bezoekers").Value || 0
, status_fo: oRsR("res_status_fo_key").Value
, act_key: oRsR("res_activiteit_key").Value
, reservering_key: oRsR("res_reservering_key").Value
, ruimte_volgnr: oRsR("res_rsv_ruimte_volgnr").Value
, ruimte_van: new Date(oRsR("res_rsv_ruimte_van").Value)
, ruimte_tot: new Date(oRsR("res_rsv_ruimte_tot").Value)
, omschrijving: oRsR("res_rsv_ruimte_omschrijving").Value
, opmerking: oRsR("res_rsv_ruimte_opmerking").Value
, verwijderd: true
};
oRsR.Close();
// Toch eens een functie res.ruimte_info() bouwen voor dit soort zaken
var sql2 = "SELECT COALESCE (opstelalg.res_ruimte_nr, ruimte_geg.alg_ruimte_aanduiding) res_ruimte_nr"
+ " , opstelalg.res_ruimte_key"
+ " , ruimte_geg.alg_ruimte_key"
+ " , ruimte_geg.alg_locatie_key"
+ " , rsa.res_srtactiviteit_metomschr"
+ " , rsa.res_srtactiviteit_metopmerk"
+ " , rsa.res_srtactiviteit_metaantal"
+ " , ra.res_activiteit_omsverplicht"
+ " , ra.res_activiteit_aantalverplicht"
+ " , " + lcl.xsqla("ra.res_activiteit_omschrijving", "ra.res_activiteit_key")
+ " , DECODE(rrr.res_rsv_ruimte_verwijder, NULL, 0, 1) verwijderd"
+ " FROM res_rsv_ruimte rrr"
+ " , alg_v_ruimte_gegevens ruimte_geg"
+ " , res_activiteit ra"
+ " , res_srtactiviteit rsa"
+ " , (SELECT res_ruimte_opstel_key"
+ " , rr.res_ruimte_nr res_ruimte_nr"
+ " , rr.res_ruimte_key"
+ " , MIN (alg_ruimte_key) alg_ruimte_key"
+ " FROM res_ruimte_opstelling rro"
+ " , res_alg_ruimte rar"
+ " , res_ruimte rr"
+ " WHERE rro.res_ruimte_key = rar.res_ruimte_key"
+ " AND rr.res_ruimte_key = rar.res_ruimte_key"
+ " AND rar.res_alg_ruimte_verwijder IS NULL"
+ " GROUP BY res_ruimte_opstel_key"
+ " , rr.res_ruimte_nr"
+ " , rr.res_ruimte_key) opstelalg"
+ " WHERE rrr.res_ruimte_opstel_key = opstelalg.res_ruimte_opstel_key(+)"
+ " AND rrr.res_activiteit_key = ra.res_activiteit_key"
+ " AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key"
+ " AND rrr.alg_ruimte_key = ruimte_geg.alg_ruimte_key(+)"
+ " AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs2 = Oracle.Execute(sql2);
if (!oRs2.eof)
{
rsv.ruimtenr = oRs2("res_ruimte_nr").Value;
rsv.ruimtekey = oRs2("res_ruimte_key").Value;
rsv.alg_ruimetkey = oRs2("alg_ruimte_key").Value;
rsv.loc_key = oRs2("alg_locatie_key").Value;
rsv.toonOms = oRs2("res_srtactiviteit_metomschr").value || 0;
rsv.toonOpm = oRs2("res_srtactiviteit_metopmerk").value || 0;
rsv.toonBez = oRs2("res_srtactiviteit_metaantal").value || 0;
rsv.reqOms = oRs2("res_activiteit_omsverplicht").value || 0;
rsv.reqBez = oRs2("res_activiteit_aantalverplicht").value || 0;
rsv.activity = oRs2("res_activiteit_omschrijving").value;
rsv.verwijderd = (oRs2("verwijderd").value==1 ? true : false);
}
oRs2.Close();
this_res.canDelete = this_res.canDelete && !rsv.verwijderd; // Geen delete knop als de reservering al verwijderd is.
// Bestaat er al een afspraak bij deze reservering.
var sql3 = "SELECT bez_afspraak_key"
+ " FROM bez_afspraak"
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs3 = Oracle.Execute(sql3);
if (!oRs3.eof)
afs_key = oRs3("bez_afspraak_key").Value;
oRs3.Close();
}
else
{
this_res = {};
// NIEUWE RESERVERING
// Verplicht:
var res_van = getQParamDate("date_from", null);
var res_tot = getQParamDate("date_to", null);
var ruimtekey = getQParamInt("res_ruimte_key", null);
if (!res_van && !ruimtekey)
{
Server.Transfer("reservering_new.asp"); // Ga maar eerst datum kiezen
}
else
{
var sql = "SELECT alg_ruimte_key FROM res_alg_ruimte WHERE res_ruimte_key = " + ruimtekey;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
var alg_ruimtekey = oRs("alg_ruimte_key").Value;
oRs.CLose();
var rri = res.res_ruimte_info(ruimtekey);
var rsv = { loc_key: getQParamInt("loc_key", -1)
, act_key: getQParamInt("act_key", -1)
, kostenklant: S("kosten_klant_default") == 1
, account: -1
, status_fo: rri.status_fo_key > 0? rri.status_fo_key : 2
, ruimtekey: ruimtekey
, alg_ruimtekey : alg_ruimtekey
, ruimte_van: res_van
, ruimte_tot: res_tot
, bezoekers: getQParamInt("bez_cnt", 0)
, verwijderd: false
};
if (rsv.kostenklant)
{
if (S("prs_dep_default_kpn") == 1)
rsv.account = user.afdeling().prs_kostenplaats_key();
if (rsv.account == -1)
{
var host_info = prs.prs_perslid(user_key, {withWP: true});
rsv.account = host_info.kostenplaats_key;
}
}
if (rsv.act_key < 0) // Toevallig maar <20><>n activiteit mogelijk voor onze ruimte? Pak gewoon de eerste
{
sql = "select res_activiteit_key"
+ " from res_activiteitdiscipline rad,"
+ " res_ruimte rr"
+ " where rr.res_ruimte_key = " + rsv.ruimtekey
+ " and rad.res_discipline_key = rr.res_discipline_key";
var oRs = Oracle.Execute(sql);
rsv.act_key = oRs("res_activiteit_key").Value;
oRs.Close()
}
// Als het aantal bezoekers is ingevuld moeten deze in de opstelling passen,
// maar neem bijvoorkeur de default opstelling.
// Neem de default opstelling altijd als het aantal bezoekers niet bekend is.
var sql = "SELECT rr.res_ruimte_nr"
+ " , rr.res_ruimte_key"
+ " , rro.res_opstelling_key"
+ " , rro.res_ruimte_opstel_key"
+ " , rro.res_ruimte_opstel_default"
+ " , rro.res_ruimte_opstel_bezoekers"
+ " FROM res_ruimte_opstelling rro"
+ " , res_ruimte rr"
+ " WHERE rro.res_ruimte_key = rr.res_ruimte_key"
+ " AND rro.res_ruimte_key = " + rsv.ruimtekey
+ (rsv.bezoekers > 0 ? " AND res_ruimte_opstel_bezoekers >= " + rsv.bezoekers : "")
+ " ORDER BY res_ruimte_opstel_default DESC NULLS LAST"
+ " , res_ruimte_opstel_bezoekers";
var oRs = Oracle.Execute(sql);
rsv.ruimtenr = oRs("res_ruimte_nr").value;
rsv.opstel_key = oRs("res_ruimte_opstel_key").value;
oRs.Close();
//
var sql = "SELECT rsa.res_srtactiviteit_metomschr"
+ " , rsa.res_srtactiviteit_metopmerk"
+ " , rsa.res_srtactiviteit_metaantal"
+ " , ra.res_activiteit_omsverplicht"
+ " , " + lcl.xsqla("ra.res_activiteit_omschrijving", "ra.res_activiteit_key")
+ " FROM res_srtactiviteit rsa"
+ " , res_activiteit ra"
+ " WHERE ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key"
+ " AND ra.res_activiteit_key = " + rsv.act_key;
var oRs = Oracle.Execute(sql);
rsv.toonOms = oRs("res_srtactiviteit_metomschr").value || 0;
rsv.toonOpm = oRs("res_srtactiviteit_metopmerk").value || 0;
rsv.toonBez = oRs("res_srtactiviteit_metaantal").value || 0;
rsv.reqOms = oRs("res_activiteit_omsverplicht").value || 0;
rsv.activity = oRs("res_activiteit_omschrijving").value;
rsv.flex_defaults = {};
var flex_defaults = getQParam("flex_defaults", "").split("&"); //bsn=12345678&plaats=Enschede&postcode=1234AB
for (var i in flex_defaults)
{
var nm = flex_defaults[i].split("=")[0].toLowerCase();
var val = flex_defaults[i].split("=")[1];
rsv.flex_defaults[nm] = val;
}
}
}
var subject = rsv_ruimte_key > -1 ? rsv.activity + " " + rsv.reservering_key + "/" + rsv.ruimte_volgnr
: L("lcl_mobile_newreservering");
// last_minute mag frontend niet meer de zaal of tijdstippen wijzigen
// (noch de catering zelf maar dat regelt res_show_objcat.asp)
var fe_lastminute = false;
if (rsv.opstel_key)
rsv.restype = "R";
else
rsv.restype = "CV";
if (rsv.restype == "CV")
{
if (rsv_ruimte_key > 0) // Existing reservation
{
if (rsv.ruimte_van < this_res.earliest_expire_change)
last_minute = true;
else
last_minute = false;
fe_lastminute = (last_minute); // urole == "fe" geldt voor mobile al.
}
} // restype = "CV"
// mag de gebruiker bezoekers toevoegen?
var xfunc = user.func_enabled2("BEZ", {prs_key: user_key, isOptional: true});
var canHaveBez = xfunc.canWrite("WEB_BEZUSE") || xfunc.canWrite("WEB_BEZFOF");
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject });
if (!rsv.verwijderd) // geen script nodig als reservering verwijderd is.
{
%>
<script type="text/javascript">
function res_submit_callback(json)
{ // Alleen nog de mogelijk om tijdstippen en zaal aan te passen.
// Nog geen nieuwe reservering aanmaken en qr code.
if (json.rsv_ruimte_key > 0)
{
// Opslaan button geklikt. Er hoeft niet gerefreshed te worden. Er kan direct weer gewijzigd worden
alert(L("lcl_mobile_saved")); // ' onder nummer ... '
var doCallback = true;
<%
if (rsv_ruimte_key == -1 && canHaveBez)
{
%>
if (confirm(L("lcl_mobile_addvisitors")+"?"))
{
doCallback = false;
var purl = "?rsv_ruimte_key="+json.rsv_ruimte_key
+ "&afs_key=-1"
+ "&urole=fe";
window.location.href = "bezoeker.asp" + purl;
}
<%
}
%>
if (doCallback)
McltCallbackHome(json); // Home omdat niet alle browsers anders een refresh doen
}
};
function res_submit()
{
if (!validateForm("res"))
return false;
$.post( $("form[name=res]")[0].action
, $("form[name=res]").serialize()
, McltCallbackAndThenAlways(res_submit_callback)
, "json");
return false;
}
function res_delete()
{
if (confirm(L("lcl_res_confirm_delete_afspraak")))
{
var data = {};
<% protectRequest.dataToken("data"); %>
$.post("../res/res_delete_save.asp?rsv_ruimte_key=<%=rsv_ruimte_key%>",
data,
McltCallbackHome, // Op deze manier in ieder geval een refresh
"json");
}
}
function res_vis_callback(json)
{
<% // Direct door naar bezoekers toevoegen als er al een afspraak bij deze reservering bestaat.
var purl = "rsv_ruimte_key="+rsv_ruimte_key;
if (afs_key != -1)
{
purl = "afspraak.asp?" + purl;
}
else
{
purl += "&afs_key=" + afs_key;
purl = "bezoeker.asp?urole=fe&" + purl;
}
%>
window.location.href = "<%=purl%>";
}
function res_vis()
{
if (!validateForm("res"))
return false;
$.post( $("form[name=res]")[0].action
, $("form[name=res]").serialize()
, McltCallbackAndThenAlways(res_vis_callback)
, "json");
return false;
}
// Process de ruimte-data die van de Ajax terugkomt.
function process_res_ruimte_info(data)
{
if (data.default_opstel_key > 0)
$("#ruimte_opstel").val(data.default_opstel_key);
else
$("#ruimte_opstel").val(data.RoomConfigs[0].ruimte_opstel_key);
}
function OnChangeRoom()
{
var pruimtekey = $("#rui_key").val();
$.getJSON("../res/get_res_info_ajax.asp?req_info=res_ruimte&res_ruimte_key=" + pruimtekey,
process_res_ruimte_info);
}
</script>
<%
} // geen script nodig als reservering verwijderd is.
%>
</head>
<body>
<div>
<%
PAGE_START({id: "page-1-" + rsv_ruimte_key});
HEADER({title: subject, back:!qrc, home: !qrc, delaction: (this_res.canDelete ? "javascript:res_delete()" : ""), datatheme: jQFrontEndTheme});
CONTENT_START();
if (rsv.verwijderd)
{
BUTTON(L("lcl_res_is_resdel"));
}
else
{
%>
<form name="res" id="res" action="../res/res_edit_rsv_ruimte_save.asp?rsv_ruimte_key=<%=rsv_ruimte_key%>&urole=fe" method="post">
<input type="hidden" name="rsv_ruimte_key" value="<%=rsv_ruimte_key%>">
<input type="hidden" name="restype" id="restype" value="<%=rsv.restype%>">
<input type="hidden" name="sel_activity" id="sel_activity" value="<%=rsv.act_key%>">
<input type="hidden" name="status_fo" id="status_fo" value="<%=rsv.status_fo%>">
<% if (rsv.restype == "R")
{
%>
<input type="hidden" name="locatiekey" id="locatiekey" value="<%=rsv.loc_key%>">
<input type="hidden" name="ruimte_opstel" id="ruimte_opstel" value="<%=rsv.opstel_key%>">
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=rsv.alg_ruimtekey%>">
<input type="hidden" name="kostenklant" id="kostenklant" value="<%=(rsv.kostenklant?"on":"")%>">
<input type="hidden" name="account" id="account" value="<%=rsv.account%>">
<% }
if (rsv_ruimte_key == -1)
{ // Nieuw. Datum en tijd heb je al in vorige schermen gekozen
BLOCK_START({collapsed: true, title: safe.html(rsv.activity) });
ROFIELD("fld", L("lcl_place") , rsv.ruimtenr.replace(/\n/,"<br>"));
ROFIELD("fld", L("lcl_date"), toDateTimeString(rsv.ruimte_van) + "-" + toTimeString(rsv.ruimte_tot));
%>
<input type="hidden" name="person" id="person" value="<%=user_key%>">
<input type="hidden" name="personH" id="personH" value="<%=user_key%>">
<input type='hidden' name='date_from' value='<%=rsv.ruimte_van.getTime()%>'>
<input type='hidden' name='date_to' value='<%=rsv.ruimte_tot.getTime()%>'>
<%
if (rsv.toonBez)
{
if (rsv.bezoekers > 0)
{
%>
<input type="hidden" name="bezoekers" id="bezoekers" value="<%=rsv.bezoekers%>">
<%
}
ROFIELD("fld", L("lcl_visitors"), (rsv.bezoekers > 0? rsv.bezoekers : ""), {suppressEmpty: true});
}
BLOCK_END();
if (rsv.toonOms)
RWFIELD("descript", L("lcl_txt") , rsv.omschrijving, {pclass: (rsv.reqOms?"required":"") });
if (rsv.toonOpm)
RWFIELD("opmerk", L("lcl_remark") , rsv.opmerking, {multi:true});
}
else // Bestaand
{
if (rsv.restype == "CV" || fe_lastminute || !this_res.canChange)
{ // Voor "CV" reservering is de plaats niet aanpasbaar.
ROFIELD("fld", L("lcl_place") , rsv.ruimtenr.replace(/\n/,"<br>"));
}
else
{
var params = { loc: rsv.loc_key,
init_res_ruimte_key: rsv.ruimtekey,
forSelectRoom: true,
vis: rsv.bezoekers > 0? rsv.bezoekers : null,
activiteit_key: rsv.act_key,
authparams: user.checkAutorisation("WEB_RESUSE", null, null, true), // urole == "fe" en pessimistisch.
ruimtecat: [],
res_van: rsv.ruimte_van,
res_tot: rsv.ruimte_tot
};
var sql = res.get_rooms_for_planbord(params);
sql = "SELECT * FROM (" + sql + ")"; // sql begint met "WITH...." en dan levert Oracle geen recordset op. Dan maar "SELECT *...." eromheen.
FCLTselector("rui_key",
sql,
{ initKey: rsv.ruimtekey,
label: L("lcl_place"),
onChange: "OnChangeRoom()",
mobile: true
});
}
if (fe_lastminute || !this_res.canChange)
{
ROFIELD("fld", L("lcl_from") , toDateTimeString(rsv.ruimte_van), { });
ROFIELD("fld", L("lcl_to") , toDateTimeString(rsv.ruimte_tot), {combine: true});
}
else
{
FCLTcalendar("date_from",
{ label : L("lcl_from"),
datum: new Date(rsv.ruimte_van),
maxPast: 0,
maxFuture: (S("res_fe_reservering_limiet") > 0? S("res_fe_reservering_limiet") : S("res_reservering_limiet")),
timeField: true,
timeStep: S("res_h") * 60,
startTime: S("res_t1"),
endTime: S("res_t2"),
required: true,
volgnr: 1,
mobile: true
}
);
FCLTcalendar("date_to",
{ label : L("lcl_to"),
datum: new Date(rsv.ruimte_tot),
maxFuture: (S("res_fe_reservering_limiet") > 0? S("res_fe_reservering_limiet") : S("res_reservering_limiet")),
timeField: true,
timeStep: S("res_h") * 60,
startTime: S("res_t1"),
endTime: S("res_t2"),
hidden : (rsv.restype == "R"), // Meerdaags ruimte ondersteunen we nog niet echt
required: true,
volgnr: 2,
mobile: true
}
);
}
if (rsv.toonBez)
RWFIELD("bezoekers", L("lcl_visitors"), (rsv.bezoekers > 0? rsv.bezoekers : ""), {datatype:"number", pclass: (rsv.reqBez?"required":"") });
if (rsv.toonOms)
RWFIELD("descript", L("lcl_txt") , rsv.omschrijving, {pclass: (rsv.reqOms?"required":"") });
if (rsv.toonOpm)
RWFIELD("opmerk", L("lcl_remark") , rsv.opmerking, {multi:true});
// plus gastheer, activiteit, fostatus en wellicht nog meer
// beetje leuk in een block of 2
if (true || rsv.opstel_key == null)
{
// Voorzieningsreservering - indien leesrechten? TODO
sqld = "SELECT ins_deel_omschrijving "
+ " FROM res_rsv_deel rrd, res_deel rd, ins_deel id "
+ " WHERE rrd.res_deel_key = rd.res_deel_key"
+ " AND rd.res_ins_deel_key = id.ins_deel_key"
+ " AND rrd.bez_bezoekers_key IS NULL"
+ " AND rrd.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRsd = Oracle.Execute(sqld);
var oRsdi = 0;
while (!oRsd.eof)
{
if (oRsdi < 1)
BLOCK_START({collapsed: true, title: L("lcl_res_reserved_objects")});
ROFIELD("fld", "" , oRsd("ins_deel_omschrijving").Value, {suppressEmpty: true});
oRsdi += 1;
oRsd.moveNext();
}
// - indien leesrechten? TODO
sqla = "SELECT res_artikel_omschrijving, res_rsv_artikel_aantal"
+ " FROM res_rsv_artikel rra, res_artikel ra"
+ " WHERE rra.res_artikel_key = ra.res_artikel_key"
+ " AND rra.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRsa = Oracle.Execute(sqla);
while (!oRsa.eof)
{
if (oRsdi < 1)
BLOCK_START({collapsed: true, title: L("lcl_res_reserved_objects")});
ROFIELD("fld", "" , oRsa("res_rsv_artikel_aantal").Value + " x " + oRsa("res_artikel_omschrijving").Value, {suppressEmpty: true});
oRsdi += 1;
oRsa.moveNext();
}
if (oRsdi > 0)
BLOCK_END();
// Bezoekers - indien leesrechten? TODO
}
}
generateFlexKenmerkBlock ( { fnpre : function () { BLOCK_START({collapsed: (rsv_ruimte_key>0), title: L("lcl_res_flexblok"), xmini: true}); }
, fnpost : BLOCK_END
, urole: "fe" // altijd voor mobile
, res_key : rsv.reservering_key
, act_key : rsv.act_key
, defaults : rsv.flex_defaults // pacta: { bsn: "12345678", plaats: "Enschede", postcode:"1234AB" }
, rsv_ruimte_key : rsv_ruimte_key
, reado: false
, mobile: true
}
);
CONTROLGROUP_START()
if (this_res.canChange || rsv_ruimte_key == -1)
BUTTON((rsv_ruimte_key > -1 ? L("lcl_submit") : L("lcl_newsubmit")), {click: "res_submit()", dataicon: "refresh"});
if (this_res.canChange && rsv_ruimte_key > -1)
BUTTON(L("lcl_mobile_bezoek"), {click: "res_vis()", dataicon: "grid"});
// Toon meldingenknop als er bijbehorende lopende meldingen zijn en ik die mag zien (kan vast nog scherper)
if (user.checkAutorisation( "WEB_MLDBOF", true)) {
// De prijs is wel dat ik mld.inc moet includen..
var perform=false; // ???? JGL: MLD.INC gebruikt deze illegaal globaal
var frontend=false;
var tsql = "SELECT COUNT(m.mld_melding_key), MAX(m.mld_melding_key)"+ mld.getfromwherelist_sql("WEB_MLDBOF", {"rsv_ruimte_key": rsv_ruimte_key})
+ " AND m.mld_melding_status IN (0,2,3,4,7)";
toRs = Oracle.Execute(tsql);
if (toRs(0).value == 1) { // eentje slechts, dan naar de details; max is vanzelfsprekend die ene
BUTTON(L("lcl_mobile_meldingen")+ " (1)", {linkid: "./melding.asp?mld_key="+toRs(1).value , dataicon: "alert", dataajax: 'false'});
} else if (toRs(0).value > 0) { // meerdere, dan naar lijst
BUTTON(L("lcl_mobile_meldingen")+" ("+toRs(0).value+")", {linkid: "./mld_list.asp?res_ruimte_key="+rsv.ruimtekey , dataicon: "alert", dataajax: 'false'});
}
}
CONTROLGROUP_END()
IFACE.FORM_END();
%>
</form>
<%
}
CONTENT_END();
FOOTER();
PAGE_END();
// close
%>
</div>
</body>
</html>