156 lines
6.8 KiB
Plaintext
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> " +safe.html(oRs("bez_afspraak_gastheer").value)
|
|
+ (oRs("bez_afspraak_ruimte").value ? "<br><i class='fa fa-map-marker'></i> " + safe.html(oRs("bez_afspraak_ruimte").value) : "")
|
|
+ (oRs("bez_bezoekers_done").value != null ? "<br><i class='fa fa-sign-in'></i> " + toDateTimeString(oRs("bez_bezoekers_done").value) : "")
|
|
+ (oRs("bez_bezoekers_out").value != null ? "<br><i class='fa fa-sign-out'></i> " + 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();
|
|
%>
|