FSN#39592: Flexkenmerken verdwijnen na doorsturen en later bewerken.
svn path=/Website/trunk/; revision=35868
This commit is contained in:
@@ -781,6 +781,73 @@ mld = {setmeldingstatus:
|
||||
}
|
||||
},
|
||||
|
||||
moveFlexStdmelding:
|
||||
function(mld_key, old_stdm, stdmelding)
|
||||
{
|
||||
/* Match de kenmerk_key-s van de oude en nieuwe mld_stdmelding */
|
||||
var trackarray = []; // Eventuele tracking
|
||||
if (old_stdm != stdmelding)
|
||||
{
|
||||
__Log("Old MLD_STDMELDING_KEY: " + old_stdm + " New: " + stdmelding);
|
||||
// pas op dat zelfs de vakgroep (mld_ins_discipline_key) gewijzigd kan zijn
|
||||
var flexsql = "SELECT mk.mld_kenmerk_key kenm_key_old"
|
||||
+ " , kenm_new.mld_kenmerk_key kenm_key_new"
|
||||
+ " , mld_kenmerkmelding_key"
|
||||
+ " , sk.mld_srtkenmerk_omschrijving"
|
||||
+ " , mkm.mld_kenmerkmelding_waarde"
|
||||
+ " FROM mld_kenmerkmelding mkm"
|
||||
+ " , mld_kenmerk mk"
|
||||
+ " , mld_srtkenmerk sk"
|
||||
+ " , mld_stdmelding s"
|
||||
+ " , mld_discipline d"
|
||||
+ " , (SELECT mkn.mld_kenmerk_key"
|
||||
+ " , mkn.mld_srtkenmerk_key"
|
||||
+ " FROM mld_kenmerk mkn"
|
||||
+ " , mld_stdmelding sn"
|
||||
+ " , mld_discipline dn"
|
||||
+ " WHERE sn.mld_ins_discipline_key = dn.ins_discipline_key"
|
||||
+ " AND ((mkn.mld_stdmelding_key = sn.mld_stdmelding_key AND mkn.mld_kenmerk_niveau = 'S')"
|
||||
+ " OR (mkn.mld_stdmelding_key = sn.mld_ins_discipline_key AND mkn.mld_kenmerk_niveau = 'D')"
|
||||
+ " OR (mkn.mld_stdmelding_key = dn.ins_srtdiscipline_key AND mkn.mld_kenmerk_niveau = 'T'))"
|
||||
+ " AND sn.mld_stdmelding_key = " + stdmelding + ") kenm_new"
|
||||
+ " WHERE mkm.mld_kenmerk_key = mk.mld_kenmerk_key"
|
||||
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
|
||||
+ " AND mk.mld_srtkenmerk_key = sk.mld_srtkenmerk_key"
|
||||
+ " AND sk.mld_srtkenmerk_kenmerktype NOT IN ('F', 'E', 'M')"
|
||||
+ " AND ((mk.mld_stdmelding_key = s.mld_stdmelding_key"
|
||||
+ " AND mk.mld_kenmerk_niveau = 'S')"
|
||||
+ " OR (mk.mld_stdmelding_key = s.mld_ins_discipline_key"
|
||||
+ " AND mk.mld_kenmerk_niveau = 'D')"
|
||||
+ " OR (mk.mld_stdmelding_key = d.ins_srtdiscipline_key"
|
||||
+ " AND mk.mld_kenmerk_niveau = 'T'))"
|
||||
+ " AND mk.mld_srtkenmerk_key = kenm_new.mld_srtkenmerk_key(+)"
|
||||
+ " AND mkm.mld_melding_key = " + mld_key
|
||||
+ " AND s.mld_stdmelding_key = " + old_stdm
|
||||
+ " ORDER BY mk.mld_kenmerk_key";
|
||||
|
||||
var oRs = Oracle.Execute(flexsql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
var kenm_key_new = oRs("kenm_key_new").Value;
|
||||
if (kenm_key_new)
|
||||
{ // Overeenkomende flexkenmerken van de oude naar de nieuwe stdmelding overzetten.
|
||||
// De waarde veranderd niet, dus geen tracking nodig.
|
||||
sql = "UPDATE mld_kenmerkmelding"
|
||||
+ " SET mld_kenmerk_key = " + kenm_key_new
|
||||
+ " WHERE mld_kenmerkmelding_key = " + oRs("mld_kenmerkmelding_key").Value;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
else
|
||||
{ // Nieuwe stdmelding heeft het flexkenmerk niet. Track dat dit flexkenmerk verloren gaat.
|
||||
trackarray.push(oRs("mld_srtkenmerk_omschrijving").Value + " (" + oRs("mld_kenmerkmelding_waarde").Value + "): " + L("lcl_mld_prop_not_exist"));
|
||||
}
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
return trackarray;
|
||||
},
|
||||
|
||||
getStatusSql:
|
||||
function(mldstatus_str, alias)
|
||||
{
|
||||
|
||||
@@ -166,6 +166,13 @@ else
|
||||
}
|
||||
|
||||
mld.keepFlexDocuments(mld_key, old_stdm, stdm_key);
|
||||
var flextrack = mld.moveFlexStdmelding(mld_key, old_stdm, stdm_key);
|
||||
|
||||
if (mldUpd.trackarray.length || flextrack.length)
|
||||
{
|
||||
var formattedID = this_stdm.ins_srtdiscipline_prefix + mld_key + " (" + this_stdm.discipline_omschrijving + "/" + this_stdm.stdmelding_omschrijving + ")";
|
||||
mld.trackmeldingupdate(mld_key, L("lcl_mld_is_mldupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.concat(flextrack).join("\n"));
|
||||
}
|
||||
|
||||
// mldUpd.oldjsvals bevat helaas niet old_disc dus die hebben we al eerder bepaald.
|
||||
// Met status=5 (afgemeld) zitten we in de uitzonderlijke situatie dat iemand achteraf
|
||||
|
||||
Reference in New Issue
Block a user