Files
Facilitor/APPL/PDA/res_claimwp.asp
Jos Groot Lipman 6caedf9d20 FCLT#90168 Unsafe user.naam() gebruik
svn path=/Website/branches/v2025.3/; revision=70692
2025-10-22 14:59:09 +00:00

155 lines
5.6 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: res_claimwp.asp
Description: Registreerscherm dat IK nu op deze werkplek zit
Parameters: wp_key, eventueel via ins_key (sensor, PC)
Context:
Notes: De user moet geauthenticeerd zijn en WEB_RESUSE (write) rechten hebben en de werkplek moet gereserveerd zijn rondom het tijdstip waarop de qrc wordt gescand.
Merk op: het feit dat deze functie (mobiel) kan worden aangeroepen betekent dat er fysiek aan de
ALG-scope voldaan wordt ("ik mag hier kennelijk komen").
Future extensions:
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="./mobile.inc" -->
<!-- #include file="./iface.inc" -->
<%
var qrc = getQParamInt("qrc", 0) != 0;
var ins_deel_key = getQParamInt("ins_deel_key"); //Reserveerbaar object (werkplek) mandatory parameter
var fromins = getQParamInt("fromins", 0) == 1;
// check whether the user has a claim on this specific workplace today
var sql = "SELECT "
+ " rrr.res_rsv_ruimte_host_key, "
+ " rrd.res_rsv_deel_key, "
+ " rrd.res_rsv_deel_van, "
+ " rrd.res_rsv_deel_tot, "
+ " id.ins_deel_key, "
+ " id.ins_deel_state, "
+ " plaan.alg_plaatsaanduiding, "
+ " rd.res_deel_omschrijving, "
+ " rd.res_deel_image, "
+ " plaan.alg_verdieping_omschrijving, "
+ " plaan.alg_ruimte_omschrijving, "
+ " plaan.alg_verdieping_code "
+ "FROM "
+ " res_v_aanwezigrsv_ruimte rrr, "
+ " res_v_aanwezigrsv_deel rrd, "
+ " res_v_aanwezigdeel rd, "
+ " ins_v_aanwezigdeel id, "
+ " alg_v_allonroerendgoed plts, "
+ " alg_v_allonrgoed_gegevens plaan "
+ "WHERE "
+ " rrd.res_deel_key = rd.res_deel_key "
+ " AND id.ins_deel_key = " + ins_deel_key
+ " AND id.ins_alg_ruimte_key = plts.alg_onroerendgoed_keys "
+ " AND id.ins_alg_ruimte_type = plts.alg_type "
+ " AND plts.alg_onroerendgoed_keys = plaan.alg_onroerendgoed_keys "
+ " AND plts.alg_type = plaan.alg_type "
+ " AND rd.res_ins_deel_key = id.ins_deel_key "
+ " AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key "
+ " AND rrr.res_rsv_ruimte_host_key = " + user_key
+ " AND ( "
+ " rd.res_deel_vervaldatum IS NULL "
+ " OR TRUNC(rd.res_deel_vervaldatum) > TRUNC(SYSDATE) "
+ " ) "
+ " AND TRUNC(rrd.res_rsv_deel_van) = TRUNC(SYSDATE) ";
oRs = Oracle.Execute(sql);
var res_found = !oRs.eof;
var res_rsv_deel_key = -1;
var res_van = "";
var res_tot = "";
var alg_plaats = "";
var res_deel = "";
var alg_verdieping = "";
var alg_ruimte = "";
if (res_found)
{
ins_deel_state = oRs("ins_deel_state").Value;
res_rsv_deel_key = oRs("res_rsv_deel_key").Value;
res_van = oRs("res_rsv_deel_van").Value;
res_tot = oRs("res_rsv_deel_tot").Value;
alg_plaats = oRs("alg_plaatsaanduiding").Value;
res_deel = oRs("res_deel_omschrijving").Value;
alg_verdieping = oRs("alg_verdieping_omschrijving").Value;
alg_ruimte = oRs("alg_ruimte_omschrijving").Value;
}
oRs.Close();
var authparams = user.checkAutorisation("WEB_RESUSE");
user.auth_required_or_abort(authparams.ALGwritelevel < 9 && authparams.PRSwritelevel < 9);
%>
<html>
<head>
<% FCLTMHeader.Generate({title: L("lcl_flexplek")}); %>
<script>
function res_claimwp_callback(json, textStatus)
{
if (json.success)
$("#spanclaimwp").text(L("lcl_flexplek") + " " + "<%=safe.jsstring(res_deel)%>" + " " + L("lcl_flexplekclaimed") + " " + "<%=safe.jsstring(user.naam())%>" + " " + L("lcl_flexplekclaimfooter"));
}
function res_claimwp_submit()
{
var data = $("[name=claimwp]").serialize();
<% protectRequest.dataToken("data"); %>
$.post("res_claimwp_submit.asp?ins_deel_key=<%=ins_deel_key%>",
data,
res_claimwp_callback,
"json");
}
</script>
</head>
<%
%><body><%
PAGE_START();
HEADER ({title: L("lcl_flexplek") + " " + res_deel, back:!qrc || (!res_found && fromins), home:!qrc});
CONTENT_START();
%>
<form id="claimwp" name="claimwp" action="res_claimwp.asp?submit=1&ins_deel_key=<%=ins_deel_key%>" method="post">
<span id="spanclaimwp">
<%
// no valid reservation found for the reservable workplace
if (!res_found)
{
Response.write(L("lcl_res_invalid_rsv"));
}
// reservable workplace is already claimed by user
else if (ins_deel_state == res_rsv_deel_key)
{
Response.write(L("lcl_res_reclaimed_rsv"));
}
// show reservable workplace
else
{
ROFIELD("fld", L("lcl_place") , safe.html(alg_plaats), { });
ROFIELD("fld", L("lcl_from") , toDateTimeString(res_van), { });
ROFIELD("fld", L("lcl_to") , toDateTimeString(res_tot), { });
}
CONTROLGROUP_START();
if (res_found && ins_deel_state != res_rsv_deel_key)
{
BUTTON(L("lcl_mobile_claimconfirm"), {click: "res_claimwp_submit()", icon: "fa-check", singlepress: true});
}
CONTROLGROUP_END();
%>
</span>
<% IFACE.FORM_END();
%>
</form>
<%
CONTENT_END();
FOOTER();
PAGE_END();
PDA_PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>