VOLK#78884 Koppeling voor up to date houden afdelingen
svn path=/Customer/trunk/; revision=62127
This commit is contained in:
143
VOLK/volk.sql
143
VOLK/volk.sql
@@ -1851,6 +1851,12 @@ BEGIN
|
|||||||
|| ']');
|
|| ']');
|
||||||
END IF;
|
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);
|
v_afdeling_naam_parent := TRIM (v_afdeling_naam_parent);
|
||||||
|
|
||||||
@@ -1867,6 +1873,13 @@ BEGIN
|
|||||||
|| ']');
|
|| ']');
|
||||||
END IF;
|
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);
|
v_afdeling_omschrijving := TRIM (v_afdeling_omschrijving);
|
||||||
|
|
||||||
@@ -1901,11 +1914,13 @@ BEGIN
|
|||||||
prs_bedrijf_naam,
|
prs_bedrijf_naam,
|
||||||
prs_afdeling_naam,
|
prs_afdeling_naam,
|
||||||
prs_afdeling_naam_parent,
|
prs_afdeling_naam_parent,
|
||||||
prs_afdeling_omschrijving)
|
prs_afdeling_omschrijving,
|
||||||
|
prs_kostenplaats_nr)
|
||||||
VALUES (v_bedrijf_naam,
|
VALUES (v_bedrijf_naam,
|
||||||
v_afdeling_naam,
|
v_afdeling_naam,
|
||||||
v_afdeling_naam_parent,
|
'000036', -- we nemen geen niveaus op in Facilitor, alles valt direct onder Volksbank
|
||||||
v_afdeling_omschrijving);
|
v_afdeling_omschrijving,
|
||||||
|
'999999'); -- dummy kostenplaats
|
||||||
|
|
||||||
v_count_import := v_count_import + 1;
|
v_count_import := v_count_import + 1;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -1949,20 +1964,25 @@ END volk_import_organisatie;
|
|||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE volk_delete_organisatie (p_import_key IN NUMBER)
|
CREATE OR REPLACE PROCEDURE volk_delete_organisatie (p_import_key IN NUMBER)
|
||||||
AS
|
AS
|
||||||
|
|
||||||
--- afdelingen die niet in de import voorkomen en waar ook geen medewerkers meer onder vallen
|
--- afdelingen die niet in de import voorkomen en waar ook geen medewerkers meer onder vallen
|
||||||
--- deze mogen een verwijderdatum krijgen
|
--- deze mogen een verwijderdatum krijgen
|
||||||
CURSOR c_del IS
|
CURSOR c_del IS
|
||||||
SELECT a.prs_afdeling_key,
|
SELECT a.prs_afdeling_key,
|
||||||
a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving afdeling
|
a.prs_afdeling_naam || ' ' || a.prs_afdeling_omschrijving afdeling
|
||||||
FROM prs_afdeling a
|
FROM prs_afdeling a
|
||||||
WHERE a.prs_afdeling_naam NOT IN (SELECT o.prs_afdeling_naam
|
WHERE NOT EXISTS
|
||||||
FROM fac_imp_organisatie o)
|
(SELECT i.prs_afdeling_naam
|
||||||
AND a.prs_afdeling_key NOT IN
|
FROM fac_imp_organisatie i
|
||||||
(SELECT p.prs_afdeling_key
|
WHERE i.prs_afdeling_naam = a.prs_afdeling_naam)
|
||||||
FROM prs_perslid p
|
AND NOT EXISTS
|
||||||
WHERE p.prs_perslid_verwijder IS NULL
|
(SELECT p.prs_afdeling_key
|
||||||
AND p.prs_perslid_inactief IS NULL);
|
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
|
BEGIN
|
||||||
FOR rec IN c_del
|
FOR rec IN c_del
|
||||||
LOOP
|
LOOP
|
||||||
@@ -1970,22 +1990,24 @@ BEGIN
|
|||||||
UPDATE prs_afdeling a
|
UPDATE prs_afdeling a
|
||||||
SET a.prs_afdeling_verwijder = SYSDATE
|
SET a.prs_afdeling_verwijder = SYSDATE
|
||||||
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
WHERE a.prs_afdeling_key = rec.prs_afdeling_key;
|
||||||
|
|
||||||
fac.trackaction ('ADMTRK',
|
fac.trackaction (
|
||||||
|
'ADMTRK',
|
||||||
rec.prs_afdeling_key,
|
rec.prs_afdeling_key,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
'Afdeling '|| rec.afdeling || ' is verwijderd vanuit de organisatie import');
|
'Afdeling '
|
||||||
|
|| rec.afdeling
|
||||||
|
|| ' is verwijderd vanuit de organisatie import');
|
||||||
|
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS
|
WHEN OTHERS
|
||||||
THEN
|
THEN
|
||||||
|
fac.imp_writelog (
|
||||||
fac.imp_writelog (
|
|
||||||
p_import_key,
|
p_import_key,
|
||||||
'W',
|
'W',
|
||||||
'volk_delete_afdeling',
|
'volk_delete_afdeling',
|
||||||
'Verwijderen van afdeling: '
|
'Verwijderen van afdeling: '
|
||||||
|| rec.afdeling
|
|| rec.afdeling
|
||||||
|| ' is NIET gelukt');
|
|| ' is NIET gelukt');
|
||||||
END;
|
END;
|
||||||
@@ -1997,22 +2019,77 @@ END volk_delete_organisatie;
|
|||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE volk_update_organisatie (p_import_key IN NUMBER)
|
CREATE OR REPLACE PROCEDURE volk_update_organisatie (p_import_key IN NUMBER)
|
||||||
AS
|
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
|
BEGIN
|
||||||
-- er wordt met een dummy kostenplaats gewerkt, dus deze zetten we bij alle afdelingen in de import tabel
|
-- we verwijderen afdelingen die niet meer in de import meekomen
|
||||||
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');
|
|
||||||
|
|
||||||
volk_delete_organisatie (p_import_key);
|
volk_delete_organisatie (p_import_key);
|
||||||
|
|
||||||
|
-- de afdelingen die wel in de import zittenvoegen we toe
|
||||||
fac_update_organisatie (p_import_key);
|
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;
|
END volk_update_organisatie;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user