YKPN#52205 BEZ: BEZUPD notificatie wordt ook gestuurd als bokenmerken gewijzigd worden

svn path=/Website/branches/v2019.1/; revision=41683
This commit is contained in:
Alex Tiehuis
2019-03-20 08:20:27 +00:00
parent 65d14e087f
commit a2a0cc7700
3 changed files with 56 additions and 6 deletions

View File

@@ -264,9 +264,10 @@ bez =
trackafspraakupdate:
// Let op: dit moet wellicht niet altijd (aangeroepen na save)
function (bez_key, ptxt)
function (bez_key, ptxt, onlyFeKm)
{
shared.trackaction("BEZUPD", bez_key, ptxt);
__DoLog("onlyFeKm: "+onlyFeKm);
shared.trackaction((onlyFeKm ? "#" : "") + "BEZUPD", bez_key, ptxt);
},
func_enabled_parkeerplaats: // Wat mag ik op parkeerplaatsen?

View File

@@ -29,6 +29,7 @@ var afspr_key = getQParamInt("afspr_key");
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
var fronto = urole=="fo"; // DEPRECATED
var backo = urole=="bo"; // DEPRECATED
var onlyFeKm = false; // value to prevent unnecessary notifications to FE when only FE characteristics are changed
if (afspr_key < 0)
{
@@ -214,10 +215,13 @@ if (afspr_key != -1)
// bezUpd heeft na afloop handige oldjsvals
var bezUpd = buildTrackingUpdate("bez_afspraak", " bez_afspraak_key = " + afspr_key, fields);
onlyFeKm = !(bezUpd.trackarray && bezUpd.trackarray.length); // initial true when the appointment is unchanged
// SUBMIT THE CHANGED DATA
oRs = Oracle.Execute(bezUpd.sql);
var result = saveBezoekers(afspr_key, -1, { urole: urole, loctimechanged: changed, savepark: true });
var result = saveBezoekers(afspr_key, -1, { urole: urole, loctimechanged: changed, savepark: true, onlyFeKm: onlyFeKm });
onlyFeKm = result.onlyFeKm;
if (result.beztrack && result.beztrack.length > 0)
bezUpd.trackarray.push(result.beztrack.join("\n"));
@@ -306,7 +310,7 @@ else
if (afspr_key != -1)
{
if (bezUpd && bezUpd.trackarray && (bezUpd.trackarray.length)) {
bez.trackafspraakupdate(afspr_key, L("lcl_bez_is_bezupdtrack").format(afspr_key) + "\n" + bezUpd.trackarray.join("\n"));
bez.trackafspraakupdate(afspr_key, L("lcl_bez_is_bezupdtrack").format(afspr_key) + "\n" + bezUpd.trackarray.join("\n"), onlyFeKm);
}
}

View File

@@ -72,6 +72,7 @@ function saveBezoekers(afspraak_key, rsv_ruimte_key, params)
var beznewkeyArr = [];
var beztrack = [];
var bezBadgeArr = [];
params.onlyFeKm = params.onlyFeKm || false;
while ((bznum < next_vis)) {
@@ -84,6 +85,7 @@ function saveBezoekers(afspraak_key, rsv_ruimte_key, params)
}
var result = saveOneBezoeker(afspraak_key, rsv_ruimte_key, bznum, params);
params.onlyFeKm = result.onlyFeKm;
afspraak_key = result.afspr_key;
if (result.needPark) nr_park_needed++;
if (result.hasPark) nr_park_reserved++;
@@ -121,7 +123,8 @@ function saveBezoekers(afspraak_key, rsv_ruimte_key, params)
bezBadgeArr: bezBadgeArr,
warning: alert_text,
beztrack: beztrack,
afspr_deleted: afspr_deleted};
afspr_deleted: afspr_deleted,
onlyFeKm: params.onlyFeKm };
}
// Maak er eentje aan voor onder de reservering
@@ -512,6 +515,47 @@ function saveOneBezoeker(afspraak_key, rsv_ruimte_key, bznum, params)
+ " WHERE k.bez_kenmerk_verwijder IS NULL"
+ " AND k.bez_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */
// detect whether other than FE characteristics change
var onlyFeKm = params.onlyFeKm;
if (onlyFeKm)
onlyFeKm = !(bezUpd.trackarray && bezUpd.trackarray.length); // initial true when the visitor is unchanged
if (onlyFeKm)
{
var kmObj = {};
var curKmSQL = "SELECT kl.bez_kenmerk_key "
+ " , kl.bez_kenmerkwaarde_waarde"
+ " , k.bez_kenmerk_volgnr"
+ " FROM bez_kenmerkwaarde kl, bez_kenmerk k "
+ " WHERE k.bez_kenmerk_key = kl.bez_kenmerk_key "
+ " AND bez_kenmerkwaarde_VERWIJDER IS NULL "
+ " AND bez_bezoekers_key = " + bez_key;
var oRsKm = Oracle.Execute(curKmSQL);
while (!oRsKm.eof)
{
kmObj[oRsKm("bez_kenmerk_key").Value] = { waarde: oRsKm("bez_kenmerkwaarde_waarde").Value, volgnr: oRsKm("bez_kenmerk_volgnr").Value };
oRsKm.MoveNext();
}
oRsKm.Close();
var flexdata = flexkenmerken2jsondata(
{ allKenmerkenSQL: allKenmerkenSQL,
nameprefix: "flex" + bznum + "_",
flexPath: "BEZ/B"
});
// check whether only FE characteristics (< 0 or > 900) are changed
for (kenmerkkey in flexdata)
{
var flex = flexdata[kenmerkkey];
var vold = kmObj[flex.id]? kmObj[flex.id].waarde : "";
var vnew = flex.value;
if (vold != vnew && (kmObj[flex.id] && kmObj[flex.id].volgnr > -1 && kmObj[flex.id].volgnr <= 900))
{
onlyFeKm = false;
break;
}
}
}
var flextrack = saveFlexKenmerken(bez_key,
{ kenmerkTable: "bez_kenmerkwaarde",
kenmerkParentKey : "bez_bezoekers_key",
@@ -539,6 +583,7 @@ function saveOneBezoeker(afspraak_key, rsv_ruimte_key, bznum, params)
isNew: isNew,
needPark: prk == "on",
hasPark: hasPark,
beztrack: beztrack };
beztrack: beztrack,
onlyFeKm: onlyFeKm };
}
%>