LOGI#56094: Personen import afgelopen nacht verkeerd gelopen
svn path=/Customer/trunk/; revision=42896
This commit is contained in:
561
LOGI/logi.sql
561
LOGI/logi.sql
@@ -18,6 +18,7 @@ SET DEFINE OFF
|
||||
|
||||
------ payload begin ------
|
||||
|
||||
/* De 'oude' personen import en update vervangen door de standaard
|
||||
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
|
||||
AS
|
||||
c_max_import_str_len NUMBER (10) := 1000;
|
||||
@@ -216,6 +217,7 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE logi_update_persoon (p_import_key IN NUMBER)
|
||||
AS
|
||||
-- Constanten (LET OP: deze waarden moeten letterlijk in de DB aabwezig zijn!)
|
||||
@@ -334,99 +336,7 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
/* oude del procedure vervangen door aanroep standaard
|
||||
|
||||
FOR rec_prs_del IN c_prs_del
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
v_perslid_key := rec_prs_del.prs_perslid_key;
|
||||
v_errorhint := 'Verwijderen van de persoon is NIET gelukt';
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM prs_v_verplichting_refcheck pv
|
||||
WHERE pv.prs_perslid_key = v_perslid_key;
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
|
||||
-- Persoon heeft geen enkele (actuele of historische) verplichting
|
||||
v_errormsg := 'Kan persoon (kennelijk zonder historie!) niet met prs_perslid_key [' || TO_CHAR (v_perslid_key) || '] niet verwijder. ';
|
||||
|
||||
DELETE FROM prs_perslid
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Persoon verwijderd met personeelsnummer ['||rec_prs_del.prs_perslid_nr||']',
|
||||
''
|
||||
);
|
||||
commit; -- tbv logging
|
||||
|
||||
ELSE
|
||||
|
||||
-- Controleer of er ACTUELE verplichtingen zijn
|
||||
SELECT COUNT (*)
|
||||
INTO v_count
|
||||
FROM prs_v_verplichting_keys pv
|
||||
WHERE pv.prs_perslid_key = v_perslid_key;
|
||||
|
||||
IF v_count > 0
|
||||
THEN
|
||||
v_errormsg := 'Kan persoon (kennelijk met historie!) niet inactiveren met prs_perslid_key [' || TO_CHAR (v_perslid_key) || ']';
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_naam = SUBSTR (c_inactief || prs_perslid_naam, 1, 30),
|
||||
prs_perslid_oslogin = NULL
|
||||
WHERE prs_perslid_key = v_perslid_key
|
||||
AND prs_perslid_naam NOT LIKE c_inactief||'%';
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Persoon als ['||c_inactief||'] gemarkeerd met personeelsnummer ['||rec_prs_del.prs_perslid_nr||']',
|
||||
''
|
||||
);
|
||||
ELSE
|
||||
|
||||
BEGIN
|
||||
|
||||
v_errormsg := 'Kan persoon (kennelijk met historie!) niet inactiveren (verwijderdatum zetten) met prs_perslid_key [' || TO_CHAR (v_perslid_key) || ']';
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_verwijder = c_perslid_verwijder
|
||||
WHERE prs_perslid_key = v_perslid_key;
|
||||
|
||||
fac.imp_writelog (p_import_key,
|
||||
'I',
|
||||
'Persoon verwijderd met personeelsnummer ['||rec_prs_del.prs_perslid_nr||']',
|
||||
''
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
-- Kennelijk heeft de persoon toch ernstige verplichtingen
|
||||
v_errorhint :=
|
||||
'Persoon heeft nog (max. '
|
||||
|| TO_CHAR (v_count)
|
||||
|| ') verplichtingen; personeelsnummer: '
|
||||
|| rec_prs_del.prs_perslid_nr;
|
||||
fac.imp_writelog (p_import_key, 'I', 'Inactiveren persoon is niet gelukt', v_errorhint);
|
||||
|
||||
END;
|
||||
|
||||
END IF;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := v_errormsg||'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
*/
|
||||
COMMIT;
|
||||
-- Update
|
||||
v_errormsg := 'Persoonsgegevens worden nu angepast (toevoegen/wijzigen) ';
|
||||
@@ -505,52 +415,6 @@ BEGIN
|
||||
END;
|
||||
END IF;
|
||||
|
||||
/*
|
||||
-- Controle: PRS_AFDELING_NAAM
|
||||
IF v_update
|
||||
THEN
|
||||
BEGIN
|
||||
|
||||
v_errormsg := 'De afdeling ['||rec_prs_upd.prs_afdeling_naam||']'||' kan niet <20><>nduidig bepaald worden ';
|
||||
|
||||
-- Bepaal de afdelingskey; afdelingen worden met een andere import beheerd
|
||||
-- RD**** MAX ivm testen!
|
||||
SELECT max(prs_afdeling_key)
|
||||
INTO v_afdeling_key
|
||||
FROM prs_v_afdeling_fullnames
|
||||
WHERE upper(prs_afdeling_naam3) = upper(rec_prs_upd.prs_afdeling_naam)
|
||||
AND niveau = c_afdeling_niveau_persoon;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_update := FALSE;
|
||||
v_errorhint :=
|
||||
'Afdeling '
|
||||
|| rec_prs_upd.prs_afdeling_naam
|
||||
|| ' bestaat niet; personeelsnummer: '
|
||||
|| rec_prs_upd.prs_perslid_nr;
|
||||
|
||||
-- Kennelijk is de afdeling niet gevonden
|
||||
IF (v_aktie = 'INSERT')
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||||
ELSE
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
'Afdeling van de persoon kan niet gewijzigd worden, evt. andere wijzigingen worden ook genegeerd.',
|
||||
v_errorhint
|
||||
);
|
||||
END IF;
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
v_update := FALSE;
|
||||
v_errorhint := 'Kan Afdeling ' || rec_prs_upd.prs_afdeling_naam || ' niet eenduidig bepalen?!';
|
||||
END;
|
||||
END IF;
|
||||
*/
|
||||
|
||||
-- Controle: PRS_SRTPERSLID_OMSCHRIJVING
|
||||
IF v_update
|
||||
THEN
|
||||
@@ -996,6 +860,427 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
*/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE logi_import_persoon (p_import_key IN NUMBER)
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
v_aantal_in_FCLT NUMBER;
|
||||
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,
|
||||
'0;0;0;0;0;0;8;2;4;3;'
|
||||
|| '0;0;0;0;0;0;0;6;0;1;'
|
||||
|| '1;5;0;0;0;0;9;0;0;0;'
|
||||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0',
|
||||
'employeeID;sn;givenName;infix;uid;mail;orglevel7;orgleve7id;a1physicalDeliveryOfficeName%');
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_srtperslid_omschrijving = 'Onbekend';
|
||||
|
||||
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;
|
||||
|
||||
|
||||
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 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)
|
||||
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
|
||||
c_srtgebouw_default INTEGER := 1;
|
||||
c_srtruimte_default INTEGER := 1;
|
||||
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;
|
||||
|
||||
CURSOR c_prs_upd IS
|
||||
SELECT p.prs_perslid_key,
|
||||
lp.prs_kenmerk1, --- locatie omschrijving
|
||||
lp.prs_perslid_naam,
|
||||
lp.prs_perslid_tussenvoegsel,
|
||||
lp.prs_perslid_voorletters,
|
||||
lp.prs_perslid_voornaam,
|
||||
lp.prs_perslid_telefoonnr,
|
||||
lp.prs_perslid_mobiel,
|
||||
lp.prs_perslid_oslogin,
|
||||
lp.prs_perslid_email,
|
||||
COALESCE (lp.prs_srtperslid_omschrijving, 'Onbekend')
|
||||
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
|
||||
ORDER BY lp.prs_perslid_nr, p.prs_perslid_key DESC;
|
||||
|
||||
-- Verwijderen op basis van oslogin #56094
|
||||
CURSOR c_prs_del IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_oslogin
|
||||
FROM PRS_PERSLID p,
|
||||
(SELECT prs_perslid_oslogin
|
||||
FROM logi_imp_persoon
|
||||
WHERE prs_perslid_oslogin IS NOT NULL) lp
|
||||
WHERE 1 = 1
|
||||
AND p.prs_perslid_nr IS NOT NULL
|
||||
AND p.prs_perslid_oslogin IS NOT NULL
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\'
|
||||
AND UPPER (p.prs_perslid_oslogin) =
|
||||
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;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE logi_import_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
|
||||
Reference in New Issue
Block a user