DENB#39784 Mobile voorzieningen reserveren toegevoegd, draft
svn path=/Website/trunk/; revision=34617
This commit is contained in:
204
APPL/PDA/plaatsselector.asp
Normal file
204
APPL/PDA/plaatsselector.asp
Normal file
@@ -0,0 +1,204 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: plaatsselector.asp
|
||||
Description: /
|
||||
Parameters: startlevel: begin met kiezen vanaf startlevel
|
||||
eindlevel: begin met kiezen tot en met eindlevel
|
||||
roo_key: ruimte_key
|
||||
flr_key: verdieping_key
|
||||
bld_key: gebouw_key
|
||||
loc_key: locatie_key
|
||||
filtCode: filterCode (bijvoorbeeld 'RESB')
|
||||
act_key: activity_key voor scoping
|
||||
return_to: url waar naar terug te keren na plaatsselectie (incl querystring)
|
||||
autlevel: autlevel
|
||||
Context: /
|
||||
Note: /
|
||||
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/discx3d.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<!-- #include file="./mobile.inc" -->
|
||||
<!-- #include file="./iface.inc" -->
|
||||
<!-- #include file="./resultset_table.inc" -->
|
||||
<!-- #include file="../Shared/Suggest/plaatsFilter.inc" -->
|
||||
|
||||
<%
|
||||
|
||||
var urole = "fe"; // getQParamSafe("urole", "fe");
|
||||
|
||||
var ruimte_key = getQParamInt("roo_key", null);
|
||||
var verdieping_key = getQParamInt("flr_key", null);
|
||||
var gebouw_key = getQParamInt("bld_key", null);
|
||||
var locatie_key = getQParamInt("loc_key", null);
|
||||
|
||||
var filtCode = getQParam("filtCode", "").toUpperCase();
|
||||
var act_key = getQParamInt("act_key", -1);
|
||||
var startlevel = getQParamInt("startlevel", 2); // Default: Locatie
|
||||
var eindlevel = getQParamInt("eindlevel", 5); // Default: Ruimte
|
||||
var qrc = getQParamInt("qrc", 0) != 0;
|
||||
var return_to = getQParam("return_to", "");
|
||||
|
||||
var prs_obj = new Perslid(user_key);
|
||||
|
||||
var autlevel = getQParamInt("autlevel", 9);
|
||||
|
||||
var transitParam = buildTransitParam(["startlevel", "eindlevel", "autlevel", "filtCode", "return_to", "loc_key", "bld_key", "flr_key", "roo_key", "act_key"]);
|
||||
var extTransitParam = buildTransitParam(["loc_key", "bld_key", "flr_key", "roo_key"]);
|
||||
|
||||
var filtParams = { "act_key" : act_key };
|
||||
|
||||
var alg_level = 2; // default startlevel
|
||||
|
||||
if (ruimte_key && ruimte_key > 0)
|
||||
alg_level = 6; // Werkplek -> Unsupported
|
||||
else if (verdieping_key && verdieping_key > 0)
|
||||
alg_level = 5; // Ruimte
|
||||
else if (gebouw_key && gebouw_key > 0)
|
||||
alg_level = 4; // Verdieping
|
||||
else if (locatie_key && locatie_key > 0)
|
||||
alg_level = 3; // Gebouw
|
||||
if (alg_level < startlevel)
|
||||
alg_level = startlevel;
|
||||
|
||||
if (alg_level > eindlevel)
|
||||
{
|
||||
Server.Transfer(return_to);
|
||||
}
|
||||
else if (alg_level <= eindlevel && alg_level >= startlevel)
|
||||
{
|
||||
|
||||
var plaats_key, subject, prefix, field, view;
|
||||
var initKey = -1;
|
||||
switch(alg_level) {
|
||||
case 6: plaats_key = "wrk_key"; subject = L("lcl_select_werkplek"); break;
|
||||
case 5: plaats_key = "roo_key"; subject = L("lcl_select_ruimte"); initKey = prs_obj.alg_ruimte_key(); prefix = "r"; field = "alg_ruimte_key"; view = "fac_v_my_rooms"; break;
|
||||
case 4: plaats_key = "flr_key"; subject = L("lcl_select_verdieping"); initKey = prs_obj.alg_verdieping_key(); prefix = "v"; field = "alg_verdieping_key"; view = "fac_v_my_floors"; break;
|
||||
case 3: plaats_key = "bld_key"; subject = L("lcl_select_gebouw"); initKey = prs_obj.alg_gebouw_key(); prefix = "g"; field = "alg_gebouw_key"; view = "fac_v_my_buildings"; break;
|
||||
case 2: plaats_key = "loc_key"; subject = L("lcl_select_locatie"); initKey = prs_obj.alg_locatie_key(); prefix = "l"; field = "alg_locatie_key"; view = "fac_v_my_locations"; break;
|
||||
case 1: plaats_key = "bld_key"; subject = L("lcl_select_district"); break;
|
||||
case 0: plaats_key = "loc_key"; subject = L("lcl_select_regio"); break;
|
||||
}
|
||||
|
||||
var filtClause, sql_p;
|
||||
switch(alg_level) {
|
||||
case 6: break;
|
||||
case 5:
|
||||
filtClause = getFiltClauseRuimte(filtCode, filtParams);
|
||||
sql_p = "SELECT r.alg_ruimte_key roo_key"
|
||||
+ ", r.alg_ruimte_nr || ' (' || r.alg_ruimte_omschrijving || ')' naam"
|
||||
+ " FROM alg_v_aanwezigruimte r"
|
||||
+ filtClause.from
|
||||
+ " WHERE r.alg_verdieping_key = " + verdieping_key
|
||||
+ filtClause.where;
|
||||
break;
|
||||
case 4:
|
||||
filtClause = getFiltClauseVerdieping(filtCode, filtParams);
|
||||
sql_p = "SELECT v.alg_verdieping_key flr_key"
|
||||
+ ", v.alg_verdieping_omschrijving || ' (' || v.alg_verdieping_code || ')' naam"
|
||||
+ " FROM alg_v_aanwezigverdieping v"
|
||||
+ filtClause.from
|
||||
+ " WHERE v.alg_gebouw_key = " + gebouw_key
|
||||
+ filtClause.where;
|
||||
break;
|
||||
case 3:
|
||||
filtClause = getFiltClauseGebouw(filtCode, filtParams);
|
||||
sql_p = "SELECT g.alg_gebouw_key bld_key"
|
||||
+ ", g.alg_gebouw_omschrijving || ' (' || g.alg_gebouw_code || ')' naam"
|
||||
+ " FROM alg_v_aanweziggebouw g, alg_srtgebouw sg"
|
||||
+ filtClause.from
|
||||
+ " WHERE g.alg_locatie_key = " + locatie_key
|
||||
+ " AND g.alg_srtgebouw_key = sg.alg_srtgebouw_key"
|
||||
+ filtClause.where;
|
||||
break;
|
||||
case 2:
|
||||
filtClause = getFiltClauseLocatie(filtCode, filtParams);
|
||||
sql_p = "SELECT l.alg_locatie_key loc_key"
|
||||
+ ", " + S("alg_loc_string") + " naam"
|
||||
+ ", alg_locatie_plaats"
|
||||
+ " FROM alg_v_aanweziglocatie l"
|
||||
+ filtClause.from
|
||||
+ " WHERE 1 = 1"
|
||||
+ filtClause.where;
|
||||
break;
|
||||
case 1: break;
|
||||
case 0: break;
|
||||
}
|
||||
|
||||
if (autlevel >= 2 && autlevel <= 5) // only supported so far
|
||||
{
|
||||
sql_p += " AND " + prefix + "." + field + " IN"
|
||||
+ " (SELECT " + field
|
||||
+ " FROM " + view
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND niveau = " + autlevel + ")";
|
||||
}
|
||||
sql_p += " ORDER BY 2";
|
||||
|
||||
var sql_count = "SELECT COUNT(*) count"
|
||||
+ " FROM (" + sql_p + ")";
|
||||
var oRs_count = Oracle.Execute(sql_count);
|
||||
if (oRs_count("count").Value == 1)
|
||||
{
|
||||
oRs_count.Close();
|
||||
var oRs_p = Oracle.Execute(sql_p);
|
||||
var url = fnLink(oRs_p);
|
||||
oRs_p.Close();
|
||||
Response.Write("<script language=javascript>window.location.href = '"+url+"';</script>");
|
||||
Response.End;
|
||||
}
|
||||
else
|
||||
oRs_count.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Write("alg_level < startlevel...?"); // TODO
|
||||
}
|
||||
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTMHeader.Generate({ title: subject }); %>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
PAGE_START({id: "page-plaats-"+alg_level});
|
||||
HEADER({title: subject, back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
||||
CONTENT_START();
|
||||
|
||||
function fnLink(oRs)
|
||||
{
|
||||
var alg_key = oRs(plaats_key).Value;
|
||||
var plaatsParam = plaats_key + "=" + alg_key;
|
||||
return (alg_level == eindlevel ?
|
||||
return_to + "&" + plaatsParam + safe.jsstring(extTransitParam)
|
||||
: "?" + plaatsParam + safe.jsstring(transitParam));
|
||||
}
|
||||
|
||||
var plaats = new ResultsetTable({ sql: sql_p
|
||||
, keyColumn: plaats_key
|
||||
, initKey: initKey
|
||||
, linkColumn: fnLink
|
||||
, headerColumn: "naam"
|
||||
// ? , extraFilterColumn: "mld_stdmelding_hint"
|
||||
// ? , subheaderColumn: fncolSubHeader
|
||||
, ID: "plaatstable"
|
||||
, showAll: true
|
||||
, emptySetString: L("lcl_empty")
|
||||
});
|
||||
|
||||
plaats.processResultset();
|
||||
|
||||
CONTENT_END();
|
||||
FOOTER();
|
||||
PAGE_END();
|
||||
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
@@ -143,18 +143,40 @@ else
|
||||
// Verplicht:
|
||||
var res_van = getQParamDate("date_from", null);
|
||||
var res_tot = getQParamDate("date_to", null);
|
||||
// 1 van beide
|
||||
var ruimtekey = getQParamInt("res_ruimte_key", null);
|
||||
if (!res_van && !ruimtekey)
|
||||
var alg_ruimtekey = getQParamInt("roo_key", null);
|
||||
|
||||
if (!res_van && !ruimtekey && !alg_ruimtekey)
|
||||
{
|
||||
Server.Transfer("reservering_new.asp"); // Ga maar eerst datum kiezen
|
||||
}
|
||||
else if (alg_ruimtekey) // Voorziening reservering
|
||||
{
|
||||
var rsv = { loc_key: getQParamInt("loc_key", -1)
|
||||
, bld_key: getQParamInt("bld_key", -1)
|
||||
, flr_key: getQParamInt("flr_key", -1)
|
||||
, act_key: getQParamInt("act_key", -1)
|
||||
, ab_mode: getQParamInt("cvab", -1)
|
||||
, res_deel_key: getQParamInt("res_deel", -1)
|
||||
, kostenklant: S("kosten_klant_default") == 1
|
||||
, account: -1
|
||||
, status_fo: S("res_default_fo_status_key")
|
||||
, alg_ruimtekey : alg_ruimtekey
|
||||
, ruimte_van: res_van
|
||||
, ruimte_tot: res_tot
|
||||
, bezoekers: getQParamInt("bez_cnt", 0)
|
||||
, verwijderd: false
|
||||
};
|
||||
}
|
||||
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();
|
||||
alg_ruimtekey = oRs("alg_ruimte_key").Value;
|
||||
oRs.Close();
|
||||
|
||||
var rri = res.res_ruimte_info(ruimtekey);
|
||||
|
||||
@@ -213,30 +235,30 @@ else
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
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
|
||||
@@ -262,6 +284,10 @@ if (rsv.restype == "CV")
|
||||
last_minute = false;
|
||||
fe_lastminute = (last_minute); // urole == "fe" geldt voor mobile al.
|
||||
}
|
||||
else // Non-existing CV-reservation
|
||||
{
|
||||
var newCVRes = true;
|
||||
}
|
||||
} // restype = "CV"
|
||||
|
||||
// mag de gebruiker bezoekers toevoegen?
|
||||
@@ -394,7 +420,7 @@ if (rsv.verwijderd)
|
||||
else
|
||||
{
|
||||
%>
|
||||
<form name="res" id="res" action="../res/res_edit_rsv_ruimte_save.asp?rsv_ruimte_key=<%=rsv_ruimte_key%>&urole=fe" method="post">
|
||||
<form name="res" id="res" action="../res/res_edit_rsv_ruimte_save.asp?rsv_ruimte_key=<%=rsv_ruimte_key + (rsv.res_deel_key > 0 ? "&res_deel_key=" + rsv.res_deel_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%>">
|
||||
@@ -412,9 +438,39 @@ else
|
||||
|
||||
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));
|
||||
|
||||
BLOCK_START({collapsed: !newCVRes, title: rsv.activity });
|
||||
|
||||
if (newCVRes)
|
||||
{
|
||||
%>
|
||||
<input type="hidden" name="locatiekey" id="locatiekey" value="<%=rsv.loc_key%>">
|
||||
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=rsv.alg_ruimtekey%>">
|
||||
<input type="hidden" name="ab_mode" id="ab_mode" value="<%=rsv.ab_mode%>">
|
||||
<input type="hidden" name="ab_mode_filtcode" id="ab_mode_filtcode" value="<%=(rsv.ab_mode & 1 ? "RESB" : "RESA")%>">
|
||||
<%
|
||||
// Voorzieningsreservering (geen catering)
|
||||
sql_cv = "SELECT res_deel_omschrijving "
|
||||
+ " FROM res_v_aanwezigdeel"
|
||||
+ " WHERE res_deel_key = " + rsv.res_deel_key;
|
||||
var oRs_cv = Oracle.Execute(sql_cv);
|
||||
ROFIELD("fld", L("lcl_res_reserved_objects"), oRs_cv("res_deel_omschrijving").Value, {suppressEmpty: true});
|
||||
oRs_cv.Close();
|
||||
|
||||
// Voorzieningsreservering (geen catering)
|
||||
sql_roo = "SELECT alg_plaatsaanduiding || ' (' || alg_onroerendgoed_omschrijving || ')' plaats"
|
||||
+ " FROM alg_v_allonrgoed_gegevens"
|
||||
+ " WHERE alg_type = 'R'"
|
||||
+ " AND alg_onroerendgoed_keys = " + alg_ruimtekey;
|
||||
|
||||
var oRs_roo = Oracle.Execute(sql_roo);
|
||||
ROFIELD("fld", (rsv.ab_mode & 1 ? L("lcl_res_bezorgen_fixed") : L("lcl_res_afhalen_fixed")), oRs_roo("plaats").Value);
|
||||
oRs_roo.Close();
|
||||
}
|
||||
else
|
||||
ROFIELD("fld", L("lcl_place") , rsv.ruimtenr.replace(/\n/,"<br>"));
|
||||
var sameDay = toDateString(rsv.ruimte_van, true) == toDateString(rsv.ruimte_tot, true);
|
||||
ROFIELD("fld", L("lcl_date"), toDateTimeString(rsv.ruimte_van) + " - " + (sameDay ? toTimeString(rsv.ruimte_tot) : toDateTimeString(rsv.ruimte_tot)));
|
||||
%>
|
||||
<input type="hidden" name="person" id="person" value="<%=user_key%>">
|
||||
<input type="hidden" name="personH" id="personH" value="<%=user_key%>">
|
||||
@@ -564,7 +620,7 @@ else
|
||||
}
|
||||
);
|
||||
|
||||
CONTROLGROUP_START()
|
||||
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)
|
||||
@@ -584,7 +640,7 @@ else
|
||||
}
|
||||
}
|
||||
|
||||
CONTROLGROUP_END()
|
||||
CONTROLGROUP_END();
|
||||
IFACE.FORM_END();
|
||||
%>
|
||||
</form>
|
||||
|
||||
@@ -34,18 +34,32 @@ FCLTHeader.Requires({ js: ["jquery.timepicker-table.js"],
|
||||
|
||||
var urole = "fe";
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
|
||||
|
||||
var restype = (getQParam("restype", "R").toUpperCase() == "CV" ? "CV" : "R"); // Default gaan we een ruimte reserveren
|
||||
|
||||
var date_from = getQParamDate("date_from", null);
|
||||
var date_to = getQParamDate("date_to", null);
|
||||
var act_key = getQParamInt("act_key", -1);
|
||||
var disc_key = getQParamInt("disc", -1);
|
||||
var res_deel_key = getQParamInt("res_deel", -1);
|
||||
var bez_cnt = getQParamInt("bez_cnt", null);
|
||||
|
||||
var loc_key = getQParamInt("loc_key", -1);
|
||||
var res_ruimte_key = getQParamInt("res_ruimte_key",-1);
|
||||
var bld_key = getQParamInt("bld_key", -1);
|
||||
var flr_key = getQParamInt("flr_key", -1);
|
||||
var roo_key = getQParamInt("roo_key", -1);
|
||||
|
||||
var res_ruimte_key = getQParamInt("res_ruimte_key", -1);
|
||||
var qrc = getQParamInt("qrc", 0) != 0;
|
||||
|
||||
autfunction = ("WEB_RESUSE");
|
||||
var cvab = S("res_default_cvab_mode");
|
||||
var ab_mode = getQParamInt("cvab", -1);
|
||||
|
||||
autfunction = "WEB_RESUSE";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
var transitParam = buildTransitParam(["act_key", "date_from", "date_to", "bez_cnt", "loc_key", "loc_plaats", "res_ruimte_key"]);
|
||||
var transitParam = buildTransitParam(["restype", "act_key", "date_from", "date_to", "bez_cnt", "cvab",
|
||||
"loc_key", "bld_key", "flr_key", "roo_key", "disc", "res_deel", "loc_plaats", "res_ruimte_key"]);
|
||||
var transitParamExtern = buildTransitParam(["date_from", "date_to", "bez_cnt", "loc_plaats"]);
|
||||
|
||||
var sql = "SELECT COALESCE(MIN(fac_gebruiker_alg_level_write), 9) writelevel"
|
||||
@@ -61,21 +75,24 @@ var subject = L("lcl_mobile_newreservering");
|
||||
var curPage = 0;
|
||||
if (rsv_ruimte_key == -1)
|
||||
{
|
||||
if (!date_from && res_ruimte_key==-1)
|
||||
if (act_key < 0)
|
||||
{
|
||||
curPage = 1;
|
||||
// geen parameters aanwezig.
|
||||
var srtact_key = getQParamInt("srtact_key", 1); // Vooralsnog alleen ruimte reserveringen.
|
||||
var sql = "SELECT res_srtactiviteit_metaantal"
|
||||
+ " FROM res_srtactiviteit"
|
||||
+ " WHERE res_srtactiviteit_key = " + srtact_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var toonBez = oRs("res_srtactiviteit_metaantal").value;
|
||||
oRs.Close();
|
||||
subject = L("lcl_ins_controle_choose_srt");
|
||||
var srtact_key = getQParamInt("srtact_key", -1);
|
||||
|
||||
if (srtact_key > 0)
|
||||
{
|
||||
// Bepaal restype uit srtactiviteit.
|
||||
var sql = "SELECT res_srtactiviteit_soort"
|
||||
+ " FROM res_srtactiviteit"
|
||||
+ " WHERE res_srtactiviteit_key = " + srtact_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.EoF)
|
||||
restype = oRs("res_srtactiviteit_soort").value == 0 ? "R" : "CV"; // srtact_key 'sterker' dan restype
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
// default begin en eindtijd
|
||||
var res_van = new Date().setFloatHours(S("res_t1") + 24, S("res_h")); // default morgen
|
||||
var res_tot = res_van.addFloatHours(S("res_dur"), S("res_h"));
|
||||
// Activiteiten
|
||||
var sql_a = "SELECT a.res_activiteit_key"
|
||||
+ " , " + "CASE WHEN sa.res_srtactiviteit_prefix IS NULL"
|
||||
@@ -90,8 +107,9 @@ if (rsv_ruimte_key == -1)
|
||||
+ " , res_srtactiviteit sa"
|
||||
+ " WHERE res_activiteit_verwijder IS NULL"
|
||||
+ " AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||||
+ " AND sa.res_srtactiviteit_key = " + srtact_key
|
||||
+ " AND sa.res_srtactiviteit_soort = 0" // restype = "R"
|
||||
+ (srtact_key > 0
|
||||
? " AND sa.res_srtactiviteit_key = " + srtact_key
|
||||
: " AND sa.res_srtactiviteit_soort = " + (restype == "R" ? "0" : "1"))
|
||||
+ " AND EXISTS (SELECT res_activiteit_key"
|
||||
+ " FROM res_activiteitdiscipline rad,"
|
||||
+ " ins_tab_discipline disc"
|
||||
@@ -104,13 +122,39 @@ if (rsv_ruimte_key == -1)
|
||||
+ " AND rad.res_discipline_key = disc.ins_discipline_key"
|
||||
+ " AND rad.res_activiteit_key = a.res_activiteit_key"
|
||||
+ " AND ins_discipline_verwijder IS NULL"
|
||||
+ " AND ins_discipline_min_level = 3" // 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte
|
||||
+ " AND ins_discipline_min_level = " + (restype == "R" ? "3" : "1") // 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte
|
||||
+ " )"
|
||||
+ " ORDER BY res_activiteit_volgnr"
|
||||
+ " , sa.res_srtactiviteit_prefix"
|
||||
+ " , UPPER(" + lcl.xsql('a.res_activiteit_omschrijving', 'a.res_activiteit_key') +")";
|
||||
|
||||
}
|
||||
else if (!date_from)
|
||||
{
|
||||
// act_key bekend
|
||||
curPage = 2;
|
||||
|
||||
var sql_b = "SELECT sa.res_srtactiviteit_metaantal"
|
||||
+ " , ra.res_activiteit_duur"
|
||||
+ " , ra.res_activiteit_aantalverplicht"
|
||||
+ " FROM res_activiteit ra"
|
||||
+ " , res_srtactiviteit sa"
|
||||
+ " WHERE ra.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||||
+ " AND ra.res_activiteit_key = " + act_key;
|
||||
|
||||
var oRs = Oracle.Execute(sql_b);
|
||||
var toonBez = oRs("res_srtactiviteit_metaantal").Value;
|
||||
var res_duur = oRs("res_activiteit_duur").Value;
|
||||
var res_verp = oRs("res_activiteit_aantalverplicht").Value;
|
||||
|
||||
oRs.Close();
|
||||
|
||||
// default begin en eindtijd
|
||||
var res_van = new Date().setFloatHours(S("res_t1") + 24, S("res_h")); // default morgen
|
||||
var res_tot = res_van.addFloatHours(S("res_dur"), S("res_h"));
|
||||
|
||||
// Locaties (waar reserveerbare ruimten zijn binnen de scope van de user)
|
||||
var params = {};
|
||||
var filtClause = getFiltClauseLocatie("RES");
|
||||
var sql_l = "SELECT l.alg_locatie_key"
|
||||
+ ", " + S("alg_loc_string") + " naam"
|
||||
@@ -120,15 +164,15 @@ if (rsv_ruimte_key == -1)
|
||||
+ " WHERE 1=1"
|
||||
+ filtClause.where
|
||||
+ " ORDER BY 2";
|
||||
};
|
||||
|
||||
if (date_from && res_ruimte_key==-1)
|
||||
}
|
||||
else if (ab_mode < 0) // Ruimte Reservering
|
||||
{
|
||||
curPage = 2;
|
||||
curPage = 3;
|
||||
|
||||
// verplicht: date_from: begin van reservering
|
||||
// loc_key: locatie key
|
||||
// act_key: activiteit
|
||||
// optioneel: bez_cnt: aantal bezoekers
|
||||
// loc_key: locatie key
|
||||
// res_tot: einde van reservering (niet meerdaags)
|
||||
|
||||
var params = { loc: loc_key,
|
||||
@@ -142,8 +186,121 @@ if (rsv_ruimte_key == -1)
|
||||
authparams: user.checkAutorisation("WEB_RESUSE", null, null, true), // urole == "fe" en pessimistisch.
|
||||
ruimtecat: []
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
else if (res_deel_key < 0) // Voorziening Reservering
|
||||
{
|
||||
|
||||
curPage = 4;
|
||||
subject = "Kies Objecten"; // TODO
|
||||
|
||||
var sql_d = "SELECT dis.ins_discipline_key, "
|
||||
+ " " + lcl.xsqla('dis.ins_discipline_omschrijving','dis.ins_discipline_key')
|
||||
+ " FROM res_v_aanwezigdiscipline dis"
|
||||
+ " WHERE ins_discipline_min_level = 1"
|
||||
+ " AND dis.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.fac_gebruiker_alg_level_write < 9"
|
||||
+ " AND g.fac_gebruiker_prs_level_write < 9"
|
||||
+ " AND g.prs_perslid_key = " + user_key
|
||||
+ " )"
|
||||
+ " AND dis.ins_discipline_key IN"
|
||||
+ " (SELECT res_discipline_key" /* DISTINCT */
|
||||
+ " FROM res_deel r, ins_deel d"
|
||||
+ " WHERE r.res_deel_verwijder IS NULL"
|
||||
+ " AND r.res_ins_deel_key = d.ins_deel_key)"
|
||||
+ " AND EXISTS (SELECT res_activiteit_key"
|
||||
+ " FROM res_activiteitdiscipline rad"
|
||||
+ " WHERE rad.res_discipline_key = dis.ins_discipline_key"
|
||||
+ " AND rad.res_activiteit_key = " + act_key
|
||||
+ " )";
|
||||
|
||||
if (disc_key > 0 && res_deel_key < 0) sql_d = sql_d + " AND dis.ins_discipline_key = " + disc_key;
|
||||
|
||||
if (S("vis_parking_key") != -1) sql_d = sql_d + " AND dis.ins_discipline_key != " + S("vis_parking_key");
|
||||
|
||||
if (S("res_fe_discs_only_in_res") != -1 && !fronto && !backo && restype == 'CV')
|
||||
sql_d = sql_d + " AND dis.ins_discipline_key NOT IN (" + S("res_fe_discs_only_in_res") + ") ";
|
||||
|
||||
sql_d = sql_d + " ORDER BY ins_discipline_volgnr";
|
||||
// Starting res_deel sql
|
||||
|
||||
var select_fields = " r.res_deel_key"
|
||||
+ ", " + lcl.xsqla('r.res_deel_opmerking', 'r.res_deel_key')
|
||||
+ ", " + lcl.xsql('r.res_deel_omschrijving', 'r.res_deel_key')
|
||||
+ " || CASE"
|
||||
+ " WHEN (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > SYSDATE)"
|
||||
+ " THEN ''"
|
||||
+ " ELSE " + safe.quoted_sql(L("lcl_inactive_data_suffix"))
|
||||
+ " END res_deel_omschrijving"
|
||||
+ ", COALESCE(d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) ins_alg_ruimte_key"
|
||||
+ (ab_mode & 1 ?
|
||||
""
|
||||
: ", aogg.alg_plaatsaanduiding || ' (' || aogg.alg_onroerendgoed_omschrijving || ')' plaats"
|
||||
)
|
||||
+ ", disc.ins_discipline_key"
|
||||
+ ", disc.ins_discipline_omschrijving"
|
||||
// + ", r.res_deel_prijs"
|
||||
+ ", r.res_deel_image"
|
||||
// + ", " + lcl.xsqla('r.res_deel_eenheid', 'r.res_deel_key')
|
||||
// + ", res_disc_params_preposttime"
|
||||
+ ", d.ins_deel_key";
|
||||
|
||||
var sql_r = getScopedResDeelSql({ select_fields : select_fields,
|
||||
extra_from : "(" + sql_d + ") disc" + (ab_mode & 1 ? "" : ", alg_v_allonrgoed_gegevens aogg"),
|
||||
loc_key : loc_key,
|
||||
geb_key : bld_key,
|
||||
ver_key : flr_key,
|
||||
rui_key : roo_key,
|
||||
autfunction : autfunction,
|
||||
res_tot : date_to
|
||||
});
|
||||
|
||||
sql_r += " AND r.res_discipline_key = disc.ins_discipline_key";
|
||||
|
||||
if (!(ab_mode & 1)) // Voorziening afhalen
|
||||
sql_r += " AND d.ins_alg_locatie_key = " + loc_key
|
||||
+ " AND aogg.alg_onroerendgoed_keys = COALESCE(d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)";
|
||||
|
||||
sql_r += " GROUP BY "
|
||||
+ " r.res_deel_key"
|
||||
+ ", " + lcl.xsql('r.res_deel_opmerking', 'r.res_deel_key')
|
||||
+ ", " + lcl.xsql('r.res_deel_omschrijving', 'r.res_deel_key')
|
||||
+ ", r.res_deel_vervaldatum"
|
||||
+ ", COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)"
|
||||
+ (ab_mode & 1 ?
|
||||
""
|
||||
: ", aogg.alg_plaatsaanduiding || ' (' || aogg.alg_onroerendgoed_omschrijving || ')'"
|
||||
)
|
||||
+ ", disc.ins_discipline_key"
|
||||
+ ", disc.ins_discipline_omschrijving"
|
||||
// + ", r.res_deel_prijs"
|
||||
+ ", r.res_deel_image"
|
||||
// + ", " + lcl.xsql('r.res_deel_eenheid', 'r.res_deel_key')
|
||||
// + ", res_disc_params_preposttime"
|
||||
+ ", d.ins_deel_key"
|
||||
+ " ORDER BY 6, 3 ";
|
||||
|
||||
var count = 0;
|
||||
var oRs_count = Oracle.Execute(sql_r);
|
||||
if (!oRs_count.EoF)
|
||||
{
|
||||
count++;
|
||||
var only_res_deel_key = oRs_count("res_deel_key").Value;
|
||||
var alg_ruimte_key = oRs_count("ins_alg_ruimte_key").Value;
|
||||
|
||||
oRs_count.moveNext();
|
||||
if (!oRs_count.EoF)
|
||||
{
|
||||
count++;
|
||||
only_res_deel_key = -1;
|
||||
alg_ruimte_key = -1;
|
||||
}
|
||||
}
|
||||
oRs_count.Close();
|
||||
}
|
||||
}
|
||||
|
||||
// Ik wil een reservering maken. Ik zie het volgende voor me:
|
||||
//
|
||||
@@ -174,110 +331,121 @@ if (rsv_ruimte_key == -1)
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTMHeader.Generate({title: subject }); %>
|
||||
<script type="text/javascript">
|
||||
<% FCLTMHeader.Generate({title: subject });
|
||||
|
||||
function fn_res_next1()
|
||||
{
|
||||
if (!validateForm("res_new_1"))
|
||||
return false;
|
||||
if (curPage == 2)
|
||||
{ %>
|
||||
|
||||
var datum = $("#date_from").val();
|
||||
var activiteit = $("#act_key").val();
|
||||
var bezoekers = $("#bez_cnt").val();
|
||||
var locatie = $("#loc_key").val();
|
||||
var loc_plaats = $("#loc_plaats").val();
|
||||
var purl = "?rsv_ruimte_key=-1"
|
||||
+ "&date_from=" + datum
|
||||
+ "&date_to=" + $("#date_to").val()
|
||||
+ "&act_key=" + activiteit
|
||||
+ (locatie > 0 ? "&loc_key=" + locatie : "")
|
||||
+ (loc_plaats ? "&loc_plaats=" + escape(loc_plaats) : "")
|
||||
+ (bezoekers ? "&bez_cnt=" + bezoekers : "")
|
||||
+ "<%=safe.jsstring(transitParam)%>";
|
||||
<script type="text/javascript">
|
||||
|
||||
window.location.href = "reservering_new.asp" + purl;
|
||||
}
|
||||
|
||||
function autosetEindtijd()
|
||||
{
|
||||
var opt = $("#act_key").find("option:selected");
|
||||
// De extraParamValue is opgeslagen als text. De res_activiteit_duur is een float met mogelijk een komma i.p.v. een punt als decemaal scheidingsteken.
|
||||
var res_duur = parseFloat((String(opt[0].getAttribute("res_activiteit_duur"))).replace(',','.'));
|
||||
|
||||
if (res_duur)
|
||||
{
|
||||
var startDate = new Date(parseInt($('#date_from').val()));
|
||||
var endDate = new Date(parseInt($('#date_to').val()));
|
||||
var estEndDate = startDate.addFloatHours(res_duur, <%=safe.jsfloat(S("res_h"))%>);
|
||||
if (!isNaN(startDate) && endDate.getTime() != estEndDate.getTime())
|
||||
function fn_res_next1()
|
||||
{
|
||||
$("#show_date_to").datepicker('setDate',new Date(estEndDate));
|
||||
$("#date_to").val(estEndDate.getTime());
|
||||
$("#time_from_date_to").val(toTimeString(estEndDate)).css("color", "red");
|
||||
if (!validateForm("res_new_1"))
|
||||
return false;
|
||||
|
||||
var activiteit = <%=act_key%>;
|
||||
|
||||
var datum = $("#date_from").val();
|
||||
var bezoekers = $("#bez_cnt").val();
|
||||
|
||||
<% if (!(cvab & 2))
|
||||
{
|
||||
%>var cvab = $("#cvab_mode").val() || -1; <%
|
||||
}
|
||||
else if (restype == "CV")
|
||||
{
|
||||
%>var cvab = <%= cvab %>; <%
|
||||
} %>
|
||||
|
||||
var purl = "?rsv_ruimte_key=-1"
|
||||
+ "&date_from=" + datum
|
||||
+ "&date_to=" + $("#date_to").val()
|
||||
+ (typeof cvab != 'undefined' && (cvab % 1) === 0 ? "&cvab=" + cvab : "")
|
||||
+ (bezoekers ? "&bez_cnt=" + bezoekers : "")
|
||||
+ "<%=safe.jsstring(transitParam)%>";
|
||||
|
||||
purl = "plaatsselector.asp"
|
||||
+ "?act_key=" + activiteit
|
||||
+ "&filtCode="+<%=(restype == "R" ? "\"RES\"" : "(cvab & 1 ? \"RESB\" : \"RESA\")")%>
|
||||
+ "&autlevel=<%=autlevel%>"
|
||||
+ "&eindlevel="+<%=(restype == "R" ? "\"2\"" : "(cvab & 1 ? \"5\" : \"2\")")%>
|
||||
+ "&return_to=<%=safe.url("reservering_new.asp")%>" + encodeURIComponent(purl);
|
||||
|
||||
window.location.href = purl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkVeldenVerplicht()
|
||||
{
|
||||
// Afhankelijk van de geselecteerde waarde voor activiteit
|
||||
// moet het veld aantalbezoekers verplicht worden gemaakt.
|
||||
var opt = $("#act_key").find("option:selected");
|
||||
var bez_verplicht = opt[0].getAttribute("res_activiteit_aantalverplicht");
|
||||
$("#bez_cnt").toggleClass("required", bez_verplicht == 1);
|
||||
}
|
||||
function autosetEindtijd()
|
||||
{
|
||||
var opt = $("#act_key").find("option:selected");
|
||||
// De extraParamValue is opgeslagen als text. De res_activiteit_duur is een float met mogelijk een komma i.p.v. een punt als decemaal scheidingsteken.
|
||||
var res_duur = parseFloat((String(<%=res_duur%>)).replace(',','.'));
|
||||
|
||||
function OnChangeActivity()
|
||||
{
|
||||
checkVeldenVerplicht();
|
||||
autosetEindtijd();
|
||||
}
|
||||
if (res_duur)
|
||||
{
|
||||
var startDate = new Date(parseInt($('#date_from').val()));
|
||||
var endDate = new Date(parseInt($('#date_to').val()));
|
||||
var estEndDate = startDate.addFloatHours(res_duur, <%=safe.jsfloat(S("res_h"))%>);
|
||||
if (!isNaN(startDate) && endDate.getTime() != estEndDate.getTime())
|
||||
{
|
||||
$("#show_date_to").datepicker('setDate',new Date(estEndDate));
|
||||
$("#date_to").val(estEndDate.getTime());
|
||||
$("#time_from_date_to").val(toTimeString(estEndDate)).css("color", "red");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function changeLoc(elm)
|
||||
{
|
||||
var loc_key = $(elm).val();
|
||||
if (loc_key > 0)
|
||||
$('#loc_plaats').val($(elm).find('option:selected').attr('alg_locatie_plaats')).textinput('disable');
|
||||
else
|
||||
$('#loc_plaats').textinput('enable');
|
||||
}
|
||||
function checkVeldenVerplicht()
|
||||
{
|
||||
// Afhankelijk van de geselecteerde waarde voor activiteit
|
||||
// moet het veld aantalbezoekers verplicht worden gemaakt.
|
||||
var bez_verplicht = "<%=res_verp%>";
|
||||
$("#bez_cnt").toggleClass("required", bez_verplicht == 1);
|
||||
}
|
||||
|
||||
function updateCvab(cvab)
|
||||
{
|
||||
$("#cvab_mode").val(cvab);
|
||||
}
|
||||
|
||||
</script>
|
||||
<% } %>
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<%
|
||||
if (curPage == 0)
|
||||
{
|
||||
PAGE_START({id: "page-0-"+rsv_ruimte_key});
|
||||
HEADER({title: L("lcl_mobile_selectdatum"), back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
||||
CONTENT_START();
|
||||
ROFIELD("fld", "AjAi", "Verkeerde pagina");
|
||||
CONTENT_END();
|
||||
FOOTER();
|
||||
PAGE_END();
|
||||
}
|
||||
|
||||
if (curPage == 1)
|
||||
{
|
||||
PAGE_START({id: "page-1-"+rsv_ruimte_key});
|
||||
PAGE_START({id: "page-"+curPage});
|
||||
HEADER({title: subject, back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
||||
CONTENT_START();
|
||||
|
||||
if (curPage == 0)
|
||||
{
|
||||
ROFIELD("fld", "AiAi", "Verkeerde pagina");
|
||||
}
|
||||
if (curPage == 1)
|
||||
{
|
||||
|
||||
function fnSubmit(oRs)
|
||||
{
|
||||
return "?act_key=" + oRs("res_activiteit_key").Value + safe.jsstring(transitParam);
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql_a
|
||||
, keyColumn: "res_activiteit_key"
|
||||
, linkColumn: fnSubmit
|
||||
, headerColumn: "res_activiteit_omschrijving"
|
||||
, ID: "acttable"
|
||||
, showAll: true
|
||||
, emptySetString: L("lcl_empty")
|
||||
});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
}
|
||||
if (curPage == 2)
|
||||
{
|
||||
%>
|
||||
<form name="res_new_1" id="res_new_1">
|
||||
<%
|
||||
FCLTselector( "act_key",
|
||||
sql_a,
|
||||
{ label: L("lcl_activity"),
|
||||
emptyOption: L("lcl_res_select_activity"),
|
||||
extraParamValue: "res_activiteit_duur,res_activiteit_aantalverplicht",
|
||||
required: true,
|
||||
mobile: true,
|
||||
onChange: "OnChangeActivity()"
|
||||
}
|
||||
);
|
||||
|
||||
FCLTcalendar("date_from",
|
||||
{ label : L("lcl_from"),
|
||||
datum: res_van,
|
||||
@@ -294,6 +462,7 @@ if (rsv_ruimte_key == -1)
|
||||
onChange : "autosetEindtijd()"
|
||||
}
|
||||
);
|
||||
|
||||
FCLTcalendar("date_to",
|
||||
{ label : L("lcl_to"),
|
||||
datum: res_tot,
|
||||
@@ -302,7 +471,7 @@ if (rsv_ruimte_key == -1)
|
||||
timeStep: S("res_h") * 60,
|
||||
startTime: S("res_t1"),
|
||||
endTime: S("res_t2"),
|
||||
hidden: true, // Meerdaags ruimte ondersteunen we nog niet echt
|
||||
hidden: restype == "R", // Meerdaags ruimte ondersteunen we nog niet echt
|
||||
required: true,
|
||||
volgnr: 2,
|
||||
mobile: true
|
||||
@@ -312,43 +481,32 @@ if (rsv_ruimte_key == -1)
|
||||
if (toonBez)
|
||||
RWFIELD("bez_cnt", L("lcl_visitors") , bez_cnt, {datatype: "number", required: false});
|
||||
|
||||
var loc_key = user.alg_locatie_key( { withcurrent:true });
|
||||
var plaats = "";
|
||||
if (loc_key > 0)
|
||||
plaats = new Locatie(loc_key).alg_locatie_plaats();
|
||||
|
||||
var anyremote = res.anyremotes();
|
||||
FCLTselector( "loc_key",
|
||||
sql_l,
|
||||
{ initKey: loc_key,
|
||||
emptyOption: anyremote?L("lcl_shared_other"):null,
|
||||
label: L("lcl_location"),
|
||||
initEmpty: true,
|
||||
mobile:true,
|
||||
extraParamValue: "alg_locatie_plaats",
|
||||
onChange: "changeLoc(this)"
|
||||
}
|
||||
);
|
||||
|
||||
if (anyremote)
|
||||
RWFIELD("loc_plaats", "" , plaats, { html: 'disabled=1' });
|
||||
if (restype == "CV")
|
||||
{
|
||||
if (cvab & 2) // dan vast
|
||||
{ %>
|
||||
<label><%=(cvab & 1)? L("lcl_res_bezorgen") : L("lcl_res_afhalen")%></label>
|
||||
<% }
|
||||
else // toggle bezorg/afhaal
|
||||
{
|
||||
CONTROLGROUP_START({ horizontal: true }); %>
|
||||
<input type="radio" name="ab_mode" id="cvab-a" value="0" onChange="updateCvab(0)" <%=!(cvab & 1)? "checked" : ""%>>
|
||||
<label for="cvab-a"><%=L("lcl_res_afhalen")%></label>
|
||||
<input type="radio" name="ab_mode" id="cvab-b" value="1" onChange="updateCvab(1)" <%=cvab & 1? "checked" : ""%>>
|
||||
<label for="cvab-b"><%=L("lcl_res_bezorgen")%></label>
|
||||
<% CONTROLGROUP_END();
|
||||
} %>
|
||||
<input type="hidden" id="cvab_mode" name="cvab_mode" value="<%=cvab%>">
|
||||
<% }
|
||||
|
||||
CONTROLGROUP_START();
|
||||
BUTTON(L("lcl_next"), {click: "fn_res_next1()", dataicon: "arrow-r", dataajax: "false"});
|
||||
CONTROLGROUP_END();
|
||||
%>
|
||||
</form>
|
||||
<%
|
||||
CONTENT_END();
|
||||
FOOTER();
|
||||
PAGE_END();
|
||||
}
|
||||
|
||||
if (curPage == 2) // Lijst met geschikte ruimtes
|
||||
<%}
|
||||
if (curPage == 3) // Lijst met geschikte ruimtes
|
||||
{
|
||||
PAGE_START({id: "page-2-"+rsv_ruimte_key});
|
||||
HEADER({title: subject, back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
||||
CONTENT_START();
|
||||
|
||||
function fnDataFilter(oRs)
|
||||
{
|
||||
@@ -385,9 +543,7 @@ if (rsv_ruimte_key == -1)
|
||||
+ "&res_ruimte_key=" + oRs.Fields("res_ruimte_key").Value
|
||||
+ transitParam;
|
||||
}
|
||||
|
||||
|
||||
return nurl;
|
||||
return nurl;
|
||||
};
|
||||
|
||||
function fnDetail(oRs)
|
||||
@@ -468,10 +624,9 @@ if (rsv_ruimte_key == -1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var plan_rooms_info = res.plan_rooms_info(params);
|
||||
var plan_bezet_info = res.plan_bezet_info(params);
|
||||
set_will_fit(plan_rooms_info, plan_bezet_info, params)
|
||||
set_will_fit(plan_rooms_info, plan_bezet_info, params);
|
||||
|
||||
var rst = new ResultsetTable({ dataset: plan_rooms_info
|
||||
, fnDataFilter: fnDataFilter
|
||||
@@ -487,10 +642,11 @@ if (rsv_ruimte_key == -1)
|
||||
, noSearch: true
|
||||
, emptySetString: L("lcl_empty")
|
||||
});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
|
||||
// En nu de externen
|
||||
var autfunction = "WEB_RESUSE"; // TODO
|
||||
var autfunction = "WEB_RESUSE";
|
||||
// Overzicht externe ruimtes
|
||||
var sql = res.getremotes_sql(autfunction);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
@@ -544,12 +700,74 @@ if (rsv_ruimte_key == -1)
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.close();
|
||||
}
|
||||
if (curPage == 4)
|
||||
{
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
Response.Write(L("lcl_no_objects"));
|
||||
}
|
||||
else if (count == 1) // 1x res_deel available
|
||||
{
|
||||
var url = "reservering.asp?res_deel=" + only_res_deel_key
|
||||
+ (ab_mode & 1 ? "" : "&roo_key=" + alg_ruimte_key) + transitParam;
|
||||
Response.Write("<script language=javascript>window.location.href = '"+url+"';</script>");
|
||||
}
|
||||
else // count > 1 && multiple res_deel available
|
||||
{
|
||||
function fnResCV(oRs)
|
||||
{
|
||||
res_deel_key = oRs("res_deel_key").Value;
|
||||
var alg_ruimte_key = oRs("ins_alg_ruimte_key").Value;
|
||||
return "reservering.asp?res_deel=" + res_deel_key
|
||||
+ (ab_mode & 1 ? "" : "&roo_key=" + alg_ruimte_key)
|
||||
+ transitParam;
|
||||
}
|
||||
|
||||
function fnResDeelIcon(oRs)
|
||||
{
|
||||
var icon = "";
|
||||
if (oRs.Fields("res_deel_image").Value != null)
|
||||
{
|
||||
icon = oRs.Fields("res_deel_image").Value;
|
||||
if (!icon.match(/^http/))
|
||||
icon = safe.htmlattr(S("res_image_path") + "deel/" + icon);
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
|
||||
function fncolSubHeader(oRs)
|
||||
{
|
||||
var txt = "";
|
||||
if (!(ab_mode & 1)) // afhalen
|
||||
{
|
||||
txt = "<div class='listbodytext'>" + L("lcl_res_afhalen_fixed") + ":</div>"
|
||||
+ "<div class='listbodytext'>" + safe.html(oRs("plaats").Value) + "</div>";
|
||||
}
|
||||
return txt;
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql_r
|
||||
, keyColumn: "res_deel_key"
|
||||
, linkColumn: fnResCV
|
||||
, iconColumn: fnResDeelIcon
|
||||
, dividerColumn: "ins_discipline_omschrijving"
|
||||
, headerColumn: "res_deel_omschrijving"
|
||||
// ? , extraFilterColumn: "mld_stdmelding_hint"
|
||||
, subheaderColumn: fncolSubHeader
|
||||
, ID: "restable"
|
||||
, showAll: true
|
||||
, emptySetString: L("lcl_empty")
|
||||
});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
}
|
||||
}
|
||||
|
||||
CONTENT_END();
|
||||
FOOTER();
|
||||
PAGE_END();
|
||||
}
|
||||
|
||||
%>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -51,7 +51,7 @@ function __rsProcessResultset(processParams)
|
||||
else
|
||||
{
|
||||
/*global*/isData = true;
|
||||
oRs = new data_recordset( this.dataset );
|
||||
var oRs = new data_recordset( this.dataset );
|
||||
}
|
||||
|
||||
if (oRs == null || oRs.EOF)
|
||||
@@ -71,6 +71,8 @@ function __rsProcessResultset(processParams)
|
||||
html += "<ul data-role='listview' data-theme='b' data-inset='" + (this.inset? "true" : "false") + "' data-content-theme='d'>";
|
||||
|
||||
var cnt = 0;
|
||||
var hasResults = false;
|
||||
var initKeyDone = this.initKey == null;
|
||||
for (cnt = 0; (cnt < (S("qp_maxrows_mobile")) || this.showAll ) &&
|
||||
(cnt < S("qp_maxrows2")) &&
|
||||
!oRs.EOF; cnt++)
|
||||
@@ -80,6 +82,8 @@ function __rsProcessResultset(processParams)
|
||||
oRs.MoveNext();
|
||||
continue;
|
||||
}
|
||||
else if (!hasResults)
|
||||
hasResults = true;
|
||||
|
||||
if (this.dividerColumn)
|
||||
{
|
||||
@@ -89,7 +93,15 @@ function __rsProcessResultset(processParams)
|
||||
var lastDivider = safenextDivider;
|
||||
}
|
||||
|
||||
lines.push(this.makeTableRow(oRs, cnt, false));
|
||||
if (!initKeyDone && this.initKey && this.keyColumn && this.initKey == __fnContent(this.keyColumn)(oRs))
|
||||
{
|
||||
lines.unshift(this.makeTableRow(oRs, cnt, false));
|
||||
initKeyDone = true;
|
||||
}
|
||||
else
|
||||
lines.push(this.makeTableRow(oRs, cnt, false));
|
||||
|
||||
|
||||
if (this.buildHistogram)
|
||||
this.countHistogram(oRs);
|
||||
|
||||
@@ -144,6 +156,13 @@ function __rsProcessResultset(processParams)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (cnt == 0 || !hasResults)
|
||||
{
|
||||
Response.Write("<p>" + this.emptySetString + "</p>");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (this.groupSelect == "")
|
||||
html += "</ul>";
|
||||
if (!this.groupColumn)
|
||||
|
||||
144
APPL/RES/res.inc
144
APPL/RES/res.inc
@@ -1986,7 +1986,7 @@ function get_res_deel_sql (params)
|
||||
+ " , res_disc_params rdp"
|
||||
+ " , (SELECT aob.alg_regio_key, aob.alg_district_key, aob.alg_locatie_key, aob.alg_gebouw_key, aob.alg_verdieping_key, aob.alg_ruimte_key "
|
||||
+ " FROM "
|
||||
+ (params.res_ruimte_key > 0
|
||||
+ ((params.res_ruimte_key || -1) > -1
|
||||
? " res_v_aanwezigalg_ruimte rrr,"
|
||||
: "")
|
||||
+ " alg_v_onrgoed_boom aob"
|
||||
@@ -2006,14 +2006,17 @@ function get_res_deel_sql (params)
|
||||
+ ((params.ver_key || -1) > -1
|
||||
? " AND aob.alg_verdieping_key=" + params.ver_key
|
||||
: "")
|
||||
+ ((params.res_ruimte_key > 0)
|
||||
+ ((params.res_ruimte_key || -1) > -1
|
||||
? " AND res_ruimte_key = " + params.res_ruimte_key + " AND rrr.alg_ruimte_key = aob.alg_ruimte_key"
|
||||
: "")
|
||||
+ ((params.alg_ruimte_key > 0)
|
||||
+ ((params.alg_ruimte_key || -1) > -1
|
||||
? " AND aob.alg_ruimte_key = " + params.alg_ruimte_key
|
||||
: "")
|
||||
+ " ) scope"
|
||||
+ " , res_v_deelscope ds"
|
||||
+ (((params.extra_from || "") != "")
|
||||
? " , " + params.extra_from
|
||||
: "")
|
||||
+ " WHERE r.res_ins_deel_key = d.ins_deel_key"
|
||||
+ " AND rdp.res_ins_discipline_key = r.res_discipline_key"
|
||||
+ (params.sdisc
|
||||
@@ -2030,12 +2033,12 @@ function get_res_deel_sql (params)
|
||||
+ " OR ds.alg_ruimte_key = scope.alg_ruimte_key"
|
||||
+ " OR ds.res_deel_alg_level = -1)"
|
||||
+ " AND r.res_deel_key = ds.res_deel_key"
|
||||
+ " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > " + ora_date2 + ")"
|
||||
+ " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > " + ora_date2 + ")";
|
||||
|
||||
if (params.res_ruimte_key < 0 && (params.alg_ruimte_key < 0))
|
||||
{ // Locatie scope of nog groter. Rechten ook meenemen
|
||||
sql1 = discxalg3d (sql1,
|
||||
"r.RES_DISCIPLINE_KEY",
|
||||
"r.res_discipline_key",
|
||||
"scope.alg_regio_key",
|
||||
"scope.alg_district_key",
|
||||
"scope.alg_locatie_key",
|
||||
@@ -2049,6 +2052,137 @@ function get_res_deel_sql (params)
|
||||
return sql1;
|
||||
}
|
||||
|
||||
function getScopedResDeelSql(params)
|
||||
{
|
||||
|
||||
params = params || {};
|
||||
params.reg_key = params.reg_key || -1;
|
||||
params.dist_key = params.dist_key || -1;
|
||||
params.loc_key = params.loc_key || -1;
|
||||
params.geb_key = params.geb_key || -1;
|
||||
params.ver_key = params.ver_key || -1;
|
||||
params.rui_key = params.rui_key || -1;
|
||||
|
||||
var alg_level;
|
||||
if (params.rui_key > 0) alg_level = 5;
|
||||
else if (params.ver_key > 0) alg_level = 4;
|
||||
else if (params.geb_key > 0) alg_level = 3;
|
||||
else if (params.loc_key > 0) alg_level = 2;
|
||||
else if (params.dist_key > 0) alg_level = 1;
|
||||
else if (params.reg_key > 0) alg_level = 0;
|
||||
else alg_level = -1;
|
||||
|
||||
var res_tot = params.res_tot ? new Date(params.res_tot) : new Date();
|
||||
var ora_date2 = res_tot.endToSQL();
|
||||
|
||||
// res_deel_alg scoping
|
||||
var alg_filter;
|
||||
switch (alg_level)
|
||||
{
|
||||
case 0: alg_filter = "alg_regio_key = " + params.reg_key; break;
|
||||
case 1: alg_filter = "alg_district_key = " + params.dist_key; break;
|
||||
case 2: alg_filter = "alg_locatie_key = " + params.loc_key; break;
|
||||
case 3: alg_filter = "alg_gebouw_key = " + params.geb_key; break;
|
||||
case 4: alg_filter = "alg_verdieping_key = " + params.ver_key; break;
|
||||
case 5: alg_filter = "alg_ruimte_key = " + params.rui_key; break;
|
||||
}
|
||||
|
||||
// res_deel without alg scope
|
||||
var res_d = "SELECT ds.* "
|
||||
+ " FROM res_v_deelscope ds "
|
||||
+ " WHERE ds.res_deel_alg_level = -1 ";
|
||||
|
||||
// res_deel scoped for alg parents
|
||||
if (alg_level > -1)
|
||||
{
|
||||
res_d += "UNION ALL "
|
||||
+ "SELECT ds.* "
|
||||
+ " FROM res_v_deelscope ds "
|
||||
+ " , (SELECT * "
|
||||
+ " FROM alg_v_onrgoed_boom aob "
|
||||
+ " WHERE aob." + alg_filter
|
||||
+ " AND ROWNUM = 1) aob ";
|
||||
var res_d_arr = [];
|
||||
if (alg_level >= 0)
|
||||
{
|
||||
res_d_arr.push("ds.alg_regio_key = aob.alg_regio_key");
|
||||
if (alg_level >= 1)
|
||||
{
|
||||
res_d_arr.push("ds.alg_district_key = aob.alg_district_key");
|
||||
if (alg_level >= 2)
|
||||
{
|
||||
res_d_arr.push("ds.alg_locatie_key = aob.alg_locatie_key");
|
||||
if (alg_level >= 3)
|
||||
{
|
||||
res_d_arr.push("ds.alg_gebouw_key = aob.alg_gebouw_key");
|
||||
if (alg_level >= 4)
|
||||
{
|
||||
res_d_arr.push("ds.alg_verdieping_key = aob.alg_verdieping_key");
|
||||
if (alg_level >= 5)
|
||||
{
|
||||
res_d_arr.push("ds.alg_ruimte_key = aob.alg_ruimte_key");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
res_d += " WHERE (" + res_d_arr.join(" OR ") + ")"
|
||||
+ " AND aob." + alg_filter
|
||||
+ " AND ds.res_deel_alg_level <= " + alg_level;
|
||||
}
|
||||
|
||||
res_d_arr = [];
|
||||
switch (alg_level)
|
||||
{ // note: no break -> multi switch
|
||||
case 0: res_d_arr.push("ds.res_deel_alg_level = 1 AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE ds.alg_district_key = aob.alg_district_key AND aob." + alg_filter + ")");
|
||||
case 1: res_d_arr.push("ds.res_deel_alg_level = 2 AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE ds.alg_locatie_key = aob.alg_locatie_key AND aob." + alg_filter + ")");
|
||||
case 2: res_d_arr.push("ds.res_deel_alg_level = 3 AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE ds.alg_gebouw_key = aob.alg_gebouw_key AND aob." + alg_filter + ")");
|
||||
case 3: res_d_arr.push("ds.res_deel_alg_level = 4 AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE ds.alg_verdieping_key = aob.alg_verdieping_key AND aob." + alg_filter + ")");
|
||||
case 4: res_d_arr.push("ds.res_deel_alg_level = 5 AND EXISTS (SELECT '' FROM alg_v_onrgoed_boom aob WHERE ds.alg_ruimte_key = aob.alg_ruimte_key AND aob." + alg_filter + ")");
|
||||
}
|
||||
|
||||
// res_deel scoped for underlying alg level
|
||||
if (alg_level > -1 && alg_level < 5) // no underlying alg_scope after 5
|
||||
{
|
||||
res_d += " UNION ALL "
|
||||
+ "SELECT ds.* "
|
||||
+ " FROM res_v_deelscope ds "
|
||||
+ " WHERE ds.res_deel_alg_level > " + alg_level
|
||||
+ " AND (" + res_d_arr.join(" OR ") + ")";
|
||||
}
|
||||
// end res_d (res_deel_alg scoping)
|
||||
|
||||
var sql1 = "SELECT " + params.select_fields
|
||||
+ " FROM ins_deel d"
|
||||
+ " , res_v_aanwezigdeel r"
|
||||
+ " , res_disc_params rdp"
|
||||
+ " , (" + res_d + ") resd"
|
||||
+ (((params.extra_from || "") != "")
|
||||
? " , " + params.extra_from
|
||||
: "")
|
||||
+ " WHERE r.res_ins_deel_key = d.ins_deel_key"
|
||||
+ " AND r.res_deel_key = resd.res_deel_key"
|
||||
+ " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > " + ora_date2 + ")"
|
||||
+ " AND rdp.res_ins_discipline_key = r.res_discipline_key"
|
||||
+ " AND COALESCE(d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) IN ('R','T')"
|
||||
+ (params.sdisc
|
||||
? " AND r.res_discipline_key = " + params.sdisc
|
||||
: "");
|
||||
|
||||
sql1 = discxalg3d (sql1,
|
||||
"r.res_discipline_key",
|
||||
"resd.alg_regio_key",
|
||||
"scope.alg_district_key",
|
||||
"scope.alg_locatie_key",
|
||||
"scope.alg_gebouw_key",
|
||||
"scope.alg_verdieping_key",
|
||||
"scope.alg_ruimte_key",
|
||||
params.autfunction,
|
||||
typeof params.sdisc == "number"? params.sdisc : '');
|
||||
return sql1;
|
||||
}
|
||||
|
||||
function planbordTooltipShowing(res_rsv_ruimte_key)
|
||||
{
|
||||
var tonen = false;
|
||||
|
||||
@@ -223,6 +223,7 @@ function getFiltClauseLocatie(pfiltcode, params)
|
||||
|
||||
function getFiltClauseGebouw(pfiltcode, params)
|
||||
{
|
||||
params = params || {};
|
||||
var lfiltClause = {code: "", from: "", where: "", where_geb: "", where_ter: ""};
|
||||
// Facilitair relevant hebben we vaker nodig
|
||||
var lfiltClauseFAC = " AND sg.alg_srtgebouw_passief IS NULL"
|
||||
@@ -313,6 +314,7 @@ function getFiltClauseGebouw(pfiltcode, params)
|
||||
|
||||
function getFiltClauseVerdieping(pfiltcode, params)
|
||||
{
|
||||
params = params || {};
|
||||
var lfiltClause = {from: "", where: ""};
|
||||
// Facilitair relevant hebben we vaker nodig
|
||||
var lfiltClauseFAC = " AND EXISTS"
|
||||
@@ -404,7 +406,7 @@ function getFiltClauseRuimte(pfiltcode, params)
|
||||
+ ", alg_v_aanwezigverdieping av"
|
||||
+ " WHERE ag.alg_gebouw_key = av.alg_gebouw_key"
|
||||
+ " AND sg.alg_srtgebouw_passief IS NULL"
|
||||
+ " AND (g.alg_gebouw_vervaldatum IS NULL OR g.alg_gebouw_vervaldatum > TRUNC(SYSDATE))"
|
||||
+ " AND (ag.alg_gebouw_vervaldatum IS NULL OR ag.alg_gebouw_vervaldatum > TRUNC(SYSDATE))"
|
||||
+ " AND sg.alg_srtgebouw_key(+) = ag.alg_srtgebouw_key"
|
||||
+ " AND av.alg_verdieping_key = r.alg_verdieping_key)";
|
||||
var lfiltClauseEXP = " AND EXISTS"
|
||||
|
||||
Reference in New Issue
Block a user