FSN#41754 Code refactoring func_enabled_opdracht

svn path=/Website/trunk/; revision=35066
This commit is contained in:
Jos Groot Lipman
2017-08-23 14:36:03 +00:00
parent af477a84dc
commit 685119ccc6
17 changed files with 142 additions and 215 deletions

View File

@@ -1783,6 +1783,7 @@ mld = {setmeldingstatus:
+ " , s.mld_stdmelding_kto" // misschien kto over mijzelf?
+ " , m.mld_melding_indult"
+ " , m.mld_melding_afgerond"
+ " , m.mld_alg_onroerendgoed_keys"
+ " , (SELECT COUNT(mo.ins_deel_key)"
+ " FROM mld_melding_object mo"
+ " WHERE mo.mld_melding_key = " + mld_key + ") aantal_objects"
@@ -1854,6 +1855,7 @@ mld = {setmeldingstatus:
remark: oRs("mld_melding_opmerking").Value,
alg_ruimte: oRs("mld_alg_onroerendgoed_keys").Value || -1,
mld_status: oRs("mld_melding_status").Value,
mld_alg_onroerendgoed_keys: oRs("mld_alg_onroerendgoed_keys").Value,
mld_status_str: mld.getmldstatustext(mld.getextendedmldstatus(oRs("mld_melding_status").Value, mld_key)),
respijt: oRs("respijt_tijdsduur").Value || 0,
respijt_eenheid: oRs("respijt_eenheid").Value || (oRs("uitvoertijd_eenheid").Value || 'D'),
@@ -1904,7 +1906,7 @@ mld = {setmeldingstatus:
satisfaction_op: oRs("mld_melding_satisfaction_op").Value,
kto_opt: oRs("mld_stdmelding_kto").Value || 0,
indult: oRs("mld_melding_indult").Value == 1, // 0=normaal, 1=indult=vrijgewaard=telt niet mee
afgerond: oRs("mld_melding_afgerond").Value == 1, // 0=niet afgerond, 1=afgerond
mld_afgerond: oRs("mld_melding_afgerond").Value == 1, // 0=niet afgerond, 1=afgerond
aantal_objects: oRs("aantal_objects").Value,
haschild: oRs("aantal_childs").Value > 0,
hasreference: oRs("aantal_references").Value > 0,
@@ -2033,6 +2035,9 @@ mld = {setmeldingstatus:
+ " , COALESCE(o.mld_opdr_uurloon, 0) mld_opdr_uurloon"
+ " , COALESCE(o.mld_opdr_uurloon_refiat, 0) mld_opdr_uurloon_refiat"
+ " , o.mld_typeopdr_key"
+ " , o.mld_opdr_halted"
+ " , o.mld_opdr_teverzenden"
+ " , o.mld_opdr_verzonden"
+ " , " + lcl.xsqla('mto.mld_typeopdr_omschrijving', 'mto.mld_typeopdr_key')
+ " , mto.mld_typeopdr_matchtype"
+ " , mto.mld_typeopdr_slamode"
@@ -2046,6 +2051,10 @@ mld = {setmeldingstatus:
+ " , mto.mld_typeopdr_afhandeling"
+ " , mto.mld_typeopdr_kosten_verplicht"
+ " , mto.mld_typeopdr_sequential"
+ " , mto.mld_typeopdr_decentraal"
+ " , mto.mld_typeopdr_afmelden_extern"
+ " , mto.mld_typeopdr_zichtbaarfe"
+ " , mto.mld_typeopdr_gvs"
+ " , mto.mld_typeopdr_fvs"
+ " , o.prs_perslid_key mld_opdr_contact_key" // key van de interne contactpersoon
+ " , (SELECT p.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all p WHERE p.prs_perslid_key = o.prs_perslid_key) mld_opdr_contact_naam"
@@ -2053,13 +2062,14 @@ mld = {setmeldingstatus:
+ " , o.mld_statusopdr_key"
+ " , o.mld_statusopdr_key_refiat"
+ " , m.mld_stdmelding_key"
+ " , m.prs_perslid_key"
+ " , m.prs_perslid_key melding_user_key"
+ " , CASE WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END"
+ " || " + lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
+ " , m.mld_kosten_klant"
+ " , mld_melding_afgerond"
+ " , o.prs_kostenplaats_key"
+ " , (SELECT k.prs_kostenplaats_fiat"
+ " FROM prs_kostenplaats k"
@@ -2104,6 +2114,8 @@ mld = {setmeldingstatus:
+ " , o.mld_opdr_plandatum"
+ " , o.mld_opdr_id"
+ " , o.mld_opdr_handfiat"
+ " , sm.mld_stdmelding_opdrtypevast"
+ " , sm.mld_ins_discipline_key"
+ " FROM mld_opdr o"
+ " , mld_melding m"
+ " , mld_stdmelding sm"
@@ -2180,7 +2192,11 @@ mld = {setmeldingstatus:
typeopdr_afhandeling: oRs("mld_typeopdr_afhandeling").Value, // Afhandeling verplicht bij afmelden opdracht van dit opdrachttype (0=Nee/1=Ja)
typeopdr_kosten_verplicht: oRs("mld_typeopdr_kosten_verplicht").Value || 0, // Opdracht kosten verplicht (bitwise) bij (0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden).
typeopdr_sequential: oRs("mld_typeopdr_sequential").Value, // 0,1,2 of 3
typeopdr_decentraal: oRs("mld_typeopdr_decentraal").Value,
typeopdr_afmelden_extern: oRs("mld_typeopdr_afmelden_extern").Value,
typeopdr_zichtbaarfe: oRs("mld_typeopdr_zichtbaarfe").Value,
typeopdr_fvs: oRs("mld_typeopdr_fvs").Value,
typeopdr_gvs: oRs("mld_typeopdr_gvs").Value,
contactpers_key: oRs("mld_opdr_contact_key").Value || -1,
contactpers_naam: oRs("mld_opdr_contact_naam").Value,
contactpersuitv_key: oRs("prs_contactpersoon_key").Value,
@@ -2188,8 +2204,11 @@ mld = {setmeldingstatus:
extended_opdr_status: mld.getextendedopdrstatus(oRs("mld_statusopdr_key").Value, opdr_key),
opdr_status_refiat: oRs("mld_statusopdr_key_refiat").Value || 0,
mld_opdr_fiat_user: oRs("mld_opdr_fiat_user").Value, // Laatste fiatteur die gefiatteerd heeft
halted: oRs("mld_opdr_halted").Value,
verzonden: oRs("mld_opdr_verzonden").Value,
teverzenden: oRs("mld_opdr_teverzenden").Value,
stdm_key: oRs("mld_stdmelding_key").Value,
perslidkey: oRs("prs_perslid_key").Value,
melding_user_key: oRs("melding_user_key").Value,
vakgroep: oRs("ins_discipline_omschrijving").Value,
kosten_klant: oRs("mld_kosten_klant").Value,
kp_key: oRs("prs_kostenplaats_key").Value,
@@ -2230,7 +2249,9 @@ mld = {setmeldingstatus:
disc_params_pgb: oRs("mld_disc_params_pgb").Value || 0,
mld_opdr_plandatum: oRs("mld_opdr_plandatum").Value != null ? new Date(oRs("mld_opdr_plandatum").Value) : null,
mld_opdr_id: oRs("mld_opdr_id").Value,
opdr_handfiat: oRs("mld_opdr_handfiat").Value == 1 // Vrijwillig fiatteren.
opdr_handfiat: oRs("mld_opdr_handfiat").Value == 1, // Vrijwillig fiatteren.
opdrtypevast: oRs("mld_stdmelding_opdrtypevast").Value == 1,
mld_ins_discipline_key: oRs("mld_ins_discipline_key").Value
};
oRs.close();
// Uitvoertijd.
@@ -3349,53 +3370,11 @@ mld = {setmeldingstatus:
},
func_enabled_opdracht: // Wat mag ik zoal op deze specifieke opdracht?
function _func_enabled_opdracht(pmld_opdr_key) {
var msql = "SELECT sm.mld_ins_discipline_key"
+ " , m.mld_alg_onroerendgoed_keys"
+ " , o.mld_statusopdr_key"
+ " , o.prs_perslid_key"
+ " , m.prs_perslid_key melding_user_key"
+ " , mto.mld_typeopdr_kosten"
+ " , mto.mld_typeopdr_decentraal"
+ " , mto.mld_typeopdr_sequential"
+ " , mto.mld_typeopdr_isofferte"
+ " , mld_typeopdr_afmelden_extern"
+ " , mto.mld_typeopdr_matchtype"
+ " , mto.mld_typeopdr_kosten_verplicht"
// Als de opdracht geen kostenplaats heeft, ga dan uit van de kostenplaats van de melding
+ " , prs.getfiatteur (o.prs_kostenplaats_key, -1, mld_opdr_kosten, sm.mld_ins_discipline_key) fiatteur_kp_key"
+ " , (SELECT kg.prs_perslid_key"
+ " FROM prs_kostenplaats k"
+ " , prs_kostenplaatsgrp kg"
+ " WHERE k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)"
+ " AND k.prs_kostenplaats_key = o.prs_kostenplaats_key) fiatteur_kpg_key"
+ " , mu.type"
+ " , mu.intern"
+ " , o.mld_uitvoerende_keys"
+ " , fac.gettrackinguserkey('ORDFOK', " + pmld_opdr_key + ") fiat_trackinguser_key"
+ " , fac.gettrackingdate('ORDFIA', o.mld_opdr_key) trackdateFIA"
+ " , fac.gettrackingdate('ORDFOK', o.mld_opdr_key) trackdateFOK"
+ " , o.mld_opdr_halted"
+ " , o.mld_opdr_kosten"
+ " , mto.mld_typeopdr_zichtbaarfe"
+ " , o.mld_opdr_teverzenden"
+ " , o.mld_opdr_verzonden"
+ " , o.mld_statusopdr_key_refiat"
+ " , o.mld_opdr_approved"
+ " , o.mld_opdr_approved_refiat"
+ " , mdp.mld_disc_params_offerteauto"
+ " , sm.mld_stdmelding_opdrtypevast"
+ " , m.mld_melding_key"
+ " , o.mld_opdr_bedrijfopdr_volgnr"
+ " , o.fac_activiteit_key"
+ " , o.mld_opdr_approved"
+ " , mto.mld_typeopdr_gvs"
+ " , mdp.mld_disc_params_opdr_kosten"
+ " , mdp.mld_disc_params_bestellimiet"
+ " , mdp.mld_disc_params_bestellimiet2"
+ " , mdp.mld_disc_params_bestellimiet3"
+ " , mdp.mld_disc_params_bestellimiet4"
+ " , mdp.mld_disc_params_bestellimiet5"
function _func_enabled_opdracht(pmld_opdr_key, mld_opdr) { // mld_opdr mag je optioneel alvast meegeven
if (!mld_opdr)
mld_opdr = mld.mld_opdr_info(pmld_opdr_key);
// (nog) niet alle velden zitten in mld_opdr
var msql = "SELECT fac.gettrackinguserkey('ORDFOK', " + pmld_opdr_key + ") fiat_trackinguser_key"
//Opdracht mag niet meer gecanceld worden indien de opdracht een actuele factuur heeft met de status Ingevoerd(2), Akkoord(6) of Verwerkt(7).
+ " , (SELECT MIN(f.fin_factuur_statuses_key)"
+ " FROM fin_factuur f"
@@ -3406,69 +3385,17 @@ mld = {setmeldingstatus:
+ " FROM fin_factuur f"
+ " WHERE f.mld_opdr_key = o.mld_opdr_key"
+ " AND f.fin_factuur_verwijder IS NULL) aantal_facturen"
+ " , m.mld_melding_afgerond"
+ " FROM mld_opdr o"
+ " , mld_typeopdr mto"
+ " , mld_melding m"
+ " , mld_stdmelding sm"
+ " , ins_tab_discipline d"
+ " , mld_disc_params mdp"
+ " , prs_kostenplaats k"
+ " , prs_kostenplaatsgrp kg"
+ " , mld_v_uitvoerende mu"
+ " WHERE o.mld_melding_key = m.mld_melding_key(+)" // bij bgt-mode: opdracht zonder melding
+ " AND m.mld_stdmelding_key = sm.mld_stdmelding_key(+)"
+ " AND sm.mld_ins_discipline_key = d.ins_discipline_key(+)"
+ " AND d.ins_discipline_key = mdp.mld_ins_discipline_key(+)"
+ " AND o.prs_kostenplaats_key = k.prs_kostenplaats_key(+)" // kostenplaats van de opdracht kan leeg zijn
+ " AND o.mld_typeopdr_key = mto.mld_typeopdr_key" // required
+ " AND k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)"
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key" // required
+ " AND o.mld_opdr_key = " + pmld_opdr_key
+ " WHERE o.mld_opdr_key = " + pmld_opdr_key
var moRs = Oracle.Execute(msql);
var opdr_status = moRs("mld_statusopdr_key").Value;
var fiatteur_kp_key = moRs("fiatteur_kp_key").Value;
var fiatteur_kpg_key = moRs("fiatteur_kpg_key").Value;
var uitv_type = moRs("type").Value;
var uitv_intern = moRs("intern").Value == 1;
var uitv_key = moRs("mld_uitvoerende_keys").Value;
var fiat_trackinguser_key = moRs("fiat_trackinguser_key").Value;
var tracking_present = moRs("fiat_trackinguser_key").Value? true : false;
var t_cost = moRs("mld_opdr_kosten").Value;
var mld_opdr_teverzenden = moRs("mld_opdr_teverzenden").Value == 1; // Dan stuurt PutOrders deze
var mld_opdr_verzonden = moRs("mld_opdr_verzonden").Value;
var refiat = (moRs("mld_statusopdr_key_refiat").Value || 0) > 0;
var approved = moRs("mld_opdr_approved").Value;
var approved_refiat = moRs("mld_opdr_approved_refiat").Value;
var refiat = mld_opdr.opdr_status_refiat > 0;
// Is er tijdens de refiat al door de budgethouder (kostenplaatverantwoordelijke) gefiatteerd.
var refiat_is_approvedby_kp = refiat && // Refiat van de opdracht
opdr_status == 3 && // Opdracht staat "Ter fiattering"
moRs("trackdateFIA").Value != null && moRs("trackdateFOK").Value != null && // Er is al gefiatteerd
moRs("trackdateFIA").Value < moRs("trackdateFOK").Value; // De eerste fiatteur heeft opnieuw gefiatteerd.
var halted = moRs("mld_opdr_halted").Value == 1;
var typehas_cost = moRs("mld_typeopdr_kosten").Value == 1;
var decentraal = moRs("mld_typeopdr_decentraal").Value;
var sequential = moRs("mld_typeopdr_sequential").Value; // 0,1,2 of 3
var isofferte = moRs("mld_typeopdr_isofferte").Value == 1;
var afmelden_extern = moRs("mld_typeopdr_afmelden_extern").Value;
var typeopdr_matchtype = moRs("mld_typeopdr_matchtype").Value;
var typeopdr_kosten_verplicht = moRs("mld_typeopdr_kosten_verplicht").Value || 0; // Opdracht kosten verplicht (bitwise) bij (0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden).
var opdrkosten_verplicht = moRs("mld_disc_params_opdr_kosten").Value || 0;
var offerteauto = moRs("mld_disc_params_offerteauto").Value == 1;
var opdrtypevast = moRs("mld_stdmelding_opdrtypevast").Value == 1;
var mld_key = moRs("mld_melding_key").Value;
var mld_opdr_bedrijfopdr_volgnr = moRs("mld_opdr_bedrijfopdr_volgnr").Value;
var is_planned_action = moRs("fac_activiteit_key").Value != null;
var opdr_approved = moRs("mld_opdr_approved").Value || -1;
var gvs = moRs("mld_typeopdr_gvs").Value || 0;
var bestellimiet = moRs("mld_disc_params_bestellimiet").Value || 0;
var bestellimiet2 = moRs("mld_disc_params_bestellimiet2").Value || 0;
var bestellimiet3 = moRs("mld_disc_params_bestellimiet3").Value || 0;
var bestellimiet4 = moRs("mld_disc_params_bestellimiet4").Value || 0;
var bestellimiet5 = moRs("mld_disc_params_bestellimiet5").Value || 0;
var typehas_cost = mld_opdr.typeopdr_kosten == 1;
var is_planned_action = mld_opdr.act_key > 0;
var noCancel = moRs("noCancel").Value > 0; // Er zijn actuele facturen met de status Ingevoerd(2), Akkoord(6) of Verwerkt(7).
var has_facturen = moRs("aantal_facturen").Value > 0; // De opdracht heeft facturen.
var mld_afgerond = moRs("mld_melding_afgerond").Value == 1;
// tracking_present KP KPN Verantwoordelijke
// Nee - - Niemand
// Nee A - A
@@ -3482,28 +3409,29 @@ mld = {setmeldingstatus:
// isVerantwoordelijke wordt alleen gebruikt als status "Ter fiattering"
var isVerantwoordelijke = false;
var isApprovedRead = false;
if (!tracking_present || (S("mld_opdr_refiat_preference") == 1 && refiat && !refiat_is_approvedby_kp))
if (!tracking_present || (S("mld_opdr_refiat_preference") == 1 && refiat && !mld_opdr.refiat_is_approvedby_kp))
{ // Geen tracking of als nieuw fiatteren bij refiat als setting is gezet.
if (fiatteur_kp_key) // Als KP (A) aanwezig (desnoods via n-laagsmethode via afdelingsboom) dan KP testen als isVerantwoordelijke
isVerantwoordelijke = (user.isCollega(fiatteur_kp_key));
if (mld_opdr.fiatteur_kp_key) // Als KP (A) aanwezig (desnoods via n-laagsmethode via afdelingsboom) dan KP testen als isVerantwoordelijke
isVerantwoordelijke = (user.isCollega(mld_opdr.fiatteur_kp_key));
else if (fiatteur_kpg_key) // Als alleen KPN (B) aanwezig dan KPN testen als isVerantwoordelijke
isVerantwoordelijke = (user.isCollega(fiatteur_kpg_key));
}
else
{ // tracking aanwezig
if (fiatteur_kp_key) // Als KP (A) aanwezig dan KPN (B) testen als isVerantwoordelijke
if (mld_opdr.fiatteur_kp_key) // Als KP (A) aanwezig dan KPN (B) testen als isVerantwoordelijke
isVerantwoordelijke = (user.isCollega(fiatteur_kpg_key) && fiat_trackinguser_key != fiatteur_kpg_key);
// Kostenplaats(groep)verantwoordelijke mag na approven de bestelopdracht inzien.
isApprovedRead = (user.isCollega(fiatteur_kp_key) || user.isCollega(fiatteur_kpg_key));
isApprovedRead = (user.isCollega(mld_opdr.fiatteur_kp_key) || user.isCollega(fiatteur_kpg_key));
}
var mresult = user.func_enabled("MLD",
moRs("mld_ins_discipline_key").Value,
moRs("mld_alg_onroerendgoed_keys").Value, // TODO: Wat als geen INS_SRTDISCIPLINE_ALG?
moRs("prs_perslid_key").Value,
mld_opdr.mld_ins_discipline_key,
mld_opdr.mld_alg_onroerendgoed_keys, // TODO: Wat als geen INS_SRTDISCIPLINE_ALG?
mld_opdr.contactpers_key,
false, // pessimist
isVerantwoordelijke); // isVerantwoordelijke dan optional
mresult.mld_opdr = mld_opdr;
// Algemeen niveau
mresult.haveORDSUPrights = user.checkAutorisation("WEB_ORDSUP", true) != null;
mresult.haveORDFINrights = user.checkAutorisation("WEB_ORDFIN", true) != null;
@@ -3511,11 +3439,11 @@ mld = {setmeldingstatus:
// Op button niveau
// ORDUSE zijn meldrachten: heb ik de (melding en) opdracht aangemaakt?
mresult.canFEread = mresult.canRead("WEB_ORDUSE") && user.isCollega(moRs("prs_perslid_key").Value);
mresult.canFEwrite = mresult.canWrite("WEB_ORDUSE") && user.isCollega(moRs("prs_perslid_key").Value);
mresult.canFEread = mresult.canRead("WEB_ORDUSE") && user.isCollega(mld_opdr.contactpers_key);
mresult.canFEwrite = mresult.canWrite("WEB_ORDUSE") && user.isCollega(mld_opdr.contactpers_key);
// Als ik de melder ben of de vervanger van de melder en het type opdracht is zichtbaar voor de fe (mld_typeopdr_zichtbaarfe == 1),
// dan mag ik de opdracht ook zien/wijzigen met WEB_MLDUSE lees/schrijf rechten.
if (moRs("mld_typeopdr_zichtbaarfe").Value == 1 && user.isCollega(moRs("melding_user_key").Value))
if (mld_opdr.typeopdr_zichtbaarfe == 1 && user.isCollega(mld_opdr.melding_user_key))
{
mresult.canFEread |= mresult.canRead("WEB_MLDUSE");
mresult.canFEwrite |= mresult.canWrite("WEB_MLDUSE");
@@ -3524,7 +3452,7 @@ mld = {setmeldingstatus:
var lopende_offertes = false;
var uitvOpdrNaOfferte = false;
if (isofferte)
if (mld_opdr.typeopdr_isofferte)
{ // Alleen voor offerte opdrachten uitvoeren
// Zijn er nog lopende offertes die nog niet Technisch Voltooid/Afgemeld (6) zijn.
// Als er nog lopende offertes zijn dan kan ik nog geen offerte accepteren.
@@ -3546,13 +3474,13 @@ mld = {setmeldingstatus:
+ " , mld_typeopdr mto"
+ " WHERE o.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND mto.mld_typeopdr_isofferte = 0"
+ " AND o.mld_melding_key = " + mld_key
+ " AND o.mld_melding_key = " + mld_opdr.mld_key
+ " GROUP BY o.mld_melding_key"
var ooRs = Oracle.Execute(osql);
if (!ooRs.eof)
{ // Er kan een uitvoeringsopdracht zijn na de offerteaanvraag. Dit m.b.v. de volgnummers checken.
var lastopdrachtvolgnr = ooRs("lastopdrachtvolgnr").Value;
uitvOpdrNaOfferte = lastopdrachtvolgnr > mld_opdr_bedrijfopdr_volgnr;
uitvOpdrNaOfferte = lastopdrachtvolgnr > mld_opdr.mld_opdr_bedrijfopdr_volgnr;
}
ooRs.Close();
}
@@ -3561,16 +3489,16 @@ mld = {setmeldingstatus:
// Al ik een contactpersoon ben dan heb ik alleen rechten om mijn eigen opdrachten van mijn eigen bedrijf te zien/wijzigen
mresult.iamContact = mld.iamContact(); // Ben ik een contactpersoon?
mresult.iamBedrijfContact = false; // Aan bedrijf toegekend en ik ben contactpersoon van dat bedrijf? Bijv. vertaaldiensten UWVA
if (mresult.iamContact && !uitv_intern) // Extern Bedrijf.
if (mresult.iamContact && !mld_opdr.uitv_intern) // Extern Bedrijf.
{ // Ik ga er van uit dat je NIET als vervanger van een contactpersoon van een ander bedrijf wordt aangewezen.
mresult.iamBedrijfContact = mld.iamContact(uitv_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
mresult.iamBedrijfContact = mld.iamContact(mld_opdr.uitvoerende_key); // Ben ik contactpersoon van het uitvoerende bedrijf?
}
mresult.canReadAny = mresult.canRead("WEB_ORDBOF") ||
(mresult.iamContact? (mresult.canRead("WEB_ORDBO2") && mresult.iamBedrijfContact) : mresult.canRead("WEB_ORDBO2")) ||
mresult.canRead("WEB_ORDAFR") ||
mresult.canRead("WEB_ORDFIN") ||
mresult.canRead("WEB_ORDSUP") ||
(mresult.canRead("WEB_MLDORD") && user.isCollega(uitv_key)) ||
(mresult.canRead("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)) ||
mresult.canFEread ||
isVerantwoordelijke ||
isApprovedRead;
@@ -3618,8 +3546,8 @@ mld = {setmeldingstatus:
mresult.canChangeARFlex = false; // Kan accepteren/afwijzen kenmerken wijzigen voor offertes
// Ter leering ende vermaeck: ..Onderstaande code regel gelijk aan:
// (mresult.canWrite("WEB_ORDBO2") && afmelden_extern == 2 && uitv_type == "B") ||
// (mresult.canWrite("WEB_ORDBO2") && uitv_type == "P")
// (mresult.canWrite("WEB_ORDBO2") && afmelden_extern == 2 && mld_opdr.uitv_type == "B") ||
// (mresult.canWrite("WEB_ORDBO2") && mld_opdr.uitv_type == "P")
// Op invoerveld niveau
mresult.canVeldChange = false; // Invoervelden uitgezonderd uitvoerende, dienst, kostenplaats, opdrachtdatum en einddatum: (opdr_status!=6 || authparamsORDFIN)
@@ -3630,7 +3558,7 @@ mld = {setmeldingstatus:
mresult.canOpmChange = false; // Opmerking: (opdr_status!=6 || authparamsORDFIN). Met ORDBO2 rechten mag je dit veld ook aanpassen
mresult.canUrenMatChange = false; // Uren en materialen: (opdr_status!=6 || authparamsORDFIN). Met ORDBO2 en MLDORD rechten mag je dit veld ook aanpassen
mresult.hadUrenMatChange = false; // Had ik in status "Technisch Voltooid/Afgemeld(6)" de rechten om Uren en materialen te wijzigen.
mresult.canOpdrTypeChange = false; // Opdrachttype: canVeldChange maar van offertopdrachten mag je het opdrachttype niet aanpassen (!isofferte).
mresult.canOpdrTypeChange = false; // Opdrachttype: canVeldChange maar van offertopdrachten mag je het opdrachttype niet aanpassen (!mld_opdr.typeopdr_isofferte).
// Mag ik dankzij BO2 afmelden (en een beetje bewerken)
var myBO2Change = mresult.canWrite("WEB_ORDBO2"); // dat is wel het minste
@@ -3644,7 +3572,7 @@ mld = {setmeldingstatus:
// Let op!!! Deze voorwaarde geldt dus alleen voor de WEB_ORDBO2 rechten.
if (mresult.iamContact)
myBO2Change = myBO2Change && mresult.iamBedrijfContact
else if (myBO2Change && !uitv_intern && afmelden_extern < 2 && !mresult.iamBedrijfContact)
else if (myBO2Change && !mld_opdr.uitv_intern && mld_opdr.typeopdr_afmelden_extern < 2 && !mresult.iamBedrijfContact)
myBO2Change = false;
var myBO2FieldChange = (myBO2Change && !mresult.iamBedrijfContact);
@@ -3653,12 +3581,12 @@ mld = {setmeldingstatus:
__Log("myBO2Change: " + myBO2Change);
switch (opdr_status)
switch (mld_opdr.opdr_status)
{
case 1: // Afgewezen
mresult.canChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canChangeUrole = "bo";
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
@@ -3666,12 +3594,12 @@ mld = {setmeldingstatus:
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUrenMatChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
break;
case 2: // Niet akkoord
mresult.canChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canChangeUrole = "bo";
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
@@ -3679,15 +3607,15 @@ mld = {setmeldingstatus:
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUrenMatChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canSeeARFlex = (isofferte && mresult.haveORDSUPrights);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
mresult.canSeeARFlex = (mld_opdr.typeopdr_isofferte && mresult.haveORDSUPrights);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
break;
case 3: // Ter fiattering
mresult.canChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canChangeUrole = "bo";
mresult.canApprove = (isVerantwoordelijke && !is_planned_action);
mresult.canReject = (isVerantwoordelijke && !is_planned_action);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
@@ -3695,20 +3623,20 @@ mld = {setmeldingstatus:
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUrenMatChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
break;
case 4: // Gefiatteerd
mresult.canChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canSend = (mresult.canWrite("WEB_ORDBOF")) && uitv_type == "B" && !mld_opdr_teverzenden && !is_planned_action; // Handmatig versturen (als Putorders dat niet doet)
mresult.canSend = (mresult.canWrite("WEB_ORDBOF")) && mld_opdr.uitv_type == "B" && !mld_opdr.teverzenden && !is_planned_action; // Handmatig versturen (als Putorders dat niet doet)
mresult.canChangeUrole = "bo";
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canDatesChange = (mresult.canWrite("WEB_ORDBOF") || (S("mld_endate_ordbo2") == 1 && (mresult.canWrite("WEB_ORDBO2") || mresult.canWrite("WEB_MLDORD"))));
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
// mresult.canUrenMatChange: Kosten (uren en materiaal) niet wijzigbaar.
// Status gaat in de meeste gevallen door het script putorders direct door naar Uitgegeven(5).
// Het is daarnaast ook ongewoon om in deze status net na het fiatteren de kosten aan te passen.
@@ -3716,33 +3644,33 @@ mld = {setmeldingstatus:
break;
case 5: // Uitgegeven
// Leveranciers kunnen de opdrachten accepteren zodat ze kunnen zien of de opdrachten al in behandeling zijn genomen
mresult.canAccept = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
mresult.canAccept = (mresult.canWrite("WEB_ORDBOF") && (mld_opdr.typeopdr_decentraal < 2) ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key))) &&
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key))) &&
!is_planned_action;
mresult.canSend = (mresult.canWrite("WEB_ORDBOF") && // Handmatig versturen (als Putorders dat niet doet)
uitv_type == "B" &&
mld_opdr_verzonden == null &&
!mld_opdr_teverzenden &&
mld_opdr.uitv_type == "B" &&
mld_opdr.verzonden == null &&
!mld_opdr.teverzenden &&
!is_planned_action)
// GEEN break!
case 8: // en geaccepteerd
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") && (mld_opdr.typeopdr_decentraal < 2) ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key)));
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)));
if (mresult.canWrite("WEB_ORDBOF")) mresult.canChangeUrole = "bo";
mresult.canCancel = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change)) &&
!is_planned_action && /* AAFM#23455 */
!noCancel; /* AAZC#28894 */
mresult.canCloseRights = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
mresult.canCloseRights = (mresult.canWrite("WEB_ORDBOF") && (mld_opdr.typeopdr_decentraal < 2) ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key))) &&
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key))) &&
!is_planned_action;
mresult.canOnderbreken = (sequential&1)==1 && mresult.canCloseRights && opdr_status == 8 && !halted;
mresult.canHervatten = mresult.canCloseRights && opdr_status == 8 && halted; /* && (sequential&1)==1 would be logical but halted will do */
mresult.canOnderbreken = (mld_opdr.typeopdr_sequential&1)==1 && mresult.canCloseRights && mld_opdr.opdr_status == 8 && mld_opdr.halted!=1;
mresult.canHervatten = mresult.canCloseRights && mld_opdr.opdr_status == 8 && mld_opdr.halted==1; /* && (sequential&1)==1 would be logical but halted will do */
mresult.canClose = mresult.canCloseRights && !mresult.canHervatten;
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2FieldChange));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF") || mresult.canWrite("WEB_ORDBO2"));
@@ -3751,48 +3679,48 @@ mld = {setmeldingstatus:
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key)));
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)));
mresult.canUrenMatChange = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key)));
mresult.canSeeARFlex = (isofferte && mresult.haveORDSUPrights);
mresult.canChangeARFlex = (isofferte && mresult.haveORDSUPrights);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)));
mresult.canSeeARFlex = (mld_opdr.typeopdr_isofferte && mresult.haveORDSUPrights);
mresult.canChangeARFlex = (mld_opdr.typeopdr_isofferte && mresult.haveORDSUPrights);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
break;
case 6: // Technisch Voltooid/Afgemeld
mresult.canChange = (mresult.haveORDFINrights || mresult.haveORDSUPrights ||
(myBO2Change && mresult.canWrite("WEB_ORDAFR")) || /* AANS#22655 */
(typehas_cost && mresult.canWrite("WEB_ORDAFR")) ||
(isofferte && mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights));
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
(mld_opdr.typeopdr_isofferte && mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights));
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") && (mld_opdr.typeopdr_decentraal < 2) ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key)));
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)));
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canFlexChange = (mresult.haveORDFINrights || mresult.haveORDSUPrights) ||
(myBO2Change && mresult.canWrite("WEB_ORDAFR") && !isofferte); /* AANS#22655 */
(myBO2Change && mresult.canWrite("WEB_ORDAFR") && !mld_opdr.typeopdr_isofferte); /* AANS#22655 */
mresult.canKostChange = (mresult.haveORDFINrights && S("mld_ord_show_kostenplaats") == 1);
mresult.canFinish = (!isofferte && typehas_cost && mresult.canWrite("WEB_ORDAFR") && !is_planned_action);
mresult.canAcceptOffer = (isofferte && (!lopende_offertes || !offerteauto) &&
mresult.canFinish = (!mld_opdr.typeopdr_isofferte && typehas_cost && mresult.canWrite("WEB_ORDAFR") && !is_planned_action);
mresult.canAcceptOffer = (mld_opdr.typeopdr_isofferte && (!lopende_offertes || !mld_opdr.offerteauto) &&
mresult.haveORDOAPrights && mresult.canRead("WEB_ORDBOF") &&
!(uitvOpdrNaOfferte && offerteauto) && !is_planned_action);
mresult.canRejectOffer = (isofferte && mresult.haveORDOAPrights &&
mresult.canRead("WEB_ORDBOF") && !(uitvOpdrNaOfferte && offerteauto) &&
!(uitvOpdrNaOfferte && mld_opdr.offerteauto) && !is_planned_action);
mresult.canRejectOffer = (mld_opdr.typeopdr_isofferte && mresult.haveORDOAPrights &&
mresult.canRead("WEB_ORDBOF") && !(uitvOpdrNaOfferte && mld_opdr.offerteauto) &&
!is_planned_action);
mresult.canOpmChange = (mresult.haveORDSUPrights || mresult.canAcceptOffer || mresult.canRejectOffer) ||
(myBO2Change && mresult.canWrite("WEB_ORDAFR")); /* AANS#22655 */
mresult.canUrenMatChange = (mresult.canFinish || mresult.haveORDFINrights) ||
(myBO2Change && mresult.canWrite("WEB_ORDAFR")); /* AANS#22655 */
mresult.canSeeARFlex = (isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canChangeARFlex = (isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canSeeARFlex = (mld_opdr.typeopdr_isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canChangeARFlex = (mld_opdr.typeopdr_isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
break;
case 9: // Kostentechnisch voltooid gemeld (doorgaans door uitvoerende)
mresult.canChange = (mresult.haveORDFINrights || mresult.haveORDSUPrights ||
(isofferte && mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights));
mresult.hadFinishRights = (!isofferte && typehas_cost && mresult.canWrite("WEB_ORDAFR") && !is_planned_action);
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") && (decentraal < 2) ||
(mld_opdr.typeopdr_isofferte && mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights));
mresult.hadFinishRights = (!mld_opdr.typeopdr_isofferte && typehas_cost && mresult.canWrite("WEB_ORDAFR") && !is_planned_action);
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") && (mld_opdr.typeopdr_decentraal < 2) ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change) ||
(mresult.canWrite("WEB_MLDORD") && user.isCollega(uitv_key)));
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
(mresult.canWrite("WEB_MLDORD") && user.isCollega(mld_opdr.uitvoerende_key)));
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canFlexChange = (mresult.haveORDFINrights || mresult.haveORDSUPrights);
mresult.canKostChange = (mresult.haveORDFINrights && S("mld_ord_show_kostenplaats") == 1);
mresult.canUrenMatChange = (mresult.haveORDFINrights);
@@ -3800,41 +3728,41 @@ mld = {setmeldingstatus:
(myBO2Change && mresult.canWrite("WEB_ORDAFR"));
if (mresult.iamBedrijfContact && mresult.hadUrenMatChange)
{
if (t_cost > S("mld_max_kosten_extern"))
if (mld_opdr.t_cost > S("mld_max_kosten_extern"))
mresult.hadUrenMatChange = false;
}
mresult.canSeeARFlex = (isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canChangeARFlex = (isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canSeeARFlex = (mld_opdr.typeopdr_isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canChangeARFlex = (mld_opdr.typeopdr_isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
break;
case 10: // Nog goedkeur
mresult.canChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canChangeUrole = "bo";
mresult.canGoedkeur = mresult.canWrite("WEB_ORDGOE") && !is_planned_action && // Heb ik de rechten om goed te keuren op dit niveau 1?
(((S("mld_opdr_approval_all") == 0 && t_cost >= bestellimiet) ||
(S("mld_opdr_approval_all") == 1 && t_cost <= bestellimiet2)) &&
((!refiat && opdr_approved <= bestellimiet) || (refiat && t_cost >= gvs && opdr_approved < 0)));
(((S("mld_opdr_approval_all") == 0 && mld_opdr.t_cost >= mld_opdr.bestellimiet) ||
(S("mld_opdr_approval_all") == 1 && mld_opdr.t_cost <= mld_opdr.bestellimiet2)) &&
((!refiat && mld_opdr.approved <= mld_opdr.bestellimiet) || (refiat && mld_opdr.t_cost >= mld_opdr.typeopdr_gvs && mld_opdr.approved < 0)));
mresult.canGoedkeur2 = mresult.canWrite("WEB_ORDGO2") && !is_planned_action &&
// Setting mld_opdr_approval_all is
// 0: Het approved bedrag is eigen bestellimiet of vorige goedkeur niveau rechten heb ik al (dan direct niveau hoger)
// 1: Het approved bedrag is kleiner of gelijk aan eigen bestellimiet
((S("mld_opdr_approval_all") == 0 && t_cost >= bestellimiet2 && (opdr_approved == bestellimiet2 || mresult.canGoedkeur)) ||
(S("mld_opdr_approval_all") == 1 && t_cost <= bestellimiet3 && ((!refiat && opdr_approved <= bestellimiet2) || (refiat && t_cost >= gvs && opdr_approved < 0))));
((S("mld_opdr_approval_all") == 0 && mld_opdr.t_cost >= mld_opdr.bestellimiet2 && (mld_opdr.approved == mld_opdr.bestellimiet2 || mresult.canGoedkeur)) ||
(S("mld_opdr_approval_all") == 1 && mld_opdr.t_cost <= mld_opdr.bestellimiet3 && ((!refiat && mld_opdr.approved <= mld_opdr.bestellimiet2) || (refiat && mld_opdr.t_cost >= mld_opdr.typeopdr_gvs && mld_opdr.approved < 0))));
mresult.canGoedkeur3 = mresult.canWrite("WEB_ORDGO3") && !is_planned_action &&
((S("mld_opdr_approval_all") == 0 && t_cost >= bestellimiet3 && (opdr_approved == bestellimiet3 || mresult.canGoedkeur2)) ||
(S("mld_opdr_approval_all") == 1 && t_cost <= bestellimiet4 && (!refiat && opdr_approved <= bestellimiet3 || (refiat && t_cost >= gvs && opdr_approved < 0))));
((S("mld_opdr_approval_all") == 0 && mld_opdr.t_cost >= mld_opdr.bestellimiet3 && (mld_opdr.approved == mld_opdr.bestellimiet3 || mresult.canGoedkeur2)) ||
(S("mld_opdr_approval_all") == 1 && mld_opdr.t_cost <= mld_opdr.bestellimiet4 && (!refiat && mld_opdr.approved <= mld_opdr.bestellimiet3 || (refiat && mld_opdr.t_cost >= mld_opdr.typeopdr_gvs && mld_opdr.approved < 0))));
mresult.canGoedkeur4 = mresult.canWrite("WEB_ORDGO4") && !is_planned_action &&
((S("mld_opdr_approval_all") == 0 && t_cost >= bestellimiet4 && (opdr_approved == bestellimiet4 || mresult.canGoedkeur3)) ||
(S("mld_opdr_approval_all") == 1 && t_cost <= bestellimiet5 && (!refiat && opdr_approved <= bestellimiet4 || (refiat && t_cost >= gvs && opdr_approved < 0))));
((S("mld_opdr_approval_all") == 0 && mld_opdr.t_cost >= mld_opdr.bestellimiet4 && (mld_opdr.approved == mld_opdr.bestellimiet4 || mresult.canGoedkeur3)) ||
(S("mld_opdr_approval_all") == 1 && mld_opdr.t_cost <= mld_opdr.bestellimiet5 && (!refiat && mld_opdr.approved <= mld_opdr.bestellimiet4 || (refiat && mld_opdr.t_cost >= mld_opdr.typeopdr_gvs && mld_opdr.approved < 0))));
mresult.canGoedkeur5 = mresult.canWrite("WEB_ORDGO5") && !is_planned_action &&
((S("mld_opdr_approval_all") == 0 && t_cost >= bestellimiet5 && (opdr_approved >= bestellimiet5 || mresult.canGoedkeur4)) ||
(S("mld_opdr_approval_all") == 1 && t_cost > bestellimiet5 && (!refiat && opdr_approved <= bestellimiet5 || (refiat && t_cost >= gvs && opdr_approved < 0)))) &&
t_cost > opdr_approved;
((S("mld_opdr_approval_all") == 0 && mld_opdr.t_cost >= mld_opdr.bestellimiet5 && (mld_opdr.approved >= mld_opdr.bestellimiet5 || mresult.canGoedkeur4)) ||
(S("mld_opdr_approval_all") == 1 && mld_opdr.t_cost > mld_opdr.bestellimiet5 && (!refiat && mld_opdr.approved <= mld_opdr.bestellimiet5 || (refiat && mld_opdr.t_cost >= mld_opdr.typeopdr_gvs && mld_opdr.approved < 0)))) &&
mld_opdr.t_cost > mld_opdr.approved;
mresult.canReject = (mresult.canGoedkeur ||
mresult.canGoedkeur2 ||
mresult.canGoedkeur3 ||
mresult.canGoedkeur4 ||
mresult.canGoedkeur5);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_afgerond);
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") && !is_planned_action && !mld_opdr.mld_afgerond);
mresult.canVeldChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canFlexChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUitvChange = (mresult.canWrite("WEB_ORDBOF"));
@@ -3842,28 +3770,28 @@ mld = {setmeldingstatus:
mresult.canKostChange = (mresult.canWrite("WEB_ORDBOF") && S("mld_ord_show_kostenplaats") == 1);
mresult.canOpmChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canUrenMatChange = (mresult.canWrite("WEB_ORDBOF"));
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !isofferte && !opdrtypevast);
mresult.canOpdrTypeChange = (mresult.canWrite("WEB_ORDBOF") && !mld_opdr.typeopdr_isofferte && !mld_opdr.opdrtypevast);
if (mresult.canGoedkeur && (S("mld_opdr_approval_all") == 1 || !mresult.canGoedkeur2)) // Kan ik deze opdracht goedkeuren tot de eerste limiet? Als ik ook al tot de tweede limiet goed kan keuren dan direct maar tot de tweede limiet (volgende if).
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || t_cost <= bestellimiet2 || opdr_approved > bestellimiet2);
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || mld_opdr.t_cost <= mld_opdr.bestellimiet2 || mld_opdr.approved > mld_opdr.bestellimiet2);
else if (mresult.canGoedkeur2 && (S("mld_opdr_approval_all") == 1 || mresult.canGoedkeur3)) // Kan ik deze opdracht goedkeuren tot de tweede limiet? Als ik ook boven de derde limiet goed kan keuren dan direct maar tot de derde limiet (volgende if).
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || t_cost <= bestellimiet3 || opdr_approved > bestellimiet3);
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || mld_opdr.t_cost <= mld_opdr.bestellimiet3 || mld_opdr.approved > mld_opdr.bestellimiet3);
else if (mresult.canGoedkeur3 && (S("mld_opdr_approval_all") == 1 || !mresult.canGoedkeur4)) // Kan ik deze opdracht goedkeuren tot de derde limiet? Als ik ook boven de vierde limiet goed kan keuren dan direct maar tot de vierde limiet (volgende if).
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || t_cost <= bestellimiet4 || opdr_approved > bestellimiet4);
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || mld_opdr.t_cost <= mld_opdr.bestellimiet4 || mld_opdr.approved > mld_opdr.bestellimiet4);
else if (mresult.canGoedkeur4 && (S("mld_opdr_approval_all") == 1 || !mresult.canGoedkeur5)) // Kan ik deze opdracht goedkeuren tot de vierde limiet? Als ik ook boven de vijfde limiet goed kan keuren dan direct maar tot de vijfde limiet (volgende if).
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || t_cost <= bestellimiet5 || opdr_approved > bestellimiet5);
mresult.finalapproval = (S("mld_opdr_approval_all") == 1 || mld_opdr.t_cost <= mld_opdr.bestellimiet5 || mld_opdr.approved > mld_opdr.bestellimiet5);
else if (mresult.canGoedkeur5) // Kan ik dit contract volledig fiatteren en acfief maken?
mresult.finalapproval = true;
break;
case 7: // Verwerkt
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") ||
(mresult.canWrite("WEB_ORDBO2") && myBO2Change));
mresult.canSeeARFlex = (isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
mresult.canSeeARFlex = (mld_opdr.typeopdr_isofferte && (mresult.haveORDSUPrights || (mresult.canRead("WEB_ORDBOF") && mresult.haveORDOAPrights)));
break;
}
if (mresult.iamBedrijfContact && mresult.canUrenMatChange)
{
if (t_cost > S("mld_max_kosten_extern"))
if (mld_opdr.t_cost > S("mld_max_kosten_extern"))
mresult.canUrenMatChange = false;
}

