223 lines
9.9 KiB
Plaintext
223 lines
9.9 KiB
Plaintext
#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 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,
|
|
ig.deelsrtcontrole_status,
|
|
TO_CHAR(ig.volgendedatum, 'MM') maand,
|
|
ig.volgendedatum,
|
|
ig.ins_srtcontrole_eenheid,
|
|
ig.ins_srtcontrole_periode,
|
|
ig.vervaldatum,
|
|
ig.ins_deelsrtcontrole_key
|
|
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,
|
|
deelsrtcontrole_status,
|
|
vervaldatum,
|
|
ins_deelsrtcontrole_key)
|
|
AS
|
|
(
|
|
-- 1a) Eerste deel bepaald de laatste inspectie (geplande, gestarte of afgeronde).
|
|
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) 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,
|
|
DECODE(deelsrtcontrole_status,
|
|
'Voltooid', DECODE(controlemode_omschrijving, 'Goed', 'Goed', 'Fout'),
|
|
deelsrtcontrole_status) 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
|
|
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,
|
|
'Niet gepland' 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) <=
|
|
TO_DATE(TO_CHAR(add_months(SYSDATE, 12), 'yyyy') || '0101', 'yyyymmdd'))
|
|
SELECT *
|
|
FROM comps
|
|
WHERE volgendedatum BETWEEN TO_DATE(TO_CHAR(SYSDATE, 'yyyy') || '0101', 'yyyymmdd')
|
|
AND TO_DATE(TO_CHAR(add_months(SYSDATE, 12), 'yyyy') || '0101', 'yyyymmdd')) ig
|
|
WHERE vervaldatum IS NULL
|
|
OR vervaldatum > SYSDATE
|
|
UNION ALL
|
|
-- 2) Inspecties die 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,
|
|
DECODE(di.deelsrtcontrole_status,
|
|
'Voltooid', DECODE(di.controlemode_omschrijving, 'Goed', 'Goed', 'Fout'),
|
|
di.deelsrtcontrole_status) deelsrtcontrole_status,
|
|
TO_CHAR(di.ins_deelsrtcontrole_datum, 'MM') maand,
|
|
di.ins_deelsrtcontrole_datum volgendedatum,
|
|
sc.ins_srtcontrole_eenheid,
|
|
sc.ins_srtcontrole_periode,
|
|
di.vervaldatum,
|
|
di.ins_deelsrtcontrole_key
|
|
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 TO_DATE(TO_CHAR(SYSDATE, 'yyyy') || '0101', 'yyyymmdd')
|
|
AND TO_DATE(TO_CHAR(add_months(SYSDATE, 12), 'yyyy') || '0101', 'yyyymmdd')
|
|
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,
|
|
maand;
|
|
|
|
REGISTERRUN('$Id$')
|
|
|
|
#endif // CTR
|