diff --git a/VEST/vest.sql b/VEST/vest.sql new file mode 100644 index 000000000..a1a9afb34 --- /dev/null +++ b/VEST/vest.sql @@ -0,0 +1,115 @@ +-- +-- $Id$ +-- +-- Script containing customer specific sql statements for the Vesteda database + +DEFINE thisfile = 'VEST.SQL' +DEFINE dbuser = '^VEST' +DEFINE custid = 'VEST' + +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 ------ + +-- +-- Personen import +-- + +CREATE OR REPLACE PROCEDURE vest_import_perslid (p_import_key IN NUMBER) +AS + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_errormsg VARCHAR2 (400); + v_errorhint VARCHAR2 (400); +BEGIN + + v_errorhint := 'Generieke update'; + -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc + prs.import_perslid (p_import_key, + '12;13;14;15;0;0;5;1;3;2;' || + '0;0;0;0;8;9;10;4;0;11;' || + '6;7;4;0;0;0;0;0;0;0;'|| + '0;0;0;0;0;0;0;0;0;0;'|| + '0;0;0;0;0;0', + 'Achternaam;Voornaam;Tussenvoegsel;Email;Afdeling;Functie;Titel/Aanhef;Geslacht;Telefoonnummer;Mobiel nummer;Personeelsnummer;Locatie;Gebouw;Verdieping;Ruimte' + ); + COMMIT; +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes; + fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); +END vest_import_perslid; +/ + +CREATE OR REPLACE PROCEDURE vest_update_perslid ( + p_import_key IN NUMBER +) IS + -- Alle personen verwijderen die niet meer in import bestand voorkomen. + CURSOR c_del + IS + SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full + FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf + WHERE p.prs_perslid_nr = i.prs_perslid_nr(+) + AND pf.prs_perslid_key = p.prs_perslid_key + AND p.prs_perslid_nr IS NOT NULL + AND i.prs_perslid_nr IS NULL + AND p.prs_perslid_verwijder IS NULL + ORDER BY 2; + + v_count NUMBER; + +BEGIN + -- generic update + + SELECT count(*) + INTO v_count + FROM fac_imp_perslid; + + IF v_count < 300 + THEN + fac.imp_writelog (p_import_key, + 'E', + 'Het aantal te importeren personen is te klein (' + || TO_CHAR (v_count) || ')', + 'Zie Specificatie' + ); + RETURN; + END IF; + + -- 'NR' betekent dat op basis van personeelsNummeR wordt gematched. + -- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen + prs.update_perslid (p_import_key, 'NR', NULL); + + -- Verwijder personen die niet meer in de import voorkomen. + FOR rec IN c_del + LOOP + BEGIN + prs.delete_perslid (p_import_key, rec.prs_perslid_key); + END; + END LOOP; + vest_post_update_perslid (p_import_key); + +END vest_update_perslid; +/ + +------ 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 \ No newline at end of file