FZKH#87266 -- Implementatie - Notificatie MT Taken

svn path=/Customer/trunk/; revision=70431
This commit is contained in:
Norbert Wassink
2025-09-28 11:56:35 +00:00
parent fdbfdefe3a
commit 80b87b0501

View File

@@ -3777,23 +3777,24 @@ BEGIN
v_aanduiding,
'Taak niet toegevoegd');
END;
END;-- v_aanduiding:='Uitzonderingstaak niet gevonden';
-- v_count:=0;
-- SELECT count(*)
-- INTO v_count
-- from ins_srtcontroledl_xcp isx
-- WHERE isx.ins_srtcontrole_key=v_srtcontrole_key
-- AND ins_deel_key=v_ins_deel_key;
END;
v_aanduiding:='Uitzonderingstaak niet gevonden';
v_count:=0;
SELECT count(*)
INTO v_count
from ins_srtcontroledl_xcp isx
WHERE isx.ins_srtcontrole_key=v_srtcontrole_key
AND ins_deel_key=v_ins_deel_key;
-- IF v_count=0
-- THEN
-- INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
-- ins_srtcontrole_key,
-- ins_srtcontroledl_xcp_startdat)
-- VALUES (v_ins_deel_key,
-- v_srtcontrole_key,
-- fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY'));
-- END IF;
IF v_count=0
THEN
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
ins_srtcontrole_key,
ins_srtcontroledl_xcp_startdat)
VALUES (v_ins_deel_key,
v_srtcontrole_key,
fac.safe_to_date(c.ctr_onderhoud_datum,'DD-MM-YYYY'));
END IF;
-- Gaan we nu de srtcontrole die niet gelden voor dit asset een xcp record aanmaken met einddatum
@@ -3809,9 +3810,11 @@ BEGIN
THEN
INSERT INTO ins_srtcontroledl_xcp (ins_deel_key,
ins_srtcontrole_key,
ins_srtcontroledl_xcp_periode,
ins_srtcontroledl_xcp_eind)
VALUES (v_ins_deel_key,
c2.ins_srtcontrole_key,
0,
fac.safe_to_date('31-12-2024','DD-MM-YYYY'));
END IF;
END LOOP;
@@ -4638,44 +4641,58 @@ AS
-- Object overzicjt per afdefling
-- Alleen actieve en niet vervallen objecten.
CREATE OR REPLACE VIEW FZKH_V_MT_OBJECT_AFDELING
(
fclt_3d_afdeling_key,
ins_deel_key,
ins_deel_omschrijving,
ins_deel_opmerking,
prs_afdelin_naam,
ins_deel_serienummer,
ins_deel_opmerking,
prs_afdeling_omschrijving,
ins_srt_controle,
volgende_datum_onderhoud,
installatie_datum
installatie_datum,
ins_deel_image
)
AS
SELECT pa.PRS_AFDELING_key,
SELECT pa.prs_afdeling_key,
iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
pa.PRS_AFDELING_NAAM,
pa.PRS_AFDELING_OMSCHRIJVING,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
CASE WHEN ids.INS_DEELSRTCONTROLE_PLANDATUM=NULL
iv.ins_deel_omschrijving,
(SELECT ikd.ins_kenmerkdeel_waarde
from ins_kenmerkdeel ikd, ins_kenmerk ik
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
AND ikd.ins_deel_key=iv.ins_deel_key
AND ik.ins_kenmerk_verwijder IS NULL
AND ikd.ins_kenmerkdeel_verwijder IS NULL
AND ik.ins_kenmerk_code='SERIENUMMER') serienummer,
iv.ins_deel_opmerking,
pa.prs_afdeling_omschrijving,
isc.ins_srtcontrole_omschrijving,
CASE WHEN ids.ins_deelsrtcontrole_plandatum=NULL
THEN
TO_CHAR(ins.nextcyclusdate(iv.ins_deel_key,isc.INS_SRTCONTROLE_key,1),'DD-MM-YYYY')
ELSE
TO_CHAR( ids.INS_DEELSRTCONTROLE_PLANDATUM,'DD-MM-YYYY')
END
volgende_datum_onderhoud,
(SELECT ikd.INS_KENMERKDEEL_WAARDE
from INS_KENMERKDEEL ikd, ins_kenmerk ik
WHERE ikd.INS_KENMERK_KEY = ik.INS_KENMERK_KEY
AND ikd.INS_DEEL_KEY=iv.ins_deel_key
AND ik.INS_KENMERK_CODE='INSTAL_DATUM') installate_datum
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc, prs_afdeling pa
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
(SELECT ikd.ins_kenmerkdeel_waarde
from ins_kenmerkdeel ikd, ins_kenmerk ik
WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key
AND ikd.ins_deel_key=iv.ins_deel_key
AND ik.ins_kenmerk_verwijder IS NULL
AND ikd.ins_kenmerkdeel_verwijder IS NULL
AND ik.ins_kenmerk_code='INSTAL_DATUM') installate_datum,
i.ins_deel_image
FROM ins_v_deel_gegevens iv, ins_deel i, ins_deelsrtcontrole ids, ins_srtcontrole isc, prs_afdeling pa
WHERE UPPER (iv.ins_discipline_omschrijving) =
UPPER ('Medische Techniek')
AND iv.INS_DEEL_KEY = ids.INS_DEEL_KEY(+)
AND isc.INS_SRTCONTROLE_KEY(+) = ids.INS_SRTCONTROLE_KEY
AND iv.PRS_AFDELING_key=pa.PRS_AFDELING_key;
AND iv.ins_deel_key=i.ins_deel_key
AND i.ins_deel_actief=1
AND (i.ins_deel_vervaldatum IS NULL OR i.ins_deel_vervaldatum>SYSDATE)
AND iv.ins_deel_key = ids.ins_deel_key(+)
AND isc.ins_srtcontrole_key(+) = ids.ins_srtcontrole_key
AND iv.prs_afdeling_key=pa.prs_afdeling_key;
CREATE OR REPLACE VIEW FZKH_V_MT_NEXT_OBJECTNR
@@ -4703,60 +4720,106 @@ locatie,
ins_srtcontrole,
status,
plandatum,
kleur,
serienummer,
email
)
AS
SELECT sel.*,
(SELECT COALESCE(MAX(p.prs_perslid_email),'medischetechniek@flevoziekenhuis.nl') email
FROM prs_perslid p, prs_afdeling pa
(SELECT ikd.INS_KENMERKDEEL_WAARDE
from INS_KENMERKDEEL ikd
where ikd.ins_deel_key=sel.ins_deel_key
AND ikd.ins_kenmerk_key=106
AND ikd.INS_KENMERKDEEL_VERWIJDER IS NULL) serienummer,
(SELECT COALESCE(MAX(p.prs_perslid_email),'medischetechniek@flevoziekenhuis.nl') email
FROM prs_perslid p, prs_afdeling pa
WHERE UPPER(pa.PRS_AFDELING_omschrijving) = UPPER('T-' || sel.locatie)
AND p.PRS_AFDELING_KEY = pa.PRS_AFDELING_KEY
AND pa.PRS_AFDELING_VERWIJDER IS NULL
AND p.PRS_PERSLID_VERWIJDER IS NULL) email
FROM (SELECT iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
eigenaar_soort,
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
eigenaar_key,
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
locatie,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
'Verwacht'
status,
TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM)
plandatum
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
UPPER ('Medische Techniek')
AND ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TRUNC(ADD_MONTHS(SYSDATE,1),'MM') AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,1)))
UNION
SELECT iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
eigenaar_soort,
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
eigenaar_key,
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
locatie,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
'In behandeling'
status,
TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM)
plandatum
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
WHERE ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) <= TRUNC (SYSDATE - 1)
AND ids.INS_DEELSRTCONTROLE_STATUS IN (0,1,2) -- Ingepland, gestart of ter uitvoering
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
AND (TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TO_DATE('30-01-2024','DD-MM-YYYY') AND TRUNC(SYSDATE- 1))
) sel
WHERE sel.eigenaar_soort = 'Afdeling'
ORDER BY 5,9;
FROM (
-- lopende taken
SELECT iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
eigenaar_soort,
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
eigenaar_key,
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
locatie,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
'Verwacht'
status,
TO_CHAR(TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM),'DD-MM-YYYY')
plandatum,
'#000000' kleur
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
UPPER ('Medische Techniek')
AND ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TRUNC(ADD_MONTHS(SYSDATE,1),'MM') AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,3)))
-- toekomsige taken zonder ins_deelsrtcontrole
UNION
SELECT iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
eigenaar_soort,
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
eigenaar_key,
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
locatie,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
'Verwacht'
status,
TO_CHAR(TRUNC(ins.nextcyclusdate(iv.ins_deel_key, isc.ins_srtcontrole_key, 1, 1), 'dd'),'DD-MM-YYYY')
plandatum,
'#000000' kleur
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
WHERE UPPER (iv.INS_DISCIPLINE_OMSCHRIJVING) =
UPPER ('Medische Techniek')
AND ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
AND TRUNC(ins.nextcyclusdate(iv.ins_deel_key, isc.ins_srtcontrole_key, 1, 1), 'dd') <= TRUNC(ADD_MONTHS(SYSDATE,3), 'dd')
AND (SELECT MAX(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
WHERE idsc2.ins_deel_key = iv.ins_deel_key
AND idsc2.ins_srtcontrole_key = ids.ins_srtcontrole_key
AND idsc2.ins_scenario_key = ids.ins_scenario_key
AND idsc2.ins_deelsrtcontrole_status != 6) IS NULL
-- ALl taken die al gestart en inbehandeling zijn
UNION
SELECT iv.ins_deel_key,
iv.INS_DEEL_OMSCHRIJVING,
iv.INS_DEEL_OPMERKING,
CASE WHEN iv.PRS_AFDELING_key > 0 THEN 'Afdeling' ELSE 'Ruimte' END
eigenaar_soort,
COALESCE (iv.PRS_AFDELING_key, iv.ALG_RUIMTE_KEY)
eigenaar_key,
COALESCE (iv.PRS_AFDELING_OMSCHRIJVING, iv.ALG_RUIMTE_NR)
locatie,
isc.INS_SRTCONTROLE_OMSCHRIJVING,
'In behandeling'
status,
TO_CHAR(TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM),'DD-MM-YYYY')
plandatum,
CASE WHEN TRUNC(SYSDATE)-TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM)>30
THEN
'#FF0000'
ELSE
'#000000'
END kleur
FROM INS_V_DEEL_GEGEVENS iv, ins_deelsrtcontrole ids, ins_srtcontrole isc
WHERE ids.INS_DEEL_KEY = iv.INS_DEEL_KEY
AND TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) <= TRUNC (SYSDATE - 1)
AND ids.INS_DEELSRTCONTROLE_STATUS IN (0,1,2) -- Ingepland, gestart of ter uitvoering
AND isc.INS_SRTCONTROLE_KEY = ids.INS_SRTCONTROLE_KEY
AND (TRUNC (ids.INS_DEELSRTCONTROLE_PLANDATUM) BETWEEN TO_DATE('30-01-2024','DD-MM-YYYY') AND TRUNC(SYSDATE- 1))
) sel
WHERE sel.eigenaar_soort = 'Afdeling'
ORDER BY 5,9;
CREATE OR REPLACE VIEW FZKH_V_NOTI_MTTAKEN
(
@@ -4775,7 +4838,7 @@ AS
'CUST10',
NULL,
NULL,
-- f.email||';medischetechniek@flevoziekenhuis.nl' xemail,
-- f.email||';medischetechniek@flevoziekenhuis.nl' xemail, -- f.email
'medischetechniek@flevoziekenhuis.nl' xemail,
NULL xsender,
'Lijst met taken maand '||TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE,'MM'),1),'DD-MM-YYYY')||' voor afdeling '||f.locatie,