DJIN#86656 Audit-trail/tracking toevoegen voor mutaties in Facilitor

svn path=/Website/trunk/; revision=70708
This commit is contained in:
Erik Groener
2025-10-27 10:49:59 +00:00
parent 226c01effa
commit de91a5f4c3
8 changed files with 65 additions and 15 deletions

View File

@@ -17,7 +17,7 @@
<!--#include file="../Shared/iface.inc" -->
<%
FCLTHeader.Requires({plugins:["suggest","jQuery"], js: []})
FCLTHeader.Requires({plugins:["suggest","jQuery"], js: ["jQuery-ui.js"]})
var autfunction = "WEB_PRSUSE";
var authparams = user.checkAutorisation(autfunction); //Wat weet ik dan nou van disciplines???
@@ -82,6 +82,14 @@ else
page += "?afd_key="+afd_key+"&afd_niveau="+afd_niveau;
IFRAMER("prsFrame", page, { FcltClose: "prsClose", title: L("lcl_prs_afdeling_frame") } );
// tracking in subframe
if (afd_key > -1)
{
page = protectQS.create("../shared/status_info.asp?urole=bo&afd_key=" + afd_key);
IFRAMER("prshistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
PAGE_END();
%>
</body>

View File

@@ -45,6 +45,7 @@ function afdeling_list(pautfunction, params)
var bdr_key = params.bdr_key;
var dep_key = params.dep_key;
var afd_niveau = params.afd_niveau;
var afd_expired = params.afd_expired;
var room_key = params.room_key;
var tiny = params.tiny;
if (room_key > 0)
@@ -137,9 +138,9 @@ function afdeling_list(pautfunction, params)
+ " WHERE k.prs_kostenplaats_key(+) = dd.prs_kostenplaats_key"
+ " AND ra.alg_ruimte_key(+) = " + ((tiny && room_key >= 0) ? room_key : -1)
+ " AND ra.prs_afdeling_key(+) = dd.prs_afdeling_key"
+ " AND dd.prs_afdeling_verwijder IS NULL"
+ " AND b.prs_bedrijf_key = dd.prs_bedrijf_key"
+ " AND dd.prs_afdeling_parentkey IS NULL"
+ (afd_expired ? "" : " AND dd.prs_afdeling_verwijder IS NULL");
}
if (!afd_niveau || afd_niveau > 1)
@@ -169,7 +170,7 @@ function afdeling_list(pautfunction, params)
+ (afd_niveau
? " AND d.niveau = " + parentlevel
: "")
+ " AND dd.prs_afdeling_verwijder IS NULL"
+ (afd_expired ? "" : " AND dd.prs_afdeling_verwijder IS NULL");
}
var sqln = "";

View File

@@ -30,6 +30,8 @@ var kstpl_key = getQParamInt("prs_kstpl", -1);
var bdr_key = getQParamInt("bdr_key", -1);
var dep_key = getQParamInt("dep_key", -1);
var afd_niveau = getQParamInt("afd_niveau", -1);
var has_afd_exp = getQParamInt("has_expired", 0) == 1;
var afd_expired = (has_afd_exp ? (getQParam("expired", "off") == "on" ? 1 : 0) : 0); // Alleen vervallen vinkje
var room_key = getQParamInt("room_key", -1);
@@ -43,7 +45,8 @@ afdeling_list ("*",
room_key: room_key,
bdr_key: (bdr_key !=-1? bdr_key: null),
dep_key: (dep_key !=-1? dep_key: null),
afd_niveau :(afd_niveau !=-1? afd_niveau: null)
afd_niveau: (afd_niveau !=-1? afd_niveau: null),
afd_expired: (afd_expired !=-1? afd_expired: null)
}
);
%><% ASPPAGE_END(); %>

View File

@@ -43,6 +43,7 @@ var authparams = user.checkAutorisation(autfunction);
<td><input class="fld wildcard" type="text" id="deptDesc" name="deptDesc" value=""></td>
</tr>
<%
RWCHECKBOXTR("expired", "fld", L("lcl_prs_afdeling_vervallen_incl"), 0);
SEARCH_BLOCK_END();
SEARCH_BLOCK_START();
FCLTkostenplaatsselector("prs_kstpl",

View File

@@ -195,11 +195,12 @@ if (err.friendlyMsg)
}
else
{
if (level == "P") // we hebben alleen nog maar tracking op personen
if (level == "P" || level == "A") // we hebben alleen nog maar tracking op personen en afdelingen.
{
var trackcode = (level == "P" ? "PRSDEL" : "AFDDEL")
for (var i = 0; i < ingesloten.length; i++)
{
shared.trackaction("PRSDEL", ingesloten[i]);
shared.trackaction(trackcode, ingesloten[i]);
}
}
}

View File

