GDZW#19850

svn path=/Customer/trunk/; revision=14771
This commit is contained in:
Peter Koerhuis
2011-05-10 13:43:14 +00:00
parent 16ee121e47
commit 5ac4fb3300
2 changed files with 158 additions and 140 deletions

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific configuration sql statements for GDZW
-- (c) 2011 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 28-04-11 11:55 $
-- $Revision: 2 $
-- $Modtime: 10-05-11 12:14 $
--
-- Support: +31 53 4800700
@@ -39,10 +39,10 @@ IS
v_prs_perslid_naam VARCHAR2 (256);
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
v_prs_perslid_voornaam VARCHAR2 (256);
v_prs_perslid_aanhef VARCHAR2 (256);
v_prs_perslid_geslacht VARCHAR2 (256);
v_prs_perslid_oslogin VARCHAR2 (256);
v_prs_perslid_nr VARCHAR2 (256);
v_prs_afdeling_naam VARCHAR2 (256);
v_prs_afdeling_omschrijving VARCHAR2 (256);
v_prs_srtperslid_omschrijving VARCHAR2 (256);
v_prs_perslid_email VARCHAR2 (256);
v_prs_perslid_telefoonnr VARCHAR2 (256);
@@ -92,18 +92,17 @@ BEGIN
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam); -- SN
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel); --
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam); -- GIVENNAME
fac.imp_getfield (v_newline, c_fielddelimitor, v_BSN); -- EMPLOYEEID
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_aanhef); --
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr); -- EMPLOYEENUMBER
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam); -- SN
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam); -- GIVENNAME
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin); -- SAMACCOUNTNAME
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam); -- DEPARTMENT
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_omschrijving); -- DEPARTMENT
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving); -- TITLE
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr); -- TELEPHONENUMBER
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email); -- MAIL
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel); --
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_geslacht); -- EXTENSIONATTRIBUTE1
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel); -- MOBILE
--fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel); --
v_aanduiding :=
'['
@@ -121,17 +120,17 @@ BEGIN
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_prs_perslid_naam) = 'SN'
--AND UPPER (v_prs_perslid_tussenvoegsel) = ''
AND UPPER (v_prs_perslid_voornaam) = 'GIVENNAME'
--AND UPPER (v_prs_perslid_aanhef) = ''
AND UPPER (v_prs_perslid_nr) = 'EMPLOYEENUMBER'
AND UPPER (v_prs_perslid_oslogin) = 'SAMACCOUNTNAME'
AND UPPER (v_prs_afdeling_naam) = 'DEPARTMENT'
IF UPPER (v_prs_perslid_nr) = 'EMPLOYEENUMBER'
AND UPPER (v_prs_perslid_naam) = 'SN'
AND UPPER (v_prs_perslid_voornaam) = 'GIVENNAME'
AND UPPER (v_prs_perslid_oslogin) = 'SAMACCOUNTNAME'
AND UPPER (v_prs_afdeling_omschrijving) = 'DEPARTMENT'
AND UPPER (v_prs_srtperslid_omschrijving) = 'TITLE'
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEPHONENUMBER'
AND UPPER (v_prs_perslid_email) = 'MAIL'
--AND UPPER (v_prs_perslid_mobiel) = ''
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEPHONENUMBER'
AND UPPER (v_prs_perslid_email) = 'MAIL'
AND UPPER (v_prs_perslid_geslacht) = 'EXTENSIONATTRIBUTE1'
AND UPPER (v_prs_perslid_mobiel) = 'MOBILE'
--AND UPPER (v_prs_perslid_tussenvoegsel) = ''
THEN
header_is_valid := 1;
END IF;
@@ -139,6 +138,33 @@ BEGIN
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errorhint := 'Ongeldig personeelsnummer';
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
IF LENGTH (v_prs_perslid_nr) > 16
THEN
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
|| v_prs_perslid_nr
|| ']');
--ELSE
-- IF (v_prs_perslid_nr IS NULL)
-- THEN
-- v_ongeldig := 1;
-- fac.imp_writelog (
-- p_applname,
-- p_applrun,
-- 'E',
-- v_aanduiding || 'Personeelsnummer onbekend',
-- 'Personeelsnummer is verplicht; regel wordt overgeslagen!');
-- END IF;
END IF;
v_errorhint := 'Ongeldige achternaam';
v_prs_perslid_naam := TRIM (v_prs_perslid_naam);
@@ -166,23 +192,6 @@ BEGIN
END IF;
END IF;
--v_errorhint := 'Ongeldig tussenvoegsel';
--v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
--
--IF LENGTH (v_prs_perslid_tussenvoegsel) > 15
--THEN
-- v_prs_perslid_tussenvoegsel :=
-- SUBSTR (v_prs_perslid_tussenvoegsel, 1, 15);
-- fac.imp_writelog (
-- p_applname,
-- p_applrun,
-- 'W',
-- v_aanduiding || 'Tussenvoegsel te lang',
-- 'Tussenvoegsel wordt afgebroken tot ['
-- || v_prs_perslid_tussenvoegsel
-- || ']');
--END IF;
v_errorhint := 'Ongeldige voornaam';
v_prs_perslid_voornaam := TRIM (v_prs_perslid_voornaam);
@@ -199,26 +208,6 @@ BEGIN
|| ']');
END IF;
--v_errorhint := 'Ongeldige aanhef';
--v_prs_perslid_aanhef := TRIM (v_prs_perslid_aanhef);
--
--IF (UPPER (v_prs_perslid_aanhef) != 'HEER'
-- AND UPPER (v_prs_perslid_aanhef) != 'MEVROUW')
--THEN
-- fac.imp_writelog (p_applname,
-- p_applrun,
-- 'W',
-- v_aanduiding || v_errorhint,
-- 'Aanhef is [' || v_prs_perslid_aanhef || ']');
--ELSIF (v_prs_perslid_aanhef IS NULL)
--THEN
-- fac.imp_writelog (p_applname,
-- p_applrun,
-- 'W',
-- v_aanduiding || v_errorhint,
-- 'Aanhef niet ingevuld');
--END IF;
v_errorhint := 'Ongeldige accountnaam';
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
@@ -246,51 +235,24 @@ BEGIN
END IF;
END IF;
v_errorhint := 'Ongeldig personeelsnummer';
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
IF LENGTH (v_prs_perslid_nr) > 16
THEN
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
|| v_prs_perslid_nr
|| ']');
--ELSE
-- IF (v_prs_perslid_nr IS NULL)
-- THEN
-- v_ongeldig := 1;
-- fac.imp_writelog (
-- p_applname,
-- p_applrun,
-- 'E',
-- v_aanduiding || 'Personeelsnummer onbekend',
-- 'Personeelsnummer is verplicht; regel wordt overgeslagen!');
-- END IF;
END IF;
v_errorhint := 'Ongeldige afdeling';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
v_prs_afdeling_omschrijving := TRIM (v_prs_afdeling_omschrijving);
IF LENGTH (v_prs_afdeling_naam) > 10
IF LENGTH (v_prs_afdeling_omschrijving) > 60
THEN
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 10);
v_prs_afdeling_omschrijving := SUBSTR (v_prs_afdeling_omschrijving, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || 'Afdeling te lang',
'Afdeling wordt afgebroken tot ['
|| v_prs_afdeling_naam
|| v_prs_afdeling_omschrijving
|| ']');
ELSE
IF (v_prs_afdeling_naam IS NULL)
IF (v_prs_afdeling_omschrijving IS NULL)
THEN
v_prs_afdeling_naam := 'Onbekend';
v_prs_afdeling_omschrijving := 'Onbekend';
--TODO: verplicht maken?
--v_ongeldig := 1;
--fac.imp_writelog (
@@ -332,22 +294,6 @@ BEGIN
END IF;
END IF;
v_errorhint := 'E-mailadres te lang';
v_prs_perslid_email := TRIM (v_prs_perslid_email);
IF LENGTH (v_prs_perslid_email) > 100
THEN
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 100);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || v_errorhint,
'E-mailadres wordt afgebroken tot ['
|| v_prs_perslid_email
|| ']');
END IF;
v_errorhint := 'Telefoonnummer te lang';
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
@@ -365,19 +311,72 @@ BEGIN
|| ']');
END IF;
--v_errorhint := 'Mobiel nummer te lang';
--v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
v_errorhint := 'E-mailadres te lang';
v_prs_perslid_email := TRIM (v_prs_perslid_email);
IF LENGTH (v_prs_perslid_email) > 100
THEN
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 100);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || v_errorhint,
'E-mailadres wordt afgebroken tot ['
|| v_prs_perslid_email
|| ']');
END IF;
v_errorhint := 'Ongeldig geslacht';
v_prs_perslid_geslacht := TRIM (v_prs_perslid_geslacht);
IF (UPPER (v_prs_perslid_geslacht) != 'M'
AND UPPER (v_prs_perslid_geslacht) != 'V')
THEN
fac.imp_writelog (p_applname,
p_applrun,
'W',
v_aanduiding || v_errorhint,
'Geslacht is [' || v_prs_perslid_geslacht || ']');
ELSIF (v_prs_perslid_geslacht IS NULL)
THEN
fac.imp_writelog (p_applname,
p_applrun,
'W',
v_aanduiding || v_errorhint,
'Geslacht niet ingevuld');
END IF;
v_errorhint := 'Mobiel nummer te lang';
v_prs_perslid_mobiel := TRIM (v_prs_perslid_mobiel);
IF LENGTH (v_prs_perslid_mobiel) > 15
THEN
v_prs_perslid_mobiel := SUBSTR (v_prs_perslid_mobiel, 1, 15);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || v_errorhint,
'Nummer wordt afgebroken tot ['
|| v_prs_perslid_mobiel
|| ']');
END IF;
--v_errorhint := 'Ongeldig tussenvoegsel';
--v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
--
--IF LENGTH (v_prs_perslid_mobiel) > 15
--IF LENGTH (v_prs_perslid_tussenvoegsel) > 15
--THEN
-- v_prs_perslid_mobiel := SUBSTR (v_prs_perslid_mobiel, 1, 15);
-- v_prs_perslid_tussenvoegsel :=
-- SUBSTR (v_prs_perslid_tussenvoegsel, 1, 15);
-- fac.imp_writelog (
-- p_applname,
-- p_applrun,
-- 'W',
-- v_aanduiding || v_errorhint,
-- 'Nummer wordt afgebroken tot ['
-- || v_prs_perslid_mobiel
-- v_aanduiding || 'Tussenvoegsel te lang',
-- 'Tussenvoegsel wordt afgebroken tot ['
-- || v_prs_perslid_tussenvoegsel
-- || ']');
--END IF;
@@ -392,27 +391,27 @@ BEGIN
prs_perslid_naam,
--prs_perslid_tussenvoegsel,
prs_perslid_voornaam,
--prs_perslid_aanhef,
prs_perslid_geslacht,
prs_perslid_oslogin,
prs_perslid_nr,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_srtperslid_omschrijving,
prs_perslid_email,
prs_perslid_telefoonnr
--prs_perslid_mobiel
prs_perslid_telefoonnr,
prs_perslid_mobiel
)
VALUES (SYSDATE,
v_prs_perslid_naam,
--v_prs_perslid_tussenvoegsel,
v_prs_perslid_voornaam,
--v_prs_perslid_aanhef,
v_prs_perslid_geslacht,
v_prs_perslid_oslogin,
v_prs_perslid_nr,
v_prs_afdeling_naam,
v_prs_afdeling_omschrijving,
v_prs_srtperslid_omschrijving,
v_prs_perslid_email,
v_prs_perslid_telefoonnr
--v_prs_perslid_mobiel
v_prs_perslid_telefoonnr,
v_prs_perslid_mobiel
);
COMMIT;
@@ -536,20 +535,19 @@ IS
WHERE ip.prs_perslid_oslogin = p.prs_perslid_oslogin);
-- Dubbele nummers? Dan worden gewoon 2 (of meer) personen toegevoegd!
-- Alle gegevens uit importtabel geformatteerd volgens specificatie, met:
-- * geslacht a.d.h.v. aanhef
-- Alle gegevens uit importtabel geformatteerd volgens specificatie
CURSOR cperslid
IS
SELECT prs_perslid_naam,
prs_perslid_tussenvoegsel,
prs_perslid_voornaam,
DECODE (UPPER (prs_perslid_aanhef),
'HEER', 1,
'MEVROUW', 0)
DECODE (UPPER (prs_perslid_geslacht),
'M', 1,
'V', 0)
prs_perslid_geslacht,
prs_perslid_oslogin,
prs_perslid_nr,
prs_afdeling_naam,
prs_afdeling_omschrijving,
prs_srtperslid_omschrijving,
prs_perslid_email,
prs_perslid_telefoonnr,
@@ -925,15 +923,15 @@ BEGIN
v_errorhint :=
'Fout bij bepalen afdeling ['
|| recperslid.prs_afdeling_naam
|| recperslid.prs_afdeling_omschrijving
|| ']';
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND UPPER (prs_afdeling_naam) =
UPPER (recperslid.prs_afdeling_naam);
AND UPPER (prs_afdeling_omschrijving) =
UPPER (recperslid.prs_afdeling_omschrijving);
v_errorhint :=
'Fout bij bepalen naam ['
@@ -1016,14 +1014,14 @@ BEGIN
SET prs_perslid_naam = v_perslid_naam,
prs_perslid_tussenvoegsel = recperslid.prs_perslid_tussenvoegsel,
prs_perslid_voornaam = recperslid.prs_perslid_voornaam,
prs_perslid_geslacht = COALESCE (prs_perslid_geslacht, recperslid.prs_perslid_geslacht),
prs_perslid_oslogin = COALESCE (prs_perslid_oslogin, recperslid.prs_perslid_oslogin),
prs_perslid_geslacht = recperslid.prs_perslid_geslacht,
prs_perslid_oslogin = recperslid.prs_perslid_oslogin,
prs_perslid_nr = recperslid.prs_perslid_nr,
prs_afdeling_key = v_afdeling_key,
prs_srtperslid_key = v_srtperslid_key,
prs_perslid_email = recperslid.prs_perslid_email,
prs_perslid_telefoonnr = COALESCE (prs_perslid_telefoonnr, recperslid.prs_perslid_telefoonnr),
prs_perslid_mobiel = COALESCE (prs_perslid_mobiel, recperslid.prs_perslid_mobiel)
prs_perslid_telefoonnr = COALESCE (recperslid.prs_perslid_telefoonnr, prs_perslid_telefoonnr),
prs_perslid_mobiel = COALESCE (recperslid.prs_perslid_mobiel, prs_perslid_mobiel)
WHERE prs_perslid_key = v_perslid_key;
--TODO: als nog geen werkplek, dan standaardwerkplek?