View File

@@ -67,7 +67,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
while (!oRsOM.eof)
{ // Voor elke opdracht van een melding controleren of deze afgemeld mag worden
var this_opdr = mld.func_enabled_opdracht(oRsOM("mld_opdr_key").Value);
var mld_opdr = mld.mld_opdr_info(oRsOM("mld_opdr_key").Value);
var mld_opdr = this_opdr.mld_opdr;
sql = "SELECT mld_opdr_einddatum"
+ " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + oRsOM("mld_opdr_key").Value;

View File

@@ -1050,7 +1050,7 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
}
if (this_mld.canAfrond)
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.afgerond);
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.mld_afgerond);
if ((mld_melding.kto_opt & 2) == 2 && mld_melding.kto_verstuurd == null && this_mld.canClose)
RWCHECKBOXTR("ktoself", "fldkto", L("lcl_mld_kto_invite"), mld_melding.kto);

View File

@@ -70,7 +70,7 @@ if (opdr_key > 0)
user.auth_required_or_abort(this_opdr.canChange);
// Haal de opdrachtgegevens op van de opdracht
mld_opdr = mld.mld_opdr_info(opdr_key);
mld_opdr = this_opdr.mld_opdr;
mld_key = mld_opdr.mld_key;
mld_opdr.opdr_type_org = mld_opdr.opdr_type; // As in/from database

