FCLT#86882: Blokbehandelteam notificaties bij acceptatie en wijzigingen.

svn path=/Website/trunk/; revision=67836
This commit is contained in:
Maykel Geerdink
2025-02-04 11:46:05 +00:00
parent b9f8903bb7
commit 46b36f3fd5
4 changed files with 221 additions and 165 deletions

View File

@@ -296,10 +296,10 @@ mld = {
},
notifybehandelteam:
function (mld_key, mld_ins_discipline_key)
function (mld_key, mld_ins_discipline_key, use_disc)
{ // Notificeer BO medewerkers van het behandelteam over een behandelteam wijziging
if (mld_ins_discipline_key > 0)
Oracle.Execute("BEGIN mld.notifybackoffice (" + mld_key + ", 'MLDBHG', 2); END;");
Oracle.Execute("BEGIN mld.notifybackoffice (" + mld_key + ", 'MLDBHG', " + (use_disc? "3, " + mld_ins_discipline_key : "2") + "); END;");
},
trackbehandelaar:
@@ -1022,7 +1022,7 @@ mld = {
},
getpriocon:
// Lever de icon behorend bij prioriteit p
// Lever de icon op behorend bij prioriteit p
function (p)
{
var displ = "";
@@ -1653,6 +1653,164 @@ mld = {
return trackarray;
},
saveFlexBlokKenmerken:
function(mld_key, flex_blok, params)
{ // Behandelbare bloktitel kenmerken afhandelen tijdens het opslaan van de melding.
// Deze kenmerken komen alleen in de MLD module voor. Daarom is de code hier in mld.inc gedefinieerd.
var mldtrackarray = []; // eventuele tracking
var kenmerk_key = flex_blok.id;
var new_disc_key = flex_blok.team;
var new_prs_key = flex_blok.prs;
var new_complete = flex_blok.complete == 1;
var sql = "SELECT mld_melding_status FROM MLD_melding WHERE mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
var mld_status = oRs("mld_melding_status").Value;
oRs.Close();
var sql = "SELECT mld_kenmerkblokmelding_key"
+ " , kbm.ins_discipline_key"
+ " , kbm.prs_perslid_key"
+ " , CASE WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NOT NULL THEN 1 ELSE 0 END complete"
+ " , COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("t.mld_srtkenmerk_omschrijving", "t.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " FROM mld_kenmerkblokmelding kbm"
+ " , mld_kenmerk k"
+ " , mld_srtkenmerk t"
+ " WHERE k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
+ " AND k.mld_kenmerk_key = kbm.mld_kenmerk_key"
+ " AND kbm.mld_melding_key = " + mld_key
+ " AND kbm.mld_kenmerk_key = " + kenmerk_key;
oRsb = Oracle.Execute(sql);
if (!oRsb.eof)
{ // mld_kenmerkblokmelding record aanwezig.
var old_disc_key = oRsb("ins_discipline_key").Value || -1;
var old_prs_key = oRsb("prs_perslid_key").Value || -1;
var old_complete = oRsb("complete").Value == 1;
var label = oRsb("kenmerk_omschrijving").Value; // For tracking only.
// Notificeren en tracken van mld_kenmerkblokmelding behandelteam en behandelaar gebeurt pas als de melding is geaccepteerd (FCLT#86882).
// Dan is de status "Gaccepteerd(4)" of "Uitgegeven(7)"
if ((new_disc_key != old_disc_key || new_prs_key != old_prs_key || new_complete != old_complete) && (mld_status == 4 || mld_status == 7))
{
sql = "UPDATE mld_kenmerkblokmelding"
+ " SET ins_discipline_key = " + (new_disc_key > 0? new_disc_key : "NULL")
+ " , prs_perslid_key = " + (new_prs_key > 0? new_prs_key : "NULL")
+ " , mld_kenmerkblokmelding_afmelddatum = " + (new_complete? "SYSDATE" : "NULL")
+ " WHERE mld_melding_key = " + mld_key
+ " AND mld_kenmerk_key = " + kenmerk_key;
Oracle.Execute(sql);
// notificeer als iemand anders aan de bak moet,
if (!new_complete && new_prs_key != old_prs_key && new_prs_key > 0)
{
// Niet tracken, want dat verwart met de behandeling van de hoofdmeldingen.
// De behandeling van het blok wordt toegewezen, niet de behandeling van de melding immmers.
mld.notifybehandelaar2(mld_key, new_prs_key); // Notificatie behandelaar blok.
}
else if (!new_complete && new_disc_key != old_disc_key && new_prs_key == -1 && new_disc_key > 0)
{
// Wel MLDBHG notificatie, geen MLDBHG tracking want dat zou verwarrend zijn voor het hoofdbehandelteam.
mld.notifybehandelteam(mld_key, new_disc_key, true); // Notificatie hoofdbehandelteam.
}
// En dan wil ik deze aanpassing(en) tracken als een gewone wijziging (MLDUPD)
// Deze komt niet met de andere tracking mee, omdat de waarden niet bij de gewonen kenmerken zitten
// en daar de verschillen dus niet opgemerkt worden. Daarom hier.
if (!new_complete && new_disc_key != old_disc_key)
{
mldtrackarray.push(label + ": " + buildTrackText("key", (old_disc_key > -1? old_disc_key : null), (new_disc_key > -1 ? new_disc_key : ""), {foreign: "MLD_DISCIPLINE"}));
}
if (!new_complete && new_prs_key != old_prs_key)
{
mldtrackarray.push(label + ": " + buildTrackText("key", (old_prs_key > -1? old_prs_key : null), (new_prs_key > -1 ? new_prs_key : ""), {foreign: "PRS_PERSLID"}));
}
// een eventuele completering ook tracken
if (new_complete && !old_complete) // is dat ook bij de undo?
{
mldtrackarray.push(label + ": " + buildTrackText("varchar", "", L("lcl_mld_is_blokafm"), {nodiff: true})); // Hoe track je dat netter?
}
}
}
else
{ // Er is geen mld_kenmerkblokmelding record aanwezig. Dat hoeft niet alleen bij een nieuwe melding zo te zijn. Dat kan o.a. ook bij een nieuw kenmerk "Bloktitel met behandelaar".
// Behandelteam (ins_discipline_key), behandelaar (prs_perslid_key) en gereed (mld_kenmerkblokmelding_afmelddatum) zijn niet verplicht,.
sql = "INSERT INTO mld_kenmerkblokmelding"
+ " (mld_melding_key"
+ " , mld_kenmerk_key"
+ " , ins_discipline_key"
+ " , prs_perslid_key"
+ " , mld_kenmerkblokmelding_afmelddatum"
+ " )"
+ " VALUES (" + mld_key
+ " , " + kenmerk_key
+ " , " + (new_disc_key > 0? new_disc_key : "NULL")
+ " , " + (new_prs_key > 0? new_prs_key : "NULL")
+ " , " + (new_complete > 0? "SYSDATE" : "NULL")
+ " )";
Oracle.Execute(sql);
// Notificeren en tracken van default mld_kenmerkblokmelding behandelteam en behandelaar gebeurt pas bij het accepteren van de melding (FCLT#86882).
// Dan is de status "Gaccepteerd(4)" of "Uitgegeven(7)"
if (mld_status == 4 || mld_status == 7)
{
if (!new_complete && new_prs_key > 0)
{
// Niet tracken, want dat verwart met de behandeling van de hoofdmeldingen.
// De behandeling van het blok wordt toegewezen, niet de behandeling van de melding immmers.
mld.notifybehandelaar2(mld_key, new_prs_key); // Notificatie behandelaar blok.
}
else if (!new_complete && new_disc_key > 0)
{
// Wel MLDBHG notificatie, geen MLDBHG tracking want dat zou verwarrend zijn voor het hoofdbehandelteam.
mld.notifybehandelteam(mld_key, new_disc_key, true); // Notificatie hoofdbehandelteam.
}
// Er zijn geen oude waardes, want het mld_kenmerkblokmelding was niet aanwezig. Er is ook nog geen kenmerk omschrijving (label).
sql = "SELECT COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("sk.mld_srtkenmerk_omschrijving", "sk.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " FROM mld_kenmerk k"
+ " , mld_srtkenmerk sk"
+ " WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key"
+ " AND k.mld_kenmerk_key = " + kenmerk_key;
oRsk = Oracle.Execute(sql);
var label = oRsk("kenmerk_omschrijving").Value; // For tracking only.
oRsk.Close();
if (!params.isNew && !new_complete && new_disc_key > 0)
{
mldtrackarray.push(label + ": " + buildTrackText("key", null, new_disc_key, {foreign: "MLD_DISCIPLINE"}));
}
if (!params.isNew && !new_complete && new_prs_key > 0)
{
mldtrackarray.push(label + ": " + buildTrackText("key", null, new_prs_key, {foreign: "PRS_PERSLID"}));
}
if (!params.isNew && new_complete)
{
mldtrackarray.push(label + ": " + buildTrackText("varchar", "", L("lcl_mld_is_blokafm")), {nodiff: true}); // Hoe track je dat netter?
}
}
}
oRsb.Close();
return mldtrackarray;
},
deleteOldFlexBlocks: // Geef onderwerp, omschrijving en notities terug als JSON object
function(mld_key, blokkenmerk_key_arr)
{ // Als een melding is doorgestuurd kunnen er mld_kenmerkblokmelding van de oude stdmelding zijn die verwijderd moeten worden.
sql = "DELETE FROM mld_kenmerkblokmelding"
+ " WHERE mld_kenmerkblokmelding_key IN"
+ " (SELECT kbm.mld_kenmerkblokmelding_key"
+ " FROM mld_kenmerkblokmelding kbm"
+ " WHERE kbm.mld_melding_key = " + mld_key
+ (blokkenmerk_key_arr.length
? " AND kbm.mld_kenmerk_key NOT IN (" + blokkenmerk_key_arr.join(",") + ")"
: "")
+ " )";
Oracle.Execute(sql);
},
getmldjson: // Geef onderwerp, omschrijving en notities terug als JSON object
function(mld_key)
{

View File

@@ -133,6 +133,37 @@ for (var i = 0; i < ingesloten.length; i++)
datefields: datefields
}
mld.acceptmelding(ingesloten[i].mld_key, params);
// Notificeren van default mld_kenmerkblokmelding behandelteam en behandelaar.
var sql = "SELECT kbm.mld_kenmerkblokmelding_key"
+ " , kbm.ins_discipline_key"
+ " , kbm.prs_perslid_key"
+ " , CASE"
+ " WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NOT NULL THEN 1"
+ " ELSE 0"
+ " END complete"
+ " FROM mld_kenmerkblokmelding kbm"
+ " WHERE kbm.mld_melding_key = " + ingesloten[i].mld_key;
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var disc_key = oRs("ins_discipline_key").Value;
var prs_key = oRs("prs_perslid_key").Value;
var complete = oRs("complete").Value == 1;
if (!complete && prs_key > 0)
{
// Niet tracken, want dat verwart met de behandeling van de hoofdmeldingen.
// De behandeling van het blok wordt toegewezen, niet de behandeling van de melding immmers.
mld.notifybehandelaar2(ingesloten[i].mld_key, prs_key); // Notificatie behandelaar blok.
}
else if (!complete && disc_key > 0)
{
// Wel MLDBHG notificatie, geen MLDBHG tracking want dat zou verwarren met het hoofdbehandelteam.
mld.notifybehandelteam(ingesloten[i].mld_key, disc_key, true); // Notificatie behandelteam blok.
}
oRs.MoveNext();
}
oRs.Close();
}
var result = {success: true, message: "", key: mld_key_arr.join(",")};

