SKAF#63270 -- Afas personen import - definitieve versie
svn path=/Customer/trunk/; revision=48746
This commit is contained in:
423
SKAF/skaf.sql
423
SKAF/skaf.sql
@@ -52,7 +52,7 @@ IS
|
||||
v_prs_perslid_tussenvoegsel VARCHAR2 (256);
|
||||
v_prs_perslid_voorletters VARCHAR2 (256);
|
||||
v_prs_perslid_voornaam VARCHAR2 (256);
|
||||
v_prs_afdeling_naam VARCHAR2 (256);
|
||||
v_prs_afdeling_naam VARCHAR2 (256); -- Versie 1 was op afdelingscode. Versie 2 is op afdelings_kostenplaats
|
||||
v_prs_srtperslid_omschrijving VARCHAR2 (256);
|
||||
v_prs_perslid_telefoonnr VARCHAR2 (256);
|
||||
v_prs_perslid_email VARCHAR2 (256);
|
||||
@@ -60,9 +60,6 @@ IS
|
||||
v_prs_perslid_wachtwoord VARCHAR2 (256);
|
||||
|
||||
-- Overig:
|
||||
v_alg_locatie_code VARCHAR2 (256);
|
||||
v_alg_gebouw_code VARCHAR2 (256);
|
||||
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
@@ -88,31 +85,27 @@ BEGIN
|
||||
-- Lees alle veldwaarden
|
||||
|
||||
-- 01
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
|
||||
-- 02
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_gebouw_code);
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
||||
-- 04
|
||||
-- 02
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
-- 05
|
||||
-- 03
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
||||
-- 06
|
||||
-- 04
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
||||
-- 07
|
||||
-- 05
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
|
||||
-- 08
|
||||
-- 06
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
||||
-- 09
|
||||
-- 07
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
-- 10
|
||||
-- 08
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
||||
-- 11
|
||||
-- 09
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
-- 12
|
||||
-- 10
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
-- 12
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_wachtwoord);
|
||||
-- 11
|
||||
-- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_wachtwoord);
|
||||
|
||||
|
||||
|
||||
@@ -133,9 +126,7 @@ BEGIN
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||||
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
||||
AND UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
|
||||
IF UPPER (v_prs_afdeling_naam) = 'AFDELINGSCODE'
|
||||
AND UPPER (v_prs_perslid_naam) = 'PERSOONACHTERNAAM'
|
||||
AND UPPER (v_prs_perslid_tussenvoegsel) = 'TUSSENVOEGSEL'
|
||||
AND UPPER (v_prs_perslid_voorletters) = 'VOORLETTERS'
|
||||
@@ -145,7 +136,6 @@ BEGIN
|
||||
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
|
||||
AND UPPER (v_prs_perslid_nr) = 'PERSONEELSNUMMER'
|
||||
AND UPPER (v_prs_perslid_oslogin) = 'LOGINNAAM'
|
||||
AND UPPER (v_prs_perslid_wachtwoord) = 'PASSWORD'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
@@ -276,9 +266,9 @@ BEGIN
|
||||
v_errorhint := 'Ongeldige afdelingscode';
|
||||
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
|
||||
|
||||
IF LENGTH (v_prs_afdeling_naam) > 10
|
||||
IF LENGTH (v_prs_afdeling_naam) > 15
|
||||
THEN
|
||||
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 10);
|
||||
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 15);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Afdelingscode te lang',
|
||||
@@ -329,40 +319,6 @@ BEGIN
|
||||
END IF;
|
||||
COMMIT;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige plaats/locatiecode';
|
||||
v_alg_locatie_code := TRIM(v_alg_locatie_code);
|
||||
|
||||
IF LENGTH (v_alg_locatie_code) > 5
|
||||
THEN
|
||||
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 5);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Locatiecode te lang',
|
||||
'Locatiecode wordt afgebroken tot ['
|
||||
|| v_alg_locatie_code
|
||||
|| ']'
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige plaats/gebouwcode';
|
||||
v_alg_gebouw_code := TRIM(v_alg_gebouw_code);
|
||||
|
||||
IF LENGTH (v_alg_gebouw_code) > 10
|
||||
THEN
|
||||
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 10);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Gebouwcode te lang',
|
||||
'Gebouwcode wordt afgebroken tot ['
|
||||
|| v_alg_gebouw_code
|
||||
|| ']'
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig telefoonnummer';
|
||||
v_prs_perslid_telefoonnr := TRIM (v_prs_perslid_telefoonnr);
|
||||
@@ -385,9 +341,9 @@ BEGIN
|
||||
v_errorhint := 'Ongeldig e-mailadres';
|
||||
v_prs_perslid_email := TRIM (v_prs_perslid_email);
|
||||
|
||||
IF LENGTH (v_prs_perslid_email) > 50
|
||||
IF LENGTH (v_prs_perslid_email) > 150
|
||||
THEN
|
||||
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 50);
|
||||
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 150);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'E-mailadres te lang',
|
||||
@@ -416,23 +372,6 @@ BEGIN
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig wachtwoord';
|
||||
v_prs_perslid_wachtwoord := TRIM (v_prs_perslid_wachtwoord);
|
||||
|
||||
IF LENGTH (v_prs_perslid_wachtwoord) > 30
|
||||
THEN
|
||||
v_prs_perslid_wachtwoord := SUBSTR (v_prs_perslid_wachtwoord, 1, 30);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Wachtwoord te lang',
|
||||
'Wachtwoord wordt afgebroken tot ['
|
||||
|| v_prs_perslid_wachtwoord
|
||||
|| ']'
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
@@ -458,12 +397,12 @@ BEGIN
|
||||
v_prs_perslid_voorletters,
|
||||
v_prs_perslid_voornaam, v_prs_afdeling_naam,
|
||||
v_prs_srtperslid_omschrijving,
|
||||
v_alg_locatie_code, v_alg_gebouw_code,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
v_prs_perslid_telefoonnr,
|
||||
v_prs_perslid_email,
|
||||
v_prs_perslid_oslogin,
|
||||
v_prs_perslid_wachtwoord
|
||||
NULL
|
||||
);
|
||||
COMMIT;
|
||||
v_count_import := v_count_import + 1;
|
||||
@@ -530,7 +469,6 @@ EXCEPTION
|
||||
END skaf_import_prs;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE skaf_update_prs (
|
||||
p_import_key IN NUMBER
|
||||
)
|
||||
@@ -538,14 +476,9 @@ IS
|
||||
-- LET OP: moet idem zijn als declaratie bij SKAF_IMPORT_PRS
|
||||
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
|
||||
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer
|
||||
c_max_delta_percentage NUMBER (10) := 50; -- Eenmalig 25-10-2020 op 50 gezet... Moet op 20
|
||||
-- Zie SKAF#41843 het verschil is op dit moment 1099-326=773 is ongeveer 70% dus om het personeelsbestand te corrigeren tijdelijk aanpassen
|
||||
-- c_max_delta_percentage NUMBER (10) := 80;
|
||||
c_max_delta_percentage NUMBER (10) := 50; -- Eenmalig 25-10-2020 op 50 gezet... Moet/kan daarna weer op 20
|
||||
|
||||
-- Ruimte waar personen in geplaatst worden (indien nog geen ruimte in opgegeven gebouw)
|
||||
c_ruimte_nr VARCHAR2 (10) := '000';
|
||||
-- Groep waar personen in geplaatst worden (indien nog geen groep)
|
||||
|
||||
c_key_default_rol NUMBER(10) := 1;
|
||||
|
||||
v_aanduiding VARCHAR2 (200);
|
||||
@@ -563,14 +496,6 @@ IS
|
||||
v_afdeling_key NUMBER (10);
|
||||
v_srtperslid_key NUMBER (10);
|
||||
v_oslogin VARCHAR2 (30);
|
||||
v_wachtwoord VARCHAR2 (30);
|
||||
v_locatie_key NUMBER (10);
|
||||
v_gebouw_key NUMBER (10);
|
||||
v_verdieping_key NUMBER (10);
|
||||
v_ruimte_key NUMBER (10);
|
||||
v_wp_key NUMBER (10);
|
||||
v_wp_volgnr NUMBER (3);
|
||||
v_wp_oms VARCHAR2 (30);
|
||||
v_groep_defaultnaam VARCHAR2 (30);
|
||||
|
||||
-- Let op! Met eindatum zijn personen die niet meer in dienst zijn.
|
||||
@@ -593,32 +518,11 @@ IS
|
||||
FROM skaf_imp_prs
|
||||
GROUP BY UPPER (prs_srtperslid_omschrijving);
|
||||
|
||||
|
||||
CURSOR cperslid
|
||||
IS
|
||||
SELECT *
|
||||
FROM skaf_imp_prs;
|
||||
|
||||
CURSOR cwp
|
||||
IS
|
||||
SELECT p.*, ip.alg_locatie_code, ip.alg_gebouw_code
|
||||
FROM skaf_imp_prs ip, prs_v_aanwezigperslid p
|
||||
WHERE ip.alg_locatie_code IS NOT NULL
|
||||
AND ip.alg_gebouw_code IS NOT NULL
|
||||
AND UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr);
|
||||
|
||||
-- Alle actieve personen met personeelsnummer (ie. de import-doelgroep) zonder een werkplek
|
||||
CURSOR cnowp
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
|
||||
p.prs_perslid_voornaam
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE p.prs_perslid_nr IS NOT NULL
|
||||
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
||||
|
||||
-- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep
|
||||
CURSOR cnogroup
|
||||
IS
|
||||
@@ -731,8 +635,8 @@ BEGIN
|
||||
|| recdelprs.prs_perslid_naam
|
||||
|| ', '
|
||||
|| recdelprs.prs_perslid_voornaam
|
||||
|| '] is INACTIEF gemaakt',
|
||||
'Persoon is INACTIEF gemaakt'
|
||||
|| '] was en blijft INACTIEF',
|
||||
'Persoon was en blijft INACTIEF'
|
||||
);
|
||||
END IF;
|
||||
COMMIT;
|
||||
@@ -847,15 +751,16 @@ BEGIN
|
||||
UPPER (recperslid.prs_srtperslid_omschrijving);
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij bepalen afdeling ['
|
||||
'Fout bij bepalen afdeling (via kostenplaatsnr) ['
|
||||
|| recperslid.prs_afdeling_naam
|
||||
|| ']';
|
||||
|
||||
SELECT prs_afdeling_key
|
||||
INTO v_afdeling_key
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (prs_afdeling_naam) =
|
||||
FROM prs_afdeling a, prs_kostenplaats k
|
||||
WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (k.prs_kostenplaats_nr) =
|
||||
UPPER (recperslid.prs_afdeling_naam);
|
||||
|
||||
v_errorhint := 'Fout bij bepalen persoon';
|
||||
@@ -866,13 +771,10 @@ BEGIN
|
||||
WHERE prs_perslid_verwijder IS NULL
|
||||
AND UPPER (prs_perslid_nr) = UPPER (recperslid.prs_perslid_nr);
|
||||
|
||||
|
||||
-- Login afleiden uit e-mail (alles voor @) -- ACTIE: NOG VASTSTELLEN MET BRANDON
|
||||
-- v_oslogin := SUBSTR (recperslid.prs_perslid_email, 1, INSTR (recperslid.prs_perslid_email, '@', 1, 1) - 1);
|
||||
-- Hier wordt loginnaam expliciet (anders) in het importbestand meegegeven.
|
||||
v_oslogin := SUBSTR (recperslid.prs_perslid_email, 1, INSTR (recperslid.prs_perslid_email, '@', 1, 1) - 1);
|
||||
-- WAS: v_oslogin := recperslid.prs_perslid_oslogin;
|
||||
v_wachtwoord := recperslid.prs_perslid_wachtwoord;
|
||||
-- Login is afgeleid uit e-mail (alles voor @) en max 30 posities
|
||||
-- Dit is al in import-deel geregeld
|
||||
-- v_oslogin := SUBSTR (recperslid.prs_perslid_email, 1, INSTR (recperslid.prs_perslid_email, '@', 1, 1) - 1);
|
||||
v_oslogin := recperslid.prs_perslid_oslogin;
|
||||
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
@@ -900,7 +802,19 @@ BEGIN
|
||||
v_oslogin
|
||||
) RETURNING prs_perslid_key INTO v_perslid_key;
|
||||
|
||||
prs.setpassword(v_perslid_key, v_wachtwoord);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Persoon met nummer ['
|
||||
|| recperslid.prs_perslid_nr
|
||||
|| '] en naam ['
|
||||
|| recperslid.prs_perslid_naam
|
||||
|| ', '
|
||||
|| recperslid.prs_perslid_voornaam
|
||||
|| '] is toegevoegd',
|
||||
'Persoon is toegevoegd'
|
||||
);
|
||||
|
||||
fac.trackaction ('PRSUPD', v_perslid_key, 4,sysdate, v_aanduiding || ' is toegevoegd uit afas-prs-import') ;
|
||||
|
||||
COMMIT;
|
||||
ELSE
|
||||
@@ -929,9 +843,6 @@ BEGIN
|
||||
prs_perslid_nr = recperslid.prs_perslid_nr,
|
||||
prs_perslid_oslogin = COALESCE (v_oslogin, prs_perslid_oslogin)
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
IF v_wachtwoord IS NOT NULL THEN
|
||||
prs.setpassword(v_perslid_key, v_wachtwoord);
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
@@ -970,251 +881,7 @@ BEGIN
|
||||
);
|
||||
COMMIT;
|
||||
|
||||
v_count_tot := 0;
|
||||
v_count_error := 0;
|
||||
|
||||
FOR recwp IN cwp
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_aanduiding :=
|
||||
recwp.prs_perslid_nr
|
||||
|| '|'
|
||||
|| recwp.prs_perslid_naam
|
||||
|| '|'
|
||||
|| recwp.prs_perslid_voornaam
|
||||
|| '|'
|
||||
|| recwp.alg_locatie_code
|
||||
|| '|'
|
||||
|| recwp.alg_gebouw_code
|
||||
|| ' - ';
|
||||
v_errorhint := 'Fout bij bepalen persoon';
|
||||
|
||||
SELECT prs_perslid_key
|
||||
INTO v_perslid_key
|
||||
FROM prs_v_aanwezigperslid
|
||||
WHERE UPPER (prs_perslid_nr) = UPPER (recwp.prs_perslid_nr);
|
||||
|
||||
v_errorhint := 'Fout bij bepalen locatie';
|
||||
|
||||
SELECT alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM alg_v_aanweziglocatie
|
||||
WHERE UPPER (alg_locatie_code) = UPPER (recwp.alg_locatie_code);
|
||||
|
||||
v_errorhint := 'Fout bij bepalen gebouw';
|
||||
|
||||
SELECT alg_gebouw_key
|
||||
INTO v_gebouw_key
|
||||
FROM alg_v_aanweziggebouw
|
||||
WHERE alg_locatie_key = v_locatie_key
|
||||
AND UPPER (alg_gebouw_code) = UPPER (recwp.alg_gebouw_code);
|
||||
|
||||
v_errorhint := 'Fout bij bepalen verdieping';
|
||||
|
||||
SELECT alg_verdieping_key
|
||||
INTO v_verdieping_key
|
||||
FROM alg_v_aanwezigverdieping
|
||||
WHERE alg_gebouw_key = v_gebouw_key
|
||||
AND alg_verdieping_volgnr = (SELECT MIN (v.alg_verdieping_volgnr)
|
||||
FROM alg_verdieping v
|
||||
WHERE v.alg_gebouw_key = v_gebouw_key
|
||||
AND v.alg_verdieping_volgnr >= 0);
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij bepalen of persoon in gebouw een werkplek heeft';
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM prs_perslidwerkplek pw,
|
||||
prs_werkplek wp,
|
||||
alg_ruimte r,
|
||||
alg_verdieping v
|
||||
WHERE pw.prs_perslid_key = v_perslid_key
|
||||
AND pw.prs_werkplek_key = wp.prs_werkplek_key
|
||||
AND wp.prs_alg_ruimte_key = r.alg_ruimte_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND v.alg_gebouw_key = v_gebouw_key;
|
||||
|
||||
-- v_count=0 -> persoon verhuist naar/krijgt wp in gebouw.
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
v_errorhint := 'Fout bij bepalen ruimte';
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM alg_v_aanwezigruimte r
|
||||
WHERE r.alg_verdieping_key = v_verdieping_key
|
||||
AND r.alg_ruimte_nr = c_ruimte_nr;
|
||||
|
||||
-- v_count=0 -> ruimte '000' bestaat nog niet.
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
v_errorhint := 'Fout bij toevoegen ruimte';
|
||||
|
||||
INSERT INTO alg_ruimte
|
||||
(alg_verdieping_key, alg_srtruimte_key,
|
||||
alg_ruimte_nr
|
||||
)
|
||||
VALUES (v_verdieping_key, 21, -- facilitaire ruimte
|
||||
c_ruimte_nr
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Fout bij bepalen ruimte';
|
||||
|
||||
SELECT alg_ruimte_key
|
||||
INTO v_ruimte_key
|
||||
FROM alg_v_aanwezigruimte r
|
||||
WHERE r.alg_verdieping_key = v_verdieping_key
|
||||
AND r.alg_ruimte_nr = c_ruimte_nr;
|
||||
|
||||
v_errorhint := 'Fout bij bepalen vrije werkplek';
|
||||
|
||||
SELECT COUNT (w.prs_werkplek_key)
|
||||
INTO v_count
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key =
|
||||
w.prs_werkplek_key);
|
||||
|
||||
IF (v_count > 0)
|
||||
THEN
|
||||
SELECT MIN (w.prs_werkplek_key)
|
||||
INTO v_wp_key
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_werkplek_key =
|
||||
w.prs_werkplek_key);
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij koppelen persoon aan vrije werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek
|
||||
(prs_perslid_key, prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_wp_key,
|
||||
100
|
||||
);
|
||||
COMMIT;
|
||||
ELSE
|
||||
v_errorhint := 'Fout bij bepalen nieuwe werkplek';
|
||||
|
||||
SELECT prs_s_prs_werkplek_key.NEXTVAL
|
||||
INTO v_wp_key
|
||||
FROM DUAL;
|
||||
|
||||
SELECT COALESCE (MAX (w.prs_werkplek_volgnr), 0) + 1
|
||||
INTO v_wp_volgnr
|
||||
FROM prs_werkplek w
|
||||
WHERE w.prs_alg_ruimte_key = v_ruimte_key;
|
||||
|
||||
v_wp_oms := c_ruimte_nr || '/' || TO_CHAR (v_wp_volgnr);
|
||||
|
||||
v_errorhint := 'Fout bij aanmaken nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_werkplek
|
||||
(prs_werkplek_key, prs_werkplek_module,
|
||||
prs_werkplek_volgnr,
|
||||
prs_werkplek_omschrijving, prs_alg_ruimte_key
|
||||
)
|
||||
VALUES (v_wp_key, 'PRR',
|
||||
v_wp_volgnr,
|
||||
v_wp_oms, v_ruimte_key
|
||||
);
|
||||
|
||||
v_errorhint :=
|
||||
'Fout bij koppelen persoon aan nieuwe werkplek';
|
||||
|
||||
INSERT INTO prs_perslidwerkplek
|
||||
(prs_perslid_key, prs_werkplek_key,
|
||||
prs_perslidwerkplek_bezetting
|
||||
)
|
||||
VALUES (v_perslid_key, v_wp_key,
|
||||
100
|
||||
);
|
||||
COMMIT;
|
||||
END IF;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_count_error := v_count_error + 1;
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
'OTHERS (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',
|
||||
'Werkplek: verwerkte regels zonder foutmelding: '
|
||||
|| TO_CHAR (v_count_tot - v_count_error),
|
||||
''
|
||||
);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'S',
|
||||
'Werkplek: verwerkte regels met foutmelding: '
|
||||
|| TO_CHAR (v_count_error),
|
||||
''
|
||||
);
|
||||
COMMIT;
|
||||
|
||||
FOR recnowp IN cnowp
|
||||
LOOP
|
||||
BEGIN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Persoon met nummer ['
|
||||
|| recnowp.prs_perslid_nr
|
||||
|| '] en naam ['
|
||||
|| recnowp.prs_perslid_naam
|
||||
|| ', '
|
||||
|| recnowp.prs_perslid_voornaam
|
||||
|| '] heeft geen werkplek',
|
||||
'Geen werkplek'
|
||||
);
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Iedereen krijgt _default-rol die nog geen groep heeft.
|
||||
-- Iedereen krijgt _default-rol die nog geen groep heeft.
|
||||
FOR recnogroup IN cnogroup
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
Reference in New Issue
Block a user