BAUS#79594 Implementatie Bausch & Lomb, notificatie periodieke taken
svn path=/Customer/trunk/; revision=61852
This commit is contained in:
212
BAUS/baus.sql
212
BAUS/baus.sql
@@ -16,10 +16,14 @@ SET DEFINE ON
|
||||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||||
|
||||
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
|
||||
|
||||
SPOOL &fcltlogfile
|
||||
WHENEVER SQLERROR EXIT;
|
||||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||||
|
||||
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusttxt FROM DUAL;
|
||||
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
---------------------------------------
|
||||
PROMPT &fcltcusttxt
|
||||
@@ -52,9 +56,9 @@ BEGIN
|
||||
-- 1) Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp het meldingnummer '1234' kan worden opgevist, met ervoor en erna een spatie
|
||||
-- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd.
|
||||
subject_regexp := '[[:digit:]]{1,}';
|
||||
|
||||
|
||||
v_pbody := pbody;
|
||||
|
||||
|
||||
v_mldnum :=
|
||||
REGEXP_SUBSTR (psubject,
|
||||
subject_regexp,
|
||||
@@ -92,7 +96,7 @@ BEGIN
|
||||
|| CHR (10)
|
||||
|| CHR (13)
|
||||
|| CHR (10),
|
||||
CHR (13) || CHR (10)),
|
||||
CHR (13) || CHR (10)),
|
||||
1,
|
||||
4000), -- verwijder onnodige witregels
|
||||
1,
|
||||
@@ -255,14 +259,208 @@ EXCEPTION
|
||||
END baus_processemail;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE VIEW BAUS_V_NOTI_TAKEN
|
||||
(
|
||||
TO_KEY,
|
||||
TO_EMAIL,
|
||||
TO_OMSCHR,
|
||||
TAAK_OMSCHR,
|
||||
INS_DEEL_KEY,
|
||||
BETREFT
|
||||
)
|
||||
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;
|
||||
|
||||
CREATE OR REPLACE PACKAGE BAUS
|
||||
AS
|
||||
PROCEDURE baus_noti_per_controle;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY BAUS
|
||||
AS
|
||||
PROCEDURE baus_noti_per_controle
|
||||
AS
|
||||
p_applname VARCHAR2 (50) := 'NOTIFICATIE_PLANNEN_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';
|
||||
|
||||
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,
|
||||
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;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_errorhint := 'Notificaties in te plannen periodieke taken';
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
fac.writelog (
|
||||
p_applname,
|
||||
'E',
|
||||
'Error ' || oracle_err_num || '/' || oracle_err_mes,
|
||||
v_errorhint);
|
||||
END baus_noti_per_controle;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE baus_monthly
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
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);
|
||||
|
||||
END baus_monthly;
|
||||
/
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||||
|
||||
BEGIN
|
||||
adm.systrackscriptId (
|
||||
'$Id$',
|
||||
0);
|
||||
END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
SET ECHO OFF
|
||||
SPOOL OFF
|
||||
SET DEFINE ON
|
||||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||
PROMPT Logfile of this upgrade is: &fcltlogfile
|
||||
Reference in New Issue
Block a user