From b258fabab4e7c91b0ef9c903b8e514c2f1813282 Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Mon, 9 Jul 2018 09:52:05 +0000 Subject: [PATCH] FCLT#53547: MJOB: MJOB aanvullingen. svn path=/Website/trunk/; revision=38420 --- APPL/INS/ins.inc | 65 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/APPL/INS/ins.inc b/APPL/INS/ins.inc index 8ef05411a1..dface6e381 100644 --- a/APPL/INS/ins.inc +++ b/APPL/INS/ins.inc @@ -2608,7 +2608,12 @@ ins = {checkAutLevel: // Bepaling in welk jaar er een inspectie is gepland. // 1) In het jaar dat er nog een geaccordeerde/bevroren(2) inspectie actief is. // 2) In het jaar van de plandatum. - // 3) In het jaar van de startdatum. + // 3) De startdatum is ingevuld of de registratiedatum ligt in de toekomst. Er dan geldt het volgende: + // Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object. + // Voor Vervanging(2) of Certificering(3): + // a) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum. + // b) Als de startdatum het verst in de toekomst ligt: Eerste inspectie tonen op de startdatum. + // De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest, zijn de startdatum en registratiedatum niet meer van belang. // 4) Laatste inpspectie is NIET succesvol (laatste IS NOT NULL && laatste_suc IS NULL). // Volgende inspectie is in het freeze jaar. // 5) a) Laatste inspectie is NULL (eerste inspectie moet nog komen) en het is een Controle(1). @@ -2635,8 +2640,52 @@ ins = {checkAutLevel: + " END" + " , COALESCE(c.plandatum, e.plandatum)" // 2) Plandatum. + " , CASE" // 3) 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" + + " WHEN c.laatste IS NULL AND" // Als er al een inspectie is geweest, is de startdatum niet meer van belang. + + " e.ins_srtcontroledl_xcp_startdat IS NOT NULL" // Startdatum is ingevuld en er is nog geen inspectie geweest. + + " THEN" // Startdatum is ingevuld en ligt in het verleden of de toekomst en er is nog geen inspectie geweest. + + " CASE" + + " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM e.ins_deel_aanmaak)" + + " THEN" // Startdatum op of na aanmaakdatum/registratiedatum. + + " CASE" + + " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) < " + mjb_freeze_year + + " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" + + " ELSE e.ins_srtcontroledl_xcp_startdat" + + " END" + + " ELSE" // Aanmaakdatum/Registratiedatum is na de startdatum. + + " CASE" + + " WHEN e.ctr_controle_type = 1" // 1: Controle. + + " THEN" + + " CASE" + + " WHEN EXTRACT(YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_year + + " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" + + " ELSE e.ins_deel_aanmaak" // Registratiedatum. + + " END" + + " ELSE" // 2: Vervanging, 3: Certificering. + + " CASE" + + " WHEN EXTRACT(YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_year + + " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" + + " ELSE ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)" // 1 periode na registratiedatum. + + " END" + + " END" + + " END" + + " WHEN c.laatste IS NULL AND" + + " EXTRACT(YEAR FROM e.ins_deel_aanmaak) > EXTRACT(YEAR FROM SYSDATE)" // Alleen de aanmaakdatum/registratiedatum is ingevuld. + + " THEN" // Aanmaakdatum/Registratiedatum is ingevuld en ligt in de toekomst en er is nog geen inspectie geweest. + + " CASE" + + " WHEN e.ctr_controle_type = 1" // 1: Controle. + + " THEN" + + " CASE" + + " WHEN EXTRACT( YEAR FROM e.ins_deel_aanmaak) < " + mjb_freeze_year + + " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" + + " ELSE e.ins_deel_aanmaak" + + " END" + + " ELSE" // 2: Vervanging, 3: Certificering. + + " CASE" + + " WHEN EXTRACT( YEAR FROM ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)) < " + mjb_freeze_year + + " THEN TO_DATE('" + mjb_freeze_year + "', 'YYYY')" + + " ELSE ADD_MONTHS(e.ins_deel_aanmaak, 12 * e.ins_srtcontrole_periode)" + + " END" + + " END" + " ELSE NULL" + " END" + " , CASE" // 4) Laatste inspectie is NIET succesvol. @@ -2677,7 +2726,7 @@ ins = {checkAutLevel: : " EXTRACT(YEAR FROM c.ins_deelsrtcontrole_freezedate)")) + " vervangingsjaar"; // Eerste inspectie datum bepalen zonder na de plandatum te kijken (orginele inspectie datum). - // Als de registratiedatum in de toekomst ligt en de startdatum eventueel ook dan geldt het volgende: + // De startdatum is ingevuld of de registratiedatum ligt in de toekomst. Er dan geldt het volgende: // Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object. // Voor Vervanging(2) of Certificering(3): // a) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum. @@ -2685,11 +2734,9 @@ ins = {checkAutLevel: // De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest, zijn de startdatum en registratiedatum niet meer van belang. var sql_org_nextdate = " EXTRACT (YEAR FROM COALESCE(CASE" - + " WHEN c.laatste IS NULL AND" // Startdatum of registratiedatum in de toekomst en er is nog geen inspectie geweest. - + " (e.ins_srtcontroledl_xcp_startdat IS NOT NULL AND" - + " (EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) > EXTRACT(YEAR FROM SYSDATE) OR" - + " EXTRACT(YEAR FROM e.ins_deel_aanmaak) > EXTRACT(YEAR FROM SYSDATE)))" - + " THEN" // Startdatum is ingevuld en ligt in de toekomst en er is nog geen inspectie geweest. + + " WHEN c.laatste IS NULL AND" // Startdatum is ingevuld en er is nog geen inspectie geweest. + + " e.ins_srtcontroledl_xcp_startdat IS NOT NULL" + + " THEN" // Startdatum is ingevuld en ligt in het verleden of de toekomst en er is nog geen inspectie geweest. + " CASE" + " WHEN EXTRACT(YEAR FROM e.ins_srtcontroledl_xcp_startdat) >= EXTRACT(YEAR FROM e.ins_deel_aanmaak)" + " THEN" // Startdatum op of na aanmaakdatum/registratiedatum.