View File

@@ -536,7 +536,7 @@ for (var u = 0; u < uitvkeyArray.length; u++)
}
// Oorspronkelijke gegevens opdracht ophalen.
var opdr_info = mld.mld_opdr_info(opdr_key);
var opdr_info = this_opdr.mld_opdr;
// Functie die bepaald of de opdracht ter fiattering aangeboden moet worden.
function getToApprove()
{

View File

@@ -131,7 +131,7 @@ user.auth_required_or_abort(this_opdr.canReadAny);
</script>
</head>
<%
var mld_opdr = mld.mld_opdr_info(opdr_key)
var mld_opdr = this_opdr.mld_opdr;
var mld_mld = mld.mld_melding_info(mld_opdr.mld_key)
var prs_info = new prs.prs_perslid(mld_mld.melder_key);

View File

@@ -51,7 +51,7 @@ user.auth_required_or_abort(this_opdr.canReadAny);
// INITIALISATIE MET DE INITIEEL WEER TE GEVEN GEGEVENS
// Haal de opdrachtgegevens op van de opdracht
mld_opdr = mld.mld_opdr_info(opdr_key);
mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
var opdr_type_org = mld_opdr.opdr_type; // Huidige en het orgineel zijn hetzelfde. Niet aangepast. Overnemen van ingevulde waarden niet nodig.

View File

@@ -71,7 +71,7 @@ user.anything_todo_or_abort(this_opdr.canAcceptOffer); // Mag ik deze kosten afm
oRs.close();
var ttl = L("lcl_mld_opdr_offerte_accept");
var mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_opdr = this_opdr.mld_opdr;
ttl += " " + (mld_opdr.srtdiscprefix || "") + mld_opdr.mld_key + "/" + mld_opdr.mld_opdr_bedrijfopdr_volgnr;
%>
<form id="acceptform" name="acceptform" action="opdr_accept_offer_save.asp?opdr_key=<%=opdr_key%>" method="post">

View File

@@ -29,7 +29,7 @@ user.auth_required_or_abort(opdr_key > 0); // Hebben we een opdracht key gekrege
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canCancel); // Mag ik deze opdracht annuleren
var mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
var reqStatusEmptyOpdr = [];

