ARBO#65778 -- Nieuwe organisatiestructuur

svn path=/Customer/trunk/; revision=50289
This commit is contained in:
Arthur Egberink
2021-03-10 18:19:00 +00:00
parent 5407d38517
commit 11a36ddf55

View File

@@ -181,23 +181,22 @@ BEGIN
END;
/
-- De afdelingsstructuur van ARBO kent geen codes voor de afdeling. Daarnaast kan een afdeling meerdere kostenplaatsen hebben.
-- Om dit op te lossen wordt het interne bedrijf gevuld met het bedrijf (kenmerk1) uit de FIP tabel. Afdelingsniveau 1 in Facilitor
-- wordt gevuld met kenmerk2. Als afdelingsnaam wordt de key ingevuld. Als afdelingsniveau 2 wordt de kostenplaats gebruikt. Dit is nodig
-- om dat anders de kostenplaatsen niet gekoppeld kunnen worden. Aangezien de kostenplaatsen onder meerdere afdelingen kunnen voorkomen
-- wordt ook hier de afdelingsnaam gevuld met de key van de afdeling. Nadat de afdelingen en kostenplaatsen dan zijn aangemaakt moet de
-- naam van de afdeling op niveau 2 (key van het record) ingevuld worden in de FIP tabel.
CREATE OR REPLACE PROCEDURE arbo_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c IS
SELECT DISTINCT prs_kenmerk1 bedrijf_naam,
prs_kenmerk2 afdeling_oms1,
prs_kenmerk11 afdeling_oms2,
prs_kenmerk7 kostenplaats_nr,
prs_kenmerk8 kostenplaats_oms,
(SELECT count(*)
FROM fac_imp_perslid i2
WHERE i2.prs_kenmerk2 = i.prs_kenmerk2
AND i2.prs_kenmerk7 = i.prs_kenmerk7) aantal
FROM fac_imp_perslid i
ORDER BY prs_kenmerk1,
prs_kenmerk7,
aantal desc,
prs_kenmerk2;
SELECT DISTINCT prs_kenmerk1 bedrijf_naam,
prs_kenmerk2 afdeling_oms1,
prs_kenmerk7 kostenplaats_nr,
prs_kenmerk8 kostenplaats_oms
FROM fac_imp_perslid i
GROUP BY prs_kenmerk1, prs_kenmerk2, prs_kenmerk7, prs_kenmerk8
ORDER BY prs_kenmerk1, prs_kenmerk2, prs_kenmerk7;
CURSOR c_upd IS
SELECT i.prs_perslid_key, prs_kenmerk10 alt_email
@@ -246,6 +245,7 @@ IS
v_afdeling_key2 NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_kpn_nr_prev VARCHAR2 (20);
v_afd_naam_prev VARCHAR2 (60);
v_aanduiding VARCHAR2 (100);
v_errorhint VARCHAR2 (1000);
@@ -257,6 +257,7 @@ BEGIN
v_aanduiding := '';
v_errorhint := 'Toevoegen kostenplaatsen';
v_kpn_nr_prev := 'QueQuLeQue';
v_afd_naam_prev := 'QueQuLeQue';
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
@@ -302,7 +303,7 @@ BEGIN
FOR rec IN c
LOOP
v_aanduiding := rec.bedrijf_naam || '-' || rec.afdeling_oms1 || '-' || rec.kostenplaats_nr;
IF v_kpn_nr_prev <> rec.kostenplaats_nr
IF v_kpn_nr_prev <> rec.kostenplaats_nr OR v_afd_naam_prev <> rec.afdeling_oms1
THEN
BEGIN
v_errorhint := 'Zoek bedrijf';
@@ -356,13 +357,15 @@ BEGIN
SELECT prs_afdeling_key
INTO v_afdeling_key2
FROM prs_afdeling a
WHERE a.prs_afdeling_upper = UPPER(rec.kostenplaats_nr)
WHERE UPPER(a.prs_afdeling_omschrijving) = UPPER(rec.kostenplaats_oms)
AND prs_afdeling_parentkey = v_afdeling_key1
AND prs_afdeling_verwijder IS NULL;
UPDATE prs_afdeling
SET prs_afdeling_omschrijving = rec.afdeling_oms2,
SET prs_afdeling_omschrijving = rec.kostenplaats_oms,
prs_afdeling_parentkey = v_afdeling_key1,
prs_kostenplaats_key = v_kostenplaats_key
prs_kostenplaats_key = v_kostenplaats_key,
prs_afdeling_naam = v_afdeling_key2
WHERE prs_afdeling_key = v_afdeling_key2;
EXCEPTION
WHEN NO_DATA_FOUND
@@ -377,13 +380,14 @@ BEGIN
prs_afdeling_parentkey,
prs_kostenplaats_key)
VALUES (v_afdeling_key2,
UPPER(rec.kostenplaats_nr),
rec.afdeling_oms2,
v_afdeling_key2,
rec.kostenplaats_oms,
v_afdeling_key1,
v_kostenplaats_key);
END;
END;
v_kpn_nr_prev := rec.kostenplaats_nr;
v_afd_naam_prev := rec.afdeling_oms1;
END IF;
END LOOP;
@@ -411,6 +415,19 @@ BEGIN
END LOOP;
END IF;
UPDATE fac_imp_perslid i
SET i.prs_afdeling_naam =
(SELECT a2.prs_afdeling_naam
FROM prs_v_afdeling_boom ab, prs_afdeling a1, prs_afdeling a2
WHERE ab.prs_afdeling_key1 = a1.prs_afdeling_key
AND ab.prs_afdeling_key2 = a2.prs_afdeling_key
AND ab.prs_afdeling_key3 IS NULL
AND i.prs_kenmerk2 = a1.prs_afdeling_omschrijving
AND a1.prs_afdeling_verwijder IS NULL
AND i.prs_kenmerk8 = a2.prs_afdeling_omschrijving
AND a2.prs_afdeling_verwijder IS NULL);
prs.update_perslid (p_import_key, 'NR', NULL);
-- Niet gebruikte functies gaan we nu verwijderen