#ifdef CTR /* * $Revision$ * $Id$ */ CREATE_VIEW(ctr_discipline, 0) AS SELECT * FROM ins_tab_discipline WHERE ins_discipline_module = 'CTR'; DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder, ctr_v_aanwezigdiscipline, 0); CREATE_VIEW(ctr_v_monthly_recurring_tasks, 0) AS -- Inspecties die dit jaar en volgend jaar nog uitgevoerd moeten worden. SELECT gedeelte, ig.ins_deel_key, ig.ins_srtcontrole_key, ig.discipline, ig.soort, ig.groep, ig.soortcode, ig.omschrijving, ig.opmerking, ig.locatie_omschrijving, ig.gebouw, ig.ruimtenr, ig.aantal, ig.srtcontrole_omschrijving, ig.ins_discipline_omschrijving, ig.ins_deelsrtcontrole_datum, ig.controlemode_omschrijving, ig.ins_deelsrtcontrole_opmerking, ig.perslid, ig.ins_deelsrtcontrole_datum_org, ig.ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_status, ins_controlemode_success, ig.deelsrtcontrole_status, TO_CHAR(ig.volgendedatum, 'MM') maand, TO_CHAR(ig.volgendedatum, 'YYYY') jaar, TO_CHAR(ig.volgendedatum, 'YYYY-MM') jaarmaand, ig.volgendedatum, ig.ins_srtcontrole_eenheid, ig.ins_srtcontrole_periode, ig.vervaldatum, ig.ins_deelsrtcontrole_key, TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'YYYY') lastyear, TO_CHAR(SYSDATE, 'YYYY') thisyear, TO_CHAR(ADD_MONTHS(SYSDATE, 12), 'YYYY') nextyear FROM (WITH comps(gedeelte, ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum, ins_srtcontrole_eenheid, ins_srtcontrole_periode, volgendedatum, discipline, soort, groep, soortcode, omschrijving, opmerking, locatie_omschrijving, gebouw, ruimtenr, aantal, srtcontrole_omschrijving, ins_discipline_omschrijving, ins_deelsrtcontrole_datum_org, controlemode_omschrijving, ins_deelsrtcontrole_opmerking, perslid, ins_deelsrtcontrole_plandatum, ins_deelsrtcontrole_status, ins_controlemode_success, deelsrtcontrole_status, vervaldatum, ins_deelsrtcontrole_key) AS (-- 1a) Eerste deel bepaald de laatste inspectie (geplande(0), gestarte(2), afgemeld(5) of verwerkt(6)). SELECT '1a' gedeelte, di.deel_key ins_deel_key, xcp.ins_srtcontrole_key, di.ins_deelsrtcontrole_datum, xcp.ins_srtcontrole_eenheid, xcp.ins_srtcontrole_periode, COALESCE(di.ins_deelsrtcontrole_datum, di.ins_deelsrtcontrole_plandatum, di.ins_deelsrtcontrole_datum_org) volgendedatum, discipline, soort, groep, soortcode, omschrijving, opmerking, locatie_omschrijving, gebouw, ruimtenr, aantal, srtcontrole_omschrijving, ctr_discipline_omschrijving ins_discipline_omschrijving, ins_deelsrtcontrole_datum_org, controlemode_omschrijving, ins_deelsrtcontrole_opmerking, perslid, ins_deelsrtcontrole_plandatum, (SELECT ins_deelsrtcontrole_status FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key) ins_deelsrtcontrole_status, COALESCE((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT di2.ins_controlemode_key FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)), -1) ins_controlemode_success, CASE (SELECT ins_deelsrtcontrole_status FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key) WHEN 0 THEN lcl.L('lcl_ins_controle_pending') WHEN 2 THEN lcl.L('lcl_ins_controle_gestart') WHEN 5 THEN CASE WHEN ((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT di2.ins_controlemode_key FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) = 1) THEN lcl.L('lcl_ins_controlemode_approved') ELSE lcl.L('lcl_ins_controlemode_deprecated') END WHEN 6 THEN CASE WHEN ((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT ins_controlemode_key FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) = 1) THEN lcl.L('lcl_ins_controlemode_approved') ELSE lcl.L('lcl_ins_controlemode_deprecated') END END deelsrtcontrole_status, xcp.ins_srtcontrole_eind vervaldatum, di.ins_deelsrtcontrole_key FROM ins_v_udr_deelinspect di, ins_v_defined_inspect_xcp xcp, ctr_disc_params dp WHERE di.ins_srtcontrole_key = xcp.ins_srtcontrole_key AND ctr_discipline_key = ctr_ins_discipline_key AND dp.ctr_disc_params_ismjob = 0 AND xcp.ins_srtcontrole_eenheid > 2 AND xcp.ins_scenario_key = 1 AND di.ins_deelsrtcontrole_key = (SELECT MAX(ins_deelsrtcontrole_key) FROM ins_deelsrtcontrole id2 WHERE id2.ins_deel_key = di.deel_key AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key AND id2.ins_scenario_key = 1) UNION ALL -- 1b) Tweede deel bepaalt/berekent de toekomstige inspecties van dit jaar en volgend jaar. SELECT '1b' gedeelte, m.ins_deel_key, m.ins_srtcontrole_key, NULL ins_deelsrtcontrole_datum, m.ins_srtcontrole_eenheid, m.ins_srtcontrole_periode, ADD_MONTHS(volgendedatum, CASE WHEN m.ins_srtcontrole_eenheid = 3 THEN m.ins_srtcontrole_periode ELSE m.ins_srtcontrole_periode * 12 END), discipline, soort, groep, soortcode, omschrijving, opmerking, locatie_omschrijving, gebouw, ruimtenr, aantal, srtcontrole_omschrijving, ins_discipline_omschrijving, NULL ins_deelsrtcontrole_datum_org, NULL controlemode_omschrijving, NULL ins_deelsrtcontrole_opmerking, NULL perslid, NULL ins_deelsrtcontrole_plandatum, -1 ins_deelsrtcontrole_status, -1 ins_controlemode_success, lcl.L('lcl_ins_controlemode_notplaned') deelsrtcontrole_status, vervaldatum, NULL ins_deelsrtcontrole_key FROM comps m WHERE ADD_MONTHS(volgendedatum, CASE WHEN m.ins_srtcontrole_eenheid = 3 THEN m.ins_srtcontrole_periode ELSE m.ins_srtcontrole_periode * 12 END) <= TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')) SELECT * FROM comps WHERE volgendedatum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY') AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')) ig WHERE (vervaldatum IS NULL OR vervaldatum > volgendedatum) UNION ALL -- 2) Inspecties die vorig jaar en dit jaar zijn uitgevoerd, uitgezonderd de laatste. SELECT '2' gedeelte, di.deel_key ins_deel_key, sc.ins_srtcontrole_key, di.discipline, di.soort, di.groep, di.soortcode, di.omschrijving, di.opmerking, di.locatie_omschrijving, di.gebouw, di.ruimtenr, di.aantal, di.srtcontrole_omschrijving, di.ctr_discipline_omschrijving, di.ins_deelsrtcontrole_datum, di.controlemode_omschrijving, di.ins_deelsrtcontrole_opmerking, di.perslid, di.ins_deelsrtcontrole_datum_org, di.ins_deelsrtcontrole_plandatum, (SELECT ins_deelsrtcontrole_status FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key) ins_deelsrtcontrole_status, COALESCE((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT di2.ins_controlemode_key FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)), -1) ins_controlemode_success, CASE (SELECT di2.ins_deelsrtcontrole_status FROM ins_deelsrtcontrole di2 WHERE di2.ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key) WHEN 0 THEN lcl.L('lcl_ins_controle_pending') WHEN 2 THEN lcl.L('lcl_ins_controle_gestart') WHEN 5 THEN CASE WHEN ((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT ins_controlemode_key FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) = 1) THEN lcl.L('lcl_ins_controlemode_approved') ELSE lcl.L('lcl_ins_controlemode_deprecated') END WHEN 6 THEN CASE WHEN ((SELECT icm.ins_controlemode_success FROM ins_controlemode icm WHERE icm.ins_controlemode_key = (SELECT ins_controlemode_key FROM ins_deelsrtcontrole WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)) = 1) THEN lcl.L('lcl_ins_controlemode_approved') ELSE lcl.L('lcl_ins_controlemode_deprecated') END END deelsrtcontrole_status, TO_CHAR(di.ins_deelsrtcontrole_datum, 'MM') maand, TO_CHAR(di.ins_deelsrtcontrole_datum, 'YYYY') jaar, TO_CHAR(di.ins_deelsrtcontrole_datum, 'YYYY-MM') jaarmaand, di.ins_deelsrtcontrole_datum volgendedatum, sc.ins_srtcontrole_eenheid, sc.ins_srtcontrole_periode, di.vervaldatum, di.ins_deelsrtcontrole_key, TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'YYYY') lastyear, TO_CHAR(SYSDATE, 'YYYY') thisyear, TO_CHAR(ADD_MONTHS(SYSDATE, 12), 'YYYY') nextyear FROM ins_v_udr_deelinspect di, ins_srtcontrole sc, ctr_disc_params dp WHERE di.ins_srtcontrole_key = sc.ins_srtcontrole_key AND ctr_discipline_key = ctr_ins_discipline_key AND ctr_disc_params_ismjob = 0 AND ins_srtcontrole_eenheid > 2 AND ins_deelsrtcontrole_datum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY') AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY') AND di.ins_deelsrtcontrole_key NOT IN (SELECT MAX(ins_deelsrtcontrole_key) FROM ins_deelsrtcontrole id2 WHERE id2.ins_deel_key = di.deel_key AND id2.ins_srtcontrole_key = di.ins_srtcontrole_key AND id2.ins_scenario_key = 1) ORDER BY ins_deel_key, ins_srtcontrole_key, ins_deelsrtcontrole_datum, jaar, maand; REGISTERRUN('$Id$') #endif // CTR