View File

@@ -1,28 +1,48 @@
-- Customer specific once-script to add PRS-import as specified
-- by GDZW#19850.
-- (c) 2011 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 28-04-11 11:55 $
-- $Revision: 2 $
-- $Modtime: 10-05-11 11:54 $
--
-- Support: +31 53 4800700
SET ECHO ON;
SPOOL xgdzw1.lst;
-- Eerder handmatig toegevoegde afdelingen verwijderen.
-- Iedereen op afdeling 'Onbekend'
UPDATE prs_perslid
SET prs_afdeling_key = (SELECT prs_afdeling_key FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_omschrijving = 'Onbekend');
-- Voorbeeldcontract ook
UPDATE cnt_contract
SET prs_afdeling_key_eig = (SELECT prs_afdeling_key FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_omschrijving = 'Onbekend');
-- Alle subafdelingen verwijderen
DELETE FROM prs_afdeling
WHERE prs_afdeling_omschrijving != 'Onbekend'
AND prs_afdeling_parentkey IS NOT NULL;
-- Alle top-level afdelingen verwijderen
DELETE FROM prs_afdeling
WHERE prs_afdeling_omschrijving != 'Onbekend';
-- Importtabel personen
CREATE TABLE gdzw_imp_prs (
imp_datum DATE,
prs_perslid_naam VARCHAR2 (256),
prs_perslid_tussenvoegsel VARCHAR2 (256),
prs_perslid_voornaam VARCHAR2 (256),
prs_perslid_aanhef VARCHAR2 (256),
prs_perslid_geslacht VARCHAR2 (256),
prs_perslid_oslogin VARCHAR2 (256),
prs_perslid_nr VARCHAR2 (256),
prs_afdeling_naam VARCHAR2 (256),
prs_afdeling_omschrijving VARCHAR2 (256),
prs_srtperslid_omschrijving VARCHAR2 (256),
prs_perslid_email VARCHAR2 (256),
prs_perslid_telefoonnr VARCHAR2 (256),
prs_perslid_mobiel VARCHAR2 (256)
);
-- Importfunctie personen
INSERT INTO fac_import_app
(fac_import_app_code, fac_import_app_oms,
fac_functie_key)