486 lines
20 KiB
Plaintext
486 lines
20 KiB
Plaintext
<%@ language = "JavaScript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: res_edit_objcat.asp
|
|
Remark: allow adding of res_deel and res_artikel
|
|
|
|
Parameters:
|
|
rsv_ruimte_key required, existing rsv_ruimte_key. Al het andere zoeken we er zelf bij
|
|
urole required
|
|
Context: iframe van res_reservering.asp
|
|
|
|
*/
|
|
%>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="res.inc" -->
|
|
<!-- #include file="../shared/iface.inc" -->
|
|
<!-- #include file="../Shared/discxalg3d.inc" -->
|
|
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
|
|
<!-- #include file="res_plan_obj.inc" -->
|
|
<!-- #include file="res_cat.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["jQuery"],
|
|
js: ["date.js", "jquery-ui.js", "./res_plan.js"],
|
|
css: ["../res/res.css"]});
|
|
|
|
var urole = getQParamSafe("urole");
|
|
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key");
|
|
var res_artikel_key = getQParamInt("res_artikel_key", -1);
|
|
var verynew = getQParamInt("verynew", 0);
|
|
res.res_set_dialect(rsv_ruimte_key);
|
|
|
|
var res_deel_key = getQParamInt("res_deel_key", -1); // Default
|
|
var disc_key = getQParamInt("disc_key", -1); // Auto openklappen
|
|
if (res_deel_key > 0)
|
|
{
|
|
sql = "SELECT res_discipline_key"
|
|
+ " FROM res_deel"
|
|
+ " WHERE res_deel_key = " + res_deel_key;
|
|
oRs = Oracle.Execute(sql);
|
|
disc_key = oRs("res_discipline_key").value;
|
|
}
|
|
|
|
// Zo snel mogelijk relevante basisinformatie opzoeken
|
|
sql = "SELECT res_reservering_key"
|
|
+ " , res_rsv_ruimte_verwijder"
|
|
+ " , alg_ruimte_key, res_ruimte_opstel_key"
|
|
+ " , res_rsv_ruimte_van, res_rsv_ruimte_tot"
|
|
+ " , trunc(res_rsv_ruimte_tot) - trunc(res_rsv_ruimte_van) meerdaags"
|
|
+ " , prs_kostenplaats_key"
|
|
+ " , res_activiteit_key"
|
|
+ " FROM res_rsv_ruimte"
|
|
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
|
oRs = Oracle.Execute(sql);
|
|
var resdeleted = (oRs("res_rsv_ruimte_verwijder").value != null);
|
|
var res_van = new Date(oRs("res_rsv_ruimte_van").value);
|
|
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
|
|
var res_meerdaags = oRs("meerdaags").value!=0;
|
|
var activiteit_key = oRs("res_activiteit_key").value;
|
|
|
|
if (oRs("alg_ruimte_key").value != null)
|
|
restype = "CV"
|
|
else if (oRs("res_ruimte_opstel_key").value != null)
|
|
restype = "R"
|
|
|
|
alg_ruimte_key = oRs("alg_ruimte_key").value || -1;
|
|
var has_kostenplaats_key = oRs("prs_kostenplaats_key").value != null;
|
|
oRs.Close()
|
|
|
|
var fronto = (urole == "fo");
|
|
var backo = (urole == "bo");
|
|
var frontend = (urole == "fe");
|
|
|
|
var portal_alg_ruimte_key = getQParamInt("portal_alg_ruimte_key", -1);
|
|
|
|
if (urole == "fo")
|
|
var autfunction = "WEB_RESFOF";
|
|
else if (urole == "bo")
|
|
var autfunction = "WEB_RESBOF";
|
|
else // fe
|
|
var autfunction = "WEB_RESUSE";
|
|
|
|
var authparams = user.checkAutorisation(autfunction)
|
|
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate() %>
|
|
<%
|
|
// Bereken dynamisch breedte blokjes
|
|
var width_px = getQParamInt("width_px", 1024);
|
|
var nr_days = Math.round(1 + (res_tot.midnight() - res_van.midnight()) / 24 / 60 / 60 / 1000);
|
|
|
|
var hour_px = res.hour_px(width_px - 250, nr_days);
|
|
|
|
%>
|
|
<script type="text/javascript">
|
|
var hour_px = <%=hour_px%>;
|
|
var res_cat_t1 = <%=safe.jsfloat(S("res_cat_t1"))%>;
|
|
var res_cat_t2 = <%=safe.jsfloat(S("res_cat_t2"))%>;
|
|
|
|
// Worden in res_plan.js gebruikt:
|
|
var res_van = new Date(<%=res_van.getTime()%>);
|
|
var res_tot = new Date(<%=res_tot.getTime()%>);
|
|
</script>
|
|
|
|
<%
|
|
var starttime_room = S("res_t1");
|
|
var endtime_room = S("res_t2");
|
|
sql = "SELECT COALESCE(ru.res_ruimte_begintijd, " + S("res_t1") + ") begintijd"
|
|
+ ", COALESCE(ru.res_ruimte_eindtijd, " + S("res_t2") + ") eindtijd"
|
|
+ ", ro.res_ruimte_key"
|
|
+ " FROM res_ruimte ru"
|
|
+ ", res_rsv_ruimte rr"
|
|
+ ", res_ruimte_opstelling ro"
|
|
+ " WHERE ru.res_ruimte_key = ro.res_ruimte_key"
|
|
+ " AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key"
|
|
+ " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{ // Found, blijkbaar type=='R'
|
|
var starttime_room = oRs("begintijd").value;
|
|
var endtime_room = oRs("eindtijd").value;
|
|
if (starttime_room < S("res_t1")) starttime_room = S("res_t1");
|
|
if (endtime_room > S("res_t2")) endtime_room = S("res_t2");
|
|
if (starttime_room > endtime_room) starttime_room = endtime_room;
|
|
res_ruimte_key = oRs("res_ruimte_key").value;
|
|
}
|
|
else
|
|
{
|
|
res_ruimte_key = -1;
|
|
}
|
|
%>
|
|
|
|
<script type="text/javascript">
|
|
var rsv_ruimte_key = <%=rsv_ruimte_key%>;
|
|
var urole = "<%=urole%>";
|
|
var backo = <%=backo? 1 : 0%>;
|
|
var fronto = <%=fronto? 1 : 0%>;
|
|
var frontend = (1 == <%=frontend? 1 : 0%>);
|
|
|
|
function res_submit_callback(json)
|
|
{
|
|
if (json.success)
|
|
FcltMgr.closeDetail(window, json);
|
|
else
|
|
iface.button.enable("btn_objcat_submit");
|
|
}
|
|
|
|
function res_submit()
|
|
{
|
|
if (checkArtikelen(<%=safe.jsfloat(starttime_room)%>, <%=safe.jsfloat(endtime_room)%>))
|
|
{
|
|
$.post($("form[name=u2]")[0].action, $("[name=u2]").serialize(), FcltCallbackAndThenAlways(res_submit_callback), "json");
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
|
|
function res_cancel()
|
|
{
|
|
FcltMgr.closeDetail(window, { cancel: true } );
|
|
}
|
|
|
|
var new_item_key = 0; // Globaal
|
|
function res_addcat(elm)
|
|
{
|
|
new_item_key = new_item_key -1;
|
|
var $tr = $(elm).closest("tr");
|
|
var $clone = $tr.clone();
|
|
var artkey = $tr.attr("id").substring(3);
|
|
var res_rsv = artkey +"_"+ new_item_key;
|
|
// De clone bijwerken..
|
|
$clone.find(':button').parent().remove(); // De toevoeg knop eraf halen.
|
|
$("[id^='inpbh1_c_']",$clone).val(""); // Urenveld leeg maken.
|
|
// Nieuwe unieke id's aan de velden toekennen.
|
|
$("[id^='inpb_c_']", $clone).attr({id: "inpb_c_" +res_rsv, name: "inpb_c_" +res_rsv});
|
|
$("[id^='inpbp_c_']", $clone).attr({id: "inpbp_c_" +res_rsv, name: "inpbp_c_" +res_rsv});
|
|
$("[id^='inpbtp_c_']",$clone).attr({id: "inpbtp_c_"+res_rsv, name: "inpbtp_c_"+res_rsv});
|
|
$("[id^='inpbh1_c_']",$clone).attr({id: "inpbh1_c_"+res_rsv, name: "inpbh1_c_"+res_rsv});
|
|
$("[id^='inpbm1_c_']",$clone).attr({id: "inpbm1_c_"+res_rsv, name: "inpbm1_c_"+res_rsv});
|
|
// Voeg clone onder de huidige regel toe.
|
|
$tr.after($clone);
|
|
$("[id^='inpbh1_c_']",$clone).focus(); // Zet cursor in urenveld.
|
|
|
|
FcltMgr.resized();
|
|
}
|
|
|
|
function showTotPriceArt_ex(elm)
|
|
{
|
|
var $tr = $(elm).closest("tr");
|
|
var inpb_c = $("[id^='inpb_c_']", $tr).attr("id");
|
|
var res_rsv = inpb_c.substr(7);
|
|
showTotPriceArt(res_rsv);
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body id="editbody">
|
|
<% var buttons = [ {title: L("lcl_submit"), icon: "opslaan.png", action:"res_submit()", singlepress: true, id:"btn_objcat_submit" },
|
|
{title: L("lcl_cancel"), icon: "undo.png", action:"res_cancel()" } ];
|
|
IFRAMER_HEADER(L("lcl_res_frame_voorziening"), buttons);
|
|
%>
|
|
<div id="edit">
|
|
<form name="u2" method="post" action="res_edit_objcat_save.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>&verynew=<%=verynew%>">
|
|
<%
|
|
|
|
// ==========================================================================
|
|
// Description: Bouwen van het voorzieningen edit blok voor een reservering
|
|
|
|
// Tel in elke catalogus hoeveel objecten in de gekozen ruimte echt gereservererd kunnen worden.
|
|
// Als dat er nul zijn dan tonen we de discipline namelijk niet.
|
|
var params = { alg_ruimte_key : alg_ruimte_key,
|
|
res_ruimte_key : res_ruimte_key,
|
|
select_fields : " count(*) ",
|
|
sdisc : "dis.ins_discipline_key",
|
|
autfunction : autfunction,
|
|
res_tot : res_tot
|
|
};
|
|
var sql_aantal = " ( " + get_res_deel_sql(params) + ") aantal ";
|
|
sql= "SELECT dis.ins_discipline_key,"
|
|
+ " "+ lcl.xsqla('dis.ins_discipline_omschrijving','dis.ins_discipline_key') +","
|
|
+ " DIS.ins_discipline_kpnverplicht,"
|
|
+ sql_aantal
|
|
+ " 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 = " + activiteit_key
|
|
+ " )";
|
|
|
|
if (disc_key > 0 && res_deel_key < 0) sql = sql + " AND dis.ins_discipline_key = " + disc_key;
|
|
|
|
if (S("vis_parking_key") != -1) sql = sql + " AND dis.ins_discipline_key != " + S("vis_parking_key");
|
|
|
|
if (S("res_fe_discs_only_in_res") != -1 && !fronto && !backo && restype == 'CV')
|
|
sql = sql + " AND dis.ins_discipline_key NOT IN (" + S("res_fe_discs_only_in_res") + ") ";
|
|
|
|
sql = sql + " ORDER BY ins_discipline_volgnr, 2";
|
|
oRs1 = Oracle.Execute(sql);
|
|
|
|
first = true;
|
|
while(!oRs1.eof)
|
|
{
|
|
var curr_disc_key = oRs1("ins_discipline_key").value;
|
|
var existing = false; // zodadelijk highlighten
|
|
sql = "SELECT COUNT(res_rsv_deel_key) aantal"
|
|
+ " FROM res_rsv_deel rrd"
|
|
+ " , res_deel rd"
|
|
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key
|
|
+ " AND res_rsv_deel_verwijder IS NULL"
|
|
+ " AND rrd.res_deel_key = rd.res_deel_key"
|
|
+ " AND res_discipline_key = " + curr_disc_key
|
|
|
|
var oRs2 = Oracle.Execute(sql);
|
|
existing = (oRs2("aantal").value > 0);
|
|
if (oRs1("aantal").value != 0)
|
|
{
|
|
if (first)
|
|
{
|
|
BLOCK_START("resObj",L("lcl_res_objects") + " <a href='javascript:openLegenda()'><span class='fa fa-list-ul details' title='"+L("lcl_res_legenda")+"'></span></a>", { ishtmlsafe: true });
|
|
%>
|
|
<tr>
|
|
<td>
|
|
<% if (res_van.midnight().getTime() != res_tot.midnight().getTime())
|
|
{
|
|
Response.Write(toDateString(res_van.midnight()));
|
|
Response.Write(" " + L("lcl_res_totenmet") + " " + toDateString(res_tot.midnight()));
|
|
}
|
|
%> </td>
|
|
</tr>
|
|
<% first = false;
|
|
}
|
|
%>
|
|
<tr>
|
|
<td>
|
|
<% if (!has_kostenplaats_key && oRs1("ins_discipline_kpnverplicht").value == 1)
|
|
{
|
|
var loading_txt = L("lcl_select_account_disc");
|
|
%>
|
|
<div class="objcatline fa notavailable">
|
|
<%=safe.html(oRs1("ins_discipline_omschrijving").value)%>
|
|
<%=(existing? " (" + oRs2("aantal").value + ")" : "")%>
|
|
<% }
|
|
else
|
|
{
|
|
var loading_txt = L("lcl_shared_loading");
|
|
|
|
%>
|
|
<div class="objcatline <%=(existing? " existing" : "")%>
|
|
<%=disc_key != curr_disc_key? " closed" : ""%>"
|
|
onClick="ItemChoosed_obj(this, 'div_dis<%=curr_disc_key%>',<%=curr_disc_key%>, <%=hour_px%>)">
|
|
<a>
|
|
<i class='fa fa-lg fa-<%=disc_key != curr_disc_key?'plus':'minus'%>-square-o' style='position:relative;left:-15px;width:0px;'></i>
|
|
<%=safe.html(oRs1("ins_discipline_omschrijving").value)%>
|
|
<%=(existing? " (" + oRs2("aantal").value + ")" : "")%>
|
|
</a>
|
|
<% } %>
|
|
<div class="objcatdiv" id="div_dis<%=curr_disc_key%>" onClick="FcltMgr.stopPropagation(event)">
|
|
<% // Hier wordt met Ajax obj_schedule.asp code tussen geplakt bij openklappen
|
|
if (disc_key == curr_disc_key)
|
|
make_plan_obj(curr_disc_key, res_van, res_tot,
|
|
{ hour_px: hour_px,
|
|
rsv_ruimte_key: rsv_ruimte_key,
|
|
res_deel_key: res_deel_key,
|
|
autfunction: autfunction
|
|
});
|
|
else
|
|
Response.Write(loading_txt);
|
|
%>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<% }
|
|
oRs1.MoveNext();
|
|
}
|
|
oRs1.close();
|
|
if (!first)
|
|
BLOCK_END();
|
|
%>
|
|
<script>
|
|
function openLegenda()
|
|
{
|
|
params = { width: 125,
|
|
resizable: false,
|
|
position: {my: "right top", at: "right top+30"},
|
|
title: '<%=L("lcl_res_legenda")%>'
|
|
}
|
|
$('div#legenda').dialog(params).dialog('open');
|
|
}
|
|
</script>
|
|
<div id="legenda" style="display:none; line-height: 30px;">
|
|
<table id='planbordlegenda'>
|
|
<tr><td class="res_optie"><%= L("lcl_optie") %></td></tr>
|
|
<tr><td class="res_definitief"><%= L("lcl_def") %></td></tr>
|
|
<tr><td class="res_blok"><%= L("lcl_blokkade") %></td></tr>
|
|
<tr><td class="res_vervallen"><%= L("lcl_vervallen") %></td></tr>
|
|
</table>
|
|
</div>
|
|
|
|
<% // ==========================================================================
|
|
// Description: Bouwen van het catering edit blok voor een reservering
|
|
|
|
BLOCK_START("resCat",L("lcl_consumable_objects"));
|
|
|
|
if (res_meerdaags && !S("res_allow_multi_cat"))
|
|
{
|
|
%> <div class="warning"><%=L("lcl_res_allow_multi_cat")%></div><%
|
|
}
|
|
else
|
|
{ // begin: Toon catering
|
|
|
|
// Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte
|
|
fixed_room = (portal_alg_ruimte_key > 0);
|
|
|
|
sql = "SELECT d.ins_discipline_key"
|
|
+ " , "+ lcl.xsqla('d.ins_discipline_omschrijving','d.ins_discipline_key')
|
|
+ " , d.ins_discipline_kpnverplicht"
|
|
+ " FROM RES_v_aanwezigDISCIPLINE d"
|
|
+ " WHERE ins_discipline_min_level = 2"
|
|
+ " AND d.ins_discipline_key IN ("
|
|
+ " SELECT 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.prs_perslid_key = " + user_key
|
|
+ " AND fac_gebruiker_prs_level_write < 9"
|
|
+ " AND fac_gebruiker_alg_level_write < 9"
|
|
+ " AND d.ins_discipline_key IN"
|
|
// RES_V_SRTARTIKEL_ONRGOED i.p.v. res_v_srtartikel_ruimte:
|
|
// niet alleen kijken naar max(prio) 'R' (ruimte) maar ook naar onderliggende prio's 'L' (locatie) en 'G' (gebouw)
|
|
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key
|
|
+ " (SELECT res_discipline_key"
|
|
+ " FROM res_v_srtartikel_onrgoed "
|
|
+ " WHERE 1 = 1 "
|
|
if (fixed_room) sql += " AND alg_onrgoed_niveau = 'R'";
|
|
if (alg_ruimte_key > 0)
|
|
sql += " AND alg_ruimte_key = " + alg_ruimte_key + ")) ";
|
|
else
|
|
{
|
|
if (rsv_ruimte_key > 0)
|
|
sql += " AND alg_ruimte_key IN"
|
|
+ " (SELECT alg_ruimte_key"
|
|
+ " FROM res_v_rsv_ruimte_2_alg_ruimte "
|
|
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
|
+ " AND res_rsv_ruimte_key = " + rsv_ruimte_key + ")))"
|
|
}
|
|
sql += " AND EXISTS (select res_activiteit_key from res_activiteitdiscipline rad"
|
|
+ " WHERE rad.res_discipline_key = d.ins_discipline_key"
|
|
+ " AND rad.res_activiteit_key = " + activiteit_key
|
|
+ " )"
|
|
+ " ORDER BY ins_discipline_volgnr, 2";
|
|
oRs = Oracle.Execute(sql);
|
|
|
|
while (!oRs.eof)
|
|
{
|
|
var curr_disc_key = oRs("ins_discipline_key").value;
|
|
var existing = false; // zodadelijk highlighten
|
|
// Bepaal aantal artikelen bij een reservering inclusief eventueel meegegeven artikel via res_artikel_key parameter
|
|
if (rsv_ruimte_key > 0)
|
|
{ // Hoeveel gereserveerde artikelen zijn er voor deze reservering.
|
|
sql = "SELECT COUNT(*) aantal"
|
|
+ " FROM res_rsv_artikel rra,"
|
|
+ " res_artikel ra"
|
|
+ " WHERE rra.res_rsv_ruimte_key = " + rsv_ruimte_key
|
|
+ " AND res_rsv_artikel_verwijder IS NULL"
|
|
+ " AND rra.res_artikel_key = ra.res_artikel_key"
|
|
+ " AND res_discipline_key = " + curr_disc_key
|
|
var oRs2 = Oracle.Execute(sql);
|
|
var aantal = oRs2("aantal").value;
|
|
if (res_artikel_key > 0)
|
|
{ // Zit het meegegeven artikel in deze discipline, dan 1 bij het aantal optellen.
|
|
sql = "SELECT COUNT(*) aantal"
|
|
+ " FROM res_artikel ra"
|
|
+ " WHERE res_discipline_key = " + curr_disc_key
|
|
+ " AND ra.res_artikel_key = " + res_artikel_key;
|
|
var oRs2 = Oracle.Execute(sql);
|
|
aantal += oRs2("aantal").value;
|
|
}
|
|
existing = (aantal > 0);
|
|
}
|
|
%>
|
|
<tr>
|
|
<td>
|
|
<% if (!has_kostenplaats_key && oRs("INS_DISCIPLINE_KPNVERPLICHT").value == 1)
|
|
{
|
|
var loading_txt = L("lcl_select_account_disc");
|
|
%>
|
|
<div class="objcatline notavailable">
|
|
<%=safe.html(oRs("ins_discipline_omschrijving").Value)%>
|
|
<% }
|
|
else
|
|
{
|
|
var loading_txt = L("lcl_shared_loading");
|
|
%>
|
|
<div class="objcatline <%=(existing?" existing ":" closed")%> "
|
|
onClick="ItemChoosed_cat(this, $('#div_dis'+<%=curr_disc_key%>),<%=curr_disc_key%>, <%=(existing?"true":"false")%>)">
|
|
<a>
|
|
<i class='fa fa-lg fa-<%=existing?'minus':'plus'%>-square-o' style='position:relative;left:-15px;width:0px;'></i>
|
|
<%=safe.html(oRs("ins_discipline_omschrijving").Value)%>
|
|
</a>
|
|
<% }%>
|
|
<div class="objcatdiv" id="div_dis<%=curr_disc_key%>" onClick="FcltMgr.stopPropagation(event)">
|
|
<% // Hier wordt met Ajax res_load_cat.asp code tussen geplakt bij openklappen
|
|
if (existing)
|
|
make_cat(curr_disc_key, rsv_ruimte_key, true, res_artikel_key);
|
|
else
|
|
Response.Write(loading_txt)
|
|
%>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<% oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
|
|
} // einde: Toon catering
|
|
BLOCK_END();
|
|
IFACE.FORM_END();
|
|
%>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|