162 lines
5.5 KiB
Plaintext
162 lines
5.5 KiB
Plaintext
<%@ language="javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: bez_check_out.asp
|
|
*/ %>
|
|
|
|
<%
|
|
var JSON_Result = true;
|
|
%>
|
|
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="./bez.inc" -->
|
|
<!-- #include file="../Shared/discx3d.inc" -->
|
|
|
|
<%
|
|
protectRequest.validateToken();
|
|
/***** Get webform parameters *****/
|
|
var bez_key_arr = getFParamIntArray("bez_key");
|
|
var undo_check_out = S("vis_allow_uncheck") && (getFParamInt("undo_check_out", 0) == 1);
|
|
var message = "";
|
|
var checkOutDone = new Array();
|
|
var aantal_ojb = new Array();
|
|
var tobeapproved = 0;
|
|
var deletedvis = false;
|
|
/***** End get webform parameters *****/
|
|
|
|
var sql = "SELECT distinct bez_afspraak_key"
|
|
+ " FROM bez_bezoekers"
|
|
+ " WHERE bez_bezoekers_key " + (bez_key_arr.length > 0? " IN (" + bez_key_arr.join(",") + ")" : " = -1");
|
|
var oRs = Oracle.Execute(sql);
|
|
while (!oRs.eof)
|
|
{
|
|
afspr_key = oRs("bez_afspraak_key").value;
|
|
this_bez = bez.func_enabled_afspraak(afspr_key);
|
|
user.auth_required_or_abort(this_bez.canCheckInOut);
|
|
oRs.MoveNext();
|
|
}
|
|
oRs.Close();
|
|
|
|
for (i = 0 ; i < bez_key_arr.length; i++)
|
|
{
|
|
aantal_ojb[i] = 0;
|
|
if (undo_check_out)
|
|
var bezoekers_out = " TO_DATE(NULL)";
|
|
else
|
|
var bezoekers_out = " SYSDATE";
|
|
|
|
sql = "SELECT bez_bezoekers_key"
|
|
+ " , bez_afspraak_key"
|
|
+ " , bez_afspraak_naam"
|
|
+ " , prs_perslid_key"
|
|
+ " , prs_contactpersoon_key"
|
|
+ " FROM bez_bezoekers"
|
|
+ " WHERE bez_bezoekers_key = " + bez_key_arr[i]
|
|
+ " AND bez_bezoekers_done IS NOT NULL";
|
|
oRs = Oracle.Execute(sql);
|
|
|
|
if (!oRs.eof)
|
|
{
|
|
var afspr_key = oRs("bez_afspraak_key").value;
|
|
var bezoeker = oRs("bez_afspraak_naam").value;
|
|
var prs_key = oRs("prs_perslid_key").value || -1;
|
|
var cps_key = oRs("prs_contactpersoon_key").value || -1;
|
|
oRs.Close();
|
|
|
|
sql = "UPDATE bez_bezoekers"
|
|
+ " SET bez_bezoekers_out = " + bezoekers_out
|
|
+ " WHERE bez_bezoekers_key = " + bez_key_arr[i];
|
|
Oracle.Execute(sql);
|
|
tobeapproved++;
|
|
// Undo ook afzonderlijk tracken! (gebruikt zelfde label als bij undo checkin)
|
|
var trackstr = L("lcl_bez_is_out_1") + bezoeker + (undo_check_out ? L("lcl_bez_is_in_3") : L("lcl_bez_is_out_2") );
|
|
shared.trackaction("BEZOUT", bez_key_arr[i], trackstr);
|
|
checkOutDone[i] = true;
|
|
|
|
// close parking place attached to visitor
|
|
var sql_objects = "SELECT rd.res_rsv_ruimte_key, rd.res_rsv_deel_key"
|
|
+ " FROM res_rsv_deel rd, res_deel dl"
|
|
+ " WHERE rd.res_status_bo_key <> 5"
|
|
+ " AND rd.bez_bezoekers_key = " + bez_key_arr[i]
|
|
+ " AND dl.res_deel_key = rd.res_deel_key"
|
|
+ " AND dl.res_discipline_key = " + S("vis_parking_key");
|
|
var obj_oRs = Oracle.Execute(sql_objects);
|
|
while (!obj_oRs.eof)
|
|
{
|
|
sql = "UPDATE res_rsv_deel"
|
|
+ " SET res_status_bo_key = 5"
|
|
+ " WHERE res_rsv_deel_key =" + obj_oRs("res_rsv_deel_key").Value
|
|
+ " AND res_status_bo_key <> 6";
|
|
Oracle.Execute(sql);
|
|
obj_oRs.MoveNext();
|
|
}
|
|
obj_oRs.Close();
|
|
|
|
// Customer hook
|
|
pResult = new HookResult();
|
|
custfunc.bez_checkout(bez_key_arr[i], pResult);
|
|
if (pResult.errmsg != null)
|
|
{
|
|
message = pResult.errmsg;
|
|
}
|
|
|
|
if (prs_key > 0 || cps_key > 0)
|
|
{ // objecten om in te nemen
|
|
sql = "SELECT ins_deel_key"
|
|
+ " , ins_discipline_key"
|
|
+ " FROM ins_deel i"
|
|
+ " WHERE i.ins_alg_ruimte_key = " + prs_key
|
|
+ " AND i.ins_alg_ruimte_type = 'P'"
|
|
+ " AND i.ins_alg_ruimte_key_org IS NOT NULL"
|
|
+ " AND i.ins_alg_ruimte_type_org IS NOT NULL"
|
|
+ " UNION"
|
|
+ " SELECT ins_deel_key"
|
|
+ " , ins_discipline_key"
|
|
+ " FROM ins_deel i"
|
|
+ " WHERE i.ins_alg_ruimte_key = " + cps_key
|
|
+ " AND i.ins_alg_ruimte_type = 'C'"
|
|
+ " AND i.ins_alg_ruimte_key_org IS NOT NULL"
|
|
+ " AND i.ins_alg_ruimte_type_org IS NOT NULL";
|
|
// 3D autorisatie voor het innemen van uitgeleende objecten
|
|
sql_3d = discx3d ("SELECT * FROM (" + sql + ") WHERE 1=1 ",
|
|
"ins_discipline_key",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"WEB_INSFOF",
|
|
[], // Geen discipline filter.
|
|
1) // algprsmode?
|
|
sql_a = "SELECT COUNT(ins_deel_key) aantal FROM (" + sql_3d + ")";
|
|
|
|
oRs = Oracle.Execute(sql_a);
|
|
aantal_ojb = oRs("aantal").value;
|
|
oRs.Close();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
checkOutDone[i] = false;
|
|
// Is bezoeker verwijderd of nog niet binnen gemeld?
|
|
sql = "SELECT bez_bezoekers_key"
|
|
+ " FROM bez_bezoekers"
|
|
+ " WHERE bez_bezoekers_key = " + bez_key_arr[i];
|
|
oRs = Oracle.Execute(sql);
|
|
if (oRs.eof)
|
|
deletedvis = true; // Bezoeker is verwijderd.
|
|
}
|
|
}
|
|
if (tobeapproved == 0) // enkele wel en enkele niet klagen we niet over
|
|
message = deletedvis? L("lcl_bez_deleted_vis") : L("lcl_vis_no_checkout");
|
|
|
|
var result = {bez_key_arr: bez_key_arr, undo_check_out: undo_check_out, checkOutDone: checkOutDone, message: message, aantal_ojb: aantal_ojb, prs_key: prs_key, cps_key: cps_key};
|
|
Response.Write(JSON.stringify(result));
|
|
%>
|
|
<% ASPPAGE_END(); %>
|