PLAT#39567: Van MJOB naar MJOP/R.

svn path=/Website/trunk/; revision=35310
This commit is contained in:
Maykel Geerdink
2017-09-14 08:44:34 +00:00
parent 5bdba25af8
commit 7f99cdb4c5

View File

@@ -147,24 +147,24 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
function moveplan(evt, ins_key, srtcont_key, scen_key, dlsrtcont_key, jaar)
{
FcltMgr.stopPropagation(evt);
if (!jaar)
return;
FcltMgr.stopPropagation(evt);
if (!jaar)
return;
var minjaar = <%=S("mjb_freeze_year")%> || (new Date()).getFullYear();
var savemode, plandatum;
var minjaar = <%=S("mjb_freeze_year")%> || (new Date()).getFullYear();
var savemode, plandatum;
if (jaar >= minjaar && jaar < (minjaar + <%=S("mjb_show_years")%>))
{
savemode = "P"; // (absolute) plan-mode
plandatum = new Date(jaar, 11, 31).getTime();
}
else if (jaar > -<%=S("mjb_show_years")%> && jaar < <%=S("mjb_show_years")%>)
{
savemode = "R" // relative plan-mode
plandatum = jaar;
}
else
if (jaar >= minjaar && jaar < (minjaar + <%=S("mjb_show_years")%>))
{
savemode = "P"; // (absolute) plan-mode
plandatum = new Date(jaar, 11, 31).getTime();
}
else if (jaar > -<%=S("mjb_show_years")%> && jaar < <%=S("mjb_show_years")%>)
{
savemode = "R" // relative plan-mode
plandatum = jaar;
}
else
return;
var data = { savemode : savemode,
@@ -236,7 +236,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
jaar = L("lcl_mjb_original").format(L("lcl_ins_controle_first").toLowerCase());
else
// Oorspronkelijke jaar weergeven.
jaar = L("lcl_mjb_original").format(data.insNexdate0);
jaar = L("lcl_mjb_original").format(data.vervangingsjaar_0);
}
$("#timetip").html(jaar)
@@ -397,6 +397,59 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
// of anders: ins_deel_aanmaak
// waarbij verondersteld wordt dat inspecties in het verleden wel zijn uitgevoerd
// Bepaling in welk jaar er een inspectie is gepland.
// 1) In het jaar van de plandatum.
// 2) In het jaar van de startdatum.
// 3) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
// Volgende inspectie is in het freeze jaar.
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
// Nextdate is na het freeze jaar?
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is het jaar van de nextdate.
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
// Nee) Volgende inspectie is in het freeze jaar.
var vervangingsjaar = "EXTRACT (YEAR FROM COALESCE(c.plandatum" // Plandatum.
+ " , CASE" // Eventueel startdatum (ins_srtcontroledl_xcp_startdat) i.g.v. als er nog geen inspectie heeft plaatsgevonden.
+ " WHEN c.laatste IS NULL" // Als er al een inspectie is geweest, is de startdatum niet meer van belang.
+ " THEN e.ins_srtcontroledl_xcp_startdat"
+ " ELSE NULL"
+ " END"
+ " , CASE" // Berekenen jaar.
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type = 1" // 1: Controle.
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
+ " THEN" // Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > " + mjb_freeze_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
+ " EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM e.ins_deel_aanmaak)"
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nu en vorige inspectie liggen tussen start en freeze jaar.
+ " ELSE e.nextdate"
+ " END"
+ " ELSE" // Nextdate is voor of in het freeze jaar.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) >= " + mjb_start_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " ELSE ADD_MONTHS(e.nextdate, 12 * e.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
+ " END"
+ " END"
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > EXTRACT(YEAR FROM SYSDATE)"
+ " THEN e.nextdate" // Volgende inspectie is in de toekomst.
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog niet uitgevoerd.
+ " END"
+ " END))";
// SQL van objecten met hun eerste vervanging
var sql_componenten =
"SELECT e.ins_deel_key"
@@ -411,57 +464,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , e.ins_srtcontrole_periode"
+ " , e.ins_srtcontrole_percentage"
+ " , e.ins_srtcontrole_opmerking"
// Bepaling in welk jaar er een inspectie is gepland.
// 1) In het jaar van de plandatum.
// 2) In het jaar van de startdatum.
// 3) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1).
// Volgende inspectie is in het freeze jaar.
// b) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Vervanging(2) of Certificering(3).
// Nextdate is na het freeze jaar?
// Ja) Vorige inspectie ligt na het start jaar en ligt niet in het aanmaak jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is het jaar van de nextdate.
// Nee) De laatst ingeplande inspectie (nextdate) is na of in het start jaar?
// Ja) Volgende inspectie is in het freeze jaar.
// Nee) Volgende inspectie is in het jaar "nextdatum + periode".
// c) Laatste inspectie is niet NULL. Er is al 1 of meerdere keren geinspecteerd.
// Ligt de laatst ingeplande inspectie (nextdate) na dit jaar?
// Ja) Volgende inspectie is het jaar van de nextdate (in de toekomst).
// Nee) Volgende inspectie is in het freeze jaar.
+ " , EXTRACT (YEAR FROM COALESCE(c.plandatum" // Plandatum.
+ " , CASE" // Eventueel startdatum (ins_srtcontroledl_xcp_startdat) i.g.v. als er nog geen inspectie heeft plaatsgevonden.
+ " WHEN c.laatste IS NULL" // Als er al een inspectie is geweest, is de startdatum niet meer van belang.
+ " THEN e.ins_srtcontroledl_xcp_startdat"
+ " ELSE NULL"
+ " END"
+ " , CASE" // Berekenen jaar.
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type = 1" // 1: Controle.
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')"
+ " WHEN c.laatste IS NULL AND e.ctr_controle_type != 1" // 2: Vervanging, 3: Certificering.
+ " THEN" // Er is nog geen inspectie geweest
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > " + mjb_freeze_year
+ " THEN" // Nextdate is na de freeze datum.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) >= " + mjb_start_year + " AND"
+ " EXTRACT(YEAR FROM ADD_MONTHS(e.nextdate, -1 * 12 * e.ins_srtcontrole_periode)) != EXTRACT(YEAR FROM e.ins_deel_aanmaak)"
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nu en vorige inspectie liggen tussen start en freeze jaar.
+ " ELSE e.nextdate"
+ " END"
+ " ELSE" // Nextdate is voor of in het freeze jaar.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) >= " + mjb_start_year
+ " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Nextdate tussen start en freeze jaar.
+ " ELSE ADD_MONTHS(e.nextdate, 12 * e.ins_srtcontrole_periode)" // Nextdate voor het start jaar.
+ " END"
+ " END"
+ " ELSE" // Laatste IS NOT NULL. Er is al een inspectie geweest.
+ " CASE"
+ " WHEN EXTRACT(YEAR FROM e.nextdate) > EXTRACT(YEAR FROM SYSDATE)"
+ " THEN e.nextdate" // Volgende inspectie is in de toekomst.
+ " ELSE TO_DATE('" + mjb_freeze_year + "', 'YYYY')" // Laatst ingeplande inspectie is nog niet uitgevoerd.
+ " END"
+ " END)) vervangingsjaar"
+ " , " + vervangingsjaar + " vervangingsjaar_0"
+ " , " + vervangingsjaar + " vervangingsjaar"
+ " , e.ins_deel_aantal"
+ " , e.ins_srtdeel_eenheid"
+ " , e.ins_srtcontrole_eind"
@@ -613,6 +617,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , comp.ins_srtcontrole_key"
+ " , comp.ins_srtcontrole_level"
+ " , comp.ins_srtcontrole_omschrijving"
+ " , comp.vervangingsjaar_0"
+ " , comp.vervangingsjaar"
+ " , comp.ins_srtcontrole_periode"
+ " , comp.ins_srtcontrole_opmerking"
@@ -653,6 +658,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , ins_srtcontrole_periode"
+ " , ins_srtcontrole_percentage"
+ " , ins_srtcontrole_opmerking"
+ " , vervangingsjaar_0"
+ " , vervangingsjaar"
+ " , hierlevel"
+ " , ins_deel_aantal"
@@ -680,6 +686,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , ins_srtcontrole_periode"
+ " , ins_srtcontrole_percentage"
+ " , ins_srtcontrole_opmerking"
+ " , vervangingsjaar_0"
+ " , vervangingsjaar"
+ " , 1 hierlevel"
+ " , ins_deel_aantal"
@@ -710,6 +717,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , m.ins_srtcontrole_periode"
+ " , m.ins_srtcontrole_percentage"
+ " , m.ins_srtcontrole_opmerking"
+ " , m.vervangingsjaar_0"
+ " , m.vervangingsjaar + m.ins_srtcontrole_periode"
+ " , m.hierlevel + 1"
+ " , m.ins_deel_aantal"
@@ -786,6 +794,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , COALESCE(cy.ins_srtcontroledl_xcp_eind, cy.ins_srtcontrole_eind)"
+ " , g.alg_gebouw_vervaldatum))"
+ " ) vervaljaar"
+ " , vervangingsjaar_0"
+ " , vervangingsjaar"
+ " , ins_srtcontrole_afbouwtijd afbouwtijd"
+ " , bedrag"
@@ -838,12 +847,12 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
+ " , cv.keyColumn"
+ " , cv.ins_srtcontroledl_xcp_key"
+ " , cv.ins_srtcontrole_key"
+ (fulldetails?" , ins.nextcyclusdate (cv.ins_deel_key, cv.ins_srtcontrole_key, cv.ins_scenario_key, 0) org_nexdate_0" // Eerstaankomende inspectie: 1-ste dit jaar of in de toekomst.
:" , NULL org_nexdate_0")
+ " , cv.ins_srtcontrole_periode"
+ " , cv.ins_srtcontrole_opmerking"
+ " , cv.ins_srtcontrole_level"
+ " , cv.vervaljaar"
+ (fulldetails?" , cv.vervangingsjaar_0" // Eerstaankomende inspectie: 1-ste dit jaar of in de toekomst.
:" , NULL vervangingsjaar_0")
+ " , cv.vervangingsjaar"
+ " , cv.afbouwtijd"
+ " , CASE"
@@ -995,7 +1004,7 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
data.insSrtControleKey = oRs("ins_srtcontrole_key").Value;
data.insDeelSrtContrKey = oRs("ins_deelsrtcontrole_key").Value ? oRs("ins_deelsrtcontrole_key").Value : -1;
data.insDeelSrtContrStatus = oRs("ins_deelsrtcontrole_status").Value == null ? -1 : oRs("ins_deelsrtcontrole_status").Value;
data.insNexdate0 = new Date(oRs("org_nexdate_0").Value).getFullYear(); // Eerstaankomende vandaag of in de toekomst.
data.vervangingsjaar_0 = oRs("vervangingsjaar_0").Value; // Eerstaankomende inspectie vandaag of in de toekomst.
data.insCtrControleType = oRs("ctr_controle_type").Value;
data.insScenKey = oRs("ins_scenario_key").Value;
}