600 lines
26 KiB
Plaintext
600 lines
26 KiB
Plaintext
<%@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>
|