Files
Facilitor/APPL/ALG/alg_delete.asp
Maykel Geerdink d135d88981 RWSN#28534: Autorisatie ruimtebeheer scopen.
svn path=/Website/trunk/; revision=21784
2014-06-02 09:16:39 +00:00

87 lines
3.2 KiB
Plaintext

<%@ LANGUAGE = JavaScript %>
<% /*
$Revision$
$Id$
File: alg_delete.asp (formerly setAlgverwijder.asp)
Description: Verwijderen alg-object en deels PRS
Parameters: key (van het onroerend goed)
level: "D", "RE", "L", "G", "V", "R", "W" (werkplek) of "PW" (perslid_werkplek)
Context: Vanuit show-schermen en of vanuit overzichten
Result: JSON object
Note:
*/
var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
<%
protectRequest.validateToken();
var level = getFParam("level");
var dis_key_arr = getFParamIntArray("key");
var autfunction = {D : "WEB_ALGMAN",
RE: "WEB_ALGMAN",
L : "WEB_ALGMAN",
T : "WEB_TERMAN", // Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
G : "WEB_ALGMAN",
V : "WEB_ALGMAN",
R : "WEB_RUIMAN", // Met ALG* bepaal je wat je ziet (Read), met RUI* en TER* bepaal je wat je kunt wijzigen (Write).
W : "WEB_PRSBOF",
PW: "WEB_PRSBOF"}[level];
var authParams = user.checkAutorisation(autfunction);
var table = {D : "ALG_DISTRICT",
RE: "ALG_REGIO",
L : "ALG_LOCATIE",
T : "ALG_TERREINSECTOR",
G : "ALG_GEBOUW",
V : "ALG_VERDIEPING",
R : "ALG_RUIMTE",
W : "PRS_WERKPLEK",
PW: "PRS_PERSLIDWERKPLEK"}[level];
result = { success: true, deleted: true };
for (var i = 0; i < dis_key_arr.length; i++)
{
// W en WP hebben geen verwijderveld (meer), die gaan echt weg.
if (level == "W" || level == "PW")
{
// Een WP gooit via de cascade zijn bezetting mee weg.
// Een bezetting verwijderen doet niets extra
// Bij impliciet verwijderen van wp-bezetting dus ook de werkplek weggooien
// die nu (per definitie) leeg wordt. Dit moet eerst, want straks weet
// ik niet meer genoeg
if (level == "PW" && S("prs_werkplek_implicit") == 1)
{
sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key IN "
+ " (SELECT prs_werkplek_key "
+ " FROM prs_perslidwerkplek"
+ " WHERE prs_perslidwerkplek_key IN (" + dis_key_arr[i] + "))"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
// En dit moet ongeacht impliciet of expliciet.
// Alleen bij PW&implicit zal dit niets meer verwijderen vanwege de cascade hiervoor
sql = "DELETE FROM " + table
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
}
else
{
sql = "UPDATE " + table
+ " SET " + table + "_VERWIJDER = " + "SYSDATE"
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
}
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
Response.Write(JSON.stringify(result));
%>