@@ -29,27 +29,28 @@
var warning = "";
if (afd_key > 0)
{
sql = buildUpdate("prs_afdeling", fields)
+ " prs_afdeling_key = " + afd_key;
var err = Oracle.Execute(sql, true);
var afdUpd = buildTrackingUpdate("prs_afdeling", " prs_afdeling_key = " + afd_key, fields);
var err = Oracle.Execute(afdUpd.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
{
fields.push({ dbs: "prs_afdeling_key", typ: "key", seq: "prs_s_prs_afdeling_key" });
var regIns = buildInsert("prs_afdeling", fields);
var afd_key = regIns.sequences["prs_afdeling_key"];
sql = regIns.sql;
var afdIns = buildInsert("prs_afdeling", fields);
var afd_key = afdIns.sequences["prs_afdeling_key"];
sql = afdIns.sql;
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
var flextrack = [];
if (!warning)
{
currentKenmerkenSQL = "SELECT kl.prs_kenmerk_key"
var currentKenmerkenSQL = "SELECT kl.prs_kenmerk_key"
+ " , kl.prs_kenmerklink_waarde"
+ " , k.prs_kenmerk_toonbaar"
+ " , k.fac_functie_key"
@@ -59,7 +60,17 @@ else
+ " AND prs_kenmerklink_verwijder IS NULL"
+ " AND prs_link_key = " + afd_key;
saveFlexKenmerken(afd_key, { kenmerkTable: "prs_kenmerklink",
var allKenmerkenSQL = " SELECT " + lcl.xsql('k.prs_kenmerk_omschrijving', 'k.prs_kenmerk_key') + " kenmerk_omschrijving"
+ " , k.prs_kenmerk_kenmerktype kenmerk_kenmerktype"
+ " , k.prs_kenmerk_systeem kenmerk_systeem"
+ " , k.prs_kenmerk_toonbaar kenmerk_readonly"
+ " , k.prs_kenmerk_uniek kenmerk_uniek"
+ " , fac_kenmerkdomein_key"
+ " FROM prs_kenmerk k "
+ " WHERE k.prs_kenmerk_verwijder IS NULL"
+ " AND k.prs_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
flextrack = saveFlexKenmerken(afd_key, { kenmerkTable: "prs_kenmerklink",
kenmerkParentKey : "prs_link_key",
kenmerkWaarde: "prs_kenmerklink_waarde",
kenmerkKey: "prs_kenmerk_key",
@@ -70,9 +81,28 @@ else
moduleName: "prs_kenmerklink_niveau",
moduleVal: "A",
isNew: isNew,
tracking: true,
flexPath: "PRS/A"
});
}
if (isNew)
{
shared.trackaction("AFDNEW", afd_key);
}
else
{
if (flextrack.length)
{
if (afdUpd && afdUpd.trackarray)
afdUpd.trackarray = afdUpd.trackarray.concat(flextrack);
else
afdUpd.trackarray = flextrack;
}
if (afdUpd.trackarray.length)
shared.trackaction("AFDUPD", afd_key, afdUpd.trackarray.join("\n") );
}
%>
<html>
<head>

View File

@@ -282,6 +282,10 @@ var status = {
case "PRSLOG" : tekst = L("lcl_prs_is_prslog") ; break;
case "PRSANO" : tekst = L("lcl_fac_is_ano") ; break;
case "AFDNEW" : tekst = L("lcl_prs_is_afdnew") ; break;
case "AFDUPD" : tekst = L("lcl_prs_is_afdupd") ; break;
case "AFDDEL" : tekst = L("lcl_prs_is_afddel") ; break;
case "ALGCAD" : tekst = L("lcl_alg_is_algcad") ; break;
case "ALGLNE" : tekst = L("lcl_alg_is_alglne") ; break;
case "ALGGNE" : tekst = L("lcl_alg_is_alggne") ; break;

View File

@@ -65,6 +65,7 @@
var fin_key = getQParamInt('fin_key', -1);
var bes_key = getQParamInt('bes_key', -1);
var ord_key = getQParamInt('ord_key', -1);
var afd_key = getQParamInt('afd_key', -1);
var prs_key = getQParamInt('prs_key', -1);
var kpn_key = getQParamInt('kpn_key', -1);
var room_key = getQParamInt('room_key', -1);
@@ -100,6 +101,7 @@
case fin_key != -1: entkey = fin_key; enttype ='factuur'; break;
case bes_key != -1: entkey = bes_key; enttype ='bestelling'; break;
case ord_key != -1: entkey = ord_key; enttype ='bestelopdr'; break;
case afd_key != -1: entkey = afd_key; enttype ='afdeling'; break;
case prs_key != -1: entkey = prs_key; enttype ='perslid'; break;
case kpn_key != -1: entkey = kpn_key; enttype ='kostenplaats'; break;
case room_key != -1: entkey = room_key; enttype ='ruimte'; break;