Files
Facilitor/APPL/PDA/bez_list.asp
Peter Feij 0ef5e780a7 HCAS#39217 ook days parameters
svn path=/Website/trunk/; revision=33188
2017-03-17 17:15:31 +00:00

156 lines
6.8 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: pda/bez_list.asp
Description: Toont de actuele en aanstaande bezoekers van de plaats waar ik ben
Bedoeld voor rondlopende receptiemw of BHV-ers. BEZBOF vereist
Parameters:
Context: Vanuit mobile device short url
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./resultset_table.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
var qrc = getQParamInt("qrc", 0) != 0;
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 offset = getQParamInt("offset", 0);
var days = getQParamInt("days", 1);
authparams = user.checkAutorisation("WEB_BEZBOF");
sql = "SELECT a.bez_afspraak_key"
+ ", a.bez_afspraak_datum"
+ ", b.bez_afspraak_naam"
+ ", b.bez_afspraak_bedrijf"
+ ", a.bez_afspraak_gastheer"
+ ", a.bez_afspraak_ruimte"
+ ", a.bez_afspraak_eind"
+ ", a.bez_afspraak_opmerking"
+ ", b.bez_bezoekers_done"
+ ", b.bez_bezoekers_out "
+ ", b.bez_bezoekers_key"
+ ", b.bez_bezoekers_pasnr"
+ ", b.bez_bezoekers_opmerking"
+ " FROM bez_afspraak a"
+ ", bez_bezoekers b"
+ ", bez_actie t"
+ ", alg_locatie l"
+ ", alg_v_allonrgoed_gegevens v "
+ " WHERE a.bez_afspraak_key = b.bez_afspraak_key"
+ " AND t.bez_actie_key(+) = a.bez_actie_key"
+ " AND a.alg_onrgoed_keys = v.alg_onroerendgoed_keys(+)"
+ " AND a.alg_locatie_key = l.alg_locatie_key"
+ (offset >=0 ? " AND bez_bezoekers_out IS NULL" : "") // weg = niet meer interessant, tenzij terugkijken
+ " AND a.bez_afspraak_datum BETWEEN TRUNC(SYSDATE+"+offset+") AND TRUNC(SYSDATE+"+offset+"+"+days+")";
if (authparams.ALGreadlevel > -1) { // Er geldt een autorisatiebeperking
sql += " AND EXISTS ("
+ " SELECT 'x'"
+ " FROM fac_v_my_locations lr "
+ " WHERE lr.prs_perslid_key = " + user_key
+ " AND a.alg_locatie_key = lr.alg_locatie_key"
+ " AND lr.niveau = " + authparams.ALGreadlevel + ")";
}
if (S("vis_afspraak_onrgoed_uses_keys") == 1) {
// Als we keys gebruiken (meestal) moeten/kunnen we gebouw ook checken
// wat alleen nog nodig is als de scope op gebouw ligt (locatie deden we al
if (authparams.ALGreadlevel > 3) // denk ik, checken
sql += " AND EXISTS ("
+ " SELECT 'x'"
+ " FROM fac_v_my_buildings gr "
+ " WHERE gr.prs_perslid_key = " + user_key
+ " AND v.alg_gebouw_key = gr.alg_gebouw_key"
+ " AND gr.niveau = " + authparams.ALGreadlevel + ")";
}
if (gebouw_key > -1 && S("vis_afspraak_onrgoed_uses_keys") == 1) {
sql += " AND (l.alg_locatie_key IS NULL OR v.alg_gebouw_key = " + gebouw_key +")";
}
if (locatie_key > -1) {
sql += " AND (l.alg_locatie_key IS NULL OR l.alg_locatie_key = " + locatie_key +")";
}
if (verdieping_key > -1 && S("vis_afspraak_onrgoed_uses_keys") == 1) {
sql += " AND (l.alg_locatie_key IS NULL OR v.alg_verdieping_key = " + verdieping_key +")";
}
sql += " ORDER BY bez_afspraak_datum, bez_afspraak_naam";
var rst = new ResultsetTable({ keyColumn: "bez_bezoekers_key",
sql: sql,
ID: "vistable",
linkColumn: fncolLink,
headerColumn: fnHeader,
detailColumn: fnBezoeker,
asideColumn: fnStatus,
subheaderColumn: fnBestemming,
showAll: true
});
function fncolLink(oRs)
{
return "../pda/afspraak.asp?afs_key=" + oRs("bez_afspraak_key").Value;
};
function fnBestemming(oRs) {
return "<div class='listbodykop'>"
+ "<i class='fa fa-user'></i>&nbsp;" +safe.html(oRs("bez_afspraak_gastheer").value)
+ (oRs("bez_afspraak_ruimte").value ? "<br><i class='fa fa-map-marker'></i>&nbsp;" + safe.html(oRs("bez_afspraak_ruimte").value) : "")
+ (oRs("bez_bezoekers_done").value != null ? "<br><i class='fa fa-sign-in'></i>&nbsp;" + toDateTimeString(oRs("bez_bezoekers_done").value) : "")
+ (oRs("bez_bezoekers_out").value != null ? "<br><i class='fa fa-sign-out'></i>&nbsp;" + toDateTimeString(oRs("bez_bezoekers_out").value) : "")
+ "</div>"
+ "<div class='listbodytext'>"//+ safe.html(oRs("bez_afspraak_gastheer").value)
+ (oRs("bez_afspraak_opmerking").value ? safe.html(oRs("bez_afspraak_opmerking").value) + "<br>" : "")
+ (oRs("bez_bezoekers_opmerking").value ? safe.html(oRs("bez_bezoekers_opmerking").value) + "<br>" : "")
+ "</div>";
}
function fnBezoeker(oRs)
{
return safe.html(oRs("bez_afspraak_naam").value) + (oRs("bez_afspraak_bedrijf").value ? " ("+ safe.html(oRs("bez_afspraak_bedrijf").value)+ ")" : "");
};
function fnHeader(oRs)
{
return (offset == 0 && days == 1 ? toTimeString(new Date(oRs("bez_afspraak_datum").value)) : toDateTimeString(new Date(oRs("bez_afspraak_datum").value), null, null, true));
};
function fnStatus(oRs)
{
var res = "";
// We weten dat vertrokken bezoekers niet voorkomen hier
if (oRs("bez_bezoekers_done").value == null) {
res = L("lcl_vis_expected_st");
}
if (oRs("bez_bezoekers_done").value != null) {
res = L("lcl_vis_inside_st");
}
return res + (oRs("bez_bezoekers_pasnr").value ? " #"+safe.html(oRs("bez_bezoekers_pasnr").value) : "");
};
%>
<html>
<head><%
FCLTMHeader.Generate({});
%></head>
<body>
<%
// deze lijkt deprecated, hoe dan wel? CurrentPosition is slechts hypothetisch van belang
var xfunc = user.func_enabled("BEZ", null, CurrentPosition, user_key);
PAGE_START();
HEADER({title: L("lcl_mobile_bezoek") + " " + safe.htmlattr(CurrentPosition),
addaction: (xfunc.canRead("WEB_BEZUSE") ? "../pda/afspraak.asp?afs_key=-1" : null),
back:!qrc,
home: !qrc});
CONTENT_START();
var cnt = rst.processResultset();
CONTENT_END();
FOOTER();
PAGE_END();
%>