BLOS#79136 -- Systematiek Locatieleiders en Werkplekkoppelingen - laaste fintetuning voor levering naar PROD

svn path=/Customer/trunk/; revision=62293
This commit is contained in:
Jos Migo
2023-10-23 09:47:54 +00:00
parent 2183ba3f81
commit d2f3772cd1

View File

@@ -327,9 +327,9 @@ AS
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 21 -- bedrijfs_key BLOS
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND sp.prs_srtperslid_key = 25 --- LOCATIEMANAGER
AND sp.prs_srtperslid_key IN (25, 11181) --- 25 LOCATIEMANAGER (key 25) + ASSISTENT LOCATIEMANAGER (key 11181)
-- AND p.prs_perslid_verwijder IS NULL
ORDER BY p.prs_perslid_naam
ORDER BY sp.prs_srtperslid_omschrijving DESC, p.prs_perslid_voornaam, p.prs_perslid_naam
;
-- Lijst van Regiomanagers ((Cluster/District) (tbv domeinview)
@@ -409,7 +409,6 @@ CREATE OR REPLACE VIEW blos_v_locatiemanagers
ALG_LOCATIE_KEY,
LOCATIEMANAGER,
LOCATIE,
VERVANGER,
PRS_PERSLID_VERWIJDER
)
AS
@@ -419,12 +418,10 @@ AS
locatiemanager,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
locatie,
CASE WHEN ok.alg_kenmerk_key = 1163 THEN 'ja' ELSE 'nee' END
vervanger,
p.prs_perslid_verwijder
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_locatie l
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
AND ok.alg_kenmerk_key IN (1162, 1163) -- locatieleider en vervanger
AND ok.alg_kenmerk_key IN (1162, 1163, 1300, 1301) -- locatieleiders (ook voor bijv vervangers en ssistenten)
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'L' AND ok.alg_onrgoed_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
@@ -433,7 +430,6 @@ AS
GROUP BY p.prs_perslid_key, l.alg_locatie_key,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving,
CASE WHEN ok.alg_kenmerk_key = 1163 THEN 'ja' ELSE 'nee' END,
p.prs_perslid_verwijder ;
-- Lijst van Locatiemanagers + Cluster-managers en de Werkplekkoppeling die ze in hun personenkaart hebben
@@ -554,7 +550,7 @@ AS
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND v.alg_locatie_key = l.alg_locatie_key
AND v.alg_locatie_key = lkp.alg_locatie_key(+)
AND prs_srtperslid_upper = 'LOCATIEMANAGER';
AND INSTR(prs_srtperslid_upper,'LOCATIEMANAGER') > 0 ;
--- DE PROCEDURE om voor de Locatiemanagers van de CLUSTERS de juiste CLUSTER-LOCATIES te koppelen als werkplek
CREATE OR REPLACE VIEW blos_v_export_wp_loc_manager
@@ -651,6 +647,17 @@ AS
AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM blos_v_personenlijst_loc d)
ORDER BY 1, 2 ;
CURSOR c_loc_del -- Voor opschonen van de locatiemanagers die geen locaties meer onder zich hebben en nog wel in autorisatiegroep
IS
SELECT p.prs_perslid_key, p.naam,
(SELECT count(*) FROM prs_perslidwerkplek wp WHERE wp.prs_perslid_key = p.prs_perslid_key) aantal_wp,
gg.fac_gebruikersgroep_key
FROM blos_v_personenlijst_loc p, fac_gebruikersgroep gg
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = 24 -- autorisatiegroep Locatiemanagers
ORDER BY 1 ;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
@@ -664,6 +671,7 @@ AS
v_alg_ruimte_key NUMBER;
v_prs_perslidkostenplaats_key NUMBER (10);
v_teller_mandaat NUMBER (10);
v_upsert_sync NUMBER(1);
BEGIN
v_count := 0;
@@ -675,6 +683,8 @@ BEGIN
v_aanduiding :=
'bijwerken werkplekkoppelingen locatiemanager - perslid_key:'
|| TO_CHAR (rec.prs_perslid_key);
v_upsert_sync := 0 ;
IF rec.actie = 'toevoegen'
THEN
@@ -701,6 +711,9 @@ BEGIN
v_alg_ruimte_key,
'L',
1);
v_upsert_sync := 1 ;
END;
END IF;
END;
@@ -714,7 +727,19 @@ BEGIN
DELETE prs_werkplek
WHERE prs_werkplek_key = rec.prs_werkplek_key;
v_upsert_sync := 1 ;
END IF;
-- In personenkaart nog even vermelden wanneer deze vanuit de WP-sync voor het laatst zijn gemuteerd
IF v_upsert_sync = 1
THEN
PRS.upsertkenmerk (1141, rec.prs_perslid_key, TO_CHAR(sysdate, 'dd-mm-yyyy HH24:MI'));
END IF;
EXCEPTION
WHEN OTHERS
THEN
@@ -730,7 +755,9 @@ BEGIN
'E',
v_aanduiding || ' - ' || v_errormsg,
v_errorhint);
END;
END LOOP;
FOR rec IN c_loc_kp
@@ -786,6 +813,29 @@ BEGIN
rec.prs_perslidkostenplaats_key;
END;
END LOOP;
FOR rec IN c_loc_del
LOOP
BEGIN
-- Alle managers zonder WP's uit de autorisatiegroep Locatiemanagers halen (key 24)
v_aanduiding :=
'bijwerken locatiemanager - perslid_key:'
|| TO_CHAR (rec.prs_perslid_key);
v_errorhint := 'verwijderen locatiemanager uit autorisatiegroep';
IF rec.aantal_wp = 0
THEN
DELETE
FROM fac_gebruikersgroep
WHERE fac_gebruikersgroep_key = rec.fac_gebruikersgroep_key ;
END IF;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
@@ -992,6 +1042,7 @@ AS
v_teller_mandaat NUMBER(10);
v_prs_perslid_key NUMBER (10);
v_kostenplaats_actueel NUMBER(1);
v_upsert_sync NUMBER(1);
BEGIN
v_count := 0;
@@ -1003,6 +1054,8 @@ BEGIN
v_aanduiding :=
'bijwerken werkplekkoppelingen regiomanager/directeur - perslid_key:'
|| TO_CHAR (rec.prs_perslid_key);
v_upsert_sync := 0 ;
IF rec.actie = 'toevoegen'
THEN
@@ -1029,6 +1082,9 @@ BEGIN
v_alg_ruimte_key,
'L',
1);
v_upsert_sync := 1 ;
END;
END IF;
END;
@@ -1042,7 +1098,19 @@ BEGIN
DELETE prs_werkplek
WHERE prs_werkplek_key = rec.prs_werkplek_key;
v_upsert_sync := 1 ;
END IF;
-- In personenkaart nog even vermelden wanneer deze vanuit de WP-sync voor het laatst zijn gemuteerd
IF v_upsert_sync = 1
THEN
PRS.upsertkenmerk (1141, rec.prs_perslid_key, TO_CHAR(sysdate, 'dd-mm-yyyy HH24:MI'));
END IF;
EXCEPTION
WHEN OTHERS
THEN
@@ -1816,7 +1884,9 @@ CREATE OR REPLACE VIEW BLOS_V_ALG_ONROERENDGOED_BASIS
KOSTENPLAATS_2,
KOSTENPLAATS_3,
LOCATIEMANAGER,
LOCATIEMANAGER_VERVANGER,
LOCATIEMANAGER_2,
LOCATIEMANAGER_3,
LOCATIEMANAGER_4,
LOCATIE_VERVALDATUM,
LOCATIE_VERWIJDERDATUM,
LOCATIE_OUD
@@ -1837,8 +1907,26 @@ AS
km.kostenplaats_1,
km.kostenplaats_2,
km.kostenplaats_3,
km.locatiemanager,
km.vervanger,
CASE WHEN (SELECT count(*) FROM prs_perslid p WHERE p.prs_perslid_key = fac.safe_to_number(km.locatiemanager_key) AND p.prs_perslid_verwijder IS NOT NULL) = 1
THEN km.locatiemanager || ' - oud!'
ELSE km.locatiemanager
END
locatiemanager,
CASE WHEN (SELECT count(*) FROM prs_perslid p WHERE p.prs_perslid_key = fac.safe_to_number(km.locatiemanager_2_key) AND p.prs_perslid_verwijder IS NOT NULL) = 1
THEN km.locatiemanager_2 || ' - oud!'
ELSE km.locatiemanager_2
END
locatiemanager_2,
CASE WHEN (SELECT count(*) FROM prs_perslid p WHERE p.prs_perslid_key = fac.safe_to_number(km.locatiemanager_3_key) AND p.prs_perslid_verwijder IS NOT NULL) = 1
THEN km.locatiemanager_3 || ' - oud!'
ELSE km.locatiemanager_3
END
locatiemanager_3,
CASE WHEN (SELECT count(*) FROM prs_perslid p WHERE p.prs_perslid_key = fac.safe_to_number(km.locatiemanager_4_key) AND p.prs_perslid_verwijder IS NOT NULL) = 1
THEN km.locatiemanager_4 || ' - oud!'
ELSE km.locatiemanager_4
END
locatiemanager_4,
l.alg_locatie_vervaldatum,
l.alg_locatie_verwijder,
CASE WHEN l.alg_locatie_verwijder IS NULL AND (l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE))
@@ -1859,7 +1947,13 @@ AS
flx.getdomeinwaarde(221,flx.getflex('ALG',1142, l.alg_locatie_key,'L')) kostenplaats_3,
-- locatieverantwoordelijke
flx.getdomeinwaarde(181,flx.getflex('ALG', 1162, l.alg_locatie_key, 'L')) locatiemanager,
flx.getdomeinwaarde(182,flx.getflex('ALG', 1163, l.alg_locatie_key, 'L')) vervanger
flx.getflex('ALG', 1162, l.alg_locatie_key, 'L') locatiemanager_key,
flx.getdomeinwaarde(181,flx.getflex('ALG', 1163, l.alg_locatie_key, 'L')) locatiemanager_2,
flx.getflex('ALG', 1163, l.alg_locatie_key, 'L') locatiemanager_2_key,
flx.getdomeinwaarde(181,flx.getflex('ALG', 1300, l.alg_locatie_key, 'L')) locatiemanager_3,
flx.getflex('ALG', 1300, l.alg_locatie_key, 'L') locatiemanager_3_key,
flx.getdomeinwaarde(181,flx.getflex('ALG', 1301, l.alg_locatie_key, 'L')) locatiemanager_4,
flx.getflex('ALG', 1301, l.alg_locatie_key, 'L') locatiemanager_4_key
FROM alg_locatie l ) km,
(SELECT d.alg_district_key,
-- regiomanager en regio-directeur