View File

@@ -839,9 +839,9 @@ function getFlexKenmerkBlockSql(params)
canChange: my_mldrechten.canWrite("WEB_MLDBOF") || my_mldrechten.canWrite("WEB_MLDFOF"),
show_alg: show_alg,
loc_key: loc_key,
readodisc: (mld_key > 0 && !canFlexChange) || mld_status == 1 || mld_status == 5 || mld_status == 6,
readoprs: mld_status == 1 || mld_status == 5 || mld_status == 6,
readocompl: mld_status == 1 || mld_status == 5 || mld_status == 6
readodisc: (mld_key > 0 && !canFlexChange) || (mld_status != 4 && mld_status != 7),
readoprs: mld_status != 4 && mld_status != 7,
readocompl: mld_status != 4 && mld_status != 7
};
var listkenmerk_params = { kenmerk_search: advanced,

View File

@@ -1368,10 +1368,10 @@ function kenmerktype_listbox (pfield, pprops, pparams)
+ (pfield.required > 1
? ( pprops.multiEdit
? " onChange='multi_fld_change(this);'"
: " onChange='checkRequiredGroup(\"" + pparams.required_group
+ "\", " + (pprops.requiredbyemptyval != null? "{emptyvalue: " + pprops.requiredbyemptyval + "}" : "null")
+ ");"
+ (pfield.usedInExpr ? pparams.onchangeExp + "; " : "")
: " onChange='checkRequiredGroup(\"" + pparams.required_group
+ "\", " + (pprops.requiredbyemptyval != null? "{emptyvalue: " + pprops.requiredbyemptyval + "}" : "null")
+ ");"
+ (pfield.usedInExpr ? pparams.onchangeExp + "; " : "")
+ "' "
)
: (pparams.hasAnyFlexExpr
@@ -3419,6 +3419,7 @@ function RenameFlexFolders(flexsql, pModule, pNiveau, pKey)
Oracle.Execute(sql_u);
oRs.MoveNext();
}
oRs.Close();
}
// Copy selected files from oldbasepath to newbasepath
@@ -3752,141 +3753,30 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
}
var trackarray = []; // eventuele tracking
var hasExpression = false;
var notify_disc = [];
var notify_prs = [];
var blokkenmerk_key_arr = [];
for (kenmerkkey in flexdata)
{
var flex = flexdata[kenmerkkey];
var kenmerk_key = flex.id;
if (flex.type == "b" && params.module == "MLD")
{ // Behandelbare bloktitel.
var kenmerk_key = flex.id;
var new_disc_key = flex.team;
var new_prs_key = flex.prs;
var new_complete = flex.complete == 1;
// Alleen meldingen bebben behandelbare bloktitel kenmerken.
// Deze afhandelen in een eigen mld procedure. Zo blijft deze functie saveFlexKenmerken verder algemeen.
var mldtracking = mld.saveFlexBlokKenmerken(parentKey, flex, params); // Behandelbare bloktitel kenmerken afhandelen tijdens het opslaan van de melding.
trackarray.concat(mldtracking);
blokkenmerk_key_arr.push(kenmerk_key);
var sql = "SELECT mld_kenmerkblokmelding_key"
+ " , kbm.ins_discipline_key"
+ " , kbm.prs_perslid_key"
+ " , CASE WHEN kbm.mld_kenmerkblokmelding_afmelddatum IS NOT NULL THEN 1 ELSE 0 END complete"
+ " , COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("t.mld_srtkenmerk_omschrijving", "t.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " FROM mld_kenmerkblokmelding kbm, mld_kenmerk k, mld_srtkenmerk t "
+ " WHERE k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
+ " AND k.mld_kenmerk_key = kbm.mld_kenmerk_key"
+ " AND kbm.mld_melding_key = " + parentKey
+ " AND kbm.mld_kenmerk_key = " + kenmerk_key;
oRsb = Oracle.Execute(sql);
if (!oRsb.eof)
{ // mld_kenmerkblokmelding record aanwezig.
var old_disc_key = oRsb("ins_discipline_key").Value || -1;
var old_prs_key = oRsb("prs_perslid_key").Value || -1;
var old_complete = oRsb("complete").Value == 1;
var label = oRsb("kenmerk_omschrijving").Value; // For tracking only.
if (new_disc_key != old_disc_key || new_prs_key != old_prs_key || new_complete != old_complete)
{
sql = "UPDATE mld_kenmerkblokmelding"
+ " SET ins_discipline_key = " + (new_disc_key > 0? new_disc_key : "NULL")
+ " , prs_perslid_key = " + (new_prs_key > 0? new_prs_key : "NULL")
+ " , mld_kenmerkblokmelding_afmelddatum = " + (new_complete? "SYSDATE" : "NULL")
+ " WHERE mld_melding_key = " + parentKey
+ " AND mld_kenmerk_key = " + kenmerk_key;
Oracle.Execute(sql);
// notificeer als iemand anders aan de bak moet,
if (!new_complete && new_prs_key != old_prs_key && new_prs_key > 0)
{
notify_prs[new_prs_key] = true;
}
else if (!new_complete && new_disc_key != old_disc_key && new_prs_key == -1 && new_disc_key > 0)
{
notify_disc[new_disc_key] = true;
}
// En dan wil ik deze aanpassing(en) tracken als een gewone wijziging (MLDUPD)
// Deze komt niet met de andere tracking mee, omdat de waarden niet bij de gewonen kenmerken zitten
// en daar de verschillen dus niet opgemerkt worden. Daarom hier.
if (!new_complete && new_disc_key != old_disc_key)
{
trackarray.push(label + ": " + buildTrackText("key", (old_disc_key > -1? old_disc_key : null), (new_disc_key > -1 ? new_disc_key : ""), {foreign: "MLD_DISCIPLINE"}));
}
if (!new_complete && new_prs_key != old_prs_key)
{
trackarray.push(label + ": " + buildTrackText("key", (old_prs_key > -1? old_prs_key : null), (new_prs_key > -1 ? new_prs_key : ""), {foreign: "PRS_PERSLID"}));
}
// een eventuele completering ook tracken
if (new_complete && !old_complete) // is dat ook bij de undo?
{
trackarray.push(label + ": " + buildTrackText("varchar", "", L("lcl_mld_is_blokafm"), {nodiff: true})); // Hoe track je dat netter?
}
}
}
else
{ // Er is geen mld_kenmerkblokmelding record aanwezig.
// Behandelteam (ins_discipline_key), behandelaar (prs_perslid_key) en gereed (mld_kenmerkblokmelding_afmelddatum) zijn niet verplicht,.
sql = "INSERT INTO mld_kenmerkblokmelding"
+ " (mld_melding_key"
+ " , mld_kenmerk_key"
+ " , ins_discipline_key"
+ " , prs_perslid_key"
+ " , mld_kenmerkblokmelding_afmelddatum"
+ " )"
+ " VALUES ( " + parentKey
+ " , " + kenmerk_key
+ " , " + (new_disc_key > 0? new_disc_key : "NULL")
+ " , " + (new_prs_key > 0? new_prs_key : "NULL")
+ " , " + (new_complete > 0? "SYSDATE" : "NULL")
+ " )";
Oracle.Execute(sql);
// notificeren
if (!new_complete && new_prs_key > 0)
{
notify_prs[new_prs_key] = true;
}
else if (!new_complete && new_disc_key > 0)
{
notify_disc[new_disc_key] = true;
}
// Er zijn geen oude waardes, want het mld_kenmerkblokmelding was niet aanwezig. Er is ook nog geen kenmerk omschrijving (label).
sql = "SELECT COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
+ " , " + lcl.xsql("sk.mld_srtkenmerk_omschrijving", "sk.mld_srtkenmerk_key") + ") kenmerk_omschrijving"
+ " FROM mld_kenmerk k"
+ " , mld_srtkenmerk sk"
+ " WHERE k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key"
+ " AND k.mld_kenmerk_key = " + kenmerk_key;
oRsk = Oracle.Execute(sql);
var label = oRsk("kenmerk_omschrijving").Value; // For tracking only.
oRsk.Close();
if (!params.isNew && !new_complete && new_disc_key > 0)
{
trackarray.push(label + ": " + buildTrackText("key", null, new_disc_key, {foreign: "MLD_DISCIPLINE"}));
}
if (!params.isNew && !new_complete && new_prs_key > 0)
{
trackarray.push(label + ": " + buildTrackText("key", null, new_prs_key, {foreign: "PRS_PERSLID"}));
}
if (!params.isNew && new_complete)
{
trackarray.push(label + ": " + buildTrackText("varchar", "", L("lcl_mld_is_blokafm")), {nodiff: true}); // Hoe track je dat netter?
}
}
oRsb.Close();
}
if (kenmerk_keys[flex.id])
if (kenmerk_keys[kenmerk_key])
if ( flex.type == "M" || // Die zijn al lang geregistreerd in UploadForm_save.asp
(!params.isNew && (flex.type == "F" || flex.type == "E")) || // Deze zijn al geregistreerd via AjaxSaveFlex.asp
kenmerk_keys[flex.id] && kenmerk_keys[flex.id].readonly) // Alleen wijzigbare flexkenmerken kunnen opgeslagen worden.
kenmerk_keys[kenmerk_key] && kenmerk_keys[kenmerk_key].readonly) // Alleen wijzigbare flexkenmerken kunnen opgeslagen worden.
continue;
var vold = (kenmerk_keys[flex.id] && !!kenmerk_keys[flex.id].waarde)? kenmerk_keys[flex.id].waarde : "";
var vold = (kenmerk_keys[kenmerk_key] && !!kenmerk_keys[kenmerk_key].waarde)? kenmerk_keys[kenmerk_key].waarde : "";
hasExpression = hasExpression || flex.expr == 1;
var vnew = flex.value || "";
@@ -3922,7 +3812,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
// kenmerk_readonly
// kenmerk_uniek
// fac_kenmerkdomein_key
var oRsk = Oracle.Execute(params.allKenmerkenSQL + flex.id);
var oRsk = Oracle.Execute(params.allKenmerkenSQL + kenmerk_key);
var label = oRsk("kenmerk_omschrijving").Value;
var kdomein_key = oRsk("fac_kenmerkdomein_key").Value;
var confidential= oRsk("kenmerk_systeem").Value&4;
@@ -3963,7 +3853,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
// Controleren of het hier om een verbruiksmeter gaat.
var sql2 = "SELECT ins_kenmerk_meetwaarde"
+ " FROM ins_kenmerk"
+ " WHERE ins_kenmerk_key = " + flex.id;
+ " WHERE ins_kenmerk_key = " + kenmerk_key;
oRs = Oracle.Execute(sql2);
verbruiksmeter = oRs("ins_kenmerk_meetwaarde").Value == 1;
oRs.Close();
@@ -3972,14 +3862,14 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
// A real kenmerk value exists
if (flex.value == "" || flex.value == "undefined")
{
if (kenmerk_keys[flex.id])
if (kenmerk_keys[kenmerk_key])
{
if (verbruiksmeter)
{ // Zet de sysdate zodat de historie behouden blijft
sql = "UPDATE ins_kenmerkdeel"
+ " SET ins_kenmerkdeel_verwijder = " + "SYSDATE"
+ " WHERE ins_deel_key = " + parentKey
+ " AND ins_kenmerk_key = " + flex.id
+ " AND ins_kenmerk_key = " + kenmerk_key
+ " AND ins_kenmerkdeel_verwijder IS NULL";
Oracle.Execute(sql);
}
@@ -3989,7 +3879,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
// heeft gedaan (BONS#21991) dan blijven wij wel van die records af.
sql = "DELETE FROM " + params.kenmerkTable
+ " WHERE " + params.kenmerkParentKey + " = " + parentKey
+ " AND " + params.kenmerkKey + " = " + flex.id
+ " AND " + params.kenmerkKey + " = " + kenmerk_key
+ " AND " + params.kenmerkTable + "_VERWIJDER IS NULL";
Oracle.Execute(sql);
}
@@ -3997,7 +3887,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
continue;
}
if (flex.id in kenmerk_keys) // Kenmerk komt in de kenmerkTable voor. Desnoods met waarde null (wat eigenlijk niet zou mogen).
if (kenmerk_key in kenmerk_keys) // Kenmerk komt in de kenmerkTable voor. Desnoods met waarde null (wat eigenlijk niet zou mogen).
{ // update
// Alleen een update als de waarde veranderd is
if (vold != vnew)
@@ -4008,14 +3898,14 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
sql = "UPDATE ins_kenmerkdeel"
+ " SET ins_kenmerkdeel_verwijder = " + "SYSDATE"
+ " WHERE ins_deel_key = " + parentKey
+ " AND ins_kenmerk_key = " + flex.id
+ " AND ins_kenmerk_key = " + kenmerk_key
+ " AND ins_kenmerkdeel_verwijder IS NULL";
Oracle.Execute(sql);
sql = "INSERT INTO ins_kenmerkdeel "
+ " (ins_kenmerkdeel_waarde, ins_deel_key, ins_kenmerk_key)"
+ " VALUES "
+ " (" + safe.quoted_sql(flex.value) + ", " + parentKey + ", " + flex.id + ")";
+ " (" + safe.quoted_sql(flex.value) + ", " + parentKey + ", " + kenmerk_key + ")";
Oracle.Execute(sql);
}
else
@@ -4024,7 +3914,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
// heeft gedaan (BONS#21991) dan blijven wij wel van die records af.
sql = "UPDATE " + params.kenmerkTable + " SET " + params.kenmerkWaarde + " = " + safe.quoted_sql(flex.value)
+ " WHERE " + params.kenmerkParentKey + " = " + parentKey
+ " AND " + params.kenmerkKey + " = " + flex.id
+ " AND " + params.kenmerkKey + " = " + kenmerk_key
+ " AND " + params.kenmerkTable + "_verwijder IS NULL";
Oracle.Execute(sql);
}
@@ -4042,7 +3932,7 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
+ ")"
+ " VALUES "
+ "(" + parentKey
+ "," + flex.id
+ "," + kenmerk_key
+ "," + safe.quoted_sql(flex.value)
+ (params.moduleName? "," + safe.quoted_sql(params.moduleVal): "")
+ ")";
@@ -4051,32 +3941,9 @@ function _saveFlexKenmerken(parentKey, params, flexdata) // TODO: support multiM
}
}
if (blokkenmerk_key_arr.length)
{ // Er zijn behandelbare blokken aanwezig.
// Als een melding is doorgestuurd kunnen er mld_kenmerkblokmelding van de oude stdmelding zijn die verwijderd moeten worden.
sql = "DELETE FROM mld_kenmerkblokmelding"
+ " WHERE mld_kenmerkblokmelding_key IN"
+ " (SELECT kbm.mld_kenmerkblokmelding_key"
+ " FROM mld_kenmerkblokmelding kbm"
+ " WHERE kbm.mld_melding_key = " + parentKey
+ " AND kbm.mld_kenmerk_key NOT IN (" + blokkenmerk_key_arr.join(",") + "))";
Oracle.Execute(sql);
}
if (params.module == "MLD")
{ // Behandelbare bloktitel.
for (var disckey in notify_disc)
{
// wel MLDBHG notificatie, geen MLDBHG tracking want dat zou verwarren met het hoofdbehandelteam
mld.notifybehandelteam(parentKey, disckey);
}
for (var prskey in notify_prs)
{
// Niet tracken, want dat verwart met de behandeling van de hoofdmeldingen
// de behandeling van het blok wordt toegewezen, niet de behandeling van de melding immmers
mld.notifybehandelaar2(parentKey, prskey, false); // Tracking en notificatie behandelaar.
}
if (params.module == "MLD" && blokkenmerk_key_arr.length)
{ // Als een melding is doorgestuurd kunnen er mld_kenmerkblokmelding van de oude stdmelding zijn die verwijderd moeten worden.
mld.deleteOldFlexBlocks(parentKey, blokkenmerk_key_arr);
}
if (hasExpression)