BAUS#79594 Implementatie Bausch & Lomb, rapportage geplande taken

svn path=/Customer/trunk/; revision=63022
This commit is contained in:
Suzan Wiegerinck
2023-12-20 10:51:35 +00:00
parent c98da0a1cd
commit d0a01402ec

View File

@@ -644,6 +644,489 @@ AS
AND doc.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key
AND dienst.ins_srtcontrole_key(+) = udr.ins_srtcontrole_key;
CREATE OR REPLACE VIEW BAUS_V_RAP_UDR_TAKEN
AS
SELECT ig.discipline,
ig.soort,
ig.groep,
ig.soortcode,
ig.ins_deel_key,
ig.omschrijving
object,
ig.opmerking,
ig.locatie_omschrijving
locatie,
ig.gebouw,
ig.ruimtenr,
ig.perslid
persoon,
ig.ins_srtcontrole_key,
ig.srtcontrole_omschrijving
taak,
ig.taaksoort,
ig.ins_deelsrtcontrole_key,
ig.ins_deelsrtcontrole_datum_org
orginele_datum,
ig.ins_deelsrtcontrole_plandatum
geplande_uitvoerdatum,
ig.ins_deelsrtcontrole_datum
inspectiedatum,
ig.controlemode_omschrijving,
ig.ins_deelsrtcontrole_opmerking
inspectie_opmerking,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_status_omschr,
deelsrtcontrole_result,
CASE ins_deelsrtcontrole_status
WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'MM')
WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'MM')
WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'MM')
ELSE TO_CHAR (ig.volgendedatum, 'MM')
END
maand,
CASE ins_deelsrtcontrole_status
WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'YYYY')
WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'YYYY')
WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'YYYY')
ELSE TO_CHAR (ig.volgendedatum, 'YYYY')
END
jaar,
CASE ins_deelsrtcontrole_status
WHEN 0 THEN TO_CHAR (ig.volgendedatum, 'YYYY-MM')
WHEN 5 THEN TO_CHAR (ig.volgende_keer, 'YYYY-MM')
WHEN 6 THEN TO_CHAR (ig.volgende_keer, 'YYYY-MM')
ELSE TO_CHAR (ig.volgendedatum, 'YYYY-MM')
END
jaarmaand,
ig.vervaldatum,
CASE ins_deelsrtcontrole_status
WHEN 0 THEN TRUNC (ig.volgendedatum)
WHEN 5 THEN TRUNC (ig.volgende_keer)
WHEN 6 THEN TRUNC (ig.volgende_keer)
ELSE ig.volgendedatum
END
eerstcolgende_actie,
dienst.prs_dienst_omschrijving,
COALESCE (doc.document_vereist, 'Nee')
document_vereist,
COALESCE (doc.document_ontvangen, 'N.v.t.')
document_bijgesloten,
bedrijf.bedrijf,
instructie.instructies,
CASE
WHEN ins_deelsrtcontrole_status = 6
AND TRUNC (ins_deelsrtcontrole_datum_org) <
TRUNC (ins_deelsrtcontrole_datum)
THEN
'Te laat'
WHEN ins_deelsrtcontrole_status = 6
AND TRUNC (ins_deelsrtcontrole_datum_org) >=
TRUNC (ins_deelsrtcontrole_datum)
THEN
'Op tijd'
WHEN ins_deelsrtcontrole_status = 5
AND TRUNC (ins_deelsrtcontrole_datum_org) <
TRUNC (ins_deelsrtcontrole_datum)
THEN
'Te laat'
WHEN ins_deelsrtcontrole_status = 5
AND TRUNC (ins_deelsrtcontrole_datum_org) >=
TRUNC (ins_deelsrtcontrole_datum)
THEN
'Op tijd'
WHEN ins_deelsrtcontrole_status = 0
AND TRUNC (ins_deelsrtcontrole_datum_org) >
TRUNC (SYSDATE)
THEN
'Op tijd'
WHEN ins_deelsrtcontrole_status = 0
AND TRUNC (ins_deelsrtcontrole_datum_org) <=
TRUNC (SYSDATE)
THEN
'Te laat'
END
optijd
FROM (WITH
comps (ins_deel_key,
ins_srtcontrole_key,
ins_deelsrtcontrole_datum,
volgendedatum,
volgende_keer,
discipline,
soort,
groep,
soortcode,
omschrijving,
opmerking,
locatie_omschrijving,
gebouw,
ruimtenr,
srtcontrole_omschrijving,
taaksoort,
ins_deelsrtcontrole_datum_org,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_plandatum,
ins_deelsrtcontrole_status,
ins_deelsrtcontrole_status_omschr,
ins_controlemode_success,
deelsrtcontrole_result,
vervaldatum,
ins_deelsrtcontrole_key)
AS
(SELECT *
FROM (SELECT di.deel_key
ins_deel_key,
xcp.ins_srtcontrole_key,
di.ins_deelsrtcontrole_datum,
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).
CASE
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 (
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,
fac.nextcyclusdatedeel (
di.deel_key,
xcp.ins_srtcontrole_key,
0)
volgende_keer,
discipline,
soort,
groep,
soortcode,
omschrijving,
opmerking,
locatie_omschrijving,
gebouw,
ruimtenr,
srtcontrole_omschrijving,
ctr_discipline_omschrijving
taaksoort,
ins_deelsrtcontrole_datum_org,
controlemode_omschrijving,
ins_deelsrtcontrole_opmerking,
perslid,
ins_deelsrtcontrole_plandatum,
di.ins_deelsrtcontrole_status,
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
lcl.L (
'lcl_ins_controle_afgemeld')
WHEN 6
THEN
lcl.L (
'lcl_ins_controle_afgerond')
END
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
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
resultaat,
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
--- dit zijn de niet geplande taken?
SELECT d.deel_key
ins_deel_key,
xcp.ins_srtcontrole_key,
NULL,
CASE
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 (
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,
fac.nextcyclusdatedeel (
d.deel_key,
xcp.ins_srtcontrole_key,
0)
volgende_keer,
d.discipline,
d.soort,
d.groep,
d.soortcode,
d.omschrijving,
d.opmerking,
d.locatie_omschrijving,
d.gebouw,
d.ruimtenr,
(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,
ins_deelsrtcontrole_status,
lcl.L ('lcl_ins_controlemode_notplaned')
deelsrtcontrole_status,
0
ins_controlemode_success,
''
resultaat,
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))))
SELECT *
FROM comps) ig,
(SELECT sc.ins_srtcontrole_key,
'Ja' document_vereist,
COALESCE (DECODE (kw.ins_kmdeelsrtcontr_waarde, 1, 'Ja'),
'Nee') AS document_ontvangen
FROM ins_srtkenmerk sk,
ins_kenmerk k,
ins_srtcontrole sc,
ins_kmdeelsrtcontr kw
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND k.ins_kenmerk_bewerkniveau = 'D'
AND k.ins_kenmerk_niveau = 'C'
AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key
AND k.ins_kenmerk_verwijder IS NULL
AND sk.ins_srtkenmerk_key = 161
AND kw.ins_kenmerk_key(+) = k.ins_kenmerk_key
AND UPPER (k.ins_kenmerk_omschrijving) =
'DOCUMENT ONTVANGEN') doc,
( SELECT d.ins_deel_key,
LISTAGG (b.prs_bedrijf_naam, CHR (10)) ---- scheidingsteken een enter
WITHIN GROUP (ORDER BY d.ins_deel_key) bedrijf
FROM ins_srtkenmerk sk,
ins_kenmerk k,
ins_kenmerkdeel kd,
ins_deel d,
prs_bedrijf b
WHERE sk.ins_srtkenmerk_key = 41
AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key
AND k.ins_kenmerk_key = kd.ins_kenmerk_key
AND kd.ins_deel_key = d.ins_deel_key
AND k.ins_kenmerk_bewerkniveau = 'D'
AND k.ins_kenmerk_verwijder IS NULL
AND b.prs_bedrijf_key =
fac.safe_to_number (kd.ins_kenmerkdeel_waarde)
GROUP BY d.ins_deel_key) bedrijf,
( SELECT sc.ins_srtcontrole_key,
LISTAGG (
k.ins_kenmerk_omschrijving
|| ' '
|| REPLACE (k.ins_kenmerk_default, '<br/>', CHR (10)),
CHR (10) || CHR (10))
WITHIN GROUP (ORDER BY sc.ins_srtcontrole_key) instructies
FROM ins_srtkenmerk sk, ins_kenmerk k, ins_srtcontrole sc
WHERE k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND k.ins_kenmerk_bewerkniveau = 'D'
AND k.ins_kenmerk_niveau = 'C'
AND sc.ins_srtcontrole_key = k.ins_srtinstallatie_key
AND k.ins_kenmerk_verwijder IS NULL
AND sk.ins_srtkenmerk_key = 61
GROUP BY sc.ins_srtcontrole_key) instructie,
(SELECT c.ins_srtcontrole_key, d.prs_dienst_omschrijving
FROM ins_srtcontrole c, prs_dienst d
WHERE d.prs_dienst_key = c.prs_dienst_key) dienst
WHERE (ig.vervaldatum IS NULL OR ig.vervaldatum > ig.volgendedatum)
AND bedrijf.ins_deel_key(+) = ig.ins_deel_key
AND instructie.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key
AND doc.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key
AND dienst.ins_srtcontrole_key(+) = ig.ins_srtcontrole_key;
------ payload end ------
SET DEFINE OFF