Files
Customer/DCOL/dcol.sql
Ruud Lipper e43fa43f6c DCOL#41652 Windows-1252 ipv UTF-8
svn path=/Customer/trunk/; revision=34945
2017-08-15 13:25:02 +00:00

618 lines
23 KiB
SQL
Raw Blame History

-- Script containing customer generic configuration sql statements for all DCOL accounts
-- $Revision$
-- $Id$
--
DEFINE thisfile = 'DCOL.SQL'
DEFINE dbuser = '^DCOL'
DEFINE custid = '^DCOL'
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 ------
CREATE OR REPLACE VIEW dcol_v_rap_import_log
(
fclt_f_applicatie,
datum,
fclt_f_status,
omschrijving,
hint
)
AS
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
imp_log_datum,
imp_log_status,
imp_log_omschrijving,
imp_log_hint
FROM imp_log il, fac_import fi, fac_import_app fia
WHERE il.fac_import_key = fi.fac_import_key(+)
AND fi.fac_import_app_key = fia.fac_import_app_key(+);
/* Formatted on 16-6-2014 21:48:12 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE dcol_import_bedrijf (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
fac_import_ext_bedrijf (p_import_key);
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.imp_writelog (p_import_key,
'E',
v_errormsg,
'Inleesproces relaties afgebroken!');
END dcol_import_bedrijf;
/
CREATE OR REPLACE PROCEDURE dcol_update_bedrijf (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
v_errorhint VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_count_tot NUMBER (10);
v_count_new NUMBER (10);
v_count_upd NUMBER (10);
v_count_del NUMBER (10);
v_aanduiding VARCHAR2 (200) := '-';
-- SUBPROC
PROCEDURE add_bedrijf (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT *
FROM fac_imp_ext_bedrijf ib
WHERE NOT EXISTS
(SELECT 1
FROM fac_imp_ext_bedrijf
WHERE UPPER (prs_bedrijf_naam) =
UPPER (ib.prs_bedrijf_naam)
AND prs_leverancier_nr < ib.prs_leverancier_nr);
v_bedrijf_key NUMBER (10);
BEGIN
v_count_tot := 0;
v_count_new := 0;
v_count_upd := 0;
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rec.prs_bedrijf_naam
|| '|'
|| rec.prs_leverancier_nr
|| '] ';
v_errorhint := 'Fout bepalen bedrijf';
IF rec.prs_leverancier_nr IS NULL
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Leveranciernummer ongedefinieerd!',
v_errorhint);
COMMIT;
ELSE
SELECT COUNT ( * )
INTO v_count
FROM prs_v_aanwezigbedrijf
WHERE UPPER (prs_leverancier_nr) =
UPPER (rec.prs_leverancier_nr);
IF v_count = 0
THEN
v_errorhint := 'Fout toevoegen bedrijf';
INSERT INTO prs_bedrijf (prs_bedrijf_naam,
prs_leverancier_nr,
prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_land,
prs_bedrijf_post_adres,
prs_bedrijf_post_postcode,
prs_bedrijf_post_plaats,
prs_bedrijf_post_land,
prs_bedrijf_telefoon,
prs_bedrijf_fax,
prs_bedrijf_email,
prs_bedrijf_contact_persoon,
prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_fax,
prs_bedrijf_leverancier,
prs_bedrijf_uitvoerende,
prs_bedrijf_contract,
prs_bedrijf_huurder,
prs_bedrijf_ingids,
prs_bedrijf_uurloon,
prs_overeenkomst_nr,
prs_overeenkomst_datum,
prs_bedrijf_opmerking)
VALUES (rec.prs_bedrijf_naam,
rec.prs_leverancier_nr,
rec.prs_bedrijf_bezoek_adres,
rec.prs_bedrijf_bezoek_postcode,
rec.prs_bedrijf_bezoek_plaats,
rec.prs_bedrijf_bezoek_land,
rec.prs_bedrijf_post_adres,
rec.prs_bedrijf_post_postcode,
rec.prs_bedrijf_post_plaats,
rec.prs_bedrijf_post_land,
rec.prs_bedrijf_telefoon,
rec.prs_bedrijf_fax,
rec.prs_bedrijf_email,
rec.prs_bedrijf_contact_persoon,
rec.prs_bedrijf_contact_telefoon,
rec.prs_bedrijf_contact_fax,
DECODE (rec.prs_bedrijf_leverancier,
1, 1,
NULL),
DECODE (rec.prs_bedrijf_uitvoerende,
1, 1,
NULL),
DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
DECODE (rec.prs_bedrijf_huurder, 1, 1, NULL),
DECODE (rec.prs_bedrijf_ingids, 1, 1, NULL),
rec.prs_bedrijf_uurloon,
rec.prs_overeenkomst_nr,
rec.prs_overeenkomst_datum,
rec.prs_bedrijf_opmerking);
v_count_new := v_count_new + 1;
ELSE -- v_count > 0
SELECT prs_bedrijf_key
INTO v_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE UPPER (prs_leverancier_nr) =
UPPER (rec.prs_leverancier_nr);
v_errorhint := 'Fout bijwerken bedrijf';
UPDATE prs_bedrijf
SET prs_bedrijf_naam =
COALESCE (rec.prs_bedrijf_naam, prs_bedrijf_naam),
prs_bedrijf_bezoek_adres =
COALESCE (rec.prs_bedrijf_bezoek_adres,
prs_bedrijf_bezoek_adres),
prs_bedrijf_bezoek_postcode =
COALESCE (rec.prs_bedrijf_bezoek_postcode,
prs_bedrijf_bezoek_postcode),
prs_bedrijf_bezoek_plaats =
COALESCE (rec.prs_bedrijf_bezoek_plaats,
prs_bedrijf_bezoek_plaats),
prs_bedrijf_bezoek_land =
COALESCE (rec.prs_bedrijf_bezoek_land,
prs_bedrijf_bezoek_land),
prs_bedrijf_post_adres =
COALESCE (rec.prs_bedrijf_post_adres,
prs_bedrijf_post_adres),
prs_bedrijf_post_postcode =
COALESCE (rec.prs_bedrijf_post_postcode,
prs_bedrijf_post_postcode),
prs_bedrijf_post_plaats =
COALESCE (rec.prs_bedrijf_post_plaats,
prs_bedrijf_post_plaats),
prs_bedrijf_post_land =
COALESCE (rec.prs_bedrijf_post_land,
prs_bedrijf_post_land),
prs_bedrijf_telefoon =
COALESCE (rec.prs_bedrijf_telefoon,
prs_bedrijf_telefoon),
prs_bedrijf_fax =
COALESCE (rec.prs_bedrijf_fax, prs_bedrijf_fax),
prs_bedrijf_email =
COALESCE (rec.prs_bedrijf_email,
prs_bedrijf_email),
prs_bedrijf_contact_persoon =
COALESCE (rec.prs_bedrijf_contact_persoon,
prs_bedrijf_contact_persoon),
prs_bedrijf_contact_telefoon =
COALESCE (rec.prs_bedrijf_contact_telefoon,
prs_bedrijf_contact_telefoon),
prs_bedrijf_contact_fax =
COALESCE (rec.prs_bedrijf_contact_fax,
prs_bedrijf_contact_fax),
prs_bedrijf_leverancier =
DECODE (rec.prs_bedrijf_leverancier, 1, 1, NULL),
prs_bedrijf_uitvoerende =
DECODE (rec.prs_bedrijf_uitvoerende, 1, 1, NULL),
prs_bedrijf_contract =
DECODE (rec.prs_bedrijf_contract, 1, 1, NULL),
prs_bedrijf_huurder =
DECODE (rec.prs_bedrijf_huurder, 1, 1, NULL),
prs_bedrijf_ingids =
DECODE (rec.prs_bedrijf_ingids, 1, 1, NULL),
prs_bedrijf_uurloon =
COALESCE (rec.prs_bedrijf_uurloon,
prs_bedrijf_uurloon),
prs_overeenkomst_nr =
COALESCE (rec.prs_overeenkomst_nr,
prs_overeenkomst_nr),
prs_overeenkomst_datum =
COALESCE (rec.prs_overeenkomst_datum,
prs_overeenkomst_datum),
prs_bedrijf_opmerking =
COALESCE (rec.prs_bedrijf_opmerking,
prs_bedrijf_opmerking)
WHERE prs_bedrijf_key = v_bedrijf_key;
v_count_upd := v_count_upd + 1;
END IF;
--COMMIT;
END IF;
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: #ingelezen: ' || TO_CHAR (v_count_tot),
'');
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: #toegevoegd: ' || TO_CHAR (v_count_new),
'');
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: #bijgewerkt: ' || TO_CHAR (v_count_upd),
'');
COMMIT;
END;
-- SUBPROC
PROCEDURE del_bedrijf (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_bedrijf_intern IS NULL
AND b.prs_leverancier_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM fac_imp_ext_bedrijf
WHERE prs_leverancier_nr = b.prs_leverancier_nr);
v_bedrijf_key NUMBER (10);
BEGIN
v_count_del := 0;
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := '[' || rec.prs_bedrijf_naam || '] ';
v_errorhint := 'Fout verwijderen bedrijf';
UPDATE prs_bedrijf
SET prs_bedrijf_verwijder = SYSDATE
WHERE prs_bedrijf_key = rec.prs_bedrijf_key;
v_count_del := v_count_del + 1;
COMMIT;
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Bedrijf: #verwijderd: ' || TO_CHAR (v_count_del),
'');
COMMIT;
END;
-- MAIN
BEGIN
add_bedrijf (p_import_key);
--del_bedrijf (p_import_key);
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Importproces relaties afgebroken!');
END dcol_update_bedrijf;
/
/* Formatted on 9-9-2014 16:06:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW dcol_v_medewerkers
(
prs_perslid_key,
prs_perslid_naam_full
)
AS
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) != '_';
/* Formatted on 3-8-2017 09:26:27 (QP5 v5.313) */
CREATE OR REPLACE VIEW DCOL_V_NOTI_CNTREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
PAR1,
PAR2,
XKEY
)
AS
SELECT 'CNTMAI',
'',
c.prs_perslid_key_beh,
'Rapp<EFBFBD>l: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
UNION
SELECT 'CNTMAI',
'',
c.prs_perslid_key_eig,
'Rapp<EFBFBD>l: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
AND c.prs_perslid_key_eig IS NOT NULL
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
UNION
SELECT 'CNTMAI',
'',
fac.safe_to_number (kl.prs_kenmerklink_waarde),
'Rapp<EFBFBD>l: Contract '
|| c.cnt_contract_nummer_intern
|| ' ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' moet uiterlijk per '
|| TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key),
'DD-MM-YYYY')
|| ' worden verlengd of opgezegd.',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_v_aanwezigcontract c,
prs_bedrijf b,
prs_afdeling a,
prs_kenmerklink kl
WHERE c.cnt_contract_status = 0
AND (SYSDATE BETWEEN cnt.cnt_getrappeldatum (c.cnt_contract_key)
AND cnt.cnt_getopzegdatum (c.cnt_contract_key))
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND a.prs_afdeling_verwijder IS NULL
AND c.cnt_prs_afdeling_key = a.prs_afdeling_key -- Bestaande afdeling!
AND kl.prs_kenmerklink_verwijder IS NULL
--AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1060 -- Manager
AND a.prs_afdeling_key = kl.prs_link_key;
/* Formatted on 9-8-2017 14:27:23 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW DCOL_V_EVAL_CNTREMINDER
(
CODE,
SENDER,
RECEIVER,
TEXT,
KEY,
PAR1,
PAR2,
XKEY
)
AS
SELECT 'CNTMAI',
'',
c.prs_perslid_key_beh,
'Evaluatie: Contract '
|| c.cnt_contract_nummer_intern
|| ' nadert '
|| LOWER (csk.cnt_srtkenmerk_omschrijving)
|| ' datum ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' op '
|| ckc.cnt_kenmerkcontract_waarde
|| ' ',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_kenmerkcontract ckc,
cnt_kenmerk ck,
cnt_srtkenmerk csk,
cnt_v_aanwezigcontract c,
prs_bedrijf b
WHERE ck.cnt_kenmerk_key = ckc.cnt_kenmerk_key
AND csk.cnt_srtkenmerk_key = ck.cnt_srtkenmerk_key
AND c.cnt_contract_status = 0
AND ck.cnt_srtkenmerk_key IN (4, 6, 14)
AND ckc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND cnt_contract_looptijd_tot >= SYSDATE
AND fac.safe_to_date (ckc.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY') <=
SYSDATE + 60
UNION
SELECT 'CNTMAI',
'',
c.prs_perslid_key_eig,
'Evaluatie: Contract '
|| c.cnt_contract_nummer_intern
|| ' nadert '
|| LOWER (csk.cnt_srtkenmerk_omschrijving)
|| ' datum ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' op '
|| ckc.cnt_kenmerkcontract_waarde
|| ' ',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_kenmerkcontract ckc,
cnt_kenmerk ck,
cnt_srtkenmerk csk,
cnt_v_aanwezigcontract c,
prs_bedrijf b
WHERE ck.cnt_kenmerk_key = ckc.cnt_kenmerk_key
AND c.cnt_contract_status = 0
AND csk.cnt_srtkenmerk_key = ck.cnt_srtkenmerk_key
AND ck.cnt_srtkenmerk_key IN (4, 6, 14)
AND ckc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND fac.safe_to_date (ckc.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY') <=
SYSDATE + 60
AND cnt_contract_looptijd_tot >= SYSDATE
UNION
SELECT 'CNTMAI',
'',
fac.safe_to_number (kl.prs_kenmerklink_waarde),
'Evaluatie: Contract '
|| c.cnt_contract_nummer_intern
|| ' nadert '
|| LOWER (csk.cnt_srtkenmerk_omschrijving)
|| ' datum ('
|| c.cnt_contract_omschrijving
|| ' '
|| b.prs_bedrijf_naam
|| ')'
|| ' op '
|| ckc.cnt_kenmerkcontract_waarde
|| ' ',
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
cnt.cnt_getopzegdatum (c.cnt_contract_key),
NULL
FROM cnt_kenmerkcontract ckc,
cnt_kenmerk ck,
cnt_srtkenmerk csk,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
prs_kenmerklink kl,
prs_afdeling a
WHERE ck.cnt_kenmerk_key = ckc.cnt_kenmerk_key
AND c.cnt_contract_status = 0
AND csk.cnt_srtkenmerk_key = ck.cnt_srtkenmerk_key
AND ck.cnt_srtkenmerk_key IN (4, 6, 14)
AND ckc.cnt_contract_key = c.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND fac.safe_to_date (ckc.cnt_kenmerkcontract_waarde, 'DD-MM-YYYY') <=
SYSDATE + 60
AND cnt_contract_looptijd_tot >= SYSDATE
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = 1060
AND a.prs_afdeling_key = kl.prs_link_key
AND c.prs_afdeling_key_eig = a.prs_afdeling_key;
------ 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