AAZC#25346 -- inlezen personeelsbestand
svn path=/Customer/trunk/; revision=17153
This commit is contained in:
0
AA/AAZC/Once/.gitignore
vendored
0
AA/AAZC/Once/.gitignore
vendored
72
AA/AAZC/Once/AAZC#25346.sql
Normal file
72
AA/AAZC/Once/AAZC#25346.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
SET DEFINE OFF;
|
||||
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '1', '1',
|
||||
'van', 1, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
( 61, '2', '2',
|
||||
'van de', 2, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
( 61, '3', '3',
|
||||
'van der', 3, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
( 61, '4', '4',
|
||||
'de', 4, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '5', '5',
|
||||
'den', 5, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
( 61, '6', '6',
|
||||
'in ''t', 6, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '7', '7',
|
||||
'vander', 7, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '8', '8',
|
||||
'der', 8, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
( FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
( 61, '9', '9',
|
||||
'van den', 9, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '10', '10',
|
||||
'el', 10, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '11', '11',
|
||||
'de la', 11, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '12', '12',
|
||||
'v.d.', 11, sysdate);
|
||||
Insert into FAC_USRDATA
|
||||
(FAC_USRTAB_KEY, FAC_USRDATA_CODE, FAC_USRDATA_UPPER, FAC_USRDATA_OMSCHR, FAC_USRDATA_VOLGNR, FAC_USRDATA_AANMAAK)
|
||||
Values
|
||||
(61, '13', '13',
|
||||
'dos', 11, sysdate);
|
||||
|
||||
insert into fac_import_app (fac_import_app_code, fac_import_app_oms, fac_functie_key, fac_import_app_prefix)
|
||||
values ('PERSLID_MUT', 'AAZC Personen import functie', 66, 'AAZC');
|
||||
|
||||
COMMIT;
|
||||
454
AA/AAZC/aazc.sql
454
AA/AAZC/aazc.sql
@@ -179,10 +179,462 @@ END;
|
||||
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE aazc_import_perslid_mut (p_import_key IN NUMBER)
|
||||
AS
|
||||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
header_is_valid NUMBER;
|
||||
v_count NUMBER;
|
||||
v_ongeldig NUMBER (1);
|
||||
v_mode NUMBER (1);
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
v_all_null BOOLEAN;
|
||||
v_count_error NUMBER (10);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_import NUMBER (10);
|
||||
-- De importvelden:
|
||||
v_alg_locatie_code VARCHAR2 (256);
|
||||
v_alg_gebouw_code VARCHAR2 (256);
|
||||
v_alg_verdieping_volgnr VARCHAR2 (256);
|
||||
v_alg_verdieping_volgnr_num NUMBER (3);
|
||||
v_alg_ruimte_nr VARCHAR2 (256);
|
||||
v_prs_werkplek_volgnr VARCHAR2 (256);
|
||||
v_prs_werkplek_volgnr_num NUMBER (3);
|
||||
v_prs_werkplek_omschrijving VARCHAR2 (256);
|
||||
v_prs_afdeling_naam VARCHAR2 (256);
|
||||
v_prs_afdeling_omschrijving VARCHAR2 (256);
|
||||
v_prs_perslid_naam VARCHAR2 (256);
|
||||
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
|
||||
v_prs_perslid_voorletters VARCHAR2 (256);
|
||||
v_prs_perslid_voornaam VARCHAR2 (256);
|
||||
v_prs_perslid_titel VARCHAR2 (256);
|
||||
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
||||
v_prs_perslid_mobiel VARCHAR2 (256);
|
||||
v_prs_perslid_email VARCHAR2 (256);
|
||||
v_prs_srtperslid_omschrijving VARCHAR2 (256);
|
||||
v_prs_perslid_nr VARCHAR2 (256);
|
||||
v_prs_perslid_oslogin VARCHAR2 (256);
|
||||
v_old_login VARCHAR2 (256);
|
||||
v_dummy VARCHAR2 (256);
|
||||
v_tekst VARCHAR2 (4000);
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
|
||||
-- cursor om de tussenvoegsels goed in te kunnen vullen. Deze staan nu achter de achternaam.
|
||||
CURSOR c (p_persoonachternaam VARCHAR2)
|
||||
IS
|
||||
SELECT fac_usrdata_omschr
|
||||
FROM fac_usrdata u
|
||||
WHERE UPPER(p_persoonachternaam) LIKE '%' || ' ' || UPPER(u.fac_usrdata_omschr)
|
||||
AND fac_usrtab_key = 61
|
||||
ORDER BY LENGTH (fac_usrdata_omschr) DESC;
|
||||
BEGIN
|
||||
DELETE FROM fac_imp_perslid;
|
||||
|
||||
COMMIT;
|
||||
v_count_error := 0;
|
||||
header_is_valid := 0;
|
||||
v_count_tot := 0;
|
||||
v_count_import := 0;
|
||||
v_aanduiding := '';
|
||||
v_old_login := 'QueQeLeQue';
|
||||
|
||||
FOR rec1 IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errormsg := 'Fout FETCH te importeren rij';
|
||||
|
||||
v_newline := rec1.fac_imp_file_line;
|
||||
v_errormsg := '';
|
||||
v_errorhint := 'Fout opvragen te importeren rij';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
|
||||
-- Lees alle veldwaarden
|
||||
-- 01
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
-- 02
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
||||
-- 04
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
-- 05
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_ruimte_nr);
|
||||
-- 06
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
||||
-- 07
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_omschrijving);
|
||||
-- 08 kostenplaats
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
||||
-- 09
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
-- 10 Vestiging
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||||
-- 11 Gebouw
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_dummy);
|
||||
-- 12
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
|
||||
-- 13
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_tekst);
|
||||
|
||||
--
|
||||
v_aanduiding := v_prs_perslid_naam || ' - ';
|
||||
|
||||
-- Controleer alle veldwaarde
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_prs_perslid_naam) = 'PERSOON'
|
||||
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAMNETWERK'
|
||||
AND UPPER (v_alg_gebouw_code) = 'CODE BOUWDEEL'
|
||||
THEN
|
||||
IF v_tekst IS NULL -- tekst kolom bevat cr/lf die niet door de import begrepen worden.
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_errorhint := 'Ongeldige kamer';
|
||||
|
||||
v_alg_locatie_code := NULL;
|
||||
v_alg_gebouw_code := NULL;
|
||||
v_alg_verdieping_volgnr := NULL;
|
||||
IF v_alg_ruimte_nr IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
SELECT alg_locatie_code, alg_gebouw_upper, alg_verdieping_volgnr
|
||||
INTO v_alg_locatie_code, v_alg_gebouw_code, v_alg_verdieping_volgnr
|
||||
FROM alg_v_ruimte_gegevens
|
||||
WHERE alg_ruimte_nr = v_alg_ruimte_nr;
|
||||
|
||||
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, 'W', v_aanduiding || ' [' || v_alg_ruimte_nr || ']', v_errorhint);
|
||||
v_alg_ruimte_nr := NULL;
|
||||
END;
|
||||
END IF;
|
||||
--
|
||||
v_errorhint := 'Ongeldige afdelingscode';
|
||||
IF v_prs_afdeling_naam IS NULL OR v_prs_afdeling_naam = 'BLANKO'
|
||||
THEN
|
||||
v_prs_afdeling_naam := 'Onbekend';
|
||||
ELSE
|
||||
v_prs_afdeling_naam := SUBSTR(v_prs_afdeling_naam, 1, 4);
|
||||
END IF;
|
||||
|
||||
BEGIN
|
||||
SELECT prs_afdeling_naam
|
||||
INTO v_prs_afdeling_naam
|
||||
FROM prs_afdeling
|
||||
WHERE UPPER(prs_afdeling_naam) = UPPER(v_prs_afdeling_naam)
|
||||
AND prs_afdeling_verwijder IS NULL;
|
||||
EXCEPTION WHEN NO_DATA_FOUND THEN
|
||||
fac.imp_writelog (p_import_key, 'E', v_aanduiding, v_prs_afdeling_naam || ' - Afdeling kan niet gevonden worden!');
|
||||
v_prs_afdeling_naam := NULL;
|
||||
END;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige naam persoon';
|
||||
|
||||
-- verwijder de tussenvoegsels
|
||||
v_prs_perslid_tussenvoegsel := NULL;
|
||||
FOR rec1 IN c (v_prs_perslid_naam)
|
||||
LOOP
|
||||
BEGIN
|
||||
IF v_old_login <> v_prs_perslid_oslogin THEN
|
||||
v_prs_perslid_tussenvoegsel := rec1.fac_usrdata_omschr;
|
||||
v_prs_perslid_naam := TRIM(SUBSTR (v_prs_perslid_naam, 1, INSTR(v_prs_perslid_naam, rec1.fac_usrdata_omschr)-2));
|
||||
v_old_login := v_prs_perslid_oslogin;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
v_prs_perslid_voorletters := NULL;
|
||||
IF INSTR(v_prs_perslid_naam, ',') >0 THEN
|
||||
-- achternaam bevat ook voornaam
|
||||
v_prs_perslid_voornaam := substr(v_prs_perslid_naam, INSTR(v_prs_perslid_naam, ',')+2);
|
||||
IF INSTR(v_prs_perslid_voornaam, '.') <> 0
|
||||
THEN -- voorletters ipv voornaam
|
||||
v_prs_perslid_voorletters := SUBSTR(v_prs_perslid_voornaam,1,10);
|
||||
v_prs_perslid_voornaam := NULL;
|
||||
END IF;
|
||||
v_prs_perslid_naam := substr(v_prs_perslid_naam, 1, INSTR(v_prs_perslid_naam, ',') -1);
|
||||
END IF;
|
||||
|
||||
-- todo: moeten we nog checken op voorletters?
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige telefoonnr. persoon';
|
||||
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
|
||||
|
||||
IF LENGTH (v_prs_perslid_telefoonnr) > 15
|
||||
THEN
|
||||
v_prs_perslid_telefoonnr := SUBSTR (v_prs_perslid_telefoonnr, 1, 15);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Telefoonnr. persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_telefoonnr || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige email persoon';
|
||||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||||
|
||||
IF LENGTH (v_prs_perslid_email) > 200
|
||||
THEN
|
||||
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 200);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Email persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_email || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige functie persoon';
|
||||
v_prs_srtperslid_omschrijving := TRIM (v_prs_srtperslid_omschrijving);
|
||||
|
||||
IF v_prs_srtperslid_omschrijving IS NULL
|
||||
THEN
|
||||
v_prs_srtperslid_omschrijving := 'Onbekend';
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_prs_srtperslid_omschrijving) > 60
|
||||
THEN
|
||||
v_prs_srtperslid_omschrijving := SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Functie-aanduiding persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_srtperslid_omschrijving || ']'
|
||||
);
|
||||
ELSE
|
||||
IF (v_prs_srtperslid_omschrijving IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding,
|
||||
'Functie persoon moet worden opgegeven'
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige persoonnr.';
|
||||
v_prs_perslid_nr := TRIM (v_prs_perslid_nr);
|
||||
|
||||
IF fac.safe_to_number(v_prs_perslid_nr) IS NULL
|
||||
THEN
|
||||
v_prs_perslid_nr := NULL;
|
||||
END IF;
|
||||
|
||||
IF LENGTH (v_prs_perslid_nr) > 16
|
||||
THEN
|
||||
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Persoonnr. persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_nr || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige loginnaam';
|
||||
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
||||
|
||||
IF LENGTH (v_prs_perslid_oslogin) > 30
|
||||
THEN
|
||||
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Loginnaam persoon is te lang',
|
||||
'Aanduiding wordt afgebroken tot [' || v_prs_perslid_oslogin || ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
v_errormsg := 'Fout bij toevoegen te impoteren bedrijf/afdeling [' || v_prs_afdeling_naam || ']';
|
||||
|
||||
INSERT INTO fac_imp_perslid (
|
||||
alg_locatie_code,
|
||||
alg_gebouw_code,
|
||||
alg_verdieping_volgnr,
|
||||
alg_ruimte_nr,
|
||||
prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving,
|
||||
prs_afdeling_naam,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_tussenvoegsel,
|
||||
prs_perslid_voorletters,
|
||||
prs_perslid_voornaam,
|
||||
prs_perslid_telefoonnr,
|
||||
prs_perslid_email,
|
||||
prs_srtperslid_omschrijving,
|
||||
prs_perslid_nr,
|
||||
prs_perslid_oslogin
|
||||
)
|
||||
VALUES (
|
||||
v_alg_locatie_code,
|
||||
v_alg_gebouw_code,
|
||||
v_alg_verdieping_volgnr,
|
||||
v_alg_ruimte_nr,
|
||||
v_prs_werkplek_volgnr,
|
||||
v_prs_werkplek_omschrijving,
|
||||
v_prs_afdeling_naam,
|
||||
v_prs_perslid_naam,
|
||||
v_prs_perslid_tussenvoegsel,
|
||||
v_prs_perslid_voorletters,
|
||||
v_prs_perslid_voornaam,
|
||||
v_prs_perslid_telefoonnr,
|
||||
v_prs_perslid_email,
|
||||
v_prs_srtperslid_omschrijving,
|
||||
v_prs_perslid_nr,
|
||||
UPPER(v_prs_perslid_oslogin)
|
||||
);
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
END IF;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'Ongeldig importbestand',
|
||||
'Geen geldige headerregel aanwezig'
|
||||
);
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'S', 'Persoon: aantal ingelezen regels: ' || TO_CHAR (v_count_tot), '');
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'Persoon: aantal ongeldige importregels: ' || TO_CHAR (v_count_tot - v_count_import),
|
||||
''
|
||||
);
|
||||
END IF;
|
||||
|
||||
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_aanduiding || v_errormsg, v_errorhint);
|
||||
END aazc_import_perslid_mut;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE aazc_update_perslid_mut (p_import_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT prs_perslid_key,
|
||||
prs_perslid_naam,
|
||||
prs_perslid_oslogin,
|
||||
prs_perslid_oslogin2,
|
||||
prs_perslid_login,
|
||||
(SELECT COUNT ( * )
|
||||
FROM prs_v_verplichting v
|
||||
WHERE v.prs_perslid_key = p.prs_perslid_key)
|
||||
verplichtingen
|
||||
FROM prs_perslid p
|
||||
WHERE NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM fac_imp_perslid i
|
||||
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin)
|
||||
OR p.prs_perslid_oslogin2 = UPPER (i.prs_perslid_oslogin))
|
||||
AND prs_afdeling_key <> 21 -- AAFM medewerkers gaan we niet verwijderen.
|
||||
AND prs_perslid_verwijder IS NULL
|
||||
AND (prs_perslid_oslogin NOT LIKE '/_%' ESCAPE ('/')
|
||||
OR prs_perslid_oslogin IS NULL);
|
||||
|
||||
v_count NUMBER;
|
||||
v_aanduiding VARCHAR2(100);
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
IF v_count > 3000 THEN
|
||||
|
||||
-- generic update
|
||||
aaxx.fac_gen_update_perslid (p_import_key, 'LOGIN', 1, '');
|
||||
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
v_aanduiding := rec.prs_perslid_naam||' ('
|
||||
|| rec.prs_perslid_oslogin||'/'||rec.prs_perslid_oslogin2||') ';
|
||||
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_oslogin = NULL,
|
||||
prs_perslid_oslogin2 = NULL
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
|
||||
IF rec.verplichtingen = 0 THEN
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_verwijder = sysdate
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key;
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || '- Persoon is verwijderd', '');
|
||||
ELSE
|
||||
UPDATE prs_perslid p
|
||||
SET prs_perslid_naam = substr('Inactief ' || prs_perslid_naam, 1,60)
|
||||
WHERE p.prs_perslid_key = rec.prs_perslid_key
|
||||
AND p.prs_perslid_naam not like 'Inactief%';
|
||||
fac.imp_writelog (p_import_key, 'I', v_aanduiding || '- Persoon is als Inactief gemarkeerd', '');
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Fout bij verwijderen persoon.'
|
||||
);
|
||||
END;
|
||||
END LOOP;
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key, 'E', 'Te weinig records in personenbestand [' || v_count || ']', '');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
BEGIN adm.systrackscript('$Workfile: aazc.sql $', '$Revision$', 0); END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('AAZC', 1); END;
|
||||
BEGIN fac.registercustversion('AAZC', 2); END;
|
||||
/
|
||||
|
||||
COMMIT;
|
||||
|
||||
Reference in New Issue
Block a user