FSN#37754: MJOB inspect verschuiving ongedaan maken.

svn path=/Website/branches/v2016.2/; revision=30962
This commit is contained in:
Maykel Geerdink
2016-10-04 11:52:18 +00:00
parent c444d2daf3
commit 18afcd44bb
2 changed files with 68 additions and 16 deletions

View File

@@ -255,7 +255,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
}
ingesloten.push({ins_key: ins_key_arr[i], srtcont_key: srtcont_key_arr[i], dlsrtcont_key: dlsrtcont_key,
inspectiemode: ins_srtcontrole_mode, inspectiestatus: ins_deelsrtcontrole_status});
inspectiemode: ins_srtcontrole_mode, inspectiestatus: ins_deelsrtcontrole_status, ins_deel_aanmaak: ins_deel_aanmaak});
tobehandled++;
}
@@ -659,6 +659,46 @@ else if (savemode == "E")
}
//else Er zijn nog geen inspecties geweest voor dit object en er is nog geen plandatum voor dit object ingevuld.
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
else
{ // Vindt het ins_srtcontrole_type.
var sql = "SELECT ctr_disc_params_controle_type"
+ " FROM ins_srtcontrole isc,"
+ " ctr_disc_params cdp"
+ " WHERE ins_srtcontrole_key = " + ingesloten[0].srtcont_key
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key";
var oRs = Oracle.Execute(sql);
var srtcontrole_type = oRs("ctr_disc_params_controle_type").Value;
oRs.Close();
var thisyear = (new Date()).getFullYear();
plandatum = getFParamDate("plandatum");
var plandatum_jaar = plandatum.getFullYear();
// Kunnen we het plan record verwijderen?
// De inspectiedatum voor taken die nog nooit een inspectie hebben gehad is voor een Vervanging(2) of Certificering(3)
// een periode verder dan de registratie/aanmaak datum van het object.
// Voor een controle is er geen inspectiedatum en wordt er dan altijd "Eerste controle" in beeld getoond.
// Ofwel een inspectie kun je direct vanaf het aanmaken van het object doen.
// Voor controles(1):
// - Als de planning in dit jaar is dan kan het inspectierecord verwijderd worden.
// Voor Vervanging(2) en Certificering(3):
// - inspectiedatum in het verleden of dit jaar: als de planning in dit jaar is, dan kan het inspectierecord verwijderd worden.
// - inspectiedatum in de toekomst: als de planning in hetzelfde jaar is als de inspectiedatum dan kan het inspectierecord verwijderd worden.
if (ismjob && isjaarlijks)
{
if (srtcontrole_type == 1 && plandatum_jaar == thisyear) // Controles(1).
mjobdelete = true;
else if (srtcontrole_type == 2 || srtcontrole_type == 3) // Vervanging(2) of Certificering(3).
{ // Bereken de volgende inspectiedatum.
sql = "SELECT ins.nextcyclusdate (" + ingesloten[0].ins_key + ", " + ingesloten[0].srtcont_key + ", 1) nextdate FROM DUAL"
oRs = Oracle.Execute(sql);
var nextdate = new Date(oRs("nextdate").Value);
var nexdate_jaar = nextdate.getFullYear();
if ((nexdate_jaar <= thisyear && plandatum_jaar == thisyear) ||
(nexdate_jaar > thisyear && plandatum_jaar == nexdate_jaar))
mjobdelete = true;
}
}
}
}
if (mjobdelete)

View File

