DJIN#41139 Werkplekken ook (laten) vervallen
svn path=/Website/branches/v2017.1/; revision=34533
This commit is contained in:
@@ -1523,13 +1523,32 @@ function process_claim(claim, idp_data, params)
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
|
||||
if ("workplace" in persdata && persdata["workplace"])
|
||||
{ // workplace bevat ruimtes gescheiden door '|' of ';'
|
||||
if ("workplace" in persdata)
|
||||
{
|
||||
// Eerst oude werkplekken ophalen
|
||||
var sql = "SELECT pw.prs_werkplek_key, UPPER(alg_plaatsaanduiding) alg_plaatsaanduiding"
|
||||
+ " FROM prs_perslidwerkplek pw, prs_werkplek wp, alg_v_plaatsaanduiding"
|
||||
+ " WHERE pw.prs_perslid_key = " + user_key
|
||||
+ " AND pw.prs_werkplek_key = wp.prs_werkplek_key"
|
||||
+ " AND wp.prs_werkplek_type = 0" // alleen vaste plekken
|
||||
+ " AND alg_onroerendgoed_keys = wp.prs_alg_ruimte_key"
|
||||
+ " AND alg_onroerendgoed_type = 'R'";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var oldWP = {};
|
||||
while (!oRs.Eof)
|
||||
{
|
||||
oldWP[oRs("alg_plaatsaanduiding").Value] = oRs("prs_werkplek_key").Value;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
// workplace bevat ruimtes gescheiden door '|' of ';'
|
||||
// (we ondersteunen alleen impliciete werkplekken, geen 'named')
|
||||
// Codering moet volgens alg_v_plaatsaanduiding zijn (locatiecode-gebouwcode-verdiepingcode-ruimtenr)
|
||||
// Als er een '@' voor staat is het een virtuele werkplek
|
||||
persdata["workplace"] = persdata["workplace"] || "";
|
||||
var workplacearr = persdata["workplace"].split(/[;\|]/);
|
||||
var keepwp = [];
|
||||
for (var i = 0; i < workplacearr.length; i++)
|
||||
{
|
||||
var wpcode = workplacearr[i];
|
||||
@@ -1539,22 +1558,47 @@ function process_claim(claim, idp_data, params)
|
||||
virtual = 1;
|
||||
wpcode = wpcode.substr(1);
|
||||
}
|
||||
var sql = "SELECT alg_onroerendgoed_keys, alg_onroerendgoed_type"
|
||||
+ " FROM alg_v_plaatsaanduiding"
|
||||
+ " WHERE UPPER(alg_plaatsaanduiding) = " + safe.quoted_sql_upper(wpcode);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof)
|
||||
|
||||
if (wpcode in oldWP)
|
||||
{
|
||||
var okey = oRs("alg_onroerendgoed_keys").Value;
|
||||
var otype = oRs("alg_onroerendgoed_type").Value;
|
||||
sql = "BEGIN"
|
||||
+ " prs.movetoruimte ({0}, {1}, '{2}', {3}); ".format(user_key, okey, 'G', virtual) // G want maar <20><>n werkplek per gebouw
|
||||
+ "END;";
|
||||
Oracle.Execute(sql);
|
||||
delete oldWP[wpcode]; // Hoeven we straks niet te wissen
|
||||
}
|
||||
else // Toevoegen
|
||||
{
|
||||
var sql = "SELECT alg_onroerendgoed_keys"
|
||||
+ " FROM alg_v_plaatsaanduiding"
|
||||
+ " WHERE alg_onroerendgoed_type = 'R'"
|
||||
+ " AND UPPER(alg_plaatsaanduiding) = " + safe.quoted_sql_upper(wpcode);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.Eof)
|
||||
{
|
||||
delete oldWP[wpcode.toUpperCase()]; // Die zal hergebruikt worden
|
||||
var okey = oRs("alg_onroerendgoed_keys").Value;
|
||||
sql = "BEGIN"
|
||||
+ " prs.movetoruimte ({0}, {1}, '{2}', {3}); ".format(user_key, okey, 'G', virtual) // G want maar <20><>n werkplek per gebouw
|
||||
+ "END;";
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
else
|
||||
__Log("Workplace '{0}' not found".format(workplacearr[i]));
|
||||
oRs.Close();
|
||||
}
|
||||
}
|
||||
for (wpcode in oldWP) // restant opruimen
|
||||
{
|
||||
__Log("Persoon verwijderen van WP {0}, wp-key {1}".format(wpcode, oldWP[wpcode]));
|
||||
if (S("prs_werkplek_implicit") == 1)
|
||||
{
|
||||
var sql = "DELETE FROM prs_werkplek"
|
||||
+ " WHERE prs_werkplek_key = " + oldWP[wpcode];
|
||||
}
|
||||
else
|
||||
__Log("Workplace '{0}' not found".format(workplacearr[i]));
|
||||
oRs.Close();
|
||||
{
|
||||
var sql = "DELETE FROM prs_perslid_werkplek"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND prs_werkplek_key = " + oldWP[wpcode];
|
||||
}
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user