FSN#42267: Omschrijving van de tracking van stdmelding verfijnder
svn path=/Website/trunk/; revision=35397
This commit is contained in:
@@ -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 */ },
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user