FCLT#70361: Management rapportage voor periodieke taken.
svn path=/Database/trunk/; revision=57488
This commit is contained in:
203
CTR/CTR_VIE.SRC
203
CTR/CTR_VIE.SRC
@@ -12,6 +12,209 @@ AS
|
||||
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('20230101', 'yyyymmdd'))
|
||||
SELECT *
|
||||
FROM comps
|
||||
WHERE volgendedatum BETWEEN TO_DATE('20220101', 'yyyymmdd') AND TO_DATE('20230101', 'yyyymmdd')) ig
|
||||
WHERE vervaldatum IS NULL
|
||||
OR vervaldatum > SYSDATE --TO_DATE('20220101', 'yyyymmdd') --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('20220101', 'yyyymmdd') AND TO_DATE('20230101', '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
|
||||
|
||||
Reference in New Issue
Block a user