FSN#42267: Omschrijving van de tracking van stdmelding verfijnder

svn path=/Website/trunk/; revision=35397
This commit is contained in:
Jos Groot Lipman
2017-09-21 09:10:55 +00:00
parent e2e46e1f6c
commit 83b886db01
3 changed files with 49 additions and 20 deletions

View File

@@ -247,7 +247,7 @@ if (savemode)
savewhen: "personFor", track: L("lcl_mld_call_for"), foreign: "prs_perslid" },
{ dbs: "prs_kostenplaats_key", typ: "key", val: kpkey, track: L("lcl_mld_inf_Kostenplaats"), foreign: "prs_kostenplaats" },
{ dbs: "mld_melding_opmerking", typ: "varchar", frm: "remark", track: L("lcl_mld_inf_Opmerking"), len: 4000 },
{ dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), foreign: "mld_stdmelding" },
{ dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), buildTrackText: buildStdmTrackText },
{ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: alg_onroerendgoed_keys,
savewhen: "locatiekey",
track: true /* afzonderlijke tracking, wel oldjsval */ },

View File

@@ -83,7 +83,7 @@ if (stdm_key == old_stdm && old_beh == sBehandel)
else
{
result.toaster = L("lcl_forwarded");
var fields = [ { dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), foreign: "mld_stdmelding" }
var fields = [ { dbs: "mld_stdmelding_key", typ: "key", frm: "stdm", track: L("lcl_complain"), buildTrackText: buildStdmTrackText }
];
if (S("mld_forward_can_assign"))

View File

@@ -125,6 +125,22 @@ function shorttxt(txt, len)
return txt.substr(0, len-4) + "...";
}
function getForeignText(key, foreign)
{
var sql = "SELECT " + foreign.desc
+ " FROM " + foreign.tbl + " " + (foreign.alias||"");
if (foreign.where)
sql += " WHERE " + foreign.where + " AND ";
else
sql += " WHERE ";
sql += foreign.key + " = " + key;
var oRs = Oracle.Execute(sql);
var oldtxt = oRs(0).Value;
oRs.Close();
return oldtxt;
}
// tracktxt.push(buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, oRs(tupel.field.dbs).DefinedSize));
// bouw een mooie tekst die de van-naar wijziging beschrijft
// params: nodiff: geen L("lcl_trackappend") of L("lcl_trackpercent")
@@ -174,25 +190,10 @@ function buildTrackText(typ, oldjsval, newjsval, params)
if (!foreign)
abort_with_warning("INTERNAL ERROR:\nForeign key for tracking " + params.foreign.toUpperCase()+" is not defined in foreignKeyTable");
var sqlf = "SELECT " + foreign.desc
+ " FROM " + foreign.tbl + " " + (foreign.alias||"")
if (foreign.where)
sqlf += " WHERE " + foreign.where + " AND ";
else
sqlf += " WHERE ";
sqlf += foreign.key + " = ";
if (oldjsval)
{
var oRs = Oracle.Execute(sqlf + oldjsval);
oldtxt = oRs(0).Value;
oRs.Close()
}
oldtxt = getForeignText(oldjsval, foreign)
if (newjsval)
{
var oRs = Oracle.Execute(sqlf + newjsval);
newtxt = oRs(0).Value;
oRs.Close();
}
newtxt = getForeignText(newjsval, foreign)
break;
}
}
@@ -242,6 +243,30 @@ function buildTrackText(typ, oldjsval, newjsval, params)
return tracktxt;
}
// Die is wat specifiekers omdat een andere stdm dezelfde tekst kan hebben
// maar dan onder een andere vakgroep.
// Een vakgroepwissel wil je eventueel ook tracken
function buildStdmTrackText(typ, oldjsval, newjsval, params)
{
var old_disc_key = Oracle.Get("mld_ins_discipline_key", "mld_stdmelding", oldjsval);
var new_disc_key = Oracle.Get("mld_ins_discipline_key", "mld_stdmelding", newjsval);
var olddisctxt = getForeignText(old_disc_key, foreignKeyTable("mld_discipline"));
var newdisctxt = getForeignText(new_disc_key, foreignKeyTable("mld_discipline"));
var oldstdmtxt = getForeignText(oldjsval, foreignKeyTable("mld_stdmelding"));
var newstdmtxt = getForeignText(newjsval, foreignKeyTable("mld_stdmelding"));
if (olddisctxt == newdisctxt)
olddisctxt = newdisctxt = "";
if (oldstdmtxt == newstdmtxt)
oldstdmtxt = newstdmtxt = "";
if (newdisctxt && newstdmtxt)
return L("lcl_complain") + ": " + olddisctxt + "/" + oldstdmtxt + L("lcl_trackto") + newdisctxt + "/" + newstdmtxt
else
if (newstdmtxt)
return L("lcl_complain") + ": " + oldstdmtxt + L("lcl_trackto") + newstdmtxt;
else
return L("lcl_vakgroup") + ": " + olddisctxt + L("lcl_trackto") + newdisctxt;
}
var known_adotypes =
{
@@ -422,7 +447,11 @@ function buildTrackingUpdate(tabel, where, xfields, params)
var lbl = tupel.field.track;
// if (params.dialect_key)
// lbl = lcl.x(tupel.field.track, params.dialect_key);
trackarray.push(lbl + ": " + buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, { foreign: tupel.field.foreign, oldjsvals: oldjsvals } ));
if (tupel.field.buildTrackText)
var tracktxt = tupel.field.buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, { foreign: tupel.field.foreign, oldjsvals: oldjsvals } );
else
var tracktxt = lbl + ": " + buildTrackText(tupel.field.typ, oldjsval, tupel.jsval, { foreign: tupel.field.foreign, oldjsvals: oldjsvals } );
trackarray.push(tracktxt);
}
oldjsvals[tupel.field.dbs] = oldjsval;
}