ARBO#65778 -- Nieuwe organisatiestructuur
svn path=/Customer/trunk/; revision=50289
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user