-- 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è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è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è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.prs_afdeling_key_eig = 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