223 lines
7.7 KiB
SQL
223 lines
7.7 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'TEAR.SQL'
|
|
DEFINE dbuser = '^TEAR'
|
|
DEFINE custid = 'TEAR'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
|
|
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
--- Notificatie naar objectbeheerders voor periodieke taken die de komende maand gedaan moeten worden
|
|
CREATE OR REPLACE VIEW TEAR_V_NOTI_OBJBEH
|
|
(
|
|
METHODE,
|
|
TO_KEY,
|
|
TO_OMSCHR,
|
|
REF_KEY,
|
|
REF_OMSCHR,
|
|
KPN_KEY,
|
|
AANTAL,
|
|
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.*
|
|
FROM (SELECT sc.ins_srtcontrole_key,
|
|
d.ins_deel_key,
|
|
d.ins_deel_omschrijving,
|
|
sc.ins_srtcontrole_periode,
|
|
sd.ins_srtdeel_omschrijving,
|
|
a.prs_kostenplaats_key,
|
|
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_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 di.ins_discipline_key = sg.ins_discipline_key
|
|
AND COALESCE (d.ins_deel_vervaldatum, SYSDATE + 1) >
|
|
SYSDATE
|
|
AND p.prs_perslid_key = d.prs_perslid_key_beh
|
|
AND a.prs_afdeling_key(+) = p.prs_afdeling_key
|
|
AND pfa.prs_perslid_key = d.prs_perslid_key_beh
|
|
AND sc.ins_srtinstallatie_key =
|
|
DECODE (ins_srtcontrole_niveau,
|
|
'D', di.ins_discipline_key,
|
|
'G', sg.ins_srtgroep_key,
|
|
'S', sd.ins_srtdeel_key)) 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
|
|
-- De eerste 5 dagen van volgende maand ook vast meepakken, dat scheelt verrassingen
|
|
AND COALESCE (
|
|
p.ins_deelsrtcontrole_plandatum,
|
|
fac.nextcyclusdatedeel (d.ins_deel_key,
|
|
d.ins_srtcontrole_key,
|
|
1)) <
|
|
ADD_MONTHS (SYSDATE, 1) + 5)
|
|
SELECT 'mail' methode,
|
|
prs_perslid_key to_key,
|
|
prs_perslid_naam_full to_omschr,
|
|
NULL ref_key,
|
|
NULL ref_omschr,
|
|
NULL kpn_key,
|
|
COUNT ( * ) aantal,
|
|
LISTAGG (ins_deel_omschrijving, ', ')
|
|
WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|
|
AS betreft
|
|
FROM taken
|
|
GROUP BY prs_perslid_key, prs_perslid_naam_full;
|
|
|
|
--- deze notificatie moet aan het begin van elke maand aangemaakt / verstuurd worden
|
|
CREATE OR REPLACE PROCEDURE tear_export_task_monthly (
|
|
p_applname IN VARCHAR2,
|
|
p_applrun IN VARCHAR2,
|
|
p_filedir IN VARCHAR2,
|
|
p_filename IN VARCHAR2)
|
|
AS
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errorhint VARCHAR2 (100);
|
|
|
|
v_aanduiding VARCHAR2 (100);
|
|
v_melding_key NUMBER (10);
|
|
|
|
CURSOR c
|
|
IS
|
|
SELECT * FROM tear_v_noti_objbeh;
|
|
BEGIN
|
|
v_errorhint := 'init';
|
|
|
|
DELETE imp_log
|
|
WHERE imp_log_applicatie = p_applname;
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
IF (rec.methode = 'mail')
|
|
THEN
|
|
v_aanduiding := rec.ref_omschr || ' (' || rec.methode || ') ';
|
|
ELSE
|
|
v_aanduiding :=
|
|
rec.to_omschr
|
|
|| '/'
|
|
|| rec.ref_omschr
|
|
|| ' ('
|
|
|| rec.methode
|
|
|| ') ';
|
|
END IF;
|
|
|
|
v_errorhint := 'Add mail';
|
|
|
|
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,
|
|
prs_perslid_email,
|
|
rec.aantal || ' uit te voeren taken deze maand',
|
|
rec.to_key,
|
|
3,
|
|
2,
|
|
'NL'
|
|
FROM fac_srtnotificatie, prs_perslid
|
|
WHERE fac_srtnotificatie_code = 'CUST01'
|
|
AND prs_perslid_key = rec.to_key;
|
|
|
|
fac.writelog (p_applname,
|
|
'I',
|
|
'Mail naar ' || rec.to_omschr,
|
|
rec.aantal || ' objecten');
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
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
|
|
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 tear_export_task_monthly;
|
|
/
|
|
COMMIT;
|
|
|
|
BEGIN
|
|
DBMS_UTILITY.COMPILE_SCHEMA (USER, FALSE);
|
|
END;
|
|
/
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
|
|
BEGIN
|
|
adm.systrackscriptId ('$Id$', 0);
|
|
END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile |