BAUS#79594 Implementatie Bausch & Lomb, notificatie periodieke taken over 6 weken ipv 1 maand
svn path=/Customer/trunk/; revision=62015
This commit is contained in:
287
BAUS/baus.sql
287
BAUS/baus.sql
@@ -259,86 +259,102 @@ EXCEPTION
|
||||
END baus_processemail;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW BAUS_V_NOTI_TAKEN
|
||||
CREATE OR REPLACE VIEW BAUS_V_RAP_TAKEN
|
||||
(
|
||||
TO_KEY,
|
||||
TO_EMAIL,
|
||||
TO_OMSCHR,
|
||||
TAAK_OMSCHR,
|
||||
INS_DEEL_KEY,
|
||||
BETREFT
|
||||
ins_deel_key,
|
||||
ins_deel_omschrijving,
|
||||
ins_deel_opmerking,
|
||||
laatste_controle,
|
||||
volgende_controle,
|
||||
status
|
||||
)
|
||||
AS
|
||||
WITH
|
||||
taken
|
||||
AS
|
||||
(SELECT fac.nextcyclusdatedeel (d.ins_deel_key,
|
||||
d.ins_srtcontrole_key,
|
||||
1) volgende_cyclus,
|
||||
p.ins_deelsrtcontrole_plandatum datum_gepland,
|
||||
COALESCE (
|
||||
p.ins_deelsrtcontrole_plandatum,
|
||||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||||
d.ins_srtcontrole_key,
|
||||
1)) volgende_ctr,
|
||||
d.*,
|
||||
xcp.ins_srtcontroledl_xcp_periode
|
||||
FROM (SELECT sc.ins_srtcontrole_key,
|
||||
sc.ins_srtcontrole_omschrijving,
|
||||
d.ins_deel_key,
|
||||
d.ins_deel_omschrijving,
|
||||
sc.ins_srtcontrole_periode,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
a.prs_kostenplaats_key,
|
||||
p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
pfa.prs_perslid_naam_full
|
||||
FROM ins_srtcontrole sc,
|
||||
ins_discipline di,
|
||||
ins_v_aanwezigsrtgroep sg,
|
||||
ins_v_aanwezigsrtdeel sd,
|
||||
ins_v_aanwezigdeel d,
|
||||
prs_perslid p,
|
||||
prs_afdeling a,
|
||||
prs_v_perslid_fullnames_all pfa
|
||||
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||||
AND sc.ins_srtinstallatie_key =
|
||||
sd.ins_srtdeel_key
|
||||
AND di.ins_discipline_key = sg.ins_discipline_key
|
||||
AND COALESCE (d.ins_deel_vervaldatum,
|
||||
SYSDATE + 1) >
|
||||
SYSDATE
|
||||
AND p.prs_perslid_key = 101 -- Notificatie gaat altijd naar Iwan
|
||||
AND a.prs_afdeling_key(+) = p.prs_afdeling_key
|
||||
AND pfa.prs_perslid_key = 101
|
||||
AND ( sc.ins_srtcontrole_eind IS NULL
|
||||
OR sc.ins_srtcontrole_eind > SYSDATE)) d,
|
||||
ins_srtcontroledl_xcp xcp,
|
||||
(SELECT *
|
||||
FROM ins_v_udr_deelinspect ins
|
||||
WHERE deelsrtcontrole_status = 'Gepland'
|
||||
AND ins_deelsrtcontrole_plandatum IS NOT NULL) p
|
||||
WHERE xcp.ins_deel_key(+) = d.ins_deel_key
|
||||
AND xcp.ins_srtcontrole_key(+) = d.ins_srtcontrole_key
|
||||
AND p.deel_key(+) = d.ins_deel_key
|
||||
AND p.ins_srtcontrole_key(+) = d.ins_srtcontrole_key
|
||||
AND COALESCE (xcp.ins_srtcontroledl_xcp_periode,
|
||||
d.ins_srtcontrole_periode) >
|
||||
0
|
||||
AND COALESCE (
|
||||
p.ins_deelsrtcontrole_plandatum,
|
||||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||||
d.ins_srtcontrole_key,
|
||||
1)) <
|
||||
ADD_MONTHS (SYSDATE, 2))
|
||||
SELECT prs_perslid_key to_key,
|
||||
prs_perslid_email to_email,
|
||||
prs_perslid_naam_full to_omschr,
|
||||
ins_srtcontrole_omschrijving,
|
||||
ins_deel_key,
|
||||
ins_srtdeel_omschrijving || ' - ' || ins_deel_omschrijving betreft
|
||||
FROM taken;
|
||||
SELECT ctr.ins_deel_key,
|
||||
ctr.ins_deel_omschrijving,
|
||||
ctr.ins_deel_opmerking,
|
||||
TRUNC (last_insp.ins_deelsrtcontrole_datum) laatste_insp,
|
||||
TRUNC (ctr.ins_deelsrtcontrole_datum) volgende_insp,
|
||||
ctr.status
|
||||
FROM (SELECT d.ins_deel_key,
|
||||
d.ins_srtdeel_omschrijving
|
||||
|| ' '
|
||||
|| d.ins_deel_omschrijving ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
fac.nextcyclusdatedeel (d.ins_deel_key,
|
||||
d.ins_srtcontrole_key,
|
||||
1) ins_deelsrtcontrole_datum,
|
||||
'' AS ctrmode,
|
||||
prs_perslid_naam_full perslid,
|
||||
'' AS status
|
||||
FROM (SELECT sc.ins_srtcontrole_key,
|
||||
d.ins_deel_key,
|
||||
d.ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
sc.ins_srtcontrole_periode,
|
||||
sd.ins_srtdeel_omschrijving,
|
||||
pfa.prs_perslid_key,
|
||||
pfa.prs_perslid_naam_full
|
||||
FROM ins_srtcontrole sc,
|
||||
ins_discipline di,
|
||||
ins_v_aanwezigsrtgroep sg,
|
||||
ins_v_aanwezigsrtdeel sd,
|
||||
ins_v_aanwezigdeel d,
|
||||
prs_perslid p,
|
||||
prs_v_perslid_fullnames_all pfa
|
||||
WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||||
AND di.ins_discipline_key = sg.ins_discipline_key
|
||||
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >=
|
||||
SYSDATE
|
||||
AND p.prs_perslid_key = 101
|
||||
AND pfa.prs_perslid_key = 101) d
|
||||
LEFT OUTER JOIN ins_srtcontroledl_xcp xcp
|
||||
ON xcp.ins_deel_key = d.ins_deel_key
|
||||
AND xcp.ins_srtcontrole_key = d.ins_srtcontrole_key
|
||||
WHERE COALESCE (xcp.ins_srtcontroledl_xcp_periode,
|
||||
d.ins_srtcontrole_periode) >
|
||||
0
|
||||
AND fac.nextcyclusdatedeel (d.ins_deel_key,
|
||||
d.ins_srtcontrole_key,
|
||||
1) <=
|
||||
(SYSDATE + 42)
|
||||
AND d.ins_deel_key NOT IN --- als een inspectie al is ingepland weegt dat zwaarder dan de oorspronkelijke datum, object komt op de lijst als plandatum komende maand is
|
||||
(SELECT ins_deel_key
|
||||
FROM ins_v_udr_deelinspect ins, ins_deel d
|
||||
WHERE ins_deelsrtcontrole_plandatum
|
||||
IS NOT NULL
|
||||
AND ins_deelsrtcontrole_datum IS NULL
|
||||
AND d.ins_deel_key = ins.deel_key
|
||||
AND d.ins_deel_verwijder IS NULL)
|
||||
UNION ALL
|
||||
SELECT d.ins_deel_key,
|
||||
sd.ins_srtdeel_omschrijving
|
||||
|| ' '
|
||||
|| d.ins_deel_omschrijving ins_deel_omschrijving,
|
||||
d.ins_deel_opmerking,
|
||||
ins_deelsrtcontrole_plandatum,
|
||||
'' ctrmode,
|
||||
perslid,
|
||||
deelsrtcontrole_status
|
||||
FROM ins_v_udr_deelinspect ins, ins_deel d, ins_srtdeel sd
|
||||
WHERE ins_deelsrtcontrole_plandatum IS NOT NULL
|
||||
AND ins_deelsrtcontrole_datum IS NULL
|
||||
AND d.ins_deel_key = ins.deel_key
|
||||
AND d.ins_deel_verwijder IS NULL
|
||||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||||
AND actief = 'ja'
|
||||
AND ins_deelsrtcontrole_plandatum <= (SYSDATE + 42) -- AND ins_deelsrtcontrole_plandatum >= SYSDATE
|
||||
) ctr,
|
||||
( SELECT MAX (sc.ins_deelsrtcontrole_datum)
|
||||
ins_deelsrtcontrole_datum,
|
||||
sc.ins_deel_key,
|
||||
MAX (sc.ins_deelsrtcontrole_key)
|
||||
ins_deelsrtcontrole_key
|
||||
FROM ins_deelsrtcontrole sc
|
||||
WHERE sc.ins_deelsrtcontrole_status = 6
|
||||
GROUP BY sc.ins_deel_key) last_insp
|
||||
WHERE ctr.ins_deel_key = last_insp.ins_deel_key(+)
|
||||
AND TRUNC (ctr.ins_deelsrtcontrole_datum) < TRUNC (SYSDATE + 42);
|
||||
|
||||
CREATE OR REPLACE PACKAGE BAUS
|
||||
AS
|
||||
@@ -350,73 +366,47 @@ CREATE OR REPLACE PACKAGE BODY BAUS
|
||||
AS
|
||||
PROCEDURE baus_noti_per_controle
|
||||
AS
|
||||
p_applname VARCHAR2 (50) := 'NOTIFICATIE_PLANNEN_TAAK';
|
||||
p_applname VARCHAR2 (50) := 'NOTIFICATIE_PERIODIEKE_TAAK';
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errorhint VARCHAR2 (100);
|
||||
v_aanduiding VARCHAR2 (100);
|
||||
|
||||
CURSOR c IS SELECT * FROM BAUS_V_NOTI_TAKEN;
|
||||
BEGIN
|
||||
v_errorhint := 'init';
|
||||
v_aanduiding := 'Maandelijkse notificatie periodieke taken';
|
||||
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
BEGIN
|
||||
v_aanduiding :=
|
||||
rec.taak_omschr || ' betreffende; ' || rec.betreft;
|
||||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||||
fac_notificatie_status,
|
||||
prs_perslid_key_receiver,
|
||||
fac_notificatie_receiver_email,
|
||||
fac_notificatie_oms,
|
||||
fac_notificatie_refkey,
|
||||
prs_perslid_key_sender,
|
||||
fac_notificatie_prioriteit,
|
||||
fac_notificatie_lang)
|
||||
SELECT fac_srtnotificatie_key,
|
||||
2,
|
||||
101,
|
||||
'Iwan.Broekhuis@bausch.com',
|
||||
'Taken voor de maand '
|
||||
|| LOWER (TO_CHAR (SYSDATE, 'Month')),
|
||||
(SELECT fac_usrrap_key
|
||||
FROM fac_usrrap
|
||||
WHERE UPPER (fac_usrrap_view_name) = 'BAUS_V_RAP_TAKEN'), ---- refkey: is het rapport
|
||||
4,
|
||||
2,
|
||||
'NL'
|
||||
FROM fac_srtnotificatie sn
|
||||
WHERE fac_srtnotificatie_code = 'CUST01';
|
||||
|
||||
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
|
||||
fac_notificatie_status,
|
||||
prs_perslid_key_receiver,
|
||||
fac_notificatie_receiver_email,
|
||||
fac_notificatie_oms,
|
||||
fac_notificatie_refkey,
|
||||
prs_perslid_key_sender,
|
||||
fac_notificatie_prioriteit,
|
||||
fac_notificatie_lang)
|
||||
SELECT fac_srtnotificatie_key,
|
||||
2,
|
||||
rec.to_key,
|
||||
rec.to_email,
|
||||
rec.taak_omschr
|
||||
|| ' betreffende; '
|
||||
|| rec.betreft
|
||||
|| ' in te plannen',
|
||||
rec.ins_deel_key,
|
||||
4,
|
||||
2,
|
||||
'NL'
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_code = 'CUST01';
|
||||
|
||||
fac.writelog (p_applname,
|
||||
'I',
|
||||
'Mail naar ' || rec.to_omschr,
|
||||
rec.betreft);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint :=
|
||||
'Toevoegen notificatie periodieke controle '
|
||||
|| rec.betreft;
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
p_applname,
|
||||
'E',
|
||||
'Error '
|
||||
|| v_aanduiding
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes,
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
fac.writelog (p_applname,
|
||||
'I',
|
||||
'Mail naar Iwan Broekhuis',
|
||||
'Maandelijkse notificatie periodieke taken');
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint := 'Notificaties in te plannen periodieke taken';
|
||||
v_errorhint := 'Maandelijkse notificatie periodieke taken';
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
@@ -430,21 +420,26 @@ END;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE baus_monthly
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
baus.baus_noti_per_controle;
|
||||
|
||||
baus.baus_noti_per_controle;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog ('Monthly', 'E', 'Proces afgebroken!', v_errormsg);
|
||||
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
'ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.writelog ('Monthly',
|
||||
'E',
|
||||
'Proces afgebroken!',
|
||||
v_errormsg);
|
||||
END baus_monthly;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user