FSN#51222: Anonimiseren van historische bezoekers.
svn path=/Website/branches/v2017.3/; revision=37974
This commit is contained in:
@@ -38,19 +38,41 @@ var anodatetime = new Date();
|
||||
// Bijvoorbeeld het veld bez_afspraak_gastheer die door trigger automatisch weer wordt gevuld met tekstnaam van host.
|
||||
var sql;
|
||||
var anosql = "BEGIN"
|
||||
// Persoon als eerste i.v.m. tekstovername van gastheer bij afspraken.
|
||||
if (moduleString.indexOf("PRS") != -1)
|
||||
{ // Anonimiseer procedure voor PRS aanroepen.
|
||||
anosql += " ano.anonymizeprs(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
|
||||
}
|
||||
if (moduleString.indexOf("BES") != -1)
|
||||
{ // Anonimiseer procedure voor PRS aanroepen.
|
||||
anosql += " ano.anonymizebes(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
|
||||
}
|
||||
if (moduleString.indexOf("BEZ") != -1)
|
||||
{ // Anonimiseer procedure voor BEZ aanroepen.
|
||||
anosql += " ano.anonymizebez(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
|
||||
}
|
||||
if (moduleString.indexOf("MLD") != -1)
|
||||
{ // Anonimiseer procedure voor PRS aanroepen.
|
||||
anosql += " ano.anonymizemld(" + startdatum.beginToSQL() + ", " + einddatum.endToSQL() + ");";
|
||||
}
|
||||
anosql += " END;";
|
||||
|
||||
Oracle.Execute(anosql);
|
||||
|
||||
var messageArray = [];
|
||||
if (moduleString.indexOf("BES") != -1)
|
||||
{ // Bepalen hoeveel bestellingen zijn geanonimiseerd.
|
||||
sql = "SELECT COUNT(ft.fac_tracking_key) aantalbes"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = ('BESANO'))";
|
||||
oRs = Oracle.Execute(sql);
|
||||
messageArray.push(oRs("aantalbes").Value + " " + L("lcl_bes_bestellingen"));
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
if (moduleString.indexOf("BEZ") != -1)
|
||||
{ // Bepalen hoeveel afspraken zijn geanonimiseerd.
|
||||
sql = "SELECT COUNT(ft.fac_tracking_key) aantalbez"
|
||||
@@ -60,11 +82,23 @@ if (moduleString.indexOf("BEZ") != -1)
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = ('BEZANO'))";
|
||||
oRs = Oracle.Execute(sql);
|
||||
var aantalbez = oRs("aantalbez").Value;
|
||||
messageArray.push(oRs("aantalbez").Value + " " + L("lcl_bez_appointments"));
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
if (moduleString.indexOf("MLD") != -1)
|
||||
{ // Bepalen hoeveel bestellingen zijn geanonimiseerd.
|
||||
sql = "SELECT COUNT(ft.fac_tracking_key) aantalmld"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_datum >= " + anodatetime.toSQL(true, true)
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = ('MLDANO'))";
|
||||
oRs = Oracle.Execute(sql);
|
||||
messageArray.push(oRs("aantalmld").Value + " " + L("lcl_mld_meldingen"));
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
if (moduleString.indexOf("PRS") != -1)
|
||||
{ // Bepalen hoeveel afspraken zijn geanonimiseerd.
|
||||
sql = "SELECT COUNT(ft.fac_tracking_key) aantalprs"
|
||||
@@ -74,7 +108,6 @@ if (moduleString.indexOf("PRS") != -1)
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = ('PRSANO'))";
|
||||
oRs = Oracle.Execute(sql);
|
||||
var aantalbez = oRs("aantalprs").Value;
|
||||
messageArray.push(oRs("aantalprs").Value + " " + L("lcl_prs_persons"));
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
@@ -18,14 +18,10 @@
|
||||
<!-- #include file="fac.inc" -->
|
||||
|
||||
<%
|
||||
var smodule = getQParamArray("smodule");
|
||||
var allmod = false;
|
||||
if (smodule[0] == "-1")
|
||||
allmod = true;
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
|
||||
var startdatum = getQParamDate("startdatum"); // Periode van
|
||||
var startdatum = new Date(1); // Periode van (Startdatum is dan 1970. Bij doorgeven verwacht getFParamDate "startdatum > 0", daarom 1)
|
||||
var einddatum = getQParamDate("einddatum"); // Perdiode tot
|
||||
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
@@ -46,70 +42,98 @@ FCLTHeader.Requires({ plugins: ["jQuery"] })
|
||||
{
|
||||
var pmoduleString = getKeyString(rowArray);
|
||||
|
||||
var data = { moduleString: pmoduleString,
|
||||
startdatum: <%= startdatum.getTime() %>,
|
||||
einddatum: <%= einddatum.getTime() %> };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../fac/fac_anonymize.asp",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
}
|
||||
FcltMgr.confirm(L("lcl_shared_doaction1").format(L("mgt_kenmerk_systeem_ano")),
|
||||
{ autoconfirm: isMulti },
|
||||
function() {
|
||||
var data = { moduleString: pmoduleString,
|
||||
startdatum: <%= startdatum.getTime() %>,
|
||||
einddatum: <%= einddatum.getTime() %> };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../fac/fac_anonymize.asp",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
var sql;
|
||||
var sqln = [];
|
||||
|
||||
if (allmod || inArray("BEZ", smodule))
|
||||
{
|
||||
sql = "SELECT 'BEZ' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_bez_appointments")) + " onderdeel"
|
||||
+ " , COUNT(bez_afspraak_key) aantal"
|
||||
+ " , " + startdatum.beginToSQL() + " mindate"
|
||||
+ " , " + einddatum.endToSQL() + " maxdate"
|
||||
+ " FROM bez_afspraak"
|
||||
+ " WHERE bez_afspraak_datum BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS"
|
||||
+ " (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = bez_afspraak_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'BEZANO'))";
|
||||
sqln.push(sql);
|
||||
}
|
||||
sql = "SELECT 'BES' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_bes_bestellingen")) + " onderdeel"
|
||||
+ " , COUNT(b.bes_bestelling_key) aantal"
|
||||
+ " FROM bes_bestelling b"
|
||||
+ " WHERE b.bes_bestelling_datum BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = b.bes_bestelling_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'BESANO'))";
|
||||
sqln.push(sql);
|
||||
|
||||
if (allmod || inArray("PRS", smodule))
|
||||
{
|
||||
sql = "SELECT 'PRS' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_prs_persons")) + " onderdeel"
|
||||
+ " , COUNT(p.prs_perslid_key) aantal"
|
||||
+ " , " + startdatum.beginToSQL() + " mindate"
|
||||
+ " , " + einddatum.endToSQL() + " maxdate"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_verwijder IS NOT NULL"
|
||||
+ " AND p.prs_perslid_verwijder BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = p.prs_perslid_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'PRSANO'))";
|
||||
sql = "SELECT 'BEZ' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_bez_appointments")) + " onderdeel"
|
||||
+ " , COUNT(bez_afspraak_key) aantal"
|
||||
+ " FROM bez_afspraak"
|
||||
+ " WHERE bez_afspraak_datum BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS"
|
||||
+ " (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = bez_afspraak_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'BEZANO'))";
|
||||
sqln.push(sql);
|
||||
|
||||
sql = "SELECT 'MLD' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_mld_meldingen")) + " onderdeel"
|
||||
+ " , COUNT(m.mld_melding_key) aantal"
|
||||
+ " FROM mld_melding m"
|
||||
+ " WHERE m.mld_melding_datum BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = m.mld_melding_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'MLDANO'))";
|
||||
sqln.push(sql);
|
||||
|
||||
sql = "SELECT 'PRS' module"
|
||||
+ " , " + safe.quoted_sql(L("lcl_prs_persons")) + " onderdeel"
|
||||
+ " , COUNT(p.prs_perslid_key) aantal"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE p.prs_perslid_verwijder IS NOT NULL"
|
||||
+ " AND p.prs_perslid_verwijder BETWEEN " + startdatum.beginToSQL() + " AND " + einddatum.endToSQL()
|
||||
+ " AND NOT EXISTS (SELECT ft.fac_tracking_key"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_tracking_refkey = p.prs_perslid_key"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = 'PRSANO'))";
|
||||
sqln.push(sql);
|
||||
|
||||
var currentWeekDay = new Date().getDay();
|
||||
var lessDays = currentWeekDay == 0 ? 6 : currentWeekDay - 1;
|
||||
var startdatumweek = new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * lessDays));
|
||||
|
||||
sqln.push(sql);
|
||||
}
|
||||
|
||||
sql = "SELECT module"
|
||||
+ " , onderdeel"
|
||||
+ " , aantal"
|
||||
+ " , mindate"
|
||||
+ " , maxdate"
|
||||
+ " , (SELECT COUNT(ft.fac_tracking_key)"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE TRUNC(ft.fac_tracking_datum, 'DDD') = TRUNC(SYSDATE, 'DDD')"
|
||||
+ " WHERE ft.fac_tracking_datum BETWEEN " + startdatumweek.beginToSQL() + " AND " + new Date().endToSQL()
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_today"
|
||||
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_thisweek"
|
||||
+ " , (SELECT COUNT(ft.fac_tracking_key)"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_total"
|
||||
+ " FROM (" + sqln.join(" UNION ") + ")";
|
||||
|
||||
function fncolaantal(oRs)
|
||||
@@ -127,10 +151,9 @@ FCLTHeader.Requires({ plugins: ["jQuery"] })
|
||||
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_module"), content: "module"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_component"), content: "onderdeel"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_aantal"), content: fncolaantal, datatype: "number"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_ano_time_period_start"), content: "mindate", datatype: "date"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_ano_time_period_end"), content: "maxdate", datatype: "date"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_anonymized_today"), content: "anonimized_today", datatype: "number"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_toanonymize"), content: fncolaantal, datatype: "number"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_anonymized"), content: "anonimized_total", datatype: "number"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_thisweek"), content: "anonimized_thisweek", datatype: "number"}));
|
||||
|
||||
rst.addAction({action: "mld_anonymize", caption: L("mgt_kenmerk_systeem_ano"), multi: true, multiOnce: true});
|
||||
|
||||
|
||||
@@ -50,23 +50,6 @@ var anonymize_period = S("anonymize_period");
|
||||
<table><!-- x rijen, 2 kolommen: label + veld -->
|
||||
<!-- module -->
|
||||
<%
|
||||
sql = "SELECT DISTINCT fac_setting_module fac_module"
|
||||
+ " , fac_setting_module fac_module"
|
||||
+ " FROM fac_setting "
|
||||
+ " WHERE fac_setting_module IN ('BEZ', 'PRS')" // Vooralsnog alleen voor bezoekers en
|
||||
+ (module != ""
|
||||
? " AND fac_setting_module = " + safe.quoted_sql(module)
|
||||
: "")
|
||||
+ " ORDER BY fac_setting_module";
|
||||
FCLTselector("smodule",
|
||||
sql,
|
||||
{ label: L("lcl_fac_module"),
|
||||
trclass: "primsearch",
|
||||
emptyOption: module == ""? L("lcl_all") : null,
|
||||
multi: true
|
||||
|
||||
});
|
||||
|
||||
// Startdatum bepalen door van de nog niet geanonimiseerde personen, de persoon te nemen met de laagste verwijder datum.
|
||||
sql = "SELECT MIN(sd.startdatum) minstartdatum"
|
||||
+ " FROM (SELECT CASE"
|
||||
@@ -104,15 +87,6 @@ var anonymize_period = S("anonymize_period");
|
||||
var startdatum = new Date(oRs("minstartdatum").Value);
|
||||
var einddatum = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - anonymize_period);
|
||||
|
||||
// <!-- Datum van -->
|
||||
FCLTcalendar("startdatum",
|
||||
{ label : L("lcl_period_from"),
|
||||
datum: startdatum,
|
||||
minDate: new Date(2000,0, 1),
|
||||
trclass: "primsearch",
|
||||
required: true,
|
||||
volgnr: 1
|
||||
});
|
||||
// <!-- Datum tot -->
|
||||
FCLTcalendar("einddatum",
|
||||
{ label: L("lcl_period_to"),
|
||||
@@ -128,6 +102,8 @@ var anonymize_period = S("anonymize_period");
|
||||
</td>
|
||||
<!-- Second column -->
|
||||
<td>
|
||||
<div id="anointotext1"><%=L("lcl_fac_ano_intotext1")%></div>
|
||||
<div id="anointotext2"><%=L("lcl_fac_ano_intotext2")%></div>
|
||||
</td>
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
|
||||
@@ -3025,6 +3025,22 @@ div#lcldialect .label
|
||||
width: auto;
|
||||
}
|
||||
|
||||
div#anointotext1 {
|
||||
font-size: 2em;
|
||||
color: #ff5050;
|
||||
margin: 4px;
|
||||
padding: 5px 1px 5px 1px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div#anointotext2 {
|
||||
font-size: 1.5em;
|
||||
color: #000000;
|
||||
margin: 4px;
|
||||
padding: 5px 1px 5px 1px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#itemfilter
|
||||
{
|
||||
width: 218px;
|
||||
|
||||
@@ -133,6 +133,7 @@ var status = {
|
||||
case "MLDAFR" : tekst = L("lcl_mld_is_mldafr") ; break;
|
||||
case "MLDVER" : tekst = L("lcl_mld_is_mldver") ; break;
|
||||
case "MLDNOT" : tekst = L("lcl_mld_is_mldnot") ; break;
|
||||
case "MLDANO" : tekst = L("lcl_fac_is_ano") ; break;
|
||||
|
||||
case "RESNEW" : tekst = L("lcl_res_is_resnew") ; break;
|
||||
case "RESOPT" : tekst = L("lcl_res_is_resopt") ; break;
|
||||
@@ -175,6 +176,7 @@ var status = {
|
||||
case "BEZDON" : tekst = L("lcl_bez_is_bezdon") ; break;
|
||||
case "BEZOUT" : tekst = L("lcl_bez_is_bezout") ; break;
|
||||
case "BEZBAD" : tekst = L("lcl_bez_is_bezbad") ; break;
|
||||
case "BEZANO" : tekst = L("lcl_fac_is_ano") ; break;
|
||||
|
||||
case "BESNEW" : tekst = L("lcl_bes_is_besnew") ; break;
|
||||
case "BESACP" : tekst = L("lcl_bes_is_besacp") ; break;
|
||||
@@ -188,6 +190,7 @@ var status = {
|
||||
case "BESUPD" : tekst = L("lcl_bes_is_besupd") ; break;
|
||||
case "BESVER" : tekst = L("lcl_bes_is_besver") ; break;
|
||||
case "BESCAN" : tekst = L("lcl_bes_is_bescan") ; break;
|
||||
case "BESANO" : tekst = L("lcl_fac_is_ano") ; break;
|
||||
|
||||
case "BES2NE" : tekst = L("lcl_bes_is_bes2ne") ; break;
|
||||
case "BES2AF" : tekst = L("lcl_bes_is_bes2af") ; break;
|
||||
@@ -237,6 +240,7 @@ var status = {
|
||||
case "PRSDEL" : tekst = L("lcl_prs_is_prsdel") ; break;
|
||||
case "PRSKPU" : tekst = L("lcl_prs_is_prskpu") ; break;
|
||||
case "PRSLOG" : tekst = L("lcl_prs_is_prslog") ; break;
|
||||
case "PRSANO" : tekst = L("lcl_fac_is_ano") ; break;
|
||||
|
||||
case "ALGCAD" : tekst = L("lcl_alg_is_algcad") ; break;
|
||||
case "ALGRNE" : tekst = L("lcl_alg_is_algrne") ; break;
|
||||
|
||||
Reference in New Issue
Block a user