diff --git a/APPL/MJB/mjb_search_list.asp b/APPL/MJB/mjb_search_list.asp index 67fa8801e0..24069ab69c 100644 --- a/APPL/MJB/mjb_search_list.asp +++ b/APPL/MJB/mjb_search_list.asp @@ -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; }