@@ -41,9 +41,11 @@ var authparamsCTRUSE = user.checkAutorisation(autfunctionCTRUSE);
var authparamsCTRUSE = user.checkAutorisation(autfunctionCTRUSE, true, null, true); // Pessimistic.
var hasReadCTRUSE = authparamsCTRUSE && authparamsCTRUSE.ALGreadlevel < 9 && authparamsCTRUSE.PRSreadlevel < 9;
// Als ik op minstens 1 discipline alleen leesrechten heb, dan zal vanwege het pessimistisch testen de writelevel 9 zijn.
// Dan heb ik dus geen hasWriteCTRUSE rechten.
var hasWriteCTRUSE = authparamsCTRUSE && authparamsCTRUSE.ALGwritelevel < 9 && authparamsCTRUSE.PRSwritelevel < 9;
// Rechten om exception (xcp) waarden van de inspectie/taaak te kunnen zien en om details van het object te kunnen zien.
// Rechten om exception (xcp) waarden van de inspectie/taak te kunnen zien en om details van het object te kunnen zien.
var autfunctionINSMAN = "WEB_INSMAN";
var authparamsINSMAN = user.checkAutorisation(autfunctionINSMAN, true, null, true); // Pessimistic.
var hasReadINSMAN = authparamsINSMAN && authparamsINSMAN.ALGreadlevel < 9 && authparamsINSMAN.PRSreadlevel < 9;
@@ -254,12 +256,22 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , e.ins_srtcontrole_percentage"
+ " , e.ins_srtcontrole_opmerking"
+ " , EXTRACT (YEAR FROM COALESCE(c.plandatum"
+ " , ADD_MONTHS(COALESCE(c.laatste, e.ins_deel_aanmaak), 12 * e.ins_srtcontrole_periode))) vervangingsjaar"
+ " , ADD_MONTHS(COALESCE(c.laatste"
+ " , CASE"
+ " WHEN e.ctr_controle_type = 1" // Controle(1).
+ " THEN SYSDATE"
+ " ELSE e.ins_deel_aanmaak" // Vervanging(2) of Certificering(3).
+ " END), CASE"
+ " WHEN e.ctr_controle_type = 1" // Controle(1).
+ " THEN 1"
+ " ELSE 12 * e.ins_srtcontrole_periode" // Vervanging(2) of Certificering(3).
+ " END))) vervangingsjaar"
+ " , e.ins_deel_aantal"
+ " , e.ins_srtcontrole_eind"
+ " , e.ins_srtcontrole_afbouwtijd"
+ " , e.fin_btwtabelwaarde_key"
+ " , e.ins_srtcontroledl_xcp_eind"
+ " , e.ctr_controle_type"
+ " FROM (SELECT el.ins_deel_key"
+ " , el.ins_srtcontroledl_xcp_key"
+ " , el.ins_srtcontrole_omschrijving"
@@ -278,8 +290,20 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , el.ins_srtcontrole_afbouwtijd"
+ " , el.fin_btwtabelwaarde_key"
+ " , el.ins_srtcontroledl_xcp_eind"
+ " , el.ctr_controle_type"
+ " FROM ins_v_defined_inspect_xcp el"
+ " WHERE el.ctr_controle_type = 2" // TODO Altijd 'Vervanging' ?
+ " WHERE el.ins_srtcontrole_periode > 0"
+ " AND el.ctr_ismjob = 1"
// Je moet read CTRUSE rechten hebben op de CTR disciplines om de taken te kunnen zien.
+ " AND el.ctr_discipline_key IN (SELECT w.ins_discipline_key"
+ " FROM fac_v_webgebruiker w"
+ " , fac_functie f"
+ " WHERE w.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND w.fac_gebruiker_prs_level_read < 9"
+ " AND w.fac_gebruiker_alg_level_read < 9"
+ " AND w.prs_perslid_key = " + user_key
+ " AND el.ctr_discipline_key = w.ins_discipline_key)"
// Vroeg filteren is *heel* goed voor performance
+ (dist_key > 0
? " AND el.ins_alg_locatie_key IN (SELECT alg_locatie_key FROM alg_locatie WHERE alg_district_key = " + dist_key + ")"
@@ -299,21 +323,9 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ (srtdeel_key > 0
? " AND el.ins_srtdeel_key = " + srtdeel_key
: "")
+ " AND el.ins_srtcontrole_periode > 0"
+ " AND el.ctr_ismjob = 1"
+ (groep
? " AND UPPER(ins_srtcontrole_groep) LIKE " + safe.quoted_sql_wild("%" + groep + "%")
: "")
// Je moet read CTRUSE rechten hebben op de CTR disciplines om de taken te kunnen zien.
+ " AND el.ctr_discipline_key IN (SELECT w.ins_discipline_key"
+ " FROM fac_v_webgebruiker w"
+ " , fac_functie f"
+ " WHERE w.fac_functie_key = f.fac_functie_key "
+ " AND f.fac_functie_code = 'WEB_CTRUSE'"
+ " AND w.fac_gebruiker_prs_level_read < 9"
+ " AND w.fac_gebruiker_alg_level_read < 9"
+ " AND w.prs_perslid_key = " + user_key
+ " AND el.ctr_discipline_key = w.ins_discipline_key)"
+ (srtcontrole.length > 0
? " AND el.ins_srtcontrole_key IN (" + srtcontrole.join(",") + ")"
: "")