FSN#41410 beter omgaan met afdelingen met verwijderde parents bij import personen

svn path=/Database/trunk/; revision=34874
This commit is contained in:
Peter Feij
2017-08-09 13:13:58 +00:00
parent 670a281516
commit 7fdfe93be8
2 changed files with 105 additions and 4 deletions

View File

@@ -1802,10 +1802,10 @@ AS
SELECT prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling
WHERE UPPER (prs_afdeling_naam) =
UPPER (recPersLid.prs_afdeling_naam)
AND prs_afdeling_verwijder IS NULL;
FROM prs_v_aanwezigafdeling_boom b, prs_afdeling a
WHERE UPPER (a.prs_afdeling_naam) = UPPER (recPersLid.prs_afdeling_naam)
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_key = b.prs_afdeling_key;
v_space := '';
-- kijk hoe we met partnernamen moeten omgaan:

View File

@@ -235,6 +235,107 @@ SELECT '5' Niveau,
AND a5.prs_afdeling_parentkey=a4.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL;
-- De 'aanwezig'-variant van bovenstaande boom, en dat is handiger dan je denkt
-- Een aanwezige afdeling met ergens daarboven een parent die niet aanwezig is,
-- is effectief namelijk eigenlijk niet aanwezig.
-- Kan dus ook gebruikt worden om te checken of een afdeling echt nog aanwezig is
CREATE_VIEW (prs_v_aanwezigafdeling_boom, 0)
(
niveau,
prs_bedrijf_key,
prs_afdeling_key,
prs_afdeling_key1,
prs_afdeling_key2,
prs_afdeling_key3,
prs_afdeling_key4,
prs_afdeling_key5
)
AS
SELECT '1' niveau,
a1.prs_bedrijf_key,
a1.prs_afdeling_key,
a1.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1
WHERE a1.prs_afdeling_parentkey IS NULL AND a1.prs_afdeling_verwijder IS NULL
UNION
SELECT '2' niveau,
a1.prs_bedrijf_key,
a2.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
UNION
SELECT '3' niveau,
a1.prs_bedrijf_key,
a3.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
TO_NUMBER (NULL),
TO_NUMBER (NULL)
FROM prs_afdeling a1, prs_afdeling a2, prs_afdeling a3
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
UNION
SELECT '4' niveau,
a1.prs_bedrijf_key,
a4.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
TO_NUMBER (NULL)
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
AND a4.prs_afdeling_verwijder IS NULL
UNION
SELECT '5' niveau,
a1.prs_bedrijf_key,
a5.prs_afdeling_key,
a1.prs_afdeling_key,
a2.prs_afdeling_key,
a3.prs_afdeling_key,
a4.prs_afdeling_key,
a5.prs_afdeling_key
FROM prs_afdeling a1,
prs_afdeling a2,
prs_afdeling a3,
prs_afdeling a4,
prs_afdeling a5
WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
AND a1.prs_afdeling_parentkey IS NULL
AND a1.prs_afdeling_verwijder IS NULL
AND a2.prs_afdeling_verwijder IS NULL
AND a3.prs_afdeling_verwijder IS NULL
AND a4.prs_afdeling_verwijder IS NULL
AND a5.prs_afdeling_verwijder IS NULL;
CREATE_VIEW(prs_v_afdeling_fullnames, 0)
( NIVEAU,