Files
Facilitor/APPL/PDA/afspraak.asp
Peter Feij 7d395b6dc2 FSN#40747 iOS doet het schijnbaar niet met relatieve paden, die dus absoluut maken
svn path=/Website/branches/v2017.2/; revision=35621
2017-10-09 16:30:43 +00:00

671 lines
27 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: pda/afspraak.asp
Description: Add/wijzig melding (Mobile version)
Parameters: afs_key voor bestaande melding
afs_key=-1 voor nieuwe melding
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/suggest/suggest.inc" -->
<!-- #include file="../bez/bez.inc" -->
<!-- #include file="../bez/bez_flexkenmerk.inc" -->
<!-- #include file="../res/res.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
FCLTHeader.Requires({ plugins:["suggest"],
js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"] });
FCLTHeader.Requires({ js: ["jquery.timepicker-table.js"],
css: ["timePicker-table.css"] });
var afs_key = getQParamInt("afs_key",-1); // -1 betekent nieuwe
var qrc = getQParamInt("qrc", 0) != 0;
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
// 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 urole = "fe";
// Nog meer default waarden voor een nieuwe afspraak.
var timeBeginInitEmpty = false;
var timeEindInitEmpty = false;
var bez_afspraak_datum = new Date();
var bez_afspraak_eind = new Date();
var bez_afspraak_host = "";
var bez_afspraak_tel = "";
var bez_afspraak_ruimte = "";
var bez_afspraak_host_key = user_key;
var bez_afspraak_contact_key = user_key;
var bez_afspraak_opmerking = L("lcl_bez_createdbymobile");
var bez_bezoekers = [];
var isReservering = false;
if (rsv_ruimte_key != -1)
{
var sql = "SELECT bez_afspraak_key"
+ " FROM bez_afspraak"
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
afs_key = oRs("bez_afspraak_key").Value;
oRs.Close();
//
// Als afs_key == -1 dan zijn er nog geen bezoekers bij een reservering aangemeld.
// Haal de benodigde informatie uit de reservering.
var rsv = res.res_rsv_ruimte_info(rsv_ruimte_key);
isReservering = true;
}
var this_bez = bez.func_enabled_afspraak(afs_key);
user.auth_required_or_abort(this_bez.canReadAny);
var authparams = user.checkAutorisation("WEB_BEZUSE");
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_BEZUSE')"
+ " 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 actie_key = -1;
if (afs_key > -1)
{
// BESTAANDE AFSPRAAK
//user.auth_required_or_abort(this_afs.canReadAny);
var bez_info = bez.bez_afspraak_info(afs_key);
locatie_key = bez_info.locatie_key;
// TODO: Onderstaande query weghalen en vervangen door info uit bovenstaande bez_info
sql = "SELECT a.bez_afspraak_datum"
+ " , a.bez_afspraak_eind"
+ " , a.bez_afspraak_ruimte"
+ " , a.bez_afspraak_opmerking"
+ " , a.bez_afspraak_host_key"
+ " , a.bez_afspraak_contact_key"
+ " , COALESCE(a.alg_onrgoed_keys, a.alg_locatie_key) alg_onrgoed_keys"
+ " , a.res_rsv_ruimte_key"
+ " , COALESCE(o.alg_type, 'L') alg_type"
+ " , a.bez_actie_key"
+ " FROM bez_afspraak a"
+ " , alg_v_allonrgoed_gegevens o"
+ " WHERE a.alg_onrgoed_keys = o.alg_onroerendgoed_keys(+)"
+ " AND a.bez_afspraak_key = " + afs_key;
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
shared.record_not_found();
bez_afspraak_datum = new Date(oRs("bez_afspraak_datum").Value);
bez_afspraak_eind = new Date(oRs("bez_afspraak_eind").Value);
bez_afspraak_ruimte = oRs("bez_afspraak_ruimte").Value;
bez_afspraak_opmerking = oRs("bez_afspraak_opmerking").Value;
bez_afspraak_host_key = oRs("bez_afspraak_host_key").Value;
bez_afspraak_contact_key = oRs("bez_afspraak_contact_key").Value;
alg_onrgoed_keys = oRs("alg_onrgoed_keys").Value;
rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value || -1;
alg_type = oRs("alg_type").Value;
actie_key = oRs("bez_actie_key").Value
oRs.Close();
isReservering = (rsv_ruimte_key != -1)
if (rsv_ruimte_key != -1)
var rsv = res.res_rsv_ruimte_info(rsv_ruimte_key);
switch (alg_type)
{
case "L" : locatie_key = alg_onrgoed_keys; break;
case "G" : gebouw_key = alg_onrgoed_keys; break;
case "V" : verdieping_key = alg_onrgoed_keys; break;
case "R" : ruimte_key = alg_onrgoed_keys; break;
}
var sql = "SELECT b.bez_bezoekers_key"
+ ", b.bez_afspraak_naam"
+ ", b.bez_afspraak_bedrijf"
+ ", b.bez_bezoekers_done"
+ ", b.bez_bezoekers_out "
+ ", b.bez_afspraak_key bez_afspraak_key"
+ ", rrd.res_rsv_deel_key rsv_deel_key"
+ ", org.alg_onroerendgoed_keys" // parkeerplaats
+ ", org.alg_type"
+ ", COALESCE(org.alg_gebouw_key, org.alg_terreinsector_key) gebouw_key"
+ ", COALESCE(org.alg_gebouw_code, org.alg_terreinsector_code) || ' ' || COALESCE(org.alg_gebouw_naam, org.alg_terreinsector_naam) code"
+ " FROM bez_bezoekers b"
+ ", res_rsv_deel rrd"
+ ", res_deel rd"
+ ", ins_deel id"
+ ", alg_v_allonrgoed_gegevens org"
+ " WHERE b.bez_bezoekers_key = rrd.bez_bezoekers_key (+)"
+ " AND rrd.res_deel_key = rd.res_deel_key(+)"
+ " AND rd.res_ins_deel_key = id.ins_deel_key(+)"
+ " AND id.ins_alg_ruimte_key = org.alg_onroerendgoed_keys(+)"
+ " AND bez_afspraak_key = " + afs_key
+ " ORDER BY UPPER(bez_afspraak_naam)";
var oRs = Oracle.Execute(sql);
var rij = 0;
while (!oRs.eof)
{
rij += 1;
vbedrijf = (oRs("bez_afspraak_bedrijf").Value != null ? oRs("bez_afspraak_bedrijf").Value : " ");
vonrgoed = { prk_key: oRs("alg_onroerendgoed_keys").Value || -1
, geb_key: oRs("gebouw_key").Value
}
var bezoeker = { rownr: rij
, bez_key: oRs("bez_bezoekers_key").Value
, naam: oRs("bez_afspraak_naam").Value
, bedrijf: vbedrijf
, parkeer: oRs("code").Value
, onrgoed: vonrgoed
};
bez_bezoekers.push(bezoeker);
oRs.movenext();
}
oRs.Close();
}
else
{
if (rsv_ruimte_key != -1)
{
// Er zijn nog geen bezoekers bij een reservering aangemeld.
// De benodigde informatie komt uit de reservering.
bez_afspraak_datum = new Date(rsv.ruimte_van);
bez_afspraak_eind = new Date(rsv.ruimte_tot);
locatie_key = rsv.loc_key;
ruimte_key = rsv.room_key;
bez_afspraak_ruimte = rsv.ruimtenr;
bez_afspraak_contact_key = rsv.contact_key;
bez_afspraak_host_key = rsv.host_key;
bez_afspraak_tel = rsv.telefoon;
}
else
{
// NIEUWE AFSPRAAK
// AFSPRAAK DATUM/TIJD
// defaults zetten
bez_afspraak_datum = new Date();
if (S("vis_t1_std") > 0)
{
if (urole != 'bo') // alleen backo default 'nu', anderen vis_t1_std
{
bez_afspraak_datum.setHours(Math.floor(S("vis_t1_std")));
bez_afspraak_datum.setMinutes((S("vis_t1_std") - Math.floor(S("vis_t1_std"))) * 60, 0, 0);
}
}
else
{ // S("vis_t1_std") < 0
if (urole != 'bo')
{
timeBeginInitEmpty = true;
bez_afspraak_datum.setHours(0);
bez_afspraak_datum.setMinutes(0, 0, 0);
}
}
bez_afspraak_eind = new Date(bez_afspraak_datum);
if (S("vis_t2_std") > 0)
{
bez_afspraak_eind.setHours(Math.floor(S("vis_t2_std")));
bez_afspraak_eind.setMinutes((S("vis_t2_std") - Math.floor(S("vis_t2_std"))) * 60);
}
else
{
timeEindInitEmpty = true;
}
// Nu moet de plaats opgegeven worden. We volgen hier het verplichte niveau van registratie vis_mandatory_alg_level
// Dat is blijkbaar vereist om een bezoeker zinvol aan te melden, lager is leuk maar daar belasten we de mobiele gebruiker
// niet mee. Voor onverhoopt lage verplichte niveaus moeten we wel een getrapte lijst bieden, je kunt niet zomaar alleen
// een lijst van alle ruimtes tonen om te kiezen.
// Het gaat altijd alleen om bezoekbare gebouwen (suggest-filtercode BEZ)
// LET OP: De werklocatie hoeft niet voor te komen in de lijst van bezoekbare gebouwen.
var requiredlevel = 2; // standaard locatie
var llabel = L("lcl_building");
var fnkey = "loc_key"; // fieldname
if (S("vis_afspraak_onrgoed_uses_keys") == 1)
{
switch (S("vis_mandatory_alg_level"))
{
case "L" : requiredlevel = 2; break;
case "G" : requiredlevel = 3; break;
case "V" : requiredlevel = 4; break;
case "R" : requiredlevel = 5; break;
}
}
if (requiredlevel > 3) requiredlevel = 3; // Voor level 4 en 5 bestaat nog geen code, dus terugvallen op 3.
// We weten nu welk niveau we moeten kiezen, maak de UI
switch (requiredlevel)
{
case 2:
llabel = L("lcl_location");
linitkey = locatie_key;
fnkey = "locatiekey";
fnonchange = "placeChanged('L')";
lextraparamvalue = null;
sql = "SELECT alg_locatie_key key"
+ " , l.alg_locatie_omschrijving || '(' || l.alg_locatie_code || ')' naam"
+ " FROM alg_locatie l"
+ " WHERE EXISTS"
+ " (SELECT ag.alg_locatie_key"
+ " FROM alg_v_aanweziggebouw ag"
+ " WHERE ag.alg_gebouw_bez = 1"
+ " AND ag.alg_locatie_key = l.alg_locatie_key)";
if (autlevel >= 0)
sql += " AND l.alg_locatie_key IN"
+ " (SELECT alg_locatie_key"
+ " FROM fac_v_my_locations"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + autlevel + ")";
sql += " ORDER BY 2";
break;
case 3:
llabel = L("lcl_building");
linitkey = gebouw_key;
fnkey = "gebouwkey";
fnonchange = "placeChanged('G')";
lextraparamvalue = "alg_locatie_key";
sql = "SELECT g.alg_gebouw_key"
+ " , COALESCE(l.alg_locatie_omschrijving, l.alg_locatie_code) || '-' || alg_gebouw_naam"
+ " , l.alg_locatie_key"
+ " FROM alg_gebouw g"
+ " , alg_srtgebouw sg"
+ " , alg_v_aanweziglocatie l"
+ " WHERE sg.alg_srtgebouw_key = g.alg_srtgebouw_key"
+ " AND g.alg_locatie_key = l.alg_locatie_key"
+ " AND sg.alg_srtgebouw_passief IS NULL" // Alleen de facilitair actieve gebouwen
+ " AND g.alg_gebouw_bez = 1" // en bezoekbaar
+ " AND g.alg_gebouw_verwijder IS NULL";
if (autlevel >= 0)
sql += " AND g.alg_gebouw_key IN"
+ " (SELECT alg_gebouw_key FROM fac_v_my_buildings"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + autlevel + ")";
sql += " ORDER BY 2";
break;
case 4: // Lager komt later als nodig.
case 5: // Lager komt later als nodig.
break;
}
// Maak van host_key een naam.
if ((S("vis_afspraak_host_uses_keys") & 1) == 0)
{
bez_afspraak_host = user.naam();
bez_afspraak_tel = user.prs_perslid_telefoonnr();
}
}
var sqla = "SELECT bez_actie_key"
+ " , bez_actie_omschrijving"
+ " FROM bez_actie"
+ " WHERE bez_actie_default = 1"
+ " ORDER BY 2";
var oRs = Oracle.Execute(sqla);
if (!oRs.Eof)
actie_key = oRs("bez_actie_key").Value; // Selecteer de default waarde
oRs.Close();
}
// Zijn er locaties met parkeerplaatsen? (locatie_key = -1 meegeven)
var gebtersql = bez.getgebouwterrein_sql(bez_afspraak_datum, bez_afspraak_eind, locatie_key);
oRs = Oracle.Execute(gebtersql);
var aantal_gebter = 0;
while (!oRs.eof)
{
aantal_gebter++;
oRs.MoveNext();
}
oRs.Close();
var subject = (isReservering
? L("lcl_mobile_bezoek")
: (afs_key > -1
? L("lcl_vis_appointment") + " " + afs_key
: L("lcl_mobile_newafspraak")
)
);
// Waarden zijn bepaald
%>
<html>
<head>
<% FCLTMHeader.Generate({title: subject }); %>
<script type="text/javascript">
function afs_submit_callback(json)
{
if (<%=afs_key%> == -1)
{ // Aan een nieuwe afspraak moeten direct bezoekers worden toegevoegd.
window.location.href = "bezoeker.asp?urole=fe&rsv_ruimte_key=<%=rsv_ruimte_key%>&afs_key=" + json.afspr_key;
}
else
{
if (json.afspr_deleted)
alert(L("lcl_bez_appdel"));
else
alert(L("lcl_mobile_saved"));
McltCallbackHome(json); // Home omdat niet alle browsers anders een refresh doen
}
}
function afs_submit(gotoVis)
{
// Verwijderen parkeerplaats(en).
var maxrij = <%=bez_bezoekers.length%>;
for (var rij=1; rij <= maxrij; rij++)
{
if (!$("#prk"+rij).is(":checked"))
$("#gebouwkey"+rij).val(-1);
}
if (!validateForm("afspraak"))
return false;
var submit_url = $("form[name=afspraak]")[0].action
+ (<%=rsv_ruimte_key%> != -1 ? "&rsv_ruimte_key=<%=rsv_ruimte_key%>" : "");
var data = $("form[name=afspraak]").serialize();
if (<%=afs_key%> == -1)
{
$.post( submit_url, data
, McltCallbackAndThen(gotoVis?bez_add_vis:afs_submit_callback)
, "json");
}
else
{
$.post( submit_url, data
, McltCallbackAndThen(gotoVis?bez_submit_add:bez_submit)
, "json");
}
return true;
}
function bez_submit()
{
// Gegevens van bezoekers aanpassen en afsluiten
var submit_url = "../bez/bez_edit_bezoekers_save.asp?urole=fe&mobile=1&afspr_key=<%=afs_key%>"
+ "&rsv_ruimte_key=<%=rsv_ruimte_key%>";
$.post( submit_url
, $("form[name=afspraak]").serialize()
, McltCallbackClose
, "json");
}
function bez_submit_add()
{
// Gegevens van bezoekers aanpassen en nieuwe bezoeker toevoegen
var submit_url = "../bez/bez_edit_bezoekers_save.asp?urole=fe&mobile=1&afspr_key=<%=afs_key%>"
+ "&rsv_ruimte_key=<%=rsv_ruimte_key%>";
$.post( submit_url
, $("form[name=afspraak]").serialize()
, McltCallbackAndThen(bez_add_vis)
, "json");
return false;
}
function bez_add_vis()
{
if (!validateForm("afspraak"))
return false;
window.location.href = "bezoeker.asp?urole=fe&rsv_ruimte_key=<%=rsv_ruimte_key%>&afs_key=<%=afs_key%>";
}
function bez_del_toggle(rij)
{
var bez_key = -1 * $("#bez_key"+rij).val();
$("#bez_key"+rij).val(bez_key);
$("#btn_del_toggle"+rij).buttonMarkup({ theme: (bez_key < -1 ? "a" : "e") });
}
function bez_delete()
{
if (confirm(L("lcl_bez_confirm_delete_afspraak")))
{
var data = { level: "A",
afspr_key: <%=afs_key%>
};
<% protectRequest.dataToken("data"); %>
$.post("../bez/bez_delete.asp",
data,
McltCallbackHome, // Op deze manier in ieder geval een refresh
"json");
}
}
function placeChanged(type)
{
var roomtxt = "";
switch (type)
{
case "L": //
roomtxt = $("#locatiekey").find("option:selected").text();
break;
case "G": // Zet de juiste locatie
var lgebkeyOptions = document.getElementById("gebouwkey").options;
llockey = lgebkeyOptions[lgebkeyOptions.selectedIndex].getAttribute("alg_locatie_key");
$("#locatiekey").val(llockey);
roomtxt = $("#gebouwkey").find("option:selected").text();
break;
case "V": // Zet de juiste locatie en gebouw
// Lager komt later als nodig.
break;
case "R": // Zet de juiste locatie, gebouw en verdieping
// Lager komt later als nodig.
break;
}
$("#room").val(roomtxt.substring(0,30));
}
</script>
</head>
<body>
<div>
<%
PAGE_START({id: "page-1-"+afs_key});
HEADER({title: subject, back:!qrc, home: !qrc, datatheme: jQFrontEndTheme, delaction: (afs_key > 0 && this_bez.canDelete? "javascript:bez_delete()" : null) });
CONTENT_START();
%>
<form name="afspraak" id="afspraak" action="../bez/bez_edit_afspraak_save.asp?urole=fe&mobile=1&afspr_key=<%=afs_key%>" method="post">
<input type="hidden" name="person" value="<%=bez_afspraak_contact_key%>">
<input type="hidden" name="personH" value="<%=(bez_afspraak_host ? safe.htmlattr(bez_afspraak_host) : bez_afspraak_host_key)%>">
<input type="hidden" name="phone" value="<%=safe.htmlattr(bez_afspraak_tel)%>">
<input type="hidden" name="regiokey" value="-1">
<input type="hidden" name="districtkey" value="-1">
<input type="hidden" name="remark" value="<%=safe.htmlattr(bez_afspraak_opmerking)%>">
<input type="hidden" name="next_vis" value="<%=1 + bez_bezoekers.length%>">
<input type="hidden" name="actie" value="<%=actie_key%>">
<%
// not needed BLOCK_START({collapsed: (rsv_ruimte_key != -1 ? true : false), title: (rsv_ruimte_key != -1 ? rsv.activiteit + " " + rsv.reservering_key + "/" + rsv.ruimte_volgnr : L("lcl_res_plaats"))});
// Wanneer en tot hoelaat is de afspraak.
if (isReservering)
{
%>
<input type="hidden" name="date_from" id="date_from" value="<%=bez_afspraak_datum.getTime()%>">
<input type="hidden" name="date_to" id="date_to" value="<%=bez_afspraak_eind.getTime()%>">
<%
ROFIELD("fld", L("lcl_date"), toDateTimeString(rsv.ruimte_van) + "-" + toTimeString(rsv.ruimte_tot));
}
else
{
FCLTcalendar( "date_from"
, { label : L("lcl_vis_start_date")
, datum: bez_afspraak_datum
, maxPast : ((urole == "fe")? 0 : S("vis_afspraak_limiet"))
, maxFuture: ((urole == "fe" && S("vis_fe_afspraak_limiet") > 0)? S("vis_fe_afspraak_limiet") : S("vis_afspraak_limiet"))
, calendars: 1
, autoopen : (afs_key == -1 && rsv_ruimte_key == -1)
, initTimeEmpty: timeBeginInitEmpty
, initEmpty: (afs_key < 0 && urole != "bo" && rsv_ruimte_key == -1)
, timeField: true
, timeStep: S("vis_h") * 60
, startTime: S("vis_t1")
, endTime: S("vis_t2")
, required: true
, volgnr: 1
, mobile: true
}
);
FCLTcalendar( "date_to"
, { label : L("lcl_vis_end_date")
, datum: bez_afspraak_eind
, maxPast : 0
, maxFuture: ((urole == "fe" && S("vis_fe_afspraak_limiet") > 0)? S("vis_fe_afspraak_limiet") : S("vis_afspraak_limiet"))
, initTimeEmpty: timeEindInitEmpty
, timeField: true
, timeStep: S("vis_h") * 60
, startTime: S("vis_t1")
, endTime: S("vis_t2")
, required: true
, volgnr: 2
, hidden: S("bez_multiday") != 1 // de *datum* is dan verborgen, tijd blijft zichtbaar
, mobile: true
}
);
}
//
// Waar is de afspraak.
if (afs_key == -1 && !isReservering)
{ // Nieuw, maar deze velden kunnen we zelf verzinnen
switch (requiredlevel)
{
case 2:
%> <input type="hidden" name="gebouwkey" value="-1">
<input type="hidden" name="verdiepingkey" value="-1">
<input type="hidden" name="ruimtekey" value="-1">
<% break;
case 3:
%> <input type="hidden" name="locatiekey" id="locatiekey" value="<%=locatie_key%>">
<input type="hidden" name="verdiepingkey" id="verdiepingkey" value="-1">
<input type="hidden" name="ruimtekey" id="ruimtekey" value="-1">
<% break;
case 4: // Lager komt later als nodig.
case 5: // Lager komt later als nodig.
break;
}
FCLTselector(fnkey,
sql,
{ initKey: linitkey,
label: llabel,
onChange: fnonchange,
extraParamValue: lextraparamvalue,
mobile: true
});
// room wordt gevuld op de onChange van de FCLTselector, maar wordt hieronder gecreeerd.
%>
<input type="hidden" name="room" id="room" value="">
<!-- Scripts... -->
<script type="text/javascript">
jQuery(document).ready(function()
{ // Als de initiele plaats waarde niet aanwezig is kloppen de andere plaats keys niet meer. Daarom updaten.
<%=fnonchange%>;
});
</script>
<%
}
else
{
%>
<input type="hidden" name="rsv_ruimte_key" id="rsv_ruimte_key" value="<%=rsv_ruimte_key%>">
<input type="hidden" name="locatiekey" id="locatiekey" value="<%=locatie_key%>">
<input type="hidden" name="gebouwkey" id="gebouwkey" value="<%=gebouw_key%>">
<input type="hidden" name="verdiepingkey" id="verdiepingkey" value="<%=verdieping_key%>">
<input type="hidden" name="ruimtekey" id="ruimtekey" value="<%=ruimte_key%>">
<input type="hidden" name="room" id="room" value="<%=safe.htmlattr(bez_afspraak_ruimte)%>">
<%
ROFIELD("fld", L("lcl_room"), bez_afspraak_ruimte);
}
//
// Opmerkingen>
if (afs_key > -1)
{
ROFIELD("fld", L("lcl_remark"), bez_afspraak_opmerking, {suppressEmpty: true});
}
// not needed BLOCK_END();
//
// Wie komen er.
var nrCols = 2;
var rij = 0;
while (rij < bez_bezoekers.length)
{
vprkkey = bez_bezoekers[rij].onrgoed.prk_key; // alg_onroerendgoed_keys van de parkeerplaats
valgkey = bez_bezoekers[rij].onrgoed.geb_key;
vbezkey = bez_bezoekers[rij].bez_key;
vnaam = bez_bezoekers[rij].naam;
vbedrijf = bez_bezoekers[rij].bedrijf;
vparkeer = bez_bezoekers[rij].parkeer;
vparking = (vprkkey > -1);
bezexist = (vbezkey > -1);
vcolheadpark = (vparking ? "P "+vparkeer : L("lcl_vis_park"));
rij += 1;
%> <input type="hidden" name="bez_key<%=rij%>" id="bez_key<%=rij%>" value="<%=vbezkey%>"> <%
if (this_bez.canDelete)
BUTTON(L("lcl_vis_name")+" "+rij, {id: "btn_del_toggle"+rij, dataicon: "delete", click: "bez_del_toggle("+rij+")"});
GRID_START(nrCols);
COL_START(1);
RWFIELD("bez" + rij, L("lcl_vis_name"), vnaam , { pclass: (rij == 1?" required" : "")});
COL_END();
COL_START(2);
RWFIELD("bed" + rij, L("lcl_vis_company"), vbedrijf);
COL_END();
// Als er locaties zijn met parkeerplaatsen dan de parkeerplaats checkbox plaatsen.
// Ook al kun je geen parkeerplaats boeken op de aangegeven locatie.
// Mocht je dan toch het vinkje hebben gezet, dan krijg je tijdens het boeken wel de melding dat de parkeerplaats niet geboekt kon worden.
// We doen namelijk geen client site veranderingen/aanpassingen in een mobile scherm.
if (S("vis_parking_key") != -1 && this_bez.canWritePrk && aantal_gebter > 0)
{
COL_START(1, {width: 100});
CHB_FIELD("prk" + rij, vcolheadpark, vparking, {disabled: true});
COL_END();
}
COL_START(1, {width: 100});
CONTENT_START({});
%> <table id="bezFlexList<%=rij%>"><tbody> <%
generateFlexKenmerkCode ({ urole: urole
, bez_key : vbezkey
, afspraak_key: afs_key
, reado: true
, flexcolumns: 1
, beznum: rij
, requiredbyfield: "bez" + rij
, mobile: true
});
%> </tbody></table> <%
CONTENT_END();
COL_END();
GRID_END();
}
CONTROLGROUP_START();
if (this_bez.canChange || afs_key < 0)
{
if (afs_key > 0)
BUTTON(L("lcl_mobile_addvisitors"), {click: "afs_submit(true)", dataicon: "plus"});
BUTTON((afs_key>-1 ? L("lcl_submit") : L("lcl_mobile_bezoek")), {click: "afs_submit()", dataicon: "refresh", singlepress: (afs_key == -1)});
}
CONTROLGROUP_END();
IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
FOOTER();
PAGE_END();
%>
</div>
</body>
</html>