RWSN#83192 IDM_ORG-import/Bijwerken KPN+RWSN#84245 IDM_PERS-import/Gedeactiveerde personen
svn path=/Customer/trunk/; revision=65915
This commit is contained in:
369
RWSN/rwsn.sql
369
RWSN/rwsn.sql
@@ -265,7 +265,6 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
/* Formatted on 8-8-2013 15:42:15 (QP5 v5.115.810.9015) */
|
||||
CREATE OR REPLACE PROCEDURE rwsn_update_idm_org (p_import_key IN NUMBER)
|
||||
AS
|
||||
-- Let op:
|
||||
@@ -314,6 +313,7 @@ AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_aanduiding VARCHAR2 (1000) := '';
|
||||
v_count NUMBER;
|
||||
currentversion fac_module.fac_module_version%TYPE;
|
||||
l_vervalkm_key NUMBER (10); -- Key van VERVALDATUM-kenmerk
|
||||
lkostenplaatskey prs_kostenplaats.prs_kostenplaats_key%TYPE;
|
||||
@@ -347,6 +347,7 @@ BEGIN
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE einddatum > TRUNC (SYSDATE);
|
||||
|
||||
--Altijd 0, want einddatum altijd op 31-12-9999!
|
||||
SELECT COUNT ( * )
|
||||
INTO l_impcountpas
|
||||
FROM rwsn_imp_idm_org
|
||||
@@ -355,13 +356,21 @@ BEGIN
|
||||
-- How many active records are now present?
|
||||
SELECT COUNT ( * )
|
||||
INTO l_oldcountkp
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder IS NULL;
|
||||
FROM prs_v_aanwezigkostenplaats
|
||||
WHERE prs_kostenplaats_module = 'PRS'
|
||||
AND prs_kostenplaats_eind IS NOT NULL
|
||||
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_oldcountafd
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL;
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||||
AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import!
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_kenmerk_key = l_vervalkm_key
|
||||
AND prs_link_key = a.prs_afdeling_key);
|
||||
|
||||
-- Check #regels, stop als onvoldoende (= bestaand maar ongeldig bestand)
|
||||
IF l_impcountact + l_impcountpas = 0
|
||||
@@ -372,11 +381,11 @@ BEGIN
|
||||
|
||||
-- Bestaat afdelingskenmerk VERVALDATUM?
|
||||
BEGIN
|
||||
SELECT k.prs_kenmerk_key
|
||||
SELECT prs_kenmerk_key
|
||||
INTO l_vervalkm_key
|
||||
FROM prs_kenmerk k
|
||||
WHERE k.prs_kenmerk_niveau = 'A'
|
||||
AND k.prs_kenmerk_upper = c_km_vervaldatum;
|
||||
FROM prs_kenmerk
|
||||
WHERE prs_kenmerk_niveau = 'A'
|
||||
AND prs_kenmerk_upper = c_km_vervaldatum;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -384,18 +393,124 @@ BEGIN
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
-- Oude ellende schonen, in principe eenmalig, want nooit meer VERVALLLEN
|
||||
-- met 3 L's!
|
||||
/*
|
||||
SELECT kp.*
|
||||
FROM prs_kostenplaats kp
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %';
|
||||
UPDATE prs_kostenplaats kp
|
||||
SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE, 'yyyy')
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %';
|
||||
*/
|
||||
UPDATE prs_kostenplaats kp
|
||||
SET kp.prs_kostenplaats_verwijder = SYSDATE
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_omschrijving LIKE 'VERVALLLEN: %';
|
||||
|
||||
-- Zet kostenplaatsen op VERVALLEN; de rest handmatig verder maar regelen!
|
||||
-- Kostenplaatsen zonder einddatum met rust laten (=handmatig aangemaakt)!
|
||||
v_errormsg := 'Fout inactiveren kostenplaatsen.';
|
||||
SELECT COUNT ( * )
|
||||
INTO l_vervcountkp
|
||||
FROM prs_kostenplaats kp
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_eind > TRUNC (SYSDATE) -- Met einddatum in toekomst
|
||||
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper);
|
||||
|
||||
UPDATE prs_kostenplaats kp
|
||||
SET kp.prs_kostenplaats_eind = TRUNC (SYSDATE), -- Per vandaag vervallen
|
||||
kp.prs_kostenplaats_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_kostenplaats_omschrijving, '-'), 1, 60)
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_eind > TRUNC (SYSDATE) -- Met einddatum in toekomst
|
||||
AND UPPER (COALESCE (kp.prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper);
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_reancountkp
|
||||
FROM prs_kostenplaats kp
|
||||
WHERE kp.prs_kostenplaats_verwijder IS NULL
|
||||
AND kp.prs_kostenplaats_module = 'PRS'
|
||||
AND kp.prs_kostenplaats_eind < SYSDATE -- Met einddatum in verleden
|
||||
AND UPPER (kp.prs_kostenplaats_omschrijving) LIKE 'VERVALLEN:%'
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = kp.prs_kostenplaats_upper);
|
||||
COMMIT;
|
||||
|
||||
-- Zet afdelingen op VERVALLEN; de rest handmatig verder maar regelen!
|
||||
v_errormsg := 'Fout inactiveren afdelingen.';
|
||||
SELECT COUNT ( * )
|
||||
INTO l_vervcountafd
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (a.prs_afdeling_omschrijving) NOT LIKE 'VERVALLEN:%'
|
||||
AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import!
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_kenmerk_key = l_vervalkm_key
|
||||
AND prs_link_key = a.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = a.prs_afdeling_upper);
|
||||
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_afdeling_omschrijving = SUBSTR ('VERVALLEN: ' || COALESCE (prs_afdeling_omschrijving, '-'), 1, 60)
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (a.prs_afdeling_omschrijving) NOT LIKE 'VERVALLEN:%'
|
||||
AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import!
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_kenmerk_key = l_vervalkm_key
|
||||
AND prs_link_key = a.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = a.prs_afdeling_upper);
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_reancountafd
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (a.prs_afdeling_omschrijving) LIKE 'VERVALLEN:%'
|
||||
AND EXISTS -- Afdeling met vervaldatum (in verleden), dus IDM_ORG-import!
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_kenmerk_key = l_vervalkm_key
|
||||
AND prs_link_key = a.prs_afdeling_key)
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE UPPER (afdelingscode) = a.prs_afdeling_upper);
|
||||
COMMIT;
|
||||
|
||||
FOR rc IN cafdelingsboom
|
||||
LOOP
|
||||
v_aanduiding := '[' || TO_CHAR (rc.fac_lev) || '|' || rc.afdelingscode || '] ';
|
||||
v_aanduiding := '[' || TO_CHAR (rc.fac_lev) || '|' || rc.afdelingscode || '|' || rc.omschrijving || '|' || rc.parentcode || '] ';
|
||||
|
||||
-- Bestaat de kostenplaats al?
|
||||
v_errormsg := 'Fout bepalen kostenplaats';
|
||||
BEGIN
|
||||
SELECT prs_kostenplaats_key
|
||||
INTO lkostenplaatskey
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_upper = rc.afdelingscode
|
||||
AND prs_kostenplaats_verwijder IS NULL;
|
||||
FROM prs_v_aanwezigkostenplaats
|
||||
WHERE prs_kostenplaats_upper = rc.afdelingscode;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -407,10 +522,10 @@ BEGIN
|
||||
BEGIN
|
||||
SELECT a.prs_afdeling_key, ab.niveau, a.prs_afdeling_parentkey
|
||||
INTO lafdelingkey, l_cur_lev, l_cur_parentkey
|
||||
FROM prs_afdeling a, prs_v_afdeling_boom ab
|
||||
WHERE a.prs_afdeling_upper = rc.afdelingscode
|
||||
AND a.prs_afdeling_verwijder IS NULL
|
||||
AND a.prs_afdeling_key = ab.prs_afdeling_key;
|
||||
FROM prs_afdeling a, prs_v_afdeling_boom ab -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND a.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND a.prs_afdeling_upper = rc.afdelingscode;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -423,10 +538,11 @@ BEGIN
|
||||
|
||||
DBMS_OUTPUT.put_line (rc.afdelingscode);
|
||||
|
||||
v_errormsg := 'Fout toevoegen kostenplaats';
|
||||
IF lkostenplaatskey = -1
|
||||
THEN
|
||||
BEGIN
|
||||
v_errormsg := 'Fout toevoegen/bijwerken kostenplaats.';
|
||||
BEGIN
|
||||
IF lkostenplaatskey = -1
|
||||
THEN
|
||||
v_errormsg := 'Fout toevoegen kostenplaats';
|
||||
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
|
||||
prs_kostenplaats_omschrijving,
|
||||
prs_kostenplaats_module,
|
||||
@@ -439,27 +555,54 @@ BEGIN
|
||||
rc.einddatum)
|
||||
RETURNING prs_kostenplaats_key
|
||||
INTO lkostenplaatskey;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
ELSE -- Bijwerken kostenplaats met omschrijving het hoogst in de boom!
|
||||
v_errormsg := 'Fout bijwerken kostenplaats';
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM ( SELECT LEVEL idm_lev,
|
||||
DECODE (LEVEL, 1, 0, 2, 0, 3, 1, 4, 2, 5, 3, 6, 4, 7, 5, 5)
|
||||
fac_lev,
|
||||
afdelingscode,
|
||||
omschrijving,
|
||||
parentcode,
|
||||
begindatum,
|
||||
einddatum
|
||||
FROM rwsn_imp_idm_org
|
||||
WHERE afdelingscode IS NOT NULL -- Geen lege regels
|
||||
CONNECT BY PRIOR afdelingscode = parentcode
|
||||
START WITH parentcode = '00000000'
|
||||
ORDER BY LEVEL) x
|
||||
WHERE x.omschrijving = rc.omschrijving
|
||||
AND x.fac_lev < rc.fac_lev;
|
||||
|
||||
IF v_count = 0
|
||||
THEN
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
fac.imp_writelog (p_import_key, 'W',
|
||||
SUBSTR ('Kostenplaats kan niet worden toegevoegd. ' || oracle_err_mes, 1, 1000),
|
||||
rc.afdelingscode || '/' || rc.omschrijving);
|
||||
END;
|
||||
END IF;
|
||||
UPDATE prs_kostenplaats
|
||||
SET prs_kostenplaats_omschrijving = rc.omschrijving,
|
||||
prs_kostenplaats_begin = rc.begindatum,
|
||||
prs_kostenplaats_eind = rc.einddatum
|
||||
WHERE prs_kostenplaats_key = lkostenplaatskey;
|
||||
END IF;
|
||||
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, 'W', v_errormsg, rc.afdelingscode || '/' || rc.omschrijving);
|
||||
END;
|
||||
|
||||
-- Alle niveaus zitten in cursor tbv. bovenstaande kostenplaatsen, maar
|
||||
-- bij de mapping naar Facilitor-afdelingen pakken we de IDM-afdelingen
|
||||
-- vanaf 3 (= Facilitor rootniveau).
|
||||
-- vanaf 3 (= Facilitor Afdeling-1).
|
||||
IF rc.idm_lev >= 3 AND lkostenplaatskey <> -1
|
||||
THEN
|
||||
IF lafdelingkey = -1 -- Nieuwe afdeling -> toevoegen!
|
||||
THEN
|
||||
BEGIN
|
||||
v_errormsg := 'Fout toevoegen afdeling';
|
||||
|
||||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft het rootniveau!
|
||||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1!
|
||||
THEN
|
||||
--IF rc.afdelingscode = '63562065'
|
||||
IF rc.omschrijving LIKE 'KNMI%' -- Toekomstvaster dan code?
|
||||
@@ -502,10 +645,11 @@ BEGIN
|
||||
WHERE prs_kostenplaatsgrp_oms = afd.prs_afdeling_naam);
|
||||
ELSIF rc.idm_lev <= 7 -- Afdeling op Facilitor-niveau 2 t/m 5!
|
||||
THEN
|
||||
-- Bepaal key van parent!
|
||||
SELECT prs_afdeling_key
|
||||
INTO l_new_parentkey
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_naam = rc.parentcode AND prs_afdeling_verwijder IS NULL;
|
||||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||||
WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = rc.parentcode;
|
||||
|
||||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||||
prs_afdeling_omschrijving,
|
||||
@@ -529,11 +673,11 @@ BEGIN
|
||||
SELECT prs_afdeling_key
|
||||
INTO l_new_parentkey
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_naam = l_new_parparcode AND prs_afdeling_verwijder IS NULL;
|
||||
WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = l_new_parparcode;
|
||||
|
||||
-- Doordat cursor van hoog naar laag door organisatie loopt,
|
||||
-- komen afdelingen vanaf IDM-niveau 8 keurig onder de gewenste
|
||||
-- Facilitor-niveau 4 afdeling te hangen.
|
||||
-- Afdeling-4 te hangen.
|
||||
INSERT INTO prs_afdeling (prs_afdeling_naam,
|
||||
prs_afdeling_omschrijving,
|
||||
prs_bedrijf_key,
|
||||
@@ -547,24 +691,21 @@ BEGIN
|
||||
RETURNING prs_afdeling_key INTO lafdelingkey;
|
||||
END IF;
|
||||
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Afdeling is toegevoegd.',
|
||||
rc.afdelingscode || '/' || rc.omschrijving || ' (' || rc.parentcode || ')');
|
||||
fac.imp_writelog (p_import_key, 'I', 'Afdeling toegevoegd', v_aanduiding);
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
fac.imp_writelog (p_import_key, 'W',
|
||||
SUBSTR ('Afdeling kan niet worden toegevoegd. ' || oracle_err_mes, 1, 1000),
|
||||
rc.afdelingscode || '/' || rc.omschrijving || ' (' || rc.parentcode || ')');
|
||||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_aanduiding);
|
||||
END;
|
||||
ELSE -- Bestaande afdeling -> bijwerken (misschien)!
|
||||
BEGIN
|
||||
v_errormsg := 'Fout bijwerken afdeling';
|
||||
|
||||
-- Zonodig bijwerken omschrijving (deze kon eerder vervallen
|
||||
-- zijn) en/of omhangen naar de juiste plek in de boom.
|
||||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft het rootniveau!
|
||||
v_errormsg := 'Fout bijwerken afdeling';
|
||||
IF rc.fac_lev = 1 -- Ingelezen afdeling betreft Afdeling-1!
|
||||
THEN
|
||||
--IF rc.afdelingscode = '63562065'
|
||||
IF rc.omschrijving LIKE 'KNMI%' -- Toekomstvaster dan code?
|
||||
@@ -602,8 +743,8 @@ BEGIN
|
||||
-- Bepaal key van parent!
|
||||
SELECT prs_afdeling_key
|
||||
INTO l_new_parentkey
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_naam = rc.parentcode AND prs_afdeling_verwijder IS NULL;
|
||||
FROM prs_afdeling -- LET OP: Niet prs_v_aanwezigafdeling (want soms "lager" dan 5)!
|
||||
WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = rc.parentcode;
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_omschrijving = rc.omschrijving,
|
||||
@@ -611,7 +752,8 @@ BEGIN
|
||||
prs_afdeling_parentkey = l_new_parentkey
|
||||
WHERE prs_afdeling_key = lafdelingkey
|
||||
AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd?
|
||||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey); -- Parent gewijzigd?
|
||||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd?
|
||||
OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd?
|
||||
ELSE -- Omhoog geschoven afdeling op Facilitor-niveau 5!
|
||||
-- Bepaal code van parent van parent!
|
||||
SELECT parentcode
|
||||
@@ -623,42 +765,41 @@ BEGIN
|
||||
SELECT prs_afdeling_key
|
||||
INTO l_new_parentkey
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_naam = l_new_parparcode AND prs_afdeling_verwijder IS NULL;
|
||||
WHERE prs_afdeling_verwijder IS NULL AND prs_afdeling_naam = l_new_parparcode;
|
||||
|
||||
-- Doordat cursor van hoog naar laag door organisatie loopt,
|
||||
-- komen afdelingen vanaf IDM-niveau 8 keurig onder de gewenste
|
||||
-- Facilitor-niveau 4 afdeling te hangen.
|
||||
-- Afdeling-4 te hangen.
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_omschrijving = rc.omschrijving,
|
||||
prs_bedrijf_key = NULL,
|
||||
prs_afdeling_parentkey = l_new_parentkey
|
||||
prs_afdeling_parentkey = l_new_parentkey,
|
||||
prs_kostenplaats_key = lkostenplaatskey
|
||||
WHERE prs_afdeling_key = lafdelingkey
|
||||
AND (COALESCE (prs_afdeling_omschrijving, '-') <> rc.omschrijving -- Oms. gewijzigd?
|
||||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey); -- Parent gewijzigd?
|
||||
OR COALESCE (prs_afdeling_parentkey, -1) <> l_new_parentkey -- Parent gewijzigd?
|
||||
OR prs_kostenplaats_key <> lkostenplaatskey); -- Kostenplaats gewijzigd?
|
||||
END IF;
|
||||
|
||||
IF rc.fac_lev <> l_cur_lev OR l_new_parentkey <> l_cur_parentkey
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key, 'I',
|
||||
'Afdeling is omgehangen naar level=' || TO_CHAR (rc.fac_lev) || '.',
|
||||
rc.afdelingscode || '/' || rc.omschrijving || ' (' || rc.parentcode || ')');
|
||||
fac.imp_writelog (p_import_key, 'I', 'Afdeling omgehangen naar level=' || TO_CHAR (rc.fac_lev), v_aanduiding);
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
fac.imp_writelog (p_import_key, 'W',
|
||||
SUBSTR ('Afdeling kan niet worden bijgewerkt. ' || oracle_err_mes, 1, 1000),
|
||||
rc.afdelingscode || '/' || rc.omschrijving || ' (' || rc.parentcode || ')');
|
||||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'W', v_errormsg, v_aanduiding);
|
||||
END;
|
||||
END IF;
|
||||
|
||||
IF rc.einddatum IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
v_errormsg := 'Fout bepalen einddatum';
|
||||
|
||||
-- Heeft afdeling reeds een VERVALDATUM-waarde?
|
||||
v_errormsg := 'Fout bepalen einddatum';
|
||||
SELECT kl.prs_kenmerklink_key, TO_DATE (kl.prs_kenmerklink_waarde, 'dd-mm-yyyy')
|
||||
INTO l_vervalkl_key, l_vervalkl_waarde
|
||||
FROM prs_v_aanwezigkenmerklink kl
|
||||
@@ -669,7 +810,6 @@ BEGIN
|
||||
IF rc.einddatum != l_vervalkl_waarde
|
||||
THEN
|
||||
v_errormsg := 'Fout bijwerken einddatum';
|
||||
|
||||
UPDATE prs_kenmerklink
|
||||
SET prs_kenmerklink_waarde = TO_CHAR (rc.einddatum, 'dd-mm-yyyy')
|
||||
WHERE prs_kenmerklink_key = l_vervalkl_key;
|
||||
@@ -678,7 +818,6 @@ BEGIN
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errormsg := 'Fout toevoegen einddatum';
|
||||
|
||||
INSERT INTO prs_kenmerklink (prs_link_key,
|
||||
prs_kenmerklink_niveau,
|
||||
prs_kenmerk_key,
|
||||
@@ -713,82 +852,6 @@ BEGIN
|
||||
AND kpg.prs_kostenplaatsgrp_key = kp.prs_kostenplaatsgrp_key);
|
||||
COMMIT;
|
||||
|
||||
-- Handmatig aangemaakte kostenplaatsen/afdelingen niet meer laten vervallen!
|
||||
-- Tot RWSN39: Prefix wat niet meer voorkomt in importbestand met VERVALLEN.
|
||||
-- Per RWSN39: Prefix entries met een Vervaldatum in verleden met VERVALLEN.
|
||||
-- Per RWSN39: Verwijder prefix voor entries met een Vervaldatum in toekomst?
|
||||
SELECT COUNT ( * )
|
||||
INTO l_vervcountkp
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_omschrijving NOT LIKE 'VERVALLEN: %'
|
||||
AND prs_kostenplaats_eind < TRUNC (SYSDATE); -- In verleden
|
||||
|
||||
UPDATE prs_kostenplaats
|
||||
SET prs_kostenplaats_omschrijving = SUBSTR ('VERVALLLEN: ' || prs_kostenplaats_omschrijving, 1, 60)
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_omschrijving NOT LIKE 'VERVALLEN: %'
|
||||
AND prs_kostenplaats_eind < TRUNC (SYSDATE); -- In verleden
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_reancountkp
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_omschrijving LIKE 'VERVALLEN: %'
|
||||
AND prs_kostenplaats_eind > TRUNC (SYSDATE); -- In toekomst
|
||||
|
||||
UPDATE prs_kostenplaats
|
||||
SET prs_kostenplaats_omschrijving = prs_kostenplaats_omschrijving
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_omschrijving LIKE 'VERVALLEN: %'
|
||||
AND prs_kostenplaats_eind > TRUNC (SYSDATE); -- In toekomst
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_vervcountafd
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_omschrijving NOT LIKE 'VERVALLEN: %'
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_link_key = prs_afdeling_key
|
||||
AND prs_kenmerk_key = l_vervalkm_key
|
||||
AND TO_DATE (prs_kenmerklink_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE));
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_omschrijving = SUBSTR ('VERVALLEN: ' || prs_afdeling_omschrijving, 1, 60)
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_omschrijving NOT LIKE 'VERVALLEN: %'
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_link_key = prs_afdeling_key
|
||||
AND prs_kenmerk_key = l_vervalkm_key
|
||||
AND TO_DATE (prs_kenmerklink_waarde, 'dd-mm-yyyy') < TRUNC (SYSDATE));
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_reancountafd
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_omschrijving LIKE 'VERVALLEN: %'
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_link_key = prs_afdeling_key
|
||||
AND prs_kenmerk_key = l_vervalkm_key
|
||||
AND TO_DATE (prs_kenmerklink_waarde, 'dd-mm-yyyy') > TRUNC (SYSDATE));
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_omschrijving = prs_afdeling_omschrijving
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_omschrijving LIKE 'VERVALLEN: %'
|
||||
AND EXISTS
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_link_key = prs_afdeling_key
|
||||
AND prs_kenmerk_key = l_vervalkm_key
|
||||
AND TO_DATE (prs_kenmerklink_waarde, 'dd-mm-yyyy') > TRUNC (SYSDATE));
|
||||
|
||||
-- Je zou nu (uitbreiding) de kostenplaatsen en afdelingen echt kunnen verwijderen
|
||||
-- als er geen verplichtingen meer bij zijn. Dit lijkt me nader te specificeren.
|
||||
-- Kan functioneel zo eenvoudig zijn als delete where omschrijving like 'VERVALLEN: '
|
||||
@@ -797,13 +860,21 @@ BEGIN
|
||||
-- For summary only.
|
||||
SELECT COUNT ( * )
|
||||
INTO l_newcountkp
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_verwijder IS NULL;
|
||||
FROM prs_v_aanwezigkostenplaats
|
||||
WHERE prs_kostenplaats_module = 'PRS'
|
||||
AND prs_kostenplaats_eind IS NOT NULL
|
||||
AND UPPER (COALESCE (prs_kostenplaats_omschrijving, '-')) NOT LIKE 'VERVALLEN:%';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO l_newcountafd
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL;
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_verwijder IS NULL
|
||||
AND UPPER (COALESCE (a.prs_afdeling_omschrijving, '-')) NOT LIKE 'VERVALLEN:%'
|
||||
AND EXISTS -- Afdeling met vervaldatum (in toekomst), dus IDM_ORG-import!
|
||||
(SELECT 1
|
||||
FROM prs_v_aanwezigkenmerklink
|
||||
WHERE prs_kenmerk_key = l_vervalkm_key
|
||||
AND prs_link_key = a.prs_afdeling_key);
|
||||
|
||||
fac.imp_writelog (
|
||||
p_import_key, 'S',
|
||||
@@ -2013,17 +2084,18 @@ BEGIN
|
||||
prs_perslid_voorletters = rec_prs_upd.prs_perslid_voorletters,
|
||||
prs_perslid_voornaam = NVL (rec_prs_upd.prs_perslid_voornaam, prs_perslid_voornaam),
|
||||
prs_perslid_telefoonnr = rec_prs_upd.prs_perslid_telefoonnr,
|
||||
prs_perslid_nr = rec_prs_upd.dienstverbandid,
|
||||
prs_perslid_titel = rec_prs_upd.prs_perslid_titel,
|
||||
prs_srtperslid_key = v_srtperslid_key,
|
||||
prs_afdeling_key = v_afdeling_key,
|
||||
prs_perslid_verwijder = NULL,
|
||||
prs_perslid_oslogin = llogin1,
|
||||
prs_perslid_oslogin2 = COALESCE (prs_perslid_oslogin2, llogin2), -- RWSN#21033!
|
||||
prs_perslid_mobiel = rec_prs_upd.mobielnummer,
|
||||
prs_perslid_email = lemail,
|
||||
prs_perslid_ingangsdatum = rec_prs_upd.begindatum,
|
||||
prs_perslid_einddatum = rec_prs_upd.einddatum,
|
||||
prs_perslid_nr = rec_prs_upd.dienstverbandid
|
||||
prs_perslid_verwijder = NULL,
|
||||
prs_perslid_inactief = NULL
|
||||
WHERE prs_perslid_key = rec_prs_upd.prs_perslid_key
|
||||
AND ( prs_perslid_naam <> lnaampresentatie
|
||||
OR NVL (prs_perslid_tussenvoegsel, '-') <> NVL (ltussenvoegselpres, '-')
|
||||
@@ -14115,12 +14187,13 @@ AS
|
||||
|
||||
CURSOR c2
|
||||
IS
|
||||
SELECT prs_bedrijf_key, prs_bedrijf_naam
|
||||
FROM prs_bedrijf
|
||||
WHERE prs_leverancier_nr IS NOT NULL
|
||||
SELECT b.prs_bedrijf_key, b.prs_bedrijf_naam
|
||||
FROM prs_bedrijf b
|
||||
WHERE b.prs_bedrijf_intern IS NULL
|
||||
AND b.prs_leverancier_nr IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM rwsn_imp_partners
|
||||
WHERE prs_leverancier_nr = contractant)
|
||||
WHERE contractant = b.prs_leverancier_nr)
|
||||
ORDER BY prs_bedrijf_key;
|
||||
|
||||
c_kenmerk_inactief NUMBER (10) := 1040;
|
||||
|
||||
Reference in New Issue
Block a user