View File

@@ -37,10 +37,9 @@ user.auth_required_or_abort(this_opdr.canCancel && !reqStatusEmptyOpdr.length, J
var result = { opdr_key: opdr_key, message: "", success: false};
var mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
if (this_opdr.canOpmChange)
{
var opdr_opm = getFParam("opdr_opm", "");

View File

@@ -46,7 +46,7 @@ if (opdr_key_arr.length == 1)
{
// Haal de gegevens van de opdracht op.
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[0]); // wat mag ik zoal op deze opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[0]);
var mld_opdr = this_opdr.mld_opdr;
var kosten_verplicht_afm = mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
var opdr_kosten = mld_opdr.t_cost;
// user.auth_required_or_abort(this_opdr.canClose, L("lcl_mld_opdr_kosten_verpl_afm")); // Dan zijn we vlug klaar.
@@ -101,7 +101,7 @@ else
for (var i = 0; i < opdr_key_arr.length; i++)
{
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // wat mag ik zoal op deze opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]);
var mld_opdr = this_opdr.mld_opdr;
var sql = "SELECT o.mld_opdr_einddatum"
+ " FROM mld_opdr o"
+ " , mld_typeopdr mto"

View File

@@ -69,7 +69,7 @@ var reqStatusEmptyOpdr = [];
if (opdr_key_arr.length == 1)
{
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[0]); // wat mag ik zoal op deze opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[0]);
var mld_opdr = this_opdr.mld_opdr;
var kosten_verplicht_afm = mld_opdr.typeopdr_matchtype != 4 && (mld_opdr.typeopdr_kosten_verplicht & 2 || (mld_opdr.typeopdr_kosten_verplicht == 0 && mld_opdr.opdrkosten_verplicht & 2));
var opdr_kosten = mld_opdr.t_cost;
@@ -122,7 +122,7 @@ else
for (var i = 0; i < opdr_key_arr.length; i++)
{
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // wat mag ik zoal op deze opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]);
var mld_opdr = this_opdr.mld_opdr;
var sql = "SELECT mld_opdr_einddatum"
+ " FROM mld_opdr o"
+ " WHERE o.mld_opdr_key = " + opdr_key_arr[i];

View File

@@ -26,7 +26,7 @@ FCLTHeader.Requires({ plugins: [] });
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canEditOpdrNote);
mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
%>

View File

@@ -27,7 +27,7 @@ var note_key = getQParamInt("note_key", -1);
var note = getFParam("note", "");
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key);
var mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
user.auth_required_or_abort(this_opdr.canEditOpdrNote);

View File

@@ -38,7 +38,7 @@ for (var i = 0; i < opdr_key_arr.length; i++)
// Dan stoppen en een melding/warning geven. Alleen bij 1 opdracht een melding/warning geven.
user.anything_todo_or_abort(multi || !costExceedsBC, L("lcl_opdr_cost_exceed") + S("mld_max_kosten_extern"));
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]);
var mld_opdr = this_opdr.mld_opdr;
var kosten_verplicht_afr = (mld_opdr.typeopdr_matchtype != 4) && ( (mld_opdr.typeopdr_kosten_verplicht & 4) || ( (mld_opdr.typeopdr_kosten_verplicht == 0) && (mld_opdr.opdrkosten_verplicht & 4)));
var opdr_kosten = opdr_kosten >= 0? opdr_kosten : mld_opdr.t_cost;
// Bij multi worden er geen bedragen aangepast door de contractpersoon van de uitvoerder.

View File

@@ -37,7 +37,7 @@ var notmoved = [];
for (var i = 0; i < opdr_key_arr.length; i++)
{
var this_opdr = mld.func_enabled_opdracht(opdr_key_arr[i]); // Wat heb ik zoal aan rechten op deze specifieke opdracht
var mld_opdr = mld.mld_opdr_info(opdr_key_arr[i]);
var mld_opdr = this_opdr.mld_opdr;
var canSelection = true;
var uitv_type_src = "PI";

View File

@@ -35,7 +35,7 @@ cache.whenNoRecords("SELECT 1 FROM mld_opdr_note WHERE mld_opdr_key = " + opdr_k
var this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canShowOpdrNote);
mld_opdr = mld.mld_opdr_info(opdr_key);
mld_opdr = this_opdr.mld_opdr;
lcl.set_dialect(mld_opdr.opdr_type, "MLD_TYPEOPDR_KEY");
%>