Files
Facilitor/APPL/BEZ/bez_check_out.asp
Erik Groener 4dccb5c22e DJIN#37003 Popup innemen objecten vanuit bezoekersbalie
svn path=/Website/trunk/; revision=31103
2016-10-17 14:34:20 +00:00

141 lines
4.7 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/json2.js" -->
<!-- #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");
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;
sql = "UPDATE bez_bezoekers"
+ " SET bez_bezoekers_out = " + bezoekers_out
+ " WHERE bez_bezoekers_key = " + bez_key_arr[i];
oRs = 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;
// 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 disc filter
1) // algprsmode?
sql_a = "SELECT COUNT(ins_deel_key) aantal FROM (" + sql_3d + ")";
oRs = Oracle.Execute(sql_a);
aantal_ojb = oRs("aantal").value;
}
}
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));
%>