VOLK#78884 Koppeling voor up to date houden afdelingen
svn path=/Customer/trunk/; revision=62127
This commit is contained in:
137
VOLK/volk.sql
137
VOLK/volk.sql
@@ -1851,6 +1851,12 @@ BEGIN
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
-- als de afdeling minder dan 6 karakters bevat, moeten we deze aanvullen met voorloopnullen
|
||||
IF LENGTH (v_afdeling_naam) < 6
|
||||
THEN
|
||||
v_afdeling_naam := LPAD (v_afdeling_naam, 6, '0');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
||||
|
||||
@@ -1867,6 +1873,13 @@ BEGIN
|
||||
|| ']');
|
||||
END IF;
|
||||
|
||||
-- als de afdelingparent minder dan 6 karakters bevat, moeten we deze aanvullen met voorloopnullen
|
||||
IF LENGTH (v_afdeling_naam_parent) < 6
|
||||
THEN
|
||||
v_afdeling_naam_parent :=
|
||||
LPAD (v_afdeling_naam_parent, 6, '0');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
||||
|
||||
@@ -1901,11 +1914,13 @@ BEGIN
|
||||
prs_bedrijf_naam,
|
||||
prs_afdeling_naam,
|
||||
prs_afdeling_naam_parent,
|
||||
prs_afdeling_omschrijving)
|
||||
prs_afdeling_omschrijving,
|
||||
prs_kostenplaats_nr)
|
||||
VALUES (v_bedrijf_naam,
|
||||
v_afdeling_naam,
|
||||
v_afdeling_naam_parent,
|
||||
v_afdeling_omschrijving);
|
||||
'000036', -- we nemen geen niveaus op in Facilitor, alles valt direct onder Volksbank
|
||||
v_afdeling_omschrijving,
|
||||
'999999'); -- dummy kostenplaats
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
END IF;
|
||||
@@ -1949,20 +1964,25 @@ END volk_import_organisatie;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_delete_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
|
||||
--- afdelingen die niet in de import voorkomen en waar ook geen medewerkers meer onder vallen
|
||||
--- deze mogen een verwijderdatum krijgen
|
||||
CURSOR c_del IS
|
||||
SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving afdeling
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_afdeling_naam NOT IN (SELECT o.prs_afdeling_naam
|
||||
FROM fac_imp_organisatie o)
|
||||
AND a.prs_afdeling_key NOT IN
|
||||
(SELECT p.prs_afdeling_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_inactief IS NULL);
|
||||
SELECT a.prs_afdeling_key,
|
||||
a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving afdeling
|
||||
FROM prs_afdeling a
|
||||
WHERE NOT EXISTS
|
||||
(SELECT i.prs_afdeling_naam
|
||||
FROM fac_imp_organisatie i
|
||||
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam)
|
||||
AND NOT EXISTS
|
||||
(SELECT p.prs_afdeling_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT *
|
||||
FROM prs_afdeling p
|
||||
WHERE p.prs_afdeling_parentkey = a.prs_afdeling_key);
|
||||
|
||||
BEGIN
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
@@ -1971,21 +1991,23 @@ BEGIN
|
||||
SET a.prs_afdeling_verwijder = SYSDATE
|
||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||
|
||||
fac.trackaction ('ADMTRK',
|
||||
fac.trackaction (
|
||||
'ADMTRK',
|
||||
rec.prs_afdeling_key,
|
||||
NULL,
|
||||
NULL,
|
||||
'Afdeling '|| rec.afdeling || ' is verwijderd vanuit de organisatie import');
|
||||
'Afdeling '
|
||||
|| rec.afdeling
|
||||
|| ' is verwijderd vanuit de organisatie import');
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
fac.imp_writelog (
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
'volk_delete_afdeling',
|
||||
'Verwijderen van afdeling: '
|
||||
'Verwijderen van afdeling: '
|
||||
|| rec.afdeling
|
||||
|| ' is NIET gelukt');
|
||||
END;
|
||||
@@ -1997,22 +2019,77 @@ END volk_delete_organisatie;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE volk_update_organisatie (p_import_key IN NUMBER)
|
||||
AS
|
||||
-- wanneer de afdeling gelijk is maar de omschrijving, kostenplaats of de parent anders dan werken we de afdeling in Facilitor bij
|
||||
CURSOR c_omschr IS
|
||||
SELECT i.prs_afdeling_naam,
|
||||
i.prs_afdeling_omschrijving prs_afdeling_omschrijving_new,
|
||||
a.prs_afdeling_omschrijving,
|
||||
a.prs_afdeling_key
|
||||
FROM fac_imp_organisatie i, prs_afdeling a
|
||||
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam
|
||||
AND a.prs_afdeling_omschrijving <> i.prs_afdeling_omschrijving;
|
||||
|
||||
CURSOR c_kpl IS
|
||||
SELECT kn.prs_kostenplaats_key prs_kostenplaats_key_new,
|
||||
a.prs_afdeling_key
|
||||
FROM fac_imp_organisatie i,
|
||||
prs_kostenplaats kn,
|
||||
prs_afdeling a,
|
||||
prs_kostenplaats k
|
||||
WHERE kn.prs_kostenplaats_nr = i.prs_kostenplaats_nr
|
||||
AND i.prs_afdeling_naam = a.prs_afdeling_naam
|
||||
AND a.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND i.prs_kostenplaats_nr <> k.prs_kostenplaats_nr;
|
||||
|
||||
CURSOR c_parent IS
|
||||
SELECT a.prs_afdeling_key,
|
||||
ap_new.prs_afdeling_key prs_afdeling_parentkey_new
|
||||
FROM prs_afdeling a, fac_imp_organisatie i, prs_afdeling ap_new
|
||||
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam
|
||||
AND i.prs_afdeling_naam_parent = ap_new.prs_afdeling_naam
|
||||
AND a.prs_afdeling_parentkey <> ap_new.prs_afdeling_key;
|
||||
BEGIN
|
||||
-- er wordt met een dummy kostenplaats gewerkt, dus deze zetten we bij alle afdelingen in de import tabel
|
||||
UPDATE FAC_IMP_ORGANISATIE o
|
||||
SET o.prs_kostenplaats_nr = '999999'
|
||||
WHERE o.prs_kostenplaats_nr IS NULL;
|
||||
|
||||
-- de afdelingsnaam wordt tot 6 posities aangevuld met voorloopnullen
|
||||
UPDATE fac_imp_organisatie o
|
||||
SET o.prs_afdeling_naam = LPAD (o.prs_afdeling_naam, 6, '0'),
|
||||
o.prs_afdeling_naam_parent =
|
||||
LPAD (o.prs_afdeling_naam_parent, 6, '0');
|
||||
|
||||
-- we verwijderen afdelingen die niet meer in de import meekomen
|
||||
volk_delete_organisatie (p_import_key);
|
||||
|
||||
-- de afdelingen die wel in de import zittenvoegen we toe
|
||||
fac_update_organisatie (p_import_key);
|
||||
|
||||
--- we werken afdelingen bij waarin omschrijving, parent en/of kostenplaats gewijzigd is
|
||||
--- vanuit de update is alles wat nieuw is al aangemaakt, dus aangenomen mag worden dat de parent en de kpl bekend is in Facilitor
|
||||
FOR rec IN c_omschr
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_afdeling_omschrijving =
|
||||
rec.prs_afdeling_omschrijving_new
|
||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_kpl
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_kostenplaats_key = rec.prs_kostenplaats_key_new
|
||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN c_parent
|
||||
LOOP
|
||||
BEGIN
|
||||
UPDATE prs_afdeling a
|
||||
SET a.prs_afdeling_parentkey = rec.prs_afdeling_parentkey_new
|
||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
END volk_update_organisatie;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user