Files
Facilitor/APPL/BEZ/bez_show_bezoekers.asp
Erik Groener b46fdb89e0 UWVA#61386 Extra release 2019.2 voor UWV
svn path=/Website/branches/v2019.2/; revision=45885
2020-02-18 15:56:54 +00:00

228 lines
9.3 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: bez_show_bezoekers.asp
Description: Toon zelfstandig een bezoekersdeel
Parameters: afspraak_key (bestaande bez_afspraak) of
rsv_ruimte_key (bestaande res_rsv_ruimte)
bez_naam optioneel: wordt (als geen afspraak_key) toegevoegd
bez_bedrijf
Context: een frame binnen reservering-edit-of-show
Note: Wordt vooralsnog alleen gebruikt vanuit res en had derhalve
ook res/res_show_bezoekers.asp kunnen zijn
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="bez_edit_bezoekers_save.inc" -->
<!-- #include file="./bez.inc" -->
<%
FCLTHeader.Requires({js: []});
var afspraak_key = getQParamInt("afspraak_key", -1);
var embedded = getQParamInt("embedded", 0) == 1;
var urole = getQParamSafe("urole", "fe");
var rsv_ruimte_key = -1;
var canChange = true;
if (afspraak_key == -1)
{
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key"); // dan moet deze er zijn
sql = "SELECT a.bez_afspraak_key"
+ " FROM bez_afspraak a"
+ " WHERE a.res_rsv_ruimte_key = " + rsv_ruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
afspraak_key = oRs("bez_afspraak_key").Value;
var sql_r = "SELECT rrr.res_rsv_ruimte_externnr"
+ " FROM res_rsv_ruimte rrr"
+ " WHERE rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs_r = Oracle.Execute(sql_r);
canChange = oRs_r("res_rsv_ruimte_externnr").Value != null;
oRs_r.Close();
}
else // Eerste bezoeker bij een reservering niet toestaan voor externe reserveringen
{
sql = "SELECT res_ruimte_extern_id"
+ " , rrr.res_rsv_ruimte_externnr"
+ " FROM res_rsv_ruimte rrr"
+ " , res_ruimte_opstelling ro"
+ " , res_ruimte rr"
+ " WHERE ro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key"
+ " AND rr.res_ruimte_key = ro.res_ruimte_key"
+ " AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.Eof && (oRs("res_ruimte_extern_id").Value != null || oRs("res_rsv_ruimte_externnr").Value != null))
canChange = false;
oRs.Close();
}
}
if (afspraak_key > 0)
var urole = getQParamSafe("urole", "fe");
else
var urole = getQParamSafe("urole");
if (afspraak_key == -1) // deeplink met bezoeker ondersteunen
{ // vanuit Pacta of vanuit Outlook
var bez_naam_arr = getQParamArray("bez_naam", "", true); // De individuele QParams niet splitsen bij komma
var bez_bedrijf = getQParam("bez_bedrijf", ""); // wel allemaal hetzelfde bedrijf
var outlook_organizer = (getQParamInt("host_key", -1) == -1);
var start_index = ((getQParamInt("host_key", -1) == -1) ? 1 : 0); // host_key wordt alleen vanuit Pacta meegegeven.
// Als er geen host_key is, dan komen de namen in bez_naam_arr uit Outlook. De eerste in de lijst is de organisator.
// Die mag niet in de bezoekerslijst staan, want dat ben jezelf.
for (var i=start_index; i < bez_naam_arr.length; i++)
{
var result =
saveOneBezoeker(afspraak_key, rsv_ruimte_key, -1 /* volg */,
{ urole: urole, naam: bez_naam_arr[i], bedrijf: bez_bedrijf,
noValidateToken: true
});
afspraak_key = result.afspr_key;
}
}
if (afspraak_key == -1)
cache.whenTrue(true);
// afspraak_key is nu bekend en okay,
// tenzij bij de reservering geen bezoekers zijn aangemeld.
var this_bez = bez.func_enabled_afspraak(afspraak_key);
canChange &= this_bez.canWriteAny;
user.auth_required_or_abort(this_bez.canReadAny);
%>
<html>
<head>
<% FCLTHeader.Generate() %>
<script>
function bez_change()
{
if (FcltMgr.startEdit(window))
window.location.href = "../bez/bez_edit_bezoekers.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key+(embedded?"&embedded=1":"")%>"
}
$(function() {
function checkEmptyColumn()
{
if ($(this).html() != "&nbsp;")
{
present = true;
return false;
}
}
var present = false;
$("td.bezoekers_telefoon").each(checkEmptyColumn);
$("th.bezoekers_telefoon_th, td.bezoekers_telefoon").toggle(present);
present = false;
$("td.bezoekers_email").each(checkEmptyColumn);
$("th.bezoekers_email_th, td.bezoekers_email").toggle(present);
present = false;
$("td.bezoekers_kenteken").each(checkEmptyColumn);
$("th.bezoekers_kenteken_th, td.bezoekers_kenteken").toggle(present);
});
</script>
</head>
<%
var buttons = [];
if (canChange)
buttons.push({title: L("lcl_change"), icon: "wijzigen.png", action:"bez_change()", id:"bchange_bez_bezoekers" });
%>
<body id="showbody">
<div id="show">
<%
var isoproep = false;
var actie = "";
if (afspraak_key > 0)
{
sql = "SELECT bez_actie_flags"
+ " , " + lcl.xsqla('bez_actie_omschrijving', 'ba.bez_actie_key')
+ " FROM bez_afspraak a"
+ " , bez_actie ba"
+ " WHERE a.bez_afspraak_key = " + afspraak_key
+ " AND a.bez_actie_key = ba.bez_actie_key(+)";
var oRs = Oracle.Execute(sql);
var isoproep = (oRs("bez_actie_flags").Value&1) == 1
actie = ( S("res_appointment_action") ? " ("+oRs("bez_actie_omschrijving").Value+")" : "");
oRs.Close();
}
sql = "SELECT b.bez_bezoekers_key"
+ " , b.bez_afspraak_naam"
+ " , b.bez_afspraak_bedrijf bez_bedrijf"
+ " , b.bez_bezoekers_done"
+ " , b.bez_bezoekers_out"
+ " , b.bez_bezoekers_oproep"
+ " , b.bez_bezoekers_flags"
+ " , b.bez_bezoekers_opmerking"
+ " , b.bez_bezoekers_telefoon"
+ " , b.bez_bezoekers_email"
+ " , b.bez_bezoekers_kenteken"
+ " , 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 b.bez_afspraak_key = " + afspraak_key
+ " ORDER BY bez_afspraak_naam";
var titel = (S("bez_sel_internpersoon") == 1? L("lcl_res_frame_visitors") : L("lcl_res_frame_visitors_external"))
+ actie;
function fnColRemote(oRs)
{
var bez_flags = oRs("bez_bezoekers_flags").Value;
if ((bez_flags & S("bez_set_remote_flags")) == S("bez_set_remote_flags"))
return L("lcl_bez_isremote");
return L("lcl_bez_notremote");
}
var rst = new ResultsetTable({keyColumn: "bez_bezoekers_key",
sql: sql,
noPrint: true,
title: titel,
buttons: buttons,
summaryShow: function() {},
flexModule: "BEZ",
flexId: "bez_bezoekers_key",
showProperties: true,
ID: "beztabletiny"});
rst.addColumn(new Column({caption: L("lcl_vis_name"), content: "bez_afspraak_naam"}));
rst.addColumn(new Column({caption: L("lcl_vis_company"), content: "bez_bedrijf"}));
if (S("vis_remark") != 0)
{
rst.addColumn(new Column({caption: L("lcl_remark"), content: "bez_bezoekers_opmerking"}));
}
if (S("vis_parking_key") != -1 && this_bez.canWritePrk)
{
rst.addColumn(new Column({caption: L("lcl_parking_caption"), content: "code"}));
}
rst.addColumn(new Column({caption: L("lcl_bez_telefoon"), content: "bez_bezoekers_telefoon", thClass: "bezoekers_telefoon_th", tdClass: "bezoekers_telefoon"}));
rst.addColumn(new Column({caption: L("lcl_bez_email"), content: "bez_bezoekers_email", thClass: "bezoekers_email_th", tdClass: "bezoekers_email"}));
rst.addColumn(new Column({caption: L("lcl_bez_kenteken"), content: "bez_bezoekers_kenteken", thClass: "bezoekers_kenteken_th", tdClass: "bezoekers_kenteken"}));
if (S("bez_set_remote_flags") > 0)
rst.addColumn(new Column({caption: L("lcl_bez_remote"), content: fnColRemote, align: "center"}));
rst.addColumn(new Column({caption: L("lcl_bez_done_date"), content: "bez_bezoekers_done", datatype: "time"}));
if (isoproep)
rst.addColumn(new Column({caption: L("lcl_res_bez_called"), content: "bez_bezoekers_oproep", datatype: "time"}));
rst.addColumn(new Column({caption: L("lcl_bez_out_date"), content: "bez_bezoekers_out", datatype: "time"}));
var cnt = rst.processResultset();
%>
</div>
</body>
</html>