BLOS#79136 -- Herstructurering Locaties/Regio's/Clusters inclusief registratie Locatie - en Regiomanagers

svn path=/Customer/trunk/; revision=62043
This commit is contained in:
Jos Migo
2023-10-04 20:01:34 +00:00
parent 78e1b34feb
commit 01ff8b321a

View File

@@ -250,7 +250,7 @@ END;
-----------------------------------------------------------------------------------
-- Systematiek Locatieleiders en Regiomanagers en Werkplekkoppelingen ---
----- 1. Personenkaart vinlkboxen Cluster/Label - OUD ---
----- 1. Personenkaart vinlkboxen Cluster/Label - OUD - VERWIJDERD OKT 2023 ---
----- 2. Locatiekaart en gekoppelde locatieleider - NIEUW 2023-juli ---
----- 3. Regiomanagers en directeuren incl. budgethouderschap - NIEUW 2023-okt ---
-----------------------------------------------------------------------------------
@@ -260,7 +260,6 @@ END;
--------------------------------------------------------------------
-- Inpassen systematiek om werkplekkoppelingen te genereren op basis locatiekaart => Gelijk aan oplossing GOKO
---- ter vervanging EXPORT WPCLUSTER
---- Bij GOKO zit deze in de IMPORT PERSLID... , bij BLOS apart houden omdat pas later een AFAS-intergratie komt, eerst apart houden WPMANAGER...
@@ -436,10 +435,92 @@ AS
ORDER BY wp.prs_perslid_key
;
-- Views nodig maar al in -- 1. vinkboxen Cluster/Label -- :
-- Nog 2 bronviews nodig voor procedure:
--- Bronview: Alle locaties met haar kostenplaats(en): blos_v_locaties_kp
--- Bronview: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren: blos_v_locaties_wp_kp
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
CREATE OR REPLACE VIEW blos_v_locaties_kp
(
alg_locatie_key,
alg_locatie_omschrijving,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
)
AS
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1140 -- kostenplaats-1
UNION
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1141 -- kostenplaats-2
UNION
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1142 -- kostenplaats-3
;
-- BRONVIEW: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren
CREATE OR REPLACE VIEW blos_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,
blos_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 prs_srtperslid_upper = 'LOCATIEMANAGER';
--- 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
@@ -1040,490 +1121,11 @@ END;
------------------------------------------------------------
----- 1. Personenkaart vinlkboxen Cluster/Label - OUD ---
---- EINDE - WP-KOPPELING IN BLOS --------------------------
------------------------------------------------------------
-- Hulpview: Alle locaties die bij een bepaald CLUSTER horen
CREATE OR REPLACE VIEW blos_v_cluster_locaties
(
ALG_LOCATIE_KEY,
ALG_LOCATIE_CODE,
ALG_LOCATIE_OMSCHRIJVING,
CLUSTER_DISTRICT_CODE, -- Districtsniveau
CLUSTER_LABEL_CODE, -- Locatieniveau - Het (oorspronkelijke) label
TYPE_LOCATIE,
RUIMTE_KEY,
VERVALDATUM
)
AS
SELECT l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
UPPER(d.alg_district_omschrijving),
(SELECT ud.fac_usrdata_upper
FROM alg_onrgoedkenmerk km, fac_usrdata ud
WHERE km.alg_onrgoed_key = l.alg_locatie_key
AND km.alg_onrgoed_niveau = 'L'
AND km.alg_kenmerk_key = 1000 -- Cluster Label (oorspronkelijk)
AND km.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (km.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = 1)
AS cluster_label_code,
(SELECT ud.fac_usrdata_upper
FROM alg_onrgoedkenmerk km, fac_usrdata ud
WHERE km.alg_onrgoed_key = l.alg_locatie_key
AND km.alg_onrgoed_niveau = 'L'
AND km.alg_kenmerk_key = 1002 -- type_opvang/locatie
AND km.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (km.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = 2)
AS type_locatie,
(SELECT min(alg_ruimte_key)
FROM alg_v_allonrgoed_gegevens v
WHERE v.alg_locatie_key = l.alg_locatie_key and v.alg_type ='R')
AS ruimte_key,
l.alg_locatie_vervaldatum
vervaldatum
FROM alg_locatie l, alg_district d
WHERE l.alg_locatie_verwijder IS NULL AND l.alg_district_key = d.alg_district_key
AND COALESCE(trunc(l.alg_locatie_vervaldatum),trunc(sysdate)+1) > trunc(sysdate) ;
-- Hulpview Personen - Alle locatiemanagers/personen met werkplekkoppelingen
-- NIEUWE opzet van de werkplekkoppeling - Aansturing via PERSONENKAART (zie ticket BLOS#68339).
--- Toelichting:
---- Je hebt LABELS op Locatieniveau + Op Districts-niveau
---- Niveau 1 = Kenmerk PRS => Te koppelen met NAAM label uit Eigen Tabel
---- Niveau 2 = Kenmerk PRS => Te koppelen met CODE/NAAM uit Districtstabel
CREATE OR REPLACE VIEW blos_v_cluster_personen_1
(
NIVEAU,
PRS_PERSLID_KEY,
PRS_PERSLID_VOLLEDIGENAAM,
PRS_KENMERK_UPPER,
CLUSTER_WP
)
AS
SELECT '1 - locatie',
p.prs_perslid_key,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam,
k.prs_kenmerk_upper,
v.cluster_label_code -- uit eigen tabel
cluster_wp
FROM prs_perslid p,
prs_kenmerklink kl,
prs_kenmerk k,
(SELECT UPPER (ud.fac_usrdata_omschr) cluster_label, ud.fac_usrdata_code cluster_label_code,
ud.fac_usrdata_vervaldatum
FROM fac_usrtab ut, fac_usrdata ud
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 1
AND fac_usrdata_verwijder IS NULL) v
WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_verwijder IS NULL
AND p.prs_perslid_verwijder IS NULL
AND k.prs_kenmerk_upper = v.cluster_label -- Koppeling op Clusternaam
AND NOT EXISTS (SELECT 1 FROM blos_v_cluster_locaties WHERE k.prs_kenmerk_upper = cluster_district_code GROUP BY cluster_district_code)
UNION
SELECT '2 - district',
p.prs_perslid_key,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam,
k.prs_kenmerk_upper,
v.cluster_district_code
cluster_wp
FROM prs_perslid p,
prs_kenmerklink kl,
prs_kenmerk k,
(SELECT cluster_district_code, COUNT (*)
FROM blos_v_cluster_locaties
GROUP BY cluster_district_code) v
WHERE p.prs_perslid_key = kl.prs_link_key AND kl.prs_kenmerklink_niveau = 'P'
AND kl.prs_kenmerklink_verwijder IS NULL
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND k.prs_kenmerk_verwijder IS NULL
AND p.prs_perslid_verwijder IS NULL
AND k.prs_kenmerk_upper = v.cluster_district_code -- Koppeling op Districtnaam/code
;
CREATE OR REPLACE VIEW blos_v_cluster_personen_2
(
PRS_PERSLID_KEY,
ALG_LOCATIE_KEY
)
AS
SELECT p.prs_perslid_key, l.alg_locatie_key
FROM blos_v_cluster_personen_1 p, blos_v_cluster_locaties l
WHERE p.niveau = '1 - locatie' AND p.cluster_wp = l.cluster_label_code
UNION
SELECT p.prs_perslid_key, l.alg_locatie_key
FROM blos_v_cluster_personen_1 p, blos_v_cluster_locaties l
WHERE p.niveau = '2 - district'
AND p.cluster_wp = l.cluster_district_code ;
-- BRONVIEW: Alle locaties met haar kostenplaats(en)
CREATE OR REPLACE VIEW blos_v_locaties_kp
(
alg_locatie_key,
alg_locatie_omschrijving,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_eind,
prs_kostenplaats_verwijder
)
AS
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1140 -- kostenplaats-1
UNION
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1141 -- kostenplaats-2
UNION
SELECT 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_onrgoedkenmerk kw, prs_kostenplaats kp
WHERE kw.alg_onrgoed_key = l.alg_locatie_key
AND fac.safe_to_number (kw.alg_onrgoedkenmerk_waarde) =
kp.prs_kostenplaats_key
AND alg_onrgoed_niveau = 'L'
AND kw.alg_kenmerk_key = 1142 -- kostenplaats-3
;
-- BRONVIEW: Alle werkplek-koppeling per locatiemanager en de kp's die daarbij vanuit locatiekaart bijhoren
CREATE OR REPLACE VIEW blos_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,
blos_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 prs_srtperslid_upper = 'LOCATIEMANAGER';
--- DE PROCEDURE om voor de Locatiemanagers van de CLUSTERS de juiste CLUSTER-LOCATIES te koppelen als werkplek
CREATE OR REPLACE VIEW blos_v_export_wpcluster
(
result,
result_order
)
AS
SELECT '"SYNC - Werkplekkoppeling en Mandaten"'
|| ';"Uitgevoerd"',
0
FROM DUAL ;
CREATE OR REPLACE PROCEDURE blos_select_wpcluster (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Werkplekkoppelingen toevoegen
CURSOR c_nieuw
IS
SELECT p.prs_perslid_key,
p.alg_locatie_key,
l.alg_locatie_code,
l.cluster_label_code,
l.cluster_district_code
FROM blos_v_cluster_personen_2 p, blos_v_cluster_locaties l
WHERE p.alg_locatie_key = l.alg_locatie_key
AND NOT EXISTS
(SELECT v.alg_locatie_key
FROM prs_perslidwerkplek wp,
prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key =
v.prs_perslidwerkplek_key
AND wp.prs_perslid_key = p.prs_perslid_key
AND v.alg_locatie_key = p.alg_locatie_key);
-- Werkplekkoppelingen verwijderen
CURSOR c_del
IS
SELECT b.prs_perslid_key,
b.alg_locatie_key,
b.prs_perslidwerkplek_key,
COALESCE (l.alg_locatie_code,
'Vervallen locactie ' || loc.alg_locatie_code)
alg_locatie_code,
l.cluster_label_code,
l.cluster_district_code
FROM (SELECT wp.prs_perslid_key,
v.alg_locatie_key,
wp.prs_perslidwerkplek_key,
v.prs_werkplek_key,
v.prs_werkplek_volgnr,
v.alg_ruimte_key
FROM prs_perslidwerkplek wp, prs_v_werkplekafdeling_geg v
WHERE wp.prs_perslidwerkplek_key = v.prs_perslidwerkplek_key)
b,
blos_v_cluster_locaties l,
alg_locatie loc
WHERE b.alg_locatie_key = l.alg_locatie_key(+)
AND b.alg_locatie_key = loc.alg_locatie_key
AND NOT EXISTS
(SELECT l.alg_locatie_key
FROM blos_v_cluster_personen_2 l
WHERE l.prs_perslid_key = b.prs_perslid_key
AND l.alg_locatie_key = b.alg_locatie_key);
-- Mandaten toevoegen
CURSOR m_nieuw
IS
SELECT v.prs_perslid_key,
v.prs_perslid_naam,
v.alg_locatie_omschrijving,
v.prs_kostenplaats_key,
kp.prs_kostenplaats_nr
FROM blos_v_locaties_wp_kp v, prs_kostenplaats kp
WHERE v.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND v.prs_kostenplaats_key NOT IN
(SELECT prs_kostenplaats_key
FROM prs_perslidkostenplaats pkp
WHERE pkp.prs_perslid_key = v.prs_perslid_key)
ORDER BY 1,
2,
3,
4;
-- Mandaten verwijderen
CURSOR m_del
IS
SELECT pkp.prs_perslidkostenplaats_key,
pkp.prs_perslid_key,
p.prs_perslid_naam,
pkp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr
FROM prs_perslidkostenplaats pkp,
prs_kostenplaats kp,
prs_perslid p
WHERE pkp.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND p.prs_perslid_key = pkp.prs_perslid_key
AND pkp.prs_kostenplaats_key NOT IN
(SELECT v.prs_kostenplaats_key
FROM blos_v_locaties_wp_kp v
WHERE v.prs_kostenplaats_key IS NOT NULL
AND v.prs_perslid_key = pkp.prs_perslid_key)
ORDER BY 1, 2, 3;
v_ruimte_key NUMBER;
v_prs_werkplek_volgnr NUMBER;
v_prs_werkplek_key NUMBER;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_mes VARCHAR2 (200);
oracle_err_num NUMBER;
currentversion fac_module.fac_module_version%TYPE;
v_aanduiding VARCHAR2 (1000);
v_count NUMBER;
BEGIN
v_count := 0;
FOR rec IN c_nieuw
LOOP
v_aanduiding :=
'Werkplekkoppeling: '
|| rec.alg_locatie_code
|| ' ('
|| rec.cluster_label_code
|| ' - '
|| rec.cluster_district_code
|| ')';
v_errormsg := 'Fout bij aanmaken werkplekkoppeling';
-- Ruimte_key ophalen van desbetreffende locatie_keten
SELECT MIN (alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_allonrgoed_gegevens v
WHERE v.alg_locatie_key = rec.alg_locatie_key AND v.alg_type = 'R';
IF v_ruimte_key IS NULL
THEN
fac.writelog (p_applname,
'W',
v_errormsg || ' Locatie wordt overgeslagen:',
v_aanduiding);
END IF;
v_errorhint :=
'INSERT clusterkoppeling bij persoon: '
|| rec.alg_locatie_code
|| ' / '
|| rec.prs_perslid_key;
IF v_ruimte_key IS NOT NULL
THEN
-- Volgnr werkplek
SELECT COALESCE (MIN (prs_werkplek_volgnr + 1), 1)
INTO v_prs_werkplek_volgnr
FROM prs_werkplek pw
WHERE prs_alg_ruimte_key = v_ruimte_key
AND NOT EXISTS
(SELECT *
FROM prs_werkplek pw2
WHERE prs_alg_ruimte_key = v_ruimte_key
AND pw2.prs_werkplek_volgnr =
pw.prs_werkplek_volgnr + 1);
INSERT INTO prs_werkplek w (prs_werkplek_volgnr,
prs_werkplek_omschrijving,
prs_alg_ruimte_key,
prs_werkplek_virtueel)
SELECT v_prs_werkplek_volgnr,
alg_ruimte_nr || '/1',
v_ruimte_key,
1
FROM alg_ruimte
WHERE alg_ruimte_key = v_ruimte_key;
SELECT prs_werkplek_key
INTO v_prs_werkplek_key
FROM prs_werkplek
WHERE prs_alg_ruimte_key = v_ruimte_key
AND prs_werkplek_volgnr = v_prs_werkplek_volgnr;
INSERT INTO prs_perslidwerkplek (prs_perslidwerkplek_bezetting,
prs_perslidwerkplek_volgnr,
prs_werkplek_key,
prs_perslid_key) -- prs_perslidwerkplek_key)
VALUES (100,
NULL,
v_prs_werkplek_key,
rec.prs_perslid_key);
fac.trackaction ('PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END IF;
END LOOP;
FOR rec IN c_del
LOOP
v_aanduiding :=
'Werkplekkoppeling verwijderen - betreft: '
|| rec.alg_locatie_code
|| ' ('
|| rec.cluster_label_code
|| ' - '
|| rec.cluster_district_code
|| ')';
v_errorhint := 'werkplekkoppeling verwijderen';
DELETE FROM prs_werkplek
WHERE prs_werkplek_key IN
(SELECT prs_werkplek_key
FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_key =
rec.prs_perslidwerkplek_key);
DELETE FROM prs_perslidwerkplek
WHERE prs_perslidwerkplek_key = rec.prs_perslidwerkplek_key;
fac.trackaction ('PRSUPD',
rec.prs_perslid_key,
3,
SYSDATE,
v_aanduiding);
END LOOP;
FOR rec IN m_nieuw
LOOP
BEGIN
v_aanduiding :=
'Mandaat: '
|| rec.prs_perslid_naam
|| ' op kostenplaats '
|| rec.prs_kostenplaats_nr;
v_errormsg := 'Fout bij aanmaken mandaat';
INSERT INTO prs_perslidkostenplaats (
prs_perslidkostenplaats_boeken,
prs_perslidkostenplaats_inzage,
prs_perslid_key,
prs_kostenplaats_key)
VALUES (1,
1,
rec.prs_perslid_key,
rec.prs_kostenplaats_key);
END;
END LOOP;
FOR rec IN m_del
LOOP
BEGIN
v_aanduiding :=
'Mandaat '
|| rec.prs_kostenplaats_nr
|| ' verwijdern voor persoon '
|| rec.prs_perslid_naam;
v_errormsg := 'Fout bij verwijderen mandaat';
DELETE FROM prs_perslidkostenplaats
WHERE prs_perslidkostenplaats_key =
rec.prs_perslidkostenplaats_key;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes;
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint);
END;
/
-- AFAS - KOPPELING
---- TEST 2022 - Met Anneke Knipscheer
CREATE OR REPLACE PROCEDURE blos_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
@@ -1959,6 +1561,53 @@ EXCEPTION
END blos_update_perslid;
/
-- Hulpview: Alle locaties die bij een bepaald CLUSTER horen
CREATE OR REPLACE VIEW blos_v_cluster_locaties
(
ALG_LOCATIE_KEY,
ALG_LOCATIE_CODE,
ALG_LOCATIE_OMSCHRIJVING,
CLUSTER_DISTRICT_CODE, -- Districtsniveau
CLUSTER_LABEL_CODE, -- Locatieniveau - Het (oorspronkelijke) label
TYPE_LOCATIE,
RUIMTE_KEY,
VERVALDATUM
)
AS
SELECT l.alg_locatie_key,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
UPPER(d.alg_district_omschrijving),
(SELECT ud.fac_usrdata_upper
FROM alg_onrgoedkenmerk km, fac_usrdata ud
WHERE km.alg_onrgoed_key = l.alg_locatie_key
AND km.alg_onrgoed_niveau = 'L'
AND km.alg_kenmerk_key = 1000 -- Cluster Label (oorspronkelijk)
AND km.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (km.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = 1)
AS cluster_label_code,
(SELECT ud.fac_usrdata_upper
FROM alg_onrgoedkenmerk km, fac_usrdata ud
WHERE km.alg_onrgoed_key = l.alg_locatie_key
AND km.alg_onrgoed_niveau = 'L'
AND km.alg_kenmerk_key = 1002 -- type_opvang/locatie
AND km.alg_onrgoedkenmerk_verwijder IS NULL
AND fac.safe_to_number (km.alg_onrgoedkenmerk_waarde) =
ud.fac_usrdata_key
AND ud.fac_usrtab_key = 2)
AS type_locatie,
(SELECT min(alg_ruimte_key)
FROM alg_v_allonrgoed_gegevens v
WHERE v.alg_locatie_key = l.alg_locatie_key and v.alg_type ='R')
AS ruimte_key,
l.alg_locatie_vervaldatum
vervaldatum
FROM alg_locatie l, alg_district d
WHERE l.alg_locatie_verwijder IS NULL AND l.alg_district_key = d.alg_district_key
AND COALESCE(trunc(l.alg_locatie_vervaldatum),trunc(sysdate)+1) > trunc(sysdate) ;
-- Ivm clusterkoppeling is het belangrijk dat locaties goed zijn vastgelegd.
-- Omdat in de praktijk dit paar keer niet goed is gegaan een noti-job om applicatiebeheer hierop netjes te attenderen
CREATE OR REPLACE VIEW blos_v_noti_locatiebeheer
@@ -2096,13 +1745,13 @@ CREATE OR REPLACE VIEW BLOS_V_ALG_ONROERENDGOED_BASIS
CLUSTERLABEL_OORSPRONKELIJK,
TYPE_OPVANG,
BIJZONDERHEDEN,
KOSTENPLAATS,
KOSTENPLAATS_1,
KOSTENPLAATS_2,
KOSTENPLAATS_3,
LOCATIEMANAGER,
LOCATIEMANAGER_VERVANGER,
LOCATIE_VERVALDATUM,
LOCATIE_VERWIJDERDATUM,
LOCATIE_OUD
)
AS
@@ -2118,14 +1767,14 @@ AS
km.cluster_label_oorspr,
km.type_opvang,
km.bijzonderheden,
km.kostenplaats,
km.kostenplaats_1,
km.kostenplaats_2,
km.kostenplaats_3,
km.locatiemanager,
km.vervanger,
l.alg_locatie_vervaldatum,
CASE WHEN l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
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))
THEN 'actueel'
ELSE 'oud'
END
@@ -2138,7 +1787,6 @@ AS
flx.getdomeinwaarde(1, flx.getflex('ALG',1000, l.alg_locatie_key,'L')) cluster_label_oorspr,
flx.getdomeinwaarde(2, flx.getflex('ALG',1002, l.alg_locatie_key,'L')) type_opvang,
flx.getflex('ALG',1020, l.alg_locatie_key,'L') bijzonderheden,
flx.getflex('ALG',1001, l.alg_locatie_key,'L') kostenplaats,
flx.getdomeinwaarde(161,flx.getflex('ALG',1140, l.alg_locatie_key,'L')) kostenplaats_1,
flx.getdomeinwaarde(161,flx.getflex('ALG',1141, l.alg_locatie_key,'L')) kostenplaats_2,
flx.getdomeinwaarde(161,flx.getflex('ALG',1142, l.alg_locatie_key,'L')) kostenplaats_3,
@@ -2635,14 +2283,13 @@ AS
BEGIN
-- job om de werkplekkoppelingen te realiseren en onderhouden voor de locatiemanagers
NULL;
-- IN 2023-SEPT MOET DEZE UIT
blos_select_wpcluster ('WP_CLUSTER', SYSDATE);
-- blos_select_wpcluster ('WP_CLUSTER', SYSDATE);
-- IN 2023-SEPT MOETEN DEZE AAN
-- blos_select_wp_loc_manager ('WP_LOC_MANAGER', SYSDATE);
-- blos_select_wp_reg_manager ('WP_REG_MANAGER', SYSDATE);
END;
/