Files
Database/CTR/CTR_VIE.SRC

566 lines
35 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_allsrtinstallatie, 0)
(
niveau,
ctr_srtinstallatie_key,
discipline_oms,
srtcontrole_oms,
ins_discipline_key,
ins_srtcontrole_key
)
AS
SELECT 'E',
cd.ins_discipline_key,
cd.ins_discipline_omschrijving,
NULL ins_srtcontrole_omschrijving,
cd.ins_discipline_key,
NULL ins_srtcontrole_key
FROM ctr_discipline cd
UNION
SELECT 'C',
isc.ins_srtcontrole_key,
cd.ins_discipline_omschrijving,
isc.ins_srtcontrole_omschrijving,
cd.ins_discipline_key,
isc.ins_srtcontrole_key
FROM ctr_discipline cd,
ins_srtcontrole isc
WHERE cd.ins_discipline_key = isc.ctr_discipline_key
UNION
SELECT 'T' niveau,
NULL ctr_srtinstallatie_key,
NULL discipline_oms,
NULL srtcontrole_oms,
NULL ins_discipline_key,
NULL ins_srtcontrole_key
FROM DUAL;
CREATE_VIEW(ctr_v_monthly_recurring_tasks, 0)
AS
-- Inspecties die dit jaar en volgend jaar nog uitgevoerd moeten worden.
SELECT ig.discipline,
ig.soort,
ig.groep,
ig.soortcode,
ig.omschrijving object,
ig.opmerking,
ig.locatie_omschrijving locatie,
ig.gebouw,
ig.ruimtenr,
ig.perslid persoon,
ig.aantal,
ig.srtcontrole_omschrijving taak,
ig.ins_srtcontrole_eenheid eenheid,
ig.ins_srtcontrole_periode periode,
ig.taaksoort,
ig.ins_deelsrtcontrole_datum inspectiedatum,
ig.controlemode_omschrijving taakafhandeling,
ig.ins_deelsrtcontrole_opmerking inspectie_opmerking,
ins_deelsrtcontrole_status inspectie_code,
ig.deelsrtcontrole_status inspectie_status,
ins_controlemode_success succesvol,
TO_CHAR(ig.volgendedatum, 'MM') maand,
TO_CHAR(ig.volgendedatum, 'YYYY') jaar,
TO_CHAR(ig.volgendedatum, 'YYYY-MM') jaarmaand,
ig.ins_deelsrtcontrole_datum_org orgdatum,
ig.ins_deelsrtcontrole_plandatum plandatum,
ig.volgendedatum,
ig.vervaldatum,
ig.ins_deel_key deel_key,
ig.ins_srtcontrole_key,
ig.ins_deelsrtcontrole_key
FROM (WITH
comps(ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
ins_srtcontrole_mode,
ins_srtcontrole_eenheid,
ins_srtcontrole_periode,
ins_srtcontrole_bits,
volgendedatum,
discipline,
soort,
groep,
soortcode,
omschrijving,
opmerking,
locatie_omschrijving,
gebouw,
ruimtenr,
aantal,
srtcontrole_omschrijving,
taaksoort,
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
(SELECT *
FROM (
-- 1a) Dit deel bepaald de laatste inspectie (geplande(0), gestarte(2), afgemeld(5) of verwerkt(6)),
-- inclusief de allereerste inspectie die nog niet gereed gemeld is.
SELECT di.deel_key ins_deel_key,
xcp.ins_srtcontrole_key,
di.ins_deelsrtcontrole_datum,
xcp.ins_srtcontrole_mode,
xcp.ins_srtcontrole_eenheid,
xcp.ins_srtcontrole_periode,
xcp.ins_srtcontrole_bits,
COALESCE(di.ins_deelsrtcontrole_plandatum,
CASE
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
AND di.ins_deelsrtcontrole_datum_org IS NULL
THEN -- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL).
-- Periodieke taken:
-- De startdatum is MAX(startdatum, aanmaakdatum/registratiedatum) en heeft altijd een waarde (ins_deel_aanmaak is altijd gevuld).
-- Er is nog geen inspectie geweest en de startdatum is ingevuld of de registratiedatum ligt in de toekomst.
-- Er geldt dan het volgende:
-- Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object.
-- Voor Vervanging(2) of Certificering(3):
-- a) Als de startdatum het verst ligt: Eerste inspectie tonen op de startdatum.
-- b) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum.
-- De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest,
-- zijn de startdatum en registratiedatum niet meer van belang.
CASE
-- Er geldt dat (ctr_ismjob = 0), dus de eerste when is toch niet geldig.
--WHEN di.ctr_ismjob = 1
--THEN
-- ins_deelsrtcontrole_freezedate
WHEN xcp.ctr_controle_type = 1
THEN -- Controle(1).
CASE
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
THEN
xcp.ins_srtcontroledl_xcp_startdat
ELSE
xcp.ins_deel_aanmaak
END
ELSE -- Vervanging(2), Certificering(3).
CASE
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
THEN
xcp.ins_srtcontroledl_xcp_startdat
ELSE
fac.nextcyclusdate(
-- er is nog geen inspectie geweest, dus de laatste inspectie is null
COALESCE(
NULL,
GREATEST(
COALESCE(xcp.ins_srtcontroledl_xcp_startdat,
xcp.ins_deel_aanmaak),
COALESCE(xcp.ins_deel_aanmaak,
xcp.ins_srtcontroledl_xcp_startdat))),
xcp.ins_srtcontrole_mode,
xcp.ins_srtcontrole_eenheid,
xcp.ins_srtcontrole_periode,
xcp.ins_srtcontrole_bits,
1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum.
0) -- Er geldt dat (ctr_ismjob = 0)
END
END
WHEN di.ins_deelsrtcontrole_status IN (2, 3)
AND di.ins_deelsrtcontrole_datum_org IS NOT NULL
THEN -- Gestart(2) en niet de allereerste inspectie.
di.ins_deelsrtcontrole_datum_org
ELSE -- Status is Gereed gemeld(5) of Voltooid(6).
CASE xcp.ins_srtcontrole_mode
WHEN 0
THEN -- Moment mode: ga uit van de originele berekende inspectiedatum.
di.ins_deelsrtcontrole_datum_org
ELSE -- Interval mode: ga uit van de werkelijke inspectiedatum.
di.ins_deelsrtcontrole_datum
END
END) volgendedatum,
discipline,
soort,
groep,
soortcode,
omschrijving,
opmerking,
locatie_omschrijving,
gebouw,
ruimtenr,
aantal,
srtcontrole_omschrijving,
ctr_discipline_omschrijving taaksoort,
ins_deelsrtcontrole_datum_org,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_plandatum,
di.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 di.ins_deelsrtcontrole_status
WHEN 0
THEN
lcl.L('lcl_ins_controle_pending')
WHEN 2
THEN
lcl.L('lcl_ins_controle_gestart')
WHEN 3
THEN
lcl.L('lcl_ins_controle_ter_uitvoer')
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 di.deel_key = xcp.ins_deel_key
AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 0
AND xcp.ins_srtcontrole_eenheid > 2
AND xcp.ins_scenario_key = 1
AND xcp.ins_srtcontrole_periode > 0
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) Dit deel bepaald de allereerste inspectie van een taak die nog niet ingepland of gestart is. Er is dus nog geen ins_deelsrtcontrole record van
SELECT d.deel_key ins_deel_key,
xcp.ins_srtcontrole_key,
NULL,
xcp.ins_srtcontrole_mode,
xcp.ins_srtcontrole_eenheid,
xcp.ins_srtcontrole_periode,
xcp.ins_srtcontrole_bits,
-- Gestart(2) en de allereerste inspectie (ins_deelsrtcontrole_datum_org is NULL).
-- Periodieke taken:
-- De startdatum is MAX(startdatum, aanmaakdatum/registratiedatum) en heeft altijd een waarde (ins_deel_aanmaak is altijd gevuld).
-- Er is nog geen inspectie geweest en de startdatum is ingevuld of de registratiedatum ligt in de toekomst.
-- Er geldt dan het volgende:
-- Voor Controle(1): Eerste inspectie tonen op MAX(startdatum, registratiedatum) van het object.
-- Voor Vervanging(2) of Certificering(3):
-- a) Als de startdatum het verst ligt: Eerste inspectie tonen op de startdatum.
-- b) Als registratiedatum het verst in de toekomst ligt: Eerste inspectie tonen op 1 periode verder dan de registratiedatum.
-- De aanmaakdatum/Registratiedatum is altijd ingevuld en als er al een inspectie is geweest,
-- zijn de startdatum en registratiedatum niet meer van belang.
CASE
-- Er geldt dat (ctr_ismjob = 0), dus de eerste when is toch niet geldig.
--WHEN xcp.ctr_ismjob = 1
--THEN
-- xcp.ins_deelsrtcontrole_freezedate
WHEN xcp.ctr_controle_type = 1
THEN -- Controle(1).
CASE
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
THEN
xcp.ins_srtcontroledl_xcp_startdat
ELSE
xcp.ins_deel_aanmaak
END
ELSE -- Vervanging(2), Certificering(3).
CASE
WHEN xcp.ins_srtcontroledl_xcp_startdat IS NOT NULL
AND xcp.ins_srtcontroledl_xcp_startdat >= xcp.ins_deel_aanmaak
THEN
xcp.ins_srtcontroledl_xcp_startdat
ELSE
fac.nextcyclusdate(
-- er is nog geen inspectie geweest, dus de laatste inspectie is null
COALESCE(
NULL,
GREATEST(
COALESCE(xcp.ins_srtcontroledl_xcp_startdat,
xcp.ins_deel_aanmaak),
COALESCE(xcp.ins_deel_aanmaak,
xcp.ins_srtcontroledl_xcp_startdat))),
xcp.ins_srtcontrole_mode,
xcp.ins_srtcontrole_eenheid,
xcp.ins_srtcontrole_periode,
xcp.ins_srtcontrole_bits,
1, -- steps. De eerste inspectie is nog niet geweest dus 1 periode verder dan startdatum/aanmaakdatum.
0) -- Er geldt dat (ctr_ismjob = 0)
END
END
volgendedatum,
d.discipline,
d.soort,
d.groep,
d.soortcode,
d.omschrijving,
d.opmerking,
d.locatie_omschrijving,
d.gebouw,
d.ruimtenr,
d.aantal,
(SELECT isc.ins_srtcontrole_omschrijving
FROM ins_srtcontrole isc
WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key) srtcontrole_omschrijving,
(SELECT cd.ins_discipline_omschrijving
FROM ctr_discipline cd,
ins_srtcontrole isc
WHERE isc.ins_srtcontrole_key = xcp.ins_srtcontrole_key
AND isc.ctr_discipline_key = cd.ins_discipline_key) taaksoort,
ins_deelsrtcontrole_datum_org,
NULL controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
NULL perslid,
ins_deelsrtcontrole_plandatum,
-1 ins_deelsrtcontrole_status,
-1 ins_controlemode_success,
lcl.L('lcl_ins_controlemode_notplaned') deelsrtcontrole_status,
xcp.ins_srtcontrole_eind vervaldatum,
NULL ins_deelsrtcontrole_key
FROM ins_v_udr_deel d,
ins_deelsrtcontrole idsc,
ins_v_defined_inspect_xcp xcp,
ctr_disc_params dp
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key(+)
AND xcp.ins_deel_key = idsc.ins_deel_key(+)
AND xcp.ins_scenario_key = idsc.ins_scenario_key(+)
AND xcp.ins_deel_key = d.deel_key
AND xcp.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 0
AND xcp.ins_srtcontrole_eenheid > 2
AND xcp.ins_scenario_key = 1
AND idsc.ins_deel_key IS NULL
AND idsc.ins_srtcontrole_key IS NULL
AND xcp.ins_srtcontrole_periode > 0
AND (idsc.ins_deelsrtcontrole_key IS NULL
OR idsc.ins_deelsrtcontrole_key =
(SELECT MAX(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole id2
WHERE id2.ins_deel_key = d.deel_key
AND id2.ins_srtcontrole_key = xcp.ins_srtcontrole_key
AND id2.ins_scenario_key = 1)))
UNION ALL
-- 1c) Dit deel bepaalt/berekent de toekomstige inspecties van dit jaar en volgend jaar.
SELECT m.ins_deel_key,
m.ins_srtcontrole_key,
NULL ins_deelsrtcontrole_datum,
m.ins_srtcontrole_mode,
m.ins_srtcontrole_eenheid,
m.ins_srtcontrole_periode,
m.ins_srtcontrole_bits,
fac.nextcyclusdate(m.volgendedatum,
m.ins_srtcontrole_mode,
m.ins_srtcontrole_eenheid,
m.ins_srtcontrole_periode,
m.ins_srtcontrole_bits,
1,
0) volgendedatum,
m.discipline,
m.soort,
m.groep,
m.soortcode,
m.omschrijving,
m.opmerking,
m.locatie_omschrijving,
m.gebouw,
m.ruimtenr,
m.aantal,
m.srtcontrole_omschrijving,
m.taaksoort,
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,
m.vervaldatum,
NULL ins_deelsrtcontrole_key
FROM comps m
WHERE TRUNC(fac.nextcyclusdate(m.volgendedatum,
m.ins_srtcontrole_mode,
m.ins_srtcontrole_eenheid,
m.ins_srtcontrole_periode,
m.ins_srtcontrole_bits,
1,
0), 'YYYY') <=
TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY'))
SELECT *
FROM comps) ig
WHERE (ig.vervaldatum IS NULL
OR ig.vervaldatum > ig.volgendedatum)
AND ig.volgendedatum BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -12), 'YYYY') AND TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY')
AND TRUNC(ig.volgendedatum, 'YYYY') < TRUNC(ADD_MONTHS(SYSDATE, 24), 'YYYY') -- 1 januari in het jaar dat 2 jaar verder ligt niet meetellen.
AND TO_CHAR(ig.volgendedatum, 'YYYY-MM') NOT IN (SELECT TO_CHAR(di.ins_deelsrtcontrole_datum, 'YYYY-MM') jaarmaand -- Toekomstige inspecties mogen niet al zijn uitgevoerd. Ofwel 1c mag geen 2 bevatten in dezelfde maand.
FROM ins_v_udr_deelinspect di,
ins_srtcontrole sc,
ctr_disc_params dp
WHERE di.ins_srtcontrole_key = sc.ins_srtcontrole_key
AND sc.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 0
AND sc.ins_srtcontrole_eenheid > 2
AND di.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) -- Inspecties die zijn uitgevoerd, uitgezonderd de laatste (2), want die zitten onder 1a.
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)
AND di.deel_key = ig.ins_deel_key
AND di.ins_srtcontrole_key = ig.ins_srtcontrole_key)
UNION ALL
-- 2) Inspecties die vorig jaar en dit jaar zijn uitgevoerd, uitgezonderd de laatste.
SELECT di.discipline,
di.soort,
di.groep,
di.soortcode,
di.omschrijving object,
di.opmerking,
di.locatie_omschrijving locatie,
di.gebouw,
di.ruimtenr,
di.perslid persoon,
di.aantal,
di.srtcontrole_omschrijving taak,
sc.ins_srtcontrole_eenheid eenheid,
sc.ins_srtcontrole_periode periode,
di.ctr_discipline_omschrijving taaksoort,
di.ins_deelsrtcontrole_datum inspectiedatum,
di.controlemode_omschrijving taakafhandeling,
di.ins_deelsrtcontrole_opmerking inspectie_opmerking,
(SELECT ins_deelsrtcontrole_status
FROM ins_deelsrtcontrole
WHERE ins_deelsrtcontrole_key = di.ins_deelsrtcontrole_key)
inspectie_code,
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 3
THEN
lcl.L('lcl_ins_controle_ter_uitvoer')
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 inspectie_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,
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_org orgdatum,
di.ins_deelsrtcontrole_plandatum plandatum,
di.ins_deelsrtcontrole_datum volgendedatum,
di.vervaldatum,
di.deel_key,
sc.ins_srtcontrole_key,
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 sc.ctr_discipline_key = dp.ctr_ins_discipline_key
AND dp.ctr_disc_params_ismjob = 0
AND sc.ins_srtcontrole_eenheid > 2
AND di.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);
CREATE_VIEW(ctr_v_monthly_recurring_tasksy, 0) // alleen huidige jaar
AS
SELECT *
FROM ctr_v_monthly_recurring_tasks
WHERE jaar = TO_CHAR (SYSDATE, 'YYYY');
REGISTERRUN('$Id$')
#endif // CTR