Files
Facilitor/APPL/BEZ/bez_edit_afspraak.asp
Maykel Geerdink 58e7e9e643 FSN#33880: Parkeerplaats telling bij toevoegen bezoeker niet bijgewerkt.
svn path=/Website/trunk/; revision=28154
2016-02-15 07:45:01 +00:00

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>