557 lines
22 KiB
Plaintext
557 lines
22 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: pda/reservering_new.asp
|
|
Description: Add reservering (Mobile version)
|
|
Parameters: rsv_ruimte_key voor bestaande deelreservering
|
|
rsv_ruimte_key=-1 voor nieuwe (deel)reservering
|
|
|
|
Note:
|
|
|
|
*/ %>
|
|
|
|
<% REGISTERMENU_Disable = true; %>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/calendar.inc" -->
|
|
<!-- #include file="../Shared/selector.inc" -->
|
|
<!-- #include file="../Shared/Suggest/plaatsFilter.inc" -->
|
|
<!-- #include file="../Shared/discxalg3d.inc" -->
|
|
<!-- #include file="../RES/res.inc" -->
|
|
<!-- #include file="../RES/res_plan_room.inc" -->
|
|
<!-- #include file="./mobile.inc" -->
|
|
<!-- #include file="./iface.inc" -->
|
|
<!-- #include file="../shared/data_recordset.inc" -->
|
|
<!-- #include file="./resultset_table.inc" -->
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<!-- #include file="../shared/rater.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ js: ["./modernizr.custom.06495.js"] });
|
|
FCLTHeader.Requires({ js: ["jquery.timepicker-table.js"],
|
|
css: ["timePicker-table.css"] });
|
|
|
|
var urole = "fe";
|
|
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
|
|
var date_from = getQParamDate("date_from", null);
|
|
var date_to = getQParamDate("date_to", null);
|
|
var act_key = getQParamInt("act_key", -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 qrc = getQParamInt("qrc", 0) != 0;
|
|
|
|
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 transitParamExtern = buildTransitParam(["date_from", "date_to", "bez_cnt", "loc_plaats"]);
|
|
|
|
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 = " + safe.quoted_sql(autfunction)
|
|
+ " 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 subject = L("lcl_mobile_newreservering");
|
|
var curPage = 0;
|
|
if (rsv_ruimte_key == -1)
|
|
{
|
|
if (!date_from && res_ruimte_key==-1)
|
|
{
|
|
curPage = 1;
|
|
// geen parameters aanwezig.
|
|
var srtact = getQParamInt("srtact", 1); // Vooralsnog alleen ruimte reserveringen.
|
|
var sql = "SELECT res_srtactiviteit_metaantal"
|
|
+ " FROM res_srtactiviteit"
|
|
+ " WHERE res_srtactiviteit_key = " + srtact;
|
|
var oRs = Oracle.Execute(sql);
|
|
var toonBez = oRs("res_srtactiviteit_metaantal").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"));
|
|
// Activiteiten
|
|
var sql_a = "SELECT a.res_activiteit_key"
|
|
+ " , " + "CASE WHEN sa.res_srtactiviteit_prefix IS NULL"
|
|
+ " THEN ''"
|
|
+ " ELSE sa.res_srtactiviteit_prefix || '-'"
|
|
+ " END"
|
|
+ " || "+ lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
|
|
+ " , a.res_activiteit_duur"
|
|
+ " , a.res_activiteit_omsverplicht"
|
|
+ " , a.res_activiteit_aantalverplicht"
|
|
+ " FROM res_activiteit a"
|
|
+ " , res_srtactiviteit sa"
|
|
+ " WHERE res_activiteit_verwijder IS NULL"
|
|
+ " AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
|
+ " AND sa.res_srtactiviteit_key = " + srtact
|
|
+ " AND sa.res_srtactiviteit_soort = 0" // restype = "R"
|
|
+ " AND EXISTS (SELECT res_activiteit_key"
|
|
+ " FROM res_activiteitdiscipline rad,"
|
|
+ " ins_tab_discipline disc"
|
|
+ " , fac_v_my_disciplines md"
|
|
+ " WHERE rad.res_discipline_key = md.ins_discipline_key"
|
|
+ " AND md.prs_perslid_key = " + user_key
|
|
+ " AND md.fac_functie_code = " + safe.quoted_sql(autfunction)
|
|
+ " AND fac_gebruiker_alg_level_write < 9"
|
|
+ " AND fac_gebruiker_prs_level_write < 9"
|
|
+ " 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
|
|
+ " )"
|
|
+ " ORDER BY res_activiteit_volgnr"
|
|
+ " , sa.res_srtactiviteit_prefix"
|
|
+ " , UPPER(" + lcl.xsql('a.res_activiteit_omschrijving', 'a.res_activiteit_key') +")";
|
|
|
|
// Locaties (waar reserveerbare ruimten zijn binnen de scope van de user)
|
|
var filtClause = getFiltClauseLocatie("RES");
|
|
var sql_l = "SELECT l.alg_locatie_key"
|
|
+ ", " + S("alg_loc_string") + " naam"
|
|
+ ", alg_locatie_plaats"
|
|
+ " FROM alg_v_aanweziglocatie l"
|
|
+ filtClause.from
|
|
+ " WHERE 1=1"
|
|
+ filtClause.where
|
|
+ " ORDER BY 2";
|
|
};
|
|
|
|
if (date_from && res_ruimte_key==-1)
|
|
{
|
|
curPage = 2;
|
|
// verplicht: date_from: begin van reservering
|
|
// act_key: activiteit
|
|
// optioneel: bez_cnt: aantal bezoekers
|
|
// loc_key: locatie key
|
|
// res_tot: einde van reservering (niet meerdaags)
|
|
|
|
var params = { loc: loc_key,
|
|
loc_plaats: getQParam("loc_plaats", ""),
|
|
forSelectRoom: true,
|
|
res_van: date_from,
|
|
res_tot: date_to,
|
|
vis: bez_cnt,
|
|
activiteit_key: act_key,
|
|
with_satisfaction: true,
|
|
authparams: user.checkAutorisation("WEB_RESUSE", null, null, true), // urole == "fe" en pessimistisch.
|
|
ruimtecat: []
|
|
};
|
|
};
|
|
};
|
|
|
|
// Ik wil een reservering maken. Ik zie het volgende voor me:
|
|
//
|
|
// 1. Vraag een DATUM. Een datum is de minimale vereiste om te weten
|
|
// 2. Optioneel kunnen er nog waarden opgegeven worden die van invloed zijn op de mogelijkheden. Deze zijn:
|
|
// - capaciteit (hoeveel mensen moet er passen)
|
|
// - locatie/regio (waar precies/ongeveer)
|
|
// - begintijdstip (omstreeks)
|
|
//
|
|
// > Met die datum + filters vragen we kandidaatruimtes op aan de database (of via API)
|
|
//
|
|
// 3. De kandidaatruimtes worden getoond met voldoende info om een keuze te maken. Bijvoorbeeld
|
|
// - gegroepeerd per locaties (indien meer dan 1/niet opgegeven)
|
|
// - dan per ruimte een (1) vermelding rond het genoemde tijdstip
|
|
// - met vermelding Beschikbaar van X to Y
|
|
// ** indien Share&Meet: optie om het verzoek aan externe FACILITORs te vragen.
|
|
// 4. Met een keuze uit deze opties is veel bepaald:
|
|
// - ruimte
|
|
// - datum (was al)
|
|
// - aantal mensen (was al capaciteit, anders obv de default opstelling)
|
|
// en kan nog aangefpast worden:
|
|
// - tijd (de hele beschikbare periode)
|
|
// en is nog nodig en in te vullen:
|
|
// - een omschrijving en evt opmerking
|
|
// - [later?] flexkenmerken
|
|
// 5. Deze gegevens worden gesubmit tot een nieuwe reservering (via service)
|
|
|
|
%>
|
|
<html>
|
|
<head>
|
|
<% FCLTMHeader.Generate({title: subject }); %>
|
|
<script type="text/javascript">
|
|
|
|
function fn_res_next1()
|
|
{
|
|
if (!validateForm("res_new_1"))
|
|
return false;
|
|
|
|
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)%>";
|
|
|
|
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())
|
|
{
|
|
$("#show_date_to").datepicker('setDate',new Date(estEndDate));
|
|
$("#date_to").val(estEndDate.getTime());
|
|
$("#time_from_date_to").val(toTimeString(estEndDate)).css("color", "red");
|
|
}
|
|
}
|
|
}
|
|
|
|
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 OnChangeActivity()
|
|
{
|
|
checkVeldenVerplicht();
|
|
autosetEindtijd();
|
|
}
|
|
|
|
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');
|
|
}
|
|
|
|
</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});
|
|
HEADER({title: subject, back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
|
CONTENT_START();
|
|
%>
|
|
<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,
|
|
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"),
|
|
res_dur: S("res_dur"),
|
|
required: true,
|
|
volgnr: 1,
|
|
mobile: true,
|
|
onChange : "autosetEindtijd()"
|
|
}
|
|
);
|
|
FCLTcalendar("date_to",
|
|
{ label : L("lcl_to"),
|
|
datum: res_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: true, // Meerdaags ruimte ondersteunen we nog niet echt
|
|
required: true,
|
|
volgnr: 2,
|
|
mobile: true
|
|
}
|
|
);
|
|
|
|
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' });
|
|
|
|
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
|
|
{
|
|
PAGE_START({id: "page-2-"+rsv_ruimte_key});
|
|
HEADER({title: subject, back:!qrc, datatheme: (urole=='fe' ? jQFrontEndTheme : null) });
|
|
CONTENT_START();
|
|
|
|
function fnDataFilter(oRs)
|
|
{
|
|
return oRs.Fields("will_fit").Value;
|
|
}
|
|
|
|
function fncolIcon(oRs)
|
|
{
|
|
var icon = "../Pictures/house_p.png";
|
|
if (oRs.Fields("image_url").Value != null)
|
|
{
|
|
icon = oRs.Fields("image_url").Value;
|
|
//if (!icon.match(/^http/))
|
|
// icon = S("res_image_path") + icon;
|
|
}
|
|
return icon;
|
|
}
|
|
|
|
function fncol1Link(oRs, processParams)
|
|
{
|
|
if (processParams && processParams.disc_key)
|
|
{
|
|
var deepurl = oRs.Fields("deepurl").Value;
|
|
deepurl += "&res_ruimte_key=" + oRs.Fields("res_ruimte_key").Value
|
|
+ "&bez_omschr=" + "Vanuit+extern+systeem" // TODO
|
|
//+ "&flex_defaults=" + escape(extern_flex);
|
|
var orghome = HTTP.urlzelf() + "/appl/pda/facilitor.asp";
|
|
var nurl = "../res/res_goto_extern.asp?res_disc_key=" + processParams.disc_key
|
|
+ "&deepurl=" + escape(deepurl + transitParamExtern + "&orghome=" + orghome); // extern kan niets met onze act_key
|
|
}
|
|
else
|
|
{
|
|
var nurl = "reservering.asp?rsv_ruimte_key=-1"
|
|
+ "&res_ruimte_key=" + oRs.Fields("res_ruimte_key").Value
|
|
+ transitParam;
|
|
}
|
|
|
|
|
|
return nurl;
|
|
};
|
|
|
|
function fnDetail(oRs)
|
|
{
|
|
// return toTimeString(dataregel.begintijd);
|
|
}
|
|
|
|
function fnHeader(oRs)
|
|
{
|
|
var txt = safe.html(oRs.Fields("res_ruimte_nr").Value);
|
|
if (oRs.Fields("satisfaction").Value)
|
|
{
|
|
var likesymbol = rater(oRs.Fields("satisfaction").Value, { readonly: true } );
|
|
txt += "<br>" + likesymbol;
|
|
}
|
|
return txt;
|
|
}
|
|
|
|
function fnSubheader(oRs)
|
|
{
|
|
// Toon extra gegevens over deze ruimte.
|
|
var bMin = oRs.Fields("bMin").Value;
|
|
var bMax = oRs.Fields("bMax").Value;
|
|
var capc_txt = String(bMin) + ((bMin!=bMax)?"-"+bMax:"") + " pers.";
|
|
if (oRs.Fields("prijs").Value)
|
|
capc_txt += ", " + S("currency_pref") + safe.curr(oRs.Fields("prijs").Value)
|
|
var txt = "<div class='listbodytext'>" + safe.html(capc_txt) + "</div>";
|
|
txt += "<div class='listbodytext'>" + safe.html(oRs.Fields("omschrijving").Value) + "</div>";
|
|
|
|
return txt;
|
|
|
|
/* // Voorlopig nog niet de beschikbare tijden laten zien.
|
|
var vrij = "";
|
|
var res_arr = dataregel.existing_res;
|
|
if (res_arr != null)
|
|
{
|
|
res_arr.sort(dynamicSort({col: "res_van", desc: false}));
|
|
var t1 = new Date(dataregel.begintijd);
|
|
var t2 = t1;
|
|
for (var ci=0; res_arr != null && ci < res_arr.length; ci++)
|
|
{
|
|
t2 = res_arr[ci].res_van;
|
|
if (ci==0)
|
|
{
|
|
t1 = new Date(t2.getTime());
|
|
t1.setHours(dataregel.begintijd,0,0,0);
|
|
}
|
|
if (t1 < t2)
|
|
{
|
|
vrij += toTimeString(t1) + " - " + toTimeString(t2) + "<br>";
|
|
t1 = res_arr[ci].res_tot;
|
|
}
|
|
}
|
|
|
|
t2 = new Date(t1.getTime());
|
|
t2.setHours(dataregel.eindtijd,0,0,0);
|
|
if (t1 < t2)
|
|
{
|
|
vrij += toTimeString(t1) + " - " + toTimeString(t2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
vrij = toTimeString(dataregel.begintijd) + " - " + toTimeString(dataregel.eindtijd);
|
|
}
|
|
return vrij;
|
|
*/
|
|
}
|
|
|
|
function dynamicSort(params)
|
|
{
|
|
params = params || {};
|
|
var sortOrder = (params.desc ? -1 : 1);
|
|
return function (a,b)
|
|
{
|
|
var result = (a[params.col] < b[params.col]) ? -1 : (a[params.col] > b[params.col]) ? 1 : 0;
|
|
return result * sortOrder;
|
|
}
|
|
}
|
|
|
|
|
|
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)
|
|
|
|
var rst = new ResultsetTable({ dataset: plan_rooms_info
|
|
, fnDataFilter: fnDataFilter
|
|
, keyColumn: "res_ruimte_key"
|
|
, iconColumn: fncolIcon
|
|
, linkColumn: fncol1Link
|
|
, headerColumn: fnHeader
|
|
//, detailColumn: fnDetail
|
|
, subheaderColumn: fnSubheader
|
|
, dividerColumn: (loc_key == -1 ? "locatie" : "")
|
|
, ID: "restable"
|
|
, showAll: true
|
|
, noSearch: true
|
|
, emptySetString: L("lcl_empty")
|
|
});
|
|
var cnt = rst.processResultset();
|
|
|
|
// En nu de externen
|
|
var autfunction = "WEB_RESUSE"; // TODO
|
|
// Overzicht externe ruimtes
|
|
var sql = res.getremotes_sql(autfunction);
|
|
var oRs = Oracle.Execute(sql);
|
|
while( !oRs.eof )
|
|
{
|
|
var disc_key = oRs.Fields("ins_discipline_key").Value;
|
|
%>
|
|
<div class="resprodextern">
|
|
<%= L("lcl_res_extern_prefix") + Server.HTMLencode(oRs.Fields("ins_discipline_omschrijving").Value)%>
|
|
</div>
|
|
<%
|
|
var url = oRs.Fields("res_disc_params_remoteurl").Value + "&API=RESINFO";
|
|
|
|
var resparams = {
|
|
res_van: params.res_van,
|
|
res_tot: params.res_tot,
|
|
reg: -1,
|
|
dist: -1,
|
|
loc: -1,
|
|
bld: -1,
|
|
ver: -1,
|
|
rui: -1,
|
|
ruimtecat: []
|
|
};
|
|
|
|
resparams.alg_locatie_plaats = params.loc_plaats;// Aan de andere kant kennen we onze key niet, daarom via plaats.
|
|
|
|
resparams.request = "plan_rooms_info";
|
|
resparams.mobile = true;
|
|
/*global*/ plan_rooms_info = HTTP.getJSON(url, { data: resparams }).plan_rooms_info;
|
|
if (plan_rooms_info.length)
|
|
{
|
|
resparams.request = "plan_bezet_info";
|
|
/*global*/ plan_bezet_info = HTTP.getJSON(url, { data: resparams }).plan_bezet_info;
|
|
}
|
|
else
|
|
plan_bezet_info = {};
|
|
set_will_fit(plan_rooms_info, plan_bezet_info, resparams)
|
|
|
|
__Log("plan_rooms_info:")
|
|
__Log(plan_rooms_info)
|
|
|
|
rst.dataset = plan_rooms_info;
|
|
rst.sql = null;
|
|
rst.ID = "prodtable2";
|
|
|
|
var histogram = rst.processResultset({ disc_key: disc_key });
|
|
|
|
var allEmpty = allEmpty && (histogram == -1);
|
|
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.close();
|
|
|
|
CONTENT_END();
|
|
FOOTER();
|
|
PAGE_END();
|
|
}
|
|
|
|
%>
|
|
</div>
|
|
</body>
|
|
</html>
|