228 lines
9.3 KiB
Plaintext
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() != " ")
|
|
{
|
|
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>
|