340 lines
14 KiB
Plaintext
340 lines
14 KiB
Plaintext
<%@ LANGUAGE = JavaScript %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: bez_edit_afspraak.asp
|
|
Description: Laat een nieuwe bezoeker registreren of bestaand bezoek wijzigen
|
|
Parameters:
|
|
fronto
|
|
backo
|
|
afspr_key
|
|
Context: Rechtstreeks vanuit de portal of een bestaande
|
|
Het formulier submit naar register.asp
|
|
Note: Bezoekers zitten altijd onder een BEZ_AFSPRAAK. Deze staat los
|
|
(afspr_key is gedefinieerd) of zit onder een
|
|
RES_RESERVERING
|
|
*/
|
|
|
|
%>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/iface.inc" -->
|
|
<!-- #include file="../Shared/calendar.inc" -->
|
|
<!-- #include file="../Shared/selector.inc" -->
|
|
<!-- #include file="../Shared/plaatsselector.inc" -->
|
|
<!-- #include file="../Shared/persoonselector.inc" -->
|
|
<!-- #include file="./bez.inc" -->
|
|
<!-- #include file="../prs/prs.inc" -->
|
|
<!-- #include file="./bez_edit_bezoekers.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ js: ["./bez_edit_afspraak.js", "jquery.timepicker-table.js", "../bez/bez.js"],
|
|
css: ["timePicker-table.css"] });
|
|
|
|
var afspr_key = getQParamInt("afspr_key", -1);
|
|
if (afspr_key > 0)
|
|
var urole = getQParamSafe("urole", "fe");
|
|
else
|
|
var urole = getQParamSafe("urole");
|
|
|
|
var fronto = urole == "fo";
|
|
var backo = urole == "bo";
|
|
var minfo = urole == "mi";
|
|
var frontend = (!fronto & !backo & !minfo);
|
|
|
|
var autfunction = fronto? "WEB_BEZFOF" : backo? "WEB_BEZBOF" : "WEB_BEZUSE";
|
|
var contactonly = getQParamInt("contactonly", 0);
|
|
|
|
// cache.whenTrue(afspr_key == -1);
|
|
|
|
var authparams = user.checkAutorisation(autfunction);
|
|
|
|
if (afspr_key > 0)
|
|
{
|
|
var this_bez = bez.func_enabled_afspraak(afspr_key);
|
|
user.auth_required_or_abort(this_bez.canChange);
|
|
}
|
|
else
|
|
user.auth_required_or_abort(authparams.ALGwritelevel < 9);
|
|
|
|
|
|
var timeBeginInitEmpty = false;
|
|
var timeEindInitEmpty = false;
|
|
if (afspr_key < 0)
|
|
{ // defaults zetten
|
|
var bez_afspraak = {contact_key: user_key,
|
|
aanvrager: user.naam(),
|
|
telf_nr: user.prs_perslid_telefoonnr(),
|
|
actie_key: bez.default_actie(), // Is er een default actie.
|
|
locatie_key: user.alg_locatie_key(),
|
|
gebouw_key : user.alg_gebouw_key(),
|
|
verdieping_key: user.alg_verdieping_key(),
|
|
ruimte_key: user.alg_ruimte_key()
|
|
};
|
|
|
|
if (S("vis_afspraak_onrgoed_uses_keys") == 0)
|
|
{
|
|
var prs_info = prs.prs_perslid(user_key, { withWP: true, withAflever: true });
|
|
bez_afspraak.ruimte = prs_info.afleverruimte;
|
|
}
|
|
|
|
// controleer of de inlogcode met een _ begint. Dan wordt deze niet als default voor de gastheer gebruikt.
|
|
if (user.oslogin().substr(0,1) == "_")
|
|
{
|
|
bez_afspraak.gastheer = "";
|
|
bez_afspraak.gastheer_key = -1;
|
|
}
|
|
else
|
|
{
|
|
bez_afspraak.gastheer = bez_afspraak.aanvrager;
|
|
bez_afspraak.gastheer_key = bez_afspraak.contact_key;
|
|
}
|
|
|
|
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);
|
|
}
|
|
//else bez_afspraak_datum = nu (new Date())
|
|
}
|
|
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;
|
|
}
|
|
bez_afspraak.bez_afspraak_datum = bez_afspraak_datum;
|
|
bez_afspraak.bez_afspraak_eind = bez_afspraak_eind;
|
|
}
|
|
else
|
|
{
|
|
var bez_afspraak = bez.bez_afspraak_info(afspr_key);
|
|
}
|
|
var titel = "";
|
|
if (S("bez_sel_contactpersoon") > 0 && S("bez_sel_internpersoon") == 1)
|
|
titel = L("lcl_bez_select_cntprsbezoeker");
|
|
else
|
|
if (S("bez_sel_contactpersoon") > 0)
|
|
titel = L("lcl_bez_select_cntbezoeker");
|
|
else
|
|
titel = L("lcl_bez_select_prsbezoeker");
|
|
%>
|
|
<html>
|
|
<head>
|
|
<% FCLTHeader.Generate() %>
|
|
<script type="text/javascript" >
|
|
var titel = "<%=titel%>";
|
|
jQuery(document).ready(function()
|
|
{
|
|
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
|
$('textarea').autogrow();
|
|
get_freeprk_info();
|
|
});
|
|
</script>
|
|
</head>
|
|
|
|
|
|
<body id="editbody">
|
|
<% var buttons = [ {title: L("lcl_submit"), icon: "opslaan.png", action:"bez_submit()", singlepress: true, id:"btn_bez_submit"},
|
|
{title: L("lcl_cancel"), icon: "undo.png", action:"bez_cancel()"} ];
|
|
IFRAMER_HEADER(L("lcl_bez_frame"),buttons);
|
|
%> <div id="edit">
|
|
<%
|
|
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"));
|
|
%>
|
|
<script type="text/javascript">
|
|
var urole = "<%=urole%>";
|
|
var vis_afspraak_host_uses_keys = <%=S("vis_afspraak_host_uses_keys")%>;
|
|
var vis_afspraak_onrgoed_uses_keys = <%=S("vis_afspraak_onrgoed_uses_keys")%>;
|
|
var bez_multiday = <%=S("bez_multiday")%>;
|
|
var bez_max_flex_on_line = <%=S("bez_max_flex_on_line")%>;
|
|
var bez_use_buildinghours = <%=S("bez_use_buildinghours")%>;
|
|
var vis_t1 = "<%=safe.jsfloat(S("vis_t1"))%>";
|
|
var vis_t2 = "<%=safe.jsfloat(S("vis_t2"))%>";
|
|
var vis_h = "<%=safe.jsfloat(S("vis_h"))%>";
|
|
var afspr_key = <%=afspr_key%>;
|
|
var maxPast = <%=maxPast%>;
|
|
var maxFuture = <%=maxFuture%>;
|
|
var timeBeginInitEmpty = (<%=timeBeginInitEmpty? 1 : 0%> == 1);
|
|
var timeEindInitEmpty = (<%=timeEindInitEmpty? 1 : 0%> == 1);
|
|
</script>
|
|
|
|
<form name=u2 action="bez_edit_afspraak_save.asp?urole=<%=urole%>&afspr_key=<%=afspr_key%>" method=post onsubmit="return bez_submit();">
|
|
|
|
<% BLOCK_START("bezAfspraak", L("lcl_vis_appointment") + " " + (afspr_key>0?afspr_key:""));
|
|
|
|
var vis_t1 = S("vis_t1");
|
|
var vis_t2 = S("vis_t2");
|
|
if (S("bez_use_buildinghours") == 1 && bez_afspraak.gebouw_key > 0)
|
|
{ // Gebouwtijden als tijdgrenzen van afspraken gebruiken.
|
|
sql = "SELECT COALESCE(g.alg_gebouw_beginuur, -1) alg_gebouw_beginuur"
|
|
+ " , COALESCE(g.alg_gebouw_einduur, -1) alg_gebouw_einduur"
|
|
+ " FROM alg_gebouw g"
|
|
+ " WHERE g.alg_gebouw_key = " + bez_afspraak.gebouw_key;
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
if (oRs("alg_gebouw_beginuur").Value > 0)
|
|
vis_t1 = oRs("alg_gebouw_beginuur").Value;
|
|
if (oRs("alg_gebouw_einduur").Value > 0)
|
|
vis_t2 = oRs("alg_gebouw_einduur").Value;
|
|
}
|
|
oRs.Close();
|
|
}
|
|
|
|
FCLTcalendar( "date_from",
|
|
{ label : L("lcl_vis_start_date"),
|
|
datum: bez_afspraak.bez_afspraak_datum,
|
|
maxPast : maxPast,
|
|
maxFuture: maxFuture,
|
|
onChange: "get_freeprk_info();",
|
|
calendars: (afspr_key < 0? 2 : 1),
|
|
autoopen : (afspr_key < 0 && urole != 'bo'),
|
|
initTimeEmpty: timeBeginInitEmpty,
|
|
initEmpty: (afspr_key < 0 && urole != 'bo'),
|
|
timeField: true,
|
|
timeStep: S("vis_h") * 60,
|
|
startTime: vis_t1,
|
|
endTime: vis_t2,
|
|
required: true,
|
|
volgnr: 1
|
|
});
|
|
|
|
FCLTcalendar( "date_to",
|
|
{ label : L("lcl_vis_end_date"),
|
|
datum: bez_afspraak.bez_afspraak_eind,
|
|
maxFuture: ((urole == "fe" && S("vis_fe_afspraak_limiet") > 0)? S("vis_fe_afspraak_limiet") : S("vis_afspraak_limiet")),
|
|
onChange: "get_freeprk_info();",
|
|
initTimeEmpty: timeEindInitEmpty,
|
|
timeField: true,
|
|
timeStep: S("vis_h") * 60,
|
|
startTime: vis_t1,
|
|
endTime: vis_t2,
|
|
required: true,
|
|
volgnr: 2,
|
|
hidden: S("bez_multiday") != 1 // de *datum* is dan verborgen, tijd blijft zichtbaar
|
|
});
|
|
|
|
FCLTpersoonselector( "person",
|
|
"sgPerson",
|
|
{label: L("lcl_vis_contactperson"),
|
|
perslidKey: bez_afspraak.contact_key,
|
|
onChange: "changeName",
|
|
moreinfo: urole != 'fe',
|
|
autlevel: authparams.PRSwritelevel,
|
|
required: true,
|
|
readonly: frontend
|
|
});
|
|
//======= FIELD 'Gastheer/host' =======
|
|
if ((S("vis_afspraak_host_uses_keys") & 1) == 1)
|
|
{
|
|
FCLTpersoonselector( "personH",
|
|
"sgPersonH",
|
|
{label: L("lcl_vis_visit"),
|
|
perslidKey: bez_afspraak.gastheer_key,
|
|
onChange: "onChangeHost",
|
|
moreinfo: urole != 'fe',
|
|
autlevel: authparams.PRSwritelevel,
|
|
required: true // (S("vis_afspraak_host_uses_keys") & 2) == 2
|
|
});
|
|
}
|
|
else
|
|
{
|
|
RWFIELDTR("personH", "fld", L("lcl_vis_visit"), bez_afspraak.gastheer, {maxlength : 30, required: (S("vis_afspraak_host_uses_keys") & 2) == 2 })
|
|
RWFIELDTR("phone", "fld", L("lcl_phone"), bez_afspraak.telf_nr, {maxlength : 15, required: S("vis_afspraak_tel_required") == 1 })
|
|
} %>
|
|
|
|
<% if (S("vis_afspraak_onrgoed_uses_keys") == 1)
|
|
{
|
|
var requiredlevel = -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;
|
|
}
|
|
|
|
FCLTplaatsselector(authparams.ALGreadlevel, { locatiekey: bez_afspraak.locatie_key,
|
|
gebouwkey: bez_afspraak.gebouw_key,
|
|
verdiepingkey: bez_afspraak.verdieping_key,
|
|
ruimtekey: bez_afspraak.ruimte_key,
|
|
onLocChange: "onChangeLocatie()",
|
|
onGebChange: (S("bez_use_buildinghours") == 1? "onChangeGebouw()" : null),
|
|
escalateOnChUp: true, // Als hoger plaatsveld verandert (wordt ingevuld) als gevolg van lager plaatsveld dan ook onChange acties uitvoeren
|
|
startlevel: 2, /*locatie*/
|
|
eindlevel: 5, /*ruimte*/
|
|
requiredlevel: requiredlevel,
|
|
filtercode: "BEZ",
|
|
no_table: true
|
|
});
|
|
}
|
|
else
|
|
{ // geen keys, locatie wel verplicht
|
|
FCLTplaatsselector(authparams.ALGreadlevel, { locatiekey: bez_afspraak.locatie_key,
|
|
onLocChange: "onChangeLocatie()",
|
|
startlevel: 2, /*locatie*/
|
|
eindlevel: 2, /*locatie*/
|
|
requiredlevel: 2,
|
|
filtercode: "BEZ",
|
|
no_table: true
|
|
});
|
|
if (S("vis_mandatory_alg_level") != "L") {
|
|
RWFIELDTR("room", "fld",
|
|
(S("vis_mandatory_alg_level")=='R' ? L("lcl_room") : S("vis_mandatory_alg_level")=='V' ? L("lcl_floor") : S("vis_mandatory_alg_level")=='G' ? L("lcl_building") : "") ,
|
|
bez_afspraak.ruimte, {maxlength : 30})
|
|
}
|
|
}
|
|
|
|
sql = "SELECT bez_actie_key"
|
|
+ " , " + lcl.xsqla('bez_actie_omschrijving', 'bez_actie_key')
|
|
+ " FROM bez_actie"
|
|
+ " WHERE bez_actie_verwijder IS NULL"
|
|
+ " AND BITAND(bez_actie_flags, 1) = 0" // Niet de oproepers, die alleen via reservering
|
|
+ " ORDER BY bez_actie_key";
|
|
FCLTselector("actie",
|
|
sql,
|
|
{ label: L("lcl_action"),
|
|
initKey: bez_afspraak.actie_key,
|
|
emptyOption: afspr_key < 0 && bez_afspraak.actie_key < 0? "" : null,
|
|
required: true
|
|
}
|
|
)
|
|
RWTEXTAREATR("remark", "fldtxt", L("lcl_vis_remark"), afspr_key == -1? "" : bez_afspraak.opm);
|
|
BLOCK_END();
|
|
|
|
BLOCK_START("bezBezoekers");
|
|
%> <tr>
|
|
<td>
|
|
<% bez_edit_bezoekers(afspr_key,
|
|
bez_afspraak.bez_afspraak_datum,
|
|
bez_afspraak.bez_afspraak_eind,
|
|
bez_afspraak.locatie_key, // Voeg het bezoekerblokje in
|
|
{ contactonly: contactonly })
|
|
%> </td>
|
|
</tr>
|
|
<% BLOCK_END();
|
|
IFACE.FORM_END();
|
|
%>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|