|
|
|
|
@@ -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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|