RWSN#86923: Probleem e-mailnotificaties bij fiatteren €3-opdrachten na update 2024.2.
svn path=/Website/branches/v2024.2/; revision=67553
This commit is contained in:
@@ -495,17 +495,41 @@ function getSqlFiatMld(fiatstatus, prsKeys, params)
|
||||
// Daarom de database functie fac.gettrackinguserkey (peventcode IN VARCHAR2, pkey IN NUMBER) uitgeschreven.
|
||||
// De fac_tracking en fac_srtnotificatie mee joinen duurder langer dan onderstaande oplossing.
|
||||
/* A1 */ //+ " AND p2.prs_perslid_key = CASE WHEN fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key) IS NULL"
|
||||
/* A1 */ + " AND p2.prs_perslid_key = prs.getFiatteur(op.prs_kostenplaats_key"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE"
|
||||
+ " WHEN op.mld_opdr_fiatbedrag IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key)"
|
||||
+ " END")
|
||||
+ " , op.mld_opdr_kosten"
|
||||
+ " , op.mld_opdr_discipline_key"
|
||||
+ " , COALESCE(op.mld_opdr_fiatbedrag, 0))"
|
||||
|
||||
/* A1 */ + (S("prs_approvemethod") == 2
|
||||
? // Doe de oude variant van de code.
|
||||
" AND p2.prs_perslid_key = prs.nextfiatteur(op.mld_opdr_key"
|
||||
+ " , 'MLD'"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE" // vier-ogenprincipe.
|
||||
+ " WHEN mld_opdr_fiatbedrag IS NOT NULL OR" // Geen nieuwe melding.
|
||||
+ " (op.mld_statusopdr_key_refiat > 0 AND" // Herfiattering (refiat).
|
||||
+ " k.prs_kostenplaats_fiat = 1 AND" // Opdrachten fiatteren 1=Ja.
|
||||
+ " fac.getsetting('mld_opdr_refiat_preference') = 1)" // Goedkeuren met vinkje aan.
|
||||
+ " THEN -1" // Geen nieuwe melding of herfiattering als nieuw fiatteren.
|
||||
+ " WHEN op.mld_opdr_kosten <= fac.getsetting('can_selfapprove')"
|
||||
+ " THEN -1" // Melder van de melding en opdrachtaanmakre niet excluden als zijzelf mogen fiatteren.
|
||||
+ " WHEN m.mld_kosten_klant = 1 AND"
|
||||
+ " m.prs_kostenplaats_key = op.prs_kostenplaats_key AND"
|
||||
+ " fac.getsetting ('mld_opdr_ignore_caller_profile') = 0"
|
||||
+ " THEN m.prs_perslid_key" // De melder mag niet fiatteren.
|
||||
+ " ELSE (SELECT fac.gettrackinguserkey('ORDNEW', op.mld_opdr_key) opdrachtaanmaker"
|
||||
+ " FROM DUAL)" // De opdrachtaanmaker mag niet fiatteren.
|
||||
+ " END")
|
||||
+ " )"
|
||||
: // Doe de nieuwe variant van de code.
|
||||
" AND p2.prs_perslid_key = prs.getFiatteur(op.prs_kostenplaats_key"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE"
|
||||
+ " WHEN op.mld_opdr_fiatbedrag IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE fac.gettrackinguserkey('ORDFOK', op.mld_opdr_key)"
|
||||
+ " END")
|
||||
+ " , op.mld_opdr_kosten"
|
||||
+ " , op.mld_opdr_discipline_key"
|
||||
+ " , COALESCE(op.mld_opdr_fiatbedrag, 0))")
|
||||
+ " AND p2.prs_perslid_key IN (" + prsKeys + ")"
|
||||
: " AND fno.fac_srtnotificatie_code = " + (fiatstatus == "close"? "'ORDFOK'" : "'ORDFNO'") // Er is gefiatteerd.
|
||||
+ " AND ft.prs_perslid_key IN (" + prsKeys + ")") // Gefiatterd door jezelf of waarvoor je vervanger bent
|
||||
|
||||
@@ -5585,8 +5585,26 @@ mld = {
|
||||
}
|
||||
else
|
||||
{ // tracking aanwezig
|
||||
var fiat_key = prs.getFiatteur(mld_opdr.kp_key, (S("mld_opdr_reapproval_rate") >= 0? -1 : mld_opdr.mld_opdr_fiat_user), mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
isVerantwoordelijke = (user.isCollega(fiat_key));
|
||||
if (S("prs_approvemethod") == 2)
|
||||
{ // Doe de oude variant van de code.
|
||||
if (mld_opdr.fiatteur_kp_key) // Als KP (A) aanwezig dan KPN (B) testen als isVerantwoordelijke
|
||||
{
|
||||
if (S("mld_opdr_reapproval_rate") >= 0)
|
||||
{ // Met exludekey op "-1" geeft getFiatteur in mode 2 wel de goede waarde terug.
|
||||
var fiat_key = prs.getFiatteur(mld_opdr.kp_key, -1, mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
isVerantwoordelijke = (user.isCollega(fiat_key));
|
||||
}
|
||||
else
|
||||
{
|
||||
isVerantwoordelijke = (user.isCollega(mld_opdr.nextfiatteur_kpg_key) && mld_opdr.mld_opdr_fiat_user != mld_opdr.nextfiatteur_kpg_key); // 1e is geweest.
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Doe de nieuwe variant van de code.
|
||||
var fiat_key = prs.getFiatteur(mld_opdr.kp_key, mld_opdr.mld_opdr_fiat_user, mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
isVerantwoordelijke = (user.isCollega(fiat_key));
|
||||
}
|
||||
|
||||
// Kostenplaats(groep)verantwoordelijken mogen na het approven de bestelopdracht inzien.
|
||||
// Als een collega of de user al gefiatteerd heeft mag hij/zij ook de bestelopdracht inzien.
|
||||
@@ -7776,17 +7794,37 @@ mld = {
|
||||
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
|
||||
+ " , (SELECT prs_perslid_naam_full"
|
||||
+ " FROM prs_v_perslid_fullnames_all"
|
||||
+ " WHERE prs_perslid_key = prs.getFiatteur(o.prs_kostenplaats_key"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE"
|
||||
+ " WHEN o.mld_opdr_fiatbedrag IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE fac.gettrackinguserkey('ORDFOK', o.mld_opdr_key)"
|
||||
+ " END")
|
||||
+ " , o.mld_opdr_kosten"
|
||||
+ " , o.mld_opdr_discipline_key"
|
||||
+ " , COALESCE(o.mld_opdr_fiatbedrag, 0))) fiatteur"
|
||||
+ (S("prs_approvemethod") == 2
|
||||
? // Doe de oude variant van de code.
|
||||
" WHERE prs_perslid_key = prs.nextfiatteur(o.mld_opdr_key"
|
||||
+ " , 'MLD'"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE" // vier-ogenprincipe.
|
||||
+ " WHEN mld_opdr_fiatbedrag IS NOT NULL"
|
||||
+ " THEN -1" // Geen nieuwe melding.
|
||||
+ " WHEN o.mld_opdr_kosten <= fac.getsetting('can_selfapprove')"
|
||||
+ " THEN -1" // Melder van de melding en opdrachtaanmakre niet excluden als zijzelf mogen fiatteren.
|
||||
+ " WHEN m.mld_kosten_klant = 1 AND"
|
||||
+ " m.prs_kostenplaats_key = o.prs_kostenplaats_key AND"
|
||||
+ " fac.getsetting ('mld_opdr_ignore_caller_profile') = 0"
|
||||
+ " THEN m.prs_perslid_key" // De melder mag niet fiatteren.
|
||||
+ " ELSE (SELECT fac.gettrackinguserkey('ORDNEW', o.mld_opdr_key) opdrachtaanmaker"
|
||||
+ " FROM DUAL)" // De opdrachtaanmaker mag niet fiatteren.
|
||||
+ " END")
|
||||
+ " )) fiatteur"
|
||||
: // Doe de nieuwe variant van de code.
|
||||
" WHERE prs_perslid_key = prs.getFiatteur(o.prs_kostenplaats_key"
|
||||
+ (S("mld_opdr_reapproval_rate") >= 0
|
||||
? " , -1"
|
||||
: " , CASE"
|
||||
+ " WHEN o.mld_opdr_fiatbedrag IS NULL"
|
||||
+ " THEN NULL"
|
||||
+ " ELSE fac.gettrackinguserkey('ORDFOK', o.mld_opdr_key)"
|
||||
+ " END")
|
||||
+ " , o.mld_opdr_kosten"
|
||||
+ " , o.mld_opdr_discipline_key"
|
||||
+ " , COALESCE(o.mld_opdr_fiatbedrag, 0))) fiatteur")
|
||||
+ " , (SELECT COUNT (o.mld_opdr_key)"
|
||||
+ " FROM mld_opdr o "
|
||||
+ " WHERE o.mld_melding_key = mld_melding_key"
|
||||
|
||||
@@ -545,7 +545,14 @@ if (mld_opdr.kp_key == -1)
|
||||
if (mld_opdr.opdr_status == 3) // (nog) ter fiattering
|
||||
{
|
||||
if (fiat_key)
|
||||
{
|
||||
if (S("prs_approvemethod") == 2)
|
||||
// Doe de oude variant van de code.
|
||||
fiat_key = mld_opdr.nextfiatteur_kpg_key; // 1e is geweest
|
||||
else
|
||||
// Doe de nieuwe variant van de code.
|
||||
fiat_key = prs.getFiatteur(mld_opdr.kp_key, (S("mld_opdr_reapproval_rate") >= 0? -1 : mld_opdr.mld_opdr_fiat_user), mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
}
|
||||
else
|
||||
{ // Als nieuw fiatteren. Ik kan nu de functie getFirstApprover gebruiken.
|
||||
var mld_info = mld.mld_melding_info(mld_opdr.mld_key);
|
||||
|
||||
@@ -506,7 +506,12 @@ for (i in faq_info.fixed_faq)
|
||||
if (mld_opdr.opdr_status == 3) // (nog) ter fiattering
|
||||
{
|
||||
if (fiat_key)
|
||||
fiat_key = prs.getFiatteur(mld_opdr.kp_key, (S("mld_opdr_reapproval_rate") >= 0? -1 : mld_opdr.mld_opdr_fiat_user), mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
if (S("prs_approvemethod") == 2)
|
||||
// Doe de oude variant van de code.
|
||||
fiat_key = mld_opdr.nextfiatteur_kpg_key; // 1e is geweest.
|
||||
else
|
||||
// Doe de nieuwe variant van de code.
|
||||
fiat_key = prs.getFiatteur(mld_opdr.kp_key, (S("mld_opdr_reapproval_rate") >= 0? -1 : mld_opdr.mld_opdr_fiat_user), mld_opdr.t_cost, mld_opdr.opdr_disc_key, mld_opdr.fiatbedrag);
|
||||
else
|
||||
{ // Als nieuw fiatteren. Ik kan nu de functie getFirstApprover gebruiken.
|
||||
var mld_info = mld.mld_melding_info(mld_opdr.mld_key);
|
||||
|
||||
Reference in New Issue
Block a user