AAIT#90164 -- Voor BFNL - Locatiemanagers automatisch mandaat krijgen - Methodiek uit oude BLOS-omgeving overnemen

svn path=/Customer/trunk/; revision=70229
This commit is contained in:
Jos Migo
2025-09-07 15:33:38 +00:00
parent cc7754f101
commit 60ee4a31d5

View File

@@ -66,6 +66,280 @@ END;
-- PERSONEN/ORGANISATIE ---
-----------------------------------
--------------------------------------------------------------------
-- Locatiekaart en gekoppelde locatieleider - SYSTEMATIEK BLOS ---
--------------------------------------------------------------------
-- Inpassen systematiek om werkplekkoppelingen te genereren op basis locatiekaart
-- Lijst van Kostenplaatsen (die men in locatiekaart kan selecteren)
CREATE OR REPLACE VIEW bfnl_v_kostenplaatsen
(
PRS_KOSTENPLAATS_KEY,
PRS_KOSTENPLAATS_NR,
PRS_KOSTENPLAATS_VERWIJDER,
PRS_KOSTENPLAATS_ACTUEEL,
PRS_KOSTENPLAATS_OMSCHRIJVING
)
AS
SELECT k.prs_kostenplaats_key,
CASE
WHEN ( prs_kostenplaats_verwijder IS NOT NULL
OR ( prs_kostenplaats_eind IS NOT NULL
AND prs_kostenplaats_eind < TRUNC (SYSDATE)))
THEN
k.prs_kostenplaats_nr || ' - oud!'
ELSE
k.prs_kostenplaats_nr
END
prs_kostenplaats_nr,
k.prs_kostenplaats_verwijder,
CASE
WHEN ( prs_kostenplaats_verwijder IS NOT NULL
OR ( prs_kostenplaats_eind IS NOT NULL
AND prs_kostenplaats_eind < TRUNC (SYSDATE)))
THEN
NULL
ELSE
'oud!'
END
prs_kostenplaats_actueel,
k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k;
-- Lijst van Locatieleiders (tbv domeinview)
CREATE OR REPLACE VIEW bfnl_v_personenlijst_loc
(
PRS_PERSLID_KEY,
NAAM,
PERSONEELSNUMMER,
EMAIL,
PRS_PERSLID_VERWIJDER
)
AS
SELECT
p.prs_perslid_key,
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
END
naam,
p.prs_perslid_nr,
p.prs_perslid_email,
p.prs_perslid_verwijder
FROM
prs_perslid p,
prs_srtperslid sp,
prs_v_afdeling a,
prs_bedrijf b
WHERE
p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 541 -- bedrijfs_key Babilou Family NL
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND sp.prs_srtperslid_key IN (544, 543, 542) --- LOCATIEMANAGER (key 544) + ASSISTENT LOCATIEMANAGER (key 543) + REGIOEMANAGER (key 542)
-- AND p.prs_perslid_verwijder IS NULL
ORDER BY sp.prs_srtperslid_omschrijving, p.prs_perslid_voornaam, p.prs_perslid_naam
;
-- Lijst van Regiomanagers ((Cluster/District) (tbv domeinview)
CREATE OR REPLACE VIEW bfnl_v_personenlijst_clus
(
PRS_PERSLID_KEY,
NAAM,
PERSONEELSNUMMER,
EMAIL,
PRS_PERSLID_VERWIJDER
)
AS
SELECT
p.prs_perslid_key,
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
END
naam,
p.prs_perslid_nr,
p.prs_perslid_email,
p.prs_perslid_verwijder
FROM
prs_perslid p,
prs_srtperslid sp,
prs_v_afdeling a,
prs_bedrijf b
WHERE
p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 541 -- bedrijfs_key Babilou Family NL
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND sp.prs_srtperslid_key = 542 --- REGIOEMANAGER
-- AND p.prs_perslid_verwijder IS NULL
ORDER BY p.prs_perslid_naam
;
-- Lijst van Locatieleiders/Vervangers en de locaties waar men verantwoordelijk voor is)
CREATE OR REPLACE VIEW bfnl_v_locatiemanagers
(
PRS_PERSLID_KEY,
ALG_LOCATIE_KEY,
LOCATIEMANAGER,
LOCATIE, -- voor BFNL de personen op GEBOUW gekoppeld en de naam locatie wel op locatieniveau
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
l.alg_locatie_key,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ') - ' || sp.prs_srtperslid_omschrijving
locatiemanager,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
locatie,
p.prs_perslid_verwijder
FROM prs_perslid p, prs_srtperslid sp, alg_onrgoedkenmerk ok, alg_gebouw g, alg_locatie l
WHERE fac.safe_to_number(ok.alg_onrgoedkenmerk_waarde) = p.prs_perslid_key
AND ok.alg_kenmerk_key IN (1180, 1181, 1182, 1183) -- locatieleiders (ook voor bijv vervangers en assistenten)
AND ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'G' AND ok.alg_onrgoed_key = g.alg_gebouw_key
AND g.alg_gebouw_verwijder IS NULL
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_locatie_verwijder IS NULL
AND (TRUNC(l.alg_locatie_vervaldatum) > TRUNC(sysdate) OR l.alg_locatie_vervaldatum IS NULL )
AND (TRUNC(g.alg_gebouw_vervaldatum) > TRUNC(sysdate) OR g.alg_gebouw_vervaldatum IS NULL )
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
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,
p.prs_perslid_verwijder ;
-- Lijst van Locatiemanagers + Cluster-managers en de Werkplekkoppeling die ze in hun personenkaart hebben
CREATE OR REPLACE VIEW bfnl_v_locatiemanagers_wp
(
PRS_PERSLID_KEY,
ALG_LOCATIE_KEY,
NAAM,
LOCATIE_WP,
PRS_WERKPLEK_KEY
)
AS
SELECT wp.prs_perslid_key,
onr.alg_locatie_key,
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
END
naam,
l.alg_locatie_code || ' - ' || l.alg_locatie_omschrijving
locatie,
w.prs_werkplek_key
FROM (
SELECT prs_perslid_key
FROM (SELECT *
FROM bfnl_v_personenlijst_loc
) x
GROUP BY x.prs_perslid_key
) v,
prs_perslid p, prs_srtperslid sp, prs_perslidwerkplek wp, prs_werkplek w, alg_ruimte r, alg_v_onrgoed_boom onr, alg_locatie l
WHERE v.prs_perslid_key = p.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_key = wp.prs_perslid_key
AND wp.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_key = onr.alg_ruimte_key
AND onr.alg_locatie_key = l.alg_locatie_key
ORDER BY wp.prs_perslid_key
;
-- Nog 2 bronviews nodig voor procedure:
--- Bronview: Alle locaties met haar kostenplaats(en): bfnl_v_locaties_kp
--- Bronview: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren: bfnl_v_locaties_wp_kp
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
CREATE OR REPLACE VIEW bfnl_v_locaties_kp
(
alg_locatie_key,
alg_locatie_omschrijving,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
)
AS
SELECT l.alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'G'
AND kw.alg_kenmerk_key = 1184 -- kostenplaats-1
UNION
SELECT l.alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'G'
AND kw.alg_kenmerk_key = 1185 -- kostenplaats-2
UNION
SELECT l.alg_locatie_key,
alg_locatie_omschrijving,
kw.alg_onrgoedkenmerk_waarde prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
FROM alg_locatie l, alg_gebouw g, alg_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'G'
AND kw.alg_kenmerk_key = 1186 -- kostenplaats-3
;
-- BRONVIEW: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatie/gebouwkaart bijhoren
CREATE OR REPLACE VIEW bfnl_v_locaties_wp_kp
(
prs_perslid_key,
prs_perslid_naam,
prs_srtperslid_omschrijving,
prs_perslidwerkplek_key,
alg_locatie_omschrijving,
alg_locatie_key,
prs_kostenplaats_key,
prs_kostenplaats_nr
)
AS
SELECT v.prs_perslid_key,
p.prs_perslid_naam,
sp.prs_srtperslid_omschrijving,
v.prs_perslidwerkplek_key,
l.alg_locatie_omschrijving,
lkp.alg_locatie_key,
lkp.prs_kostenplaats_key,
lkp.prs_kostenplaats_nr
FROM prs_v_werkplekperslid_gegevens v,
alg_locatie l,
prs_perslid p,
prs_srtperslid sp,
bfnl_v_locaties_kp lkp
WHERE v.prs_perslid_key = p.prs_perslid_key
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 INSTR(prs_srtperslid_upper,'LOCATIEMANAGER') > 0 ;
--- DE PROCEDURE om voor de Locatiemanagers van de CLUSTERS de juiste CLUSTER-LOCATIES te koppelen als werkplek
---- NOG GOED INPASSEN IOM HEYDAY - SANDER VOGELS
-------------------
-- RAPPORTAGES ---