LOGI#56094: Personen import afgelopen nacht verkeerd gelopen

svn path=/Customer/trunk/; revision=43022
This commit is contained in:
Suzan Wiegerinck
2019-06-20 07:49:07 +00:00
parent 43cebe6d25
commit c733a1f99b

View File

@@ -862,7 +862,6 @@ END;
*/
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
@@ -888,10 +887,59 @@ BEGIN
UPDATE fac_imp_perslid
SET prs_afdeling_naam = 'CGI';
--- LET OP: medewerkers zonder email adres (want dat wordt de match) verwijderen!
DELETE fac_imp_perslid p
WHERE p.prs_perslid_email IS NULL;
UPDATE fac_imp_perslid p
SET p.alg_locatie_code =
(SELECT lo.alg_locatie_code
FROM fac_usrdata ud, alg_locatie lo
WHERE ud.fac_usrtab_key = 1
AND ud.fac_usrdata_code = lo.alg_locatie_code
AND ud.fac_usrdata_omschr = p.prs_kenmerk1
AND lo.alg_locatie_verwijder IS NULL);
UPDATE fac_imp_perslid p
SET p.alg_gebouw_code =
(SELECT g.alg_gebouw_code
FROM alg_locatie l, alg_gebouw g
WHERE p.alg_locatie_code = l.alg_locatie_code
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_verwijder IS NULL
AND g.alg_srtgebouw_key <> 61 -- parkeer garages doen niet mee
AND l.alg_locatie_verwijder IS NULL);
UPDATE fac_imp_perslid p
SET p.alg_verdieping_volgnr =
(SELECT v.alg_verdieping_volgnr
FROM alg_locatie l, alg_gebouw g, alg_verdieping v
WHERE p.alg_locatie_code = l.alg_locatie_code
AND p.alg_gebouw_code = g.alg_gebouw_code
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_verwijder IS NULL
AND g.alg_srtgebouw_key <> 61 -- parkeer garages doen niet mee
AND l.alg_locatie_verwijder IS NULL
AND v.alg_gebouw_key = g.alg_gebouw_key
AND v.alg_verdieping_code = '0'
AND v.alg_verdieping_verwijder IS NULL);
UPDATE fac_imp_perslid p
SET p.alg_ruimte_nr =
(SELECT r.alg_ruimte_nr
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE p.alg_locatie_code = l.alg_locatie_code
AND l.alg_locatie_key = g.alg_locatie_key
AND p.alg_gebouw_code = g.alg_gebouw_code
AND p.alg_verdieping_volgnr = v.alg_verdieping_volgnr
AND g.alg_gebouw_verwijder IS NULL
AND g.alg_srtgebouw_key <> 61 -- parkeer garages doen niet mee
AND l.alg_locatie_verwijder IS NULL
AND v.alg_gebouw_key = g.alg_gebouw_key
AND v.alg_verdieping_code = '0'
AND v.alg_verdieping_verwijder IS NULL
AND r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_nr = '000'
AND r.alg_ruimte_verwijder IS NULL);
COMMIT;
EXCEPTION
@@ -907,39 +955,27 @@ EXCEPTION
END logi_import_persoon;
/
/* Formatted on 7-6-2019 11:07:56 (QP5 v5.336) */
CREATE OR REPLACE PROCEDURE logi_update_persoon (p_import_key IN NUMBER)
CREATE OR REPLACE PROCEDURE logi_werkplek_persoon (p_import_key IN NUMBER)
AS
v_perslid_key NUMBER (10);
v_nr_werkplek NUMBER;
v_current_locatie_key NUMBER;
v_new_locatie_key NUMBER;
v_update BOOLEAN;
v_errormsg VARCHAR2 (1024);
v_errorhint VARCHAR2 (1024);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_werkplek_key NUMBER (10);
v_gebouw_code VARCHAR2 (10);
-- Constanten (overig)
c_usrtab_key INTEGER := 1; -- Tbv LOCATIE
-- Constanten (LET OP: deze waarden moeten letterlijk in de DB aabwezig zijn!)
c_srtgebouw_default INTEGER := 1;
c_srtruimte_default INTEGER := 1;
c_afdeling_key NUMBER := 6761; -- LOGI#31662
-- Constanten (overig)
c_prs_werkplek_omschrijving VARCHAR2 (16) := 'Onbekend';
c_srtperslid_omschr_default VARCHAR2 (16) := 'Onbekend';
c_werkplek_volgnr_default INTEGER := 1;
c_verdieping_omschr_default VARCHAR2 (16) := 'BG';
c_ruimte_omschr_default VARCHAR2 (16) := 'Onbekend';
c_ruimte_code VARCHAR2 (3) := '000';
c_commitbuffer NUMBER := 1000;
c_usrtab_key INTEGER := 1; -- Tbv LOCATIE
--- dan de werkplekken aanvullen
CURSOR c_prs_upd IS
SELECT p.prs_perslid_key,
lp.prs_kenmerk1, --- locatie omschrijving
lp.prs_kenmerk1
prs_locatie_omschrijving,
lp.prs_perslid_naam,
lp.prs_perslid_tussenvoegsel,
lp.prs_perslid_voorletters,
@@ -948,18 +984,303 @@ AS
lp.prs_perslid_mobiel,
lp.prs_perslid_oslogin,
lp.prs_perslid_email,
COALESCE (lp.prs_srtperslid_omschrijving, 'Onbekend')
COALESCE (lp.prs_srtperslid_omschrijving,
c_srtperslid_omschr_default)
prs_srtperslid_omschrijving,
lp.prs_perslid_nr,
''
prs_perslid_titel,
p.prs_perslid_verwijder
FROM fac_imp_perslid lp, prs_perslid p
WHERE 1 = 1 AND lp.prs_perslid_email = p.prs_perslid_email(+)
-- Dit moet analoog aan UWVA#13061: verwijderde personen moeten kunnen worden gereactiveerd.
-- AND p.prs_perslid_verwijder IS NULL
WHERE 1 = 1 AND lp.prs_perslid_email = p.prs_perslid_email
ORDER BY lp.prs_perslid_nr, p.prs_perslid_key DESC;
v_perslid_key NUMBER (10);
v_srtperslid_key NUMBER (10);
--v_afdeling_key NUMBER (10);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_werkplek_key NUMBER (10);
v_gebouw_code VARCHAR2 (10);
v_srtperslid_omschr VARCHAR (30);
rec_prs_upd c_prs_upd%ROWTYPE;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (1024);
v_errorhint VARCHAR2 (1024);
v_debug VARCHAR2 (1024);
v_count NUMBER (10);
v_update BOOLEAN;
v_aktie VARCHAR (10);
v_perslid_count_imp NUMBER;
v_perslid_count_fclt NUMBER;
v_perslid_newcount_fclt NUMBER;
currentversion fac_module.fac_module_version%TYPE;
l_validatie NUMBER;
v_srtimport VARCHAR2 (10);
l_nrkps NUMBER;
v_nr_werkplek NUMBER;
v_current_locatie_key NUMBER;
v_new_locatie_key NUMBER;
BEGIN
FOR rec_prs_upd IN c_prs_upd
LOOP
-- bepaal aantal werkplekken
BEGIN
SELECT COUNT (*)
INTO v_nr_werkplek
FROM prs_perslidwerkplek
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'Het aantal werkplekken kan niet bepaald worden?! personeelsnummer: '
|| rec_prs_upd.prs_perslid_nr);
v_update := FALSE;
END;
IF v_nr_werkplek = 1
THEN
BEGIN
-- bepaal huidige alg_locatie_key
SELECT alg_locatie_key
INTO v_current_locatie_key
FROM prs_v_werkplekperslid_gegevens
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key;
-- bepaal nieuwe alg_locatie_key
SELECT lo.alg_locatie_key
INTO v_new_locatie_key
FROM fac_usrdata ud, alg_locatie lo
WHERE ud.fac_usrtab_key = c_usrtab_key
AND ud.fac_usrdata_code = lo.alg_locatie_code
AND ud.fac_usrdata_omschr =
rec_prs_upd.prs_locatie_omschrijving
AND lo.alg_locatie_verwijder IS NULL;
-- indien gelijk dan werkplek niet updaten.
v_update := (v_current_locatie_key <> v_new_locatie_key);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'huidige of nieuwe alg_locatie_key kan niet bepaald worden?! personeelsnummer: '
|| rec_prs_upd.prs_perslid_nr);
v_update := FALSE;
END;
END IF;
-- Er is geen werkplek bekend in Facilitor of de werkplek uit de import wijkt af van de werkplek in Facilitor dan gaan we bijwerken
-- Als er meer dan 1 werkplek is, dan laten we het zoals het is
IF v_update AND v_nr_werkplek <= 1
THEN
v_errormsg :=
'Fout bij toewijzen werkplek bij zojuist toegevoegde persoon ';
BEGIN
SELECT lo.alg_locatie_key
INTO v_locatie_key
FROM FAC_USRDATA ud, ALG_LOCATIE lo
WHERE ud.fac_usrtab_key = c_usrtab_key
AND ud.fac_usrdata_code = lo.alg_locatie_code
AND ud.fac_usrdata_omschr =
rec_prs_upd.prs_locatie_omschrijving
AND lo.alg_locatie_verwijder IS NULL;
EXCEPTION
WHEN OTHERS
THEN
v_update := FALSE;
END;
IF NOT v_update
THEN
v_errorhint :=
'Onbekende Locatie-omschrijving '
|| rec_prs_upd.prs_locatie_omschrijving
|| '; personeelsnummer: '
|| rec_prs_upd.prs_perslid_nr;
fac.imp_writelog (p_import_key,
'I',
v_errormsg,
v_errorhint);
ELSE
BEGIN
SELECT MIN (alg_gebouw_code)
INTO v_gebouw_code
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_verwijder IS NULL;
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_code = v_gebouw_code
AND alg_gebouw_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO alg_gebouw (alg_locatie_key,
alg_srtgebouw_key,
alg_gebouw_code,
alg_gebouw_naam)
VALUES (v_locatie_key,
c_srtgebouw_default,
'0',
'Onbekend');
v_errormsg :=
'Bepalen alg_gebouw_key adhv v_locatie_key=['
|| TO_CHAR (v_locatie_key)
|| '] en v_gebouw_code=['
|| v_gebouw_code
|| ']';
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_code = v_gebouw_code
AND alg_gebouw_verwijder IS NULL;
END;
BEGIN
v_errormsg := 'Bepalen alg_verdieping_key';
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_verwijder IS NULL
AND alg_verdieping_code = '0'; -- Begane grond! Niet via volgnummer!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint :=
'Persoon met persoonnummer '
|| rec_prs_upd.prs_perslid_nr
|| ': toevoegen verdieping Onbekend';
INSERT INTO alg_verdieping (
alg_gebouw_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code)
VALUES (v_gebouw_key,
c_verdieping_omschr_default,
0,
'0');
-- Alsnog bepalen v_verdieping_key
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_verwijder IS NULL
AND alg_verdieping_code = '0'; -- Begane grond!
END;
BEGIN
v_errorhint :=
'Persoon met persoonnummer '
|| rec_prs_upd.prs_perslid_nr
|| ': bepalen ruimte (ruimte zou bekend moeten zijn)';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_verwijder IS NULL
AND alg_ruimte_nr = c_ruimte_code;
-- Altijd ruimte met deze notatie!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO alg_ruimte (alg_verdieping_key,
alg_srtruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving)
VALUES (v_verdieping_key,
c_srtruimte_default,
c_ruimte_code,
c_ruimte_omschr_default);
-- Alsnog bepalen v_ruimte_key
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_verwijder IS NULL
AND alg_ruimte_nr = c_ruimte_code;
-- Altijd ruimte met deze notatie!
END;
BEGIN
v_errorhint :=
'Persoon met persoonnummer '
|| rec_prs_upd.prs_perslid_nr
|| ': bepalen werkplek (werkplek zou bekend moeten zijn)';
SELECT prs_werkplek_key
INTO v_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr =
c_werkplek_volgnr_default;
-- Altijd werkplek met deze notatie!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_werkplek (prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_alg_ruimte_key,
prs_werkplek_virtueel)
VALUES (c_werkplek_volgnr_default,
c_prs_werkplek_omschrijving,
v_ruimte_key,
1);
-- Alsnog bepalen v_werkplek_key
SELECT prs_werkplek_key
INTO v_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr =
c_werkplek_volgnr_default;
-- Altijd werkplek met deze notatie!
END;
IF v_nr_werkplek = 0
THEN
INSERT INTO prs_perslidwerkplek (
prs_perslid_key,
prs_werkplek_key,
prs_perslidwerkplek_bezetting)
VALUES (v_perslid_key, v_werkplek_key, 0);
ELSE -- v_aktie = 'UPDATE' AND v_nr_werkplek = 1
UPDATE prs_perslidwerkplek
SET prs_werkplek_key = v_werkplek_key
WHERE prs_perslid_key = v_perslid_key;
END IF;
END IF;
END IF;
END LOOP;
END;
/
CREATE OR REPLACE PROCEDURE logi_update_persoon (p_import_key IN NUMBER)
AS
-- Verwijderen op basis van oslogin #56094
CURSOR c_prs_del IS
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_oslogin
@@ -976,312 +1297,28 @@ AS
UPPER (lp.prs_perslid_oslogin(+))
AND lp.prs_perslid_oslogin IS NULL
ORDER BY 2, 1;
BEGIN
FOR rec IN c_prs_upd
LOOP
BEGIN
-- 'Email' betekent dat op basis van Email wordt gematched.
prs.update_perslid (p_import_key, 'EMAIL', NULL);
BEGIN
-- Bepaal werkplekken
SELECT COUNT (*)
INTO v_nr_werkplek
FROM prs_perslidwerkplek
WHERE prs_perslid_key = rec.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'Het aantal werkplekken kan niet bepaald worden?! personeelsnummer: '
|| rec.prs_perslid_nr);
-- indien niet te bepalen dan niet updaten.
v_update := FALSE;
END;
IF v_nr_werkplek = 1
THEN
BEGIN
-- bepaal huidige alg_locatie_key
SELECT alg_locatie_key
INTO v_current_locatie_key
FROM prs_v_werkplekperslid_gegevens
WHERE prs_perslid_key = rec.prs_perslid_key;
-- bepaal nieuwe alg_locatie_key
SELECT lo.alg_locatie_key
INTO v_new_locatie_key
FROM fac_usrdata ud, alg_locatie lo
WHERE ud.fac_usrtab_key = c_usrtab_key
AND ud.fac_usrdata_code = lo.alg_locatie_code
AND ud.fac_usrdata_omschr = rec.prs_kenmerk1
AND lo.alg_locatie_verwijder IS NULL;
-- indien gelijk dan werkplek niet updaten.
v_update := (v_current_locatie_key <> v_new_locatie_key);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'huidige of nieuwe alg_locatie_key kan niet bepaald worden?! personeelsnummer: '
|| rec.prs_perslid_nr);
v_update := FALSE;
END;
END IF;
--- We gaan de werkplek vervangen of toevoegen
IF v_update
AND (rec.prs_kenmerk1 IS NOT NULL)
AND (v_nr_werkplek <= 1)
THEN
v_errormsg :=
'Fout bij toewijzen werkplek bij zojuist toegevoegde persoon ';
-- stap 1: perslid key bepalen
BEGIN
SELECT prs_perslid_key
INTO v_perslid_key
FROM prs_perslid
WHERE prs_perslid_nr = rec.prs_perslid_nr
AND prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN TOO_MANY_ROWS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'Het personeelsnummer is niet uniek: '
|| rec.prs_perslid_nr);
v_update := FALSE;
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'I',
v_errormsg,
'De persoon kan niet bepaald worden?! personeelsnummer: '
|| rec.prs_perslid_nr);
v_update := FALSE;
END;
--- stap 2: locatie code bepalen
BEGIN
SELECT lo.alg_locatie_key
INTO v_locatie_key
FROM FAC_USRDATA ud, ALG_LOCATIE lo
WHERE ud.fac_usrtab_key = c_usrtab_key
AND ud.fac_usrdata_code = lo.alg_locatie_code
AND ud.fac_usrdata_omschr = rec.prs_kenmerk1
AND lo.alg_locatie_verwijder IS NULL;
EXCEPTION
WHEN OTHERS
THEN
v_update := FALSE;
END;
IF NOT v_update
THEN
v_errorhint :=
'Onbekende Locatie-omschrijving '
|| rec.prs_kenmerk1
|| '; personeelsnummer: '
|| rec.prs_perslid_nr;
fac.imp_writelog (p_import_key,
'I',
v_errormsg,
v_errorhint);
-- er is een locatie code gevonden dus nu kunnen we verder met het bepalen van de werkplek
ELSE
BEGIN
-- Stap 3: gebouwcode bepalen, indien geen gevonden dan een dummy aanmaken
SELECT MIN (alg_gebouw_code)
INTO v_gebouw_code
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_verwijder IS NULL;
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_code = v_gebouw_code
AND alg_gebouw_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO alg_gebouw (alg_locatie_key,
alg_srtgebouw_key,
alg_gebouw_code,
alg_gebouw_naam)
VALUES (v_locatie_key,
c_srtgebouw_default,
'0',
'Onbekend');
v_errormsg :=
'Bepalen alg_gebouw_key adhv v_locatie_key=['
|| TO_CHAR (v_locatie_key)
|| '] en v_gebouw_code=['
|| v_gebouw_code
|| ']';
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_gebouw
WHERE alg_locatie_key = v_locatie_key
AND alg_gebouw_code = v_gebouw_code
AND alg_gebouw_verwijder IS NULL;
END;
--- Stap 4: verdieping bepalen, indien niet te bekend dan dummy aanmaken
BEGIN
v_errormsg := 'Bepalen alg_verdieping_key';
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_verwijder IS NULL
AND alg_verdieping_volgnr = 0; -- Begane grond!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_errorhint :=
'Persoon met persoonnummer '
|| rec.prs_perslid_nr
|| ': toevoegen verdieping Onbekend';
INSERT INTO alg_verdieping (
alg_gebouw_key,
alg_verdieping_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code)
VALUES (v_gebouw_key,
c_verdieping_omschr_default,
0,
'0');
-- Alsnog bepalen v_verdieping_key
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_verdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_verwijder IS NULL
AND alg_verdieping_volgnr = 0; -- Begane grond!
END;
--- stap 5: dan de ruimte bepalen, aanmaken indien deze niet te herleiden is
BEGIN
v_errorhint :=
'Persoon met persoonnummer '
|| rec.prs_perslid_nr
|| ': bepalen ruimte (ruimte zou bekend moeten zijn)';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_verwijder IS NULL
AND alg_ruimte_nr = c_ruimte_code;
-- Altijd ruimte met deze notatie!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO alg_ruimte (alg_verdieping_key,
alg_srtruimte_key,
alg_ruimte_nr,
alg_ruimte_omschrijving)
VALUES (v_verdieping_key,
c_srtruimte_default,
c_ruimte_code,
c_ruimte_omschr_default);
-- Alsnog bepalen v_ruimte_key
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_ruimte
WHERE alg_verdieping_key = v_verdieping_key
AND alg_ruimte_verwijder IS NULL
AND alg_ruimte_nr = c_ruimte_code;
-- Altijd ruimte met deze notatie!
END;
-- stap 6 werkplek zou nu te bepalen moeten zijn
BEGIN
v_errorhint :=
'Persoon met persoonnummer '
|| rec.prs_perslid_nr
|| ': bepalen werkplek (werkplek zou bekend moeten zijn)';
SELECT prs_werkplek_key
INTO v_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr =
c_werkplek_volgnr_default;
-- Altijd werkplek met deze notatie!
EXCEPTION
WHEN NO_DATA_FOUND
THEN
INSERT INTO prs_werkplek (
prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_alg_ruimte_key,
prs_werkplek_virtueel)
VALUES (c_werkplek_volgnr_default,
c_prs_werkplek_omschrijving,
v_ruimte_key,
1);
-- Alsnog bepalen v_werkplek_key
SELECT prs_werkplek_key
INTO v_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr =
c_werkplek_volgnr_default;
-- Altijd werkplek met deze notatie!
END;
IF v_nr_werkplek = 0
THEN
INSERT INTO prs_perslidwerkplek (
prs_perslid_key,
prs_werkplek_key,
prs_perslidwerkplek_bezetting)
VALUES (v_perslid_key, v_werkplek_key, 0);
ELSE -- v_nr_werkplek = 1
UPDATE prs_perslidwerkplek
SET prs_werkplek_key = v_werkplek_key
WHERE prs_perslid_key = v_perslid_key;
END IF;
END IF;
END IF;
END;
END LOOP;
FOR rec IN c_prs_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END LOOP;
-- 'Email' betekent dat op basis van Email wordt gematched.
prs.update_perslid (p_import_key, 'EMAIL', NULL);
-- Dan worden de werkplekken beoordeeld, evt aangemaakt en bijgewerkt
logi_werkplek_persoon (p_import_key);
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE logi_import_organisatie (p_import_key IN NUMBER)
AS