FCLT#70361: Management rapportage voor periodieke taken.
svn path=/Database/trunk/; revision=57604
This commit is contained in:
150
CTR/CTR_VIE.SRC
150
CTR/CTR_VIE.SRC
@@ -14,7 +14,7 @@ DEFINIEER_VIEW_AANWEZIG(ctr_discipline, ins_discipline_verwijder,
|
||||
|
||||
CREATE_VIEW(ctr_v_monthly_recurring_tasks, 0)
|
||||
AS
|
||||
-- Inspecties die dit jaar nog uitgevoerd moeten worden.
|
||||
-- Inspecties die dit jaar en volgend jaar nog uitgevoerd moeten worden.
|
||||
SELECT gedeelte,
|
||||
ig.ins_deel_key,
|
||||
ig.ins_srtcontrole_key,
|
||||
@@ -36,13 +36,20 @@ AS
|
||||
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
|
||||
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,
|
||||
@@ -68,19 +75,22 @@ AS
|
||||
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, gestarte of afgeronde).
|
||||
(-- 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) volgendedatum,
|
||||
COALESCE(di.ins_deelsrtcontrole_datum,
|
||||
di.ins_deelsrtcontrole_plandatum,
|
||||
di.ins_deelsrtcontrole_datum_org) volgendedatum,
|
||||
discipline,
|
||||
soort,
|
||||
groep,
|
||||
@@ -98,9 +108,44 @@ AS
|
||||
ins_deelsrtcontrole_opmerking,
|
||||
perslid,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
DECODE(deelsrtcontrole_status,
|
||||
'Voltooid', DECODE(controlemode_omschrijving, 'Goed', 'Goed', 'Fout'),
|
||||
deelsrtcontrole_status) deelsrtcontrole_status,
|
||||
(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,
|
||||
@@ -117,17 +162,16 @@ AS
|
||||
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
|
||||
-- 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
|
||||
ADD_MONTHS(volgendedatum, CASE
|
||||
WHEN m.ins_srtcontrole_eenheid = 3
|
||||
THEN m.ins_srtcontrole_periode
|
||||
ELSE m.ins_srtcontrole_periode * 12
|
||||
END),
|
||||
discipline,
|
||||
@@ -147,26 +191,24 @@ AS
|
||||
NULL ins_deelsrtcontrole_opmerking,
|
||||
NULL perslid,
|
||||
NULL ins_deelsrtcontrole_plandatum,
|
||||
'Niet gepland' deelsrtcontrole_status,
|
||||
-1 ins_deelsrtcontrole_status,
|
||||
-1 ins_controlemode_success,
|
||||
lcl.L('lcl_ins_controlemode_notplaned') deelsrtcontrole_status,
|
||||
vervaldatum,
|
||||
NULL
|
||||
ins_deelsrtcontrole_key
|
||||
NULL ins_deelsrtcontrole_key
|
||||
FROM comps m
|
||||
WHERE ADD_MONTHS(
|
||||
volgendedatum,
|
||||
CASE
|
||||
WHEN m.ins_srtcontrole_eenheid = 3 THEN m.ins_srtcontrole_periode
|
||||
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, 12), 'YYYY'))
|
||||
END) <= TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY'))
|
||||
SELECT *
|
||||
FROM comps
|
||||
WHERE volgendedatum BETWEEN TRUNC(SYSDATE, 'YYYY')
|
||||
AND TRUNC(add_months(SYSDATE, 12), 'YYYY')) ig
|
||||
WHERE vervaldatum IS NULL
|
||||
OR vervaldatum > SYSDATE
|
||||
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 dit jaar zijn uitgevoerd, uitgezonderd de laatste
|
||||
-- 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,
|
||||
@@ -188,15 +230,56 @@ AS
|
||||
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,
|
||||
(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
|
||||
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
|
||||
@@ -204,8 +287,8 @@ AS
|
||||
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(SYSDATE, 'YYYY')
|
||||
AND TRUNC(add_months(SYSDATE, 12), 'YYYY')
|
||||
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
|
||||
@@ -215,6 +298,7 @@ AS
|
||||
ins_deel_key,
|
||||
ins_srtcontrole_key,
|
||||
ins_deelsrtcontrole_datum,
|
||||
jaar,
|
||||
maand;
|
||||
|
||||
REGISTERRUN('$Id$')
|
||||
|
||||
Reference in New Issue
Block a user