BLOS#79136 -- Systematiek Locatieleiders en Werkplekkoppelingen - HERZIEN

svn path=/Customer/trunk/; revision=62220
This commit is contained in:
Jos Migo
2023-10-17 09:01:04 +00:00
parent 6d8009e010
commit 91d4fea5d7

View File

@@ -262,7 +262,41 @@ END;
-- Inpassen systematiek om werkplekkoppelingen te genereren op basis locatiekaart => Gelijk aan oplossing GOKO
---- Bij GOKO zit deze in de IMPORT PERSLID... , bij BLOS apart houden omdat pas later een AFAS-intergratie komt, eerst apart houden WPMANAGER...
-- Lijst van Kostenplaatsen (die men in locatiekaart kan selecteren)
CREATE OR REPLACE VIEW blos_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 blos_v_personenlijst_loc
(
@@ -532,7 +566,12 @@ AS
SELECT '"SYNC - Werkplekkoppeling Locatiemanager (incl. zijn/haar Mandaten)"'
|| ';"Uitgevoerd"',
0
FROM DUAL ;
FROM DUAL
UNION
SELECT 'ERROR: Datum '|| TO_CHAR(imp_log_datum) || ' - ' || imp_log_omschrijving || ' - ' || imp_log_hint,
1
FROM imp_log
WHERE imp_log_applicatie = 'WP_LOC_MANAGER' ;
CREATE OR REPLACE PROCEDURE blos_select_wp_loc_manager (
p_applname IN VARCHAR2,
@@ -596,24 +635,22 @@ AS
CURSOR c_loc_kp_del -- Voor deleten van mandaten die niet meer van toepassing zijn
IS
SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key
SELECT pk.prs_perslid_key, pk.prs_perslidkostenplaats_key
FROM prs_perslidkostenplaats pk
WHERE NOT EXISTS
WHERE
NOT EXISTS
( SELECT v_prs.prs_perslid_key,
v_kp.prs_kostenplaats_key
FROM blos_v_locatiemanagers v_prs,
blos_v_locaties_kp v_kp
WHERE v_prs.alg_locatie_key =
v_kp.alg_locatie_key
blos_v_locaties_kp v_kp
WHERE v_prs.alg_locatie_key = v_kp.alg_locatie_key
AND v_prs.prs_perslid_key = pk.prs_perslid_key
AND v_kp.prs_kostenplaats_key =
pk.prs_kostenplaats_key
AND v_kp.prs_kostenplaats_key = pk.prs_kostenplaats_key
GROUP BY v_prs.prs_perslid_key,
v_kp.prs_kostenplaats_key)
AND pk.prs_perslid_key IN ( SELECT prs_perslid_key
FROM blos_v_locatiemanagers
GROUP BY prs_perslid_key)
ORDER BY 1, 2;
AND pk.prs_perslid_key IN (SELECT d.prs_perslid_key FROM blos_v_personenlijst_loc d)
ORDER BY 1, 2 ;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
@@ -626,6 +663,8 @@ AS
v_alg_ruimte_key NUMBER;
v_prs_perslidkostenplaats_key NUMBER (10);
v_teller_mandaat NUMBER (10);
BEGIN
v_count := 0;
@@ -704,33 +743,32 @@ BEGIN
-- Alle mandaten goed inregelen
SELECT prs_perslidkostenplaats_key
INTO v_prs_perslidkostenplaats_key
SELECT COUNT(*)
INTO v_teller_mandaat
FROM prs_perslidkostenplaats
WHERE prs_perslid_key = rec.prs_perslid_key
AND prs_kostenplaats_key = rec.prs_kostenplaats_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_prs_perslidkostenplaats_key := NULL;
IF v_prs_perslidkostenplaats_key IS NULL
AND prs_kostenplaats_key = rec.prs_kostenplaats_key ;
IF v_teller_mandaat = 0
THEN
v_errorhint :=
'bijwerken kostenplaats-mandaat - kostenplaat_key'
v_errorhint :=
'bijwerken kostenplaats-mandaat - kostenplaat_key'
|| TO_CHAR (rec.prs_kostenplaats_key);
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);
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 IF;
END;
END LOOP;
@@ -758,7 +796,7 @@ EXCEPTION
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint);
v_aanduiding || ' - HINT: ' || v_errorhint);
END;
/
@@ -838,10 +876,17 @@ CREATE OR REPLACE VIEW blos_v_export_wp_loc_regioman
result_order
)
AS
SELECT '"SYNC - Werkplekkoppeling Locatiemanager (incl. zijn/haar Mandaten)"'
SELECT '"SYNC - Werkplekkoppeling Regiomanager/Directeuren (incl. zijn/haar Mandaten)"'
|| ';"Uitgevoerd"',
0
FROM DUAL ;
FROM DUAL
UNION
SELECT 'ERROR: Datum '|| TO_CHAR(imp_log_datum) || ' - ' || imp_log_omschrijving || ' - ' || imp_log_hint,
1
FROM imp_log
WHERE imp_log_applicatie = 'WP_LOC_REGIOMAN' ;
;
CREATE OR REPLACE PROCEDURE blos_select_wp_loc_regioman (
p_applname IN VARCHAR2,
@@ -858,10 +903,10 @@ AS
man.alg_locatie_key,
NULL prs_werkplek_key,
'toevoegen' actie
FROM blos_v_regiomanagers man -- WAS: blos_v_locatiemanagers man WORDT: blos_v_regiomanagers man
FROM blos_v_regiomanagers man
WHERE NOT EXISTS
(SELECT *
FROM blos_v_regiomanagers_wp wp -- WAS: blos_v_locatiemanagers_wp wp WORDT: blos_v_regiomanagers_wp wp
FROM blos_v_regiomanagers_wp wp
WHERE wp.alg_locatie_key =
man.alg_locatie_key
AND wp.prs_perslid_key =
@@ -944,7 +989,9 @@ AS
v_alg_ruimte_key NUMBER;
v_prs_perslidkostenplaats_key NUMBER (10);
v_teller_mandaat NUMBER(10);
v_prs_perslid_key NUMBER (10);
v_kostenplaats_actueel NUMBER(1);
BEGIN
v_count := 0;
@@ -1026,17 +1073,38 @@ BEGIN
IF rec.functie = 'regiomanager'
THEN
v_errorhint :=
'check budgethouder op deze kostenplaats - kostenplaats_key '
|| TO_CHAR (rec.prs_kostenplaats_key);
-- check eers of er nu afwijkende budgethouder op KP zit. Zo ja updaten
SELECT prs_perslid_key
-- check eers of er nu afwijkende budgethouder op KP zit.
SELECT MAX(prs_perslid_key)
INTO v_prs_perslid_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key
AND prs_kostenplaats_verwijder IS NULL
AND (prs_kostenplaats_eind IS NULL OR prs_kostenplaats_eind > TRUNC(SYSDATE) )
AND prs_kostenplaats_module = 'PRS' ;
AND (prs_kostenplaats_eind IS NULL OR prs_kostenplaats_eind > TRUNC(SYSDATE) ) ;
v_errorhint :=
'check kostenplaats actueel? - kostenplaats_key '
|| TO_CHAR (rec.prs_kostenplaats_key);
-- check of het een actuele kostenplaats is...
SELECT CASE WHEN (
prs_kostenplaats_verwijder IS NOT NULL
OR
( prs_kostenplaats_eind IS NOT NULL AND prs_kostenplaats_eind < TRUNC (SYSDATE))
)
THEN 0
ELSE 1 END
kp_actueel
INTO v_kostenplaats_actueel
FROM prs_kostenplaats
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key ;
IF v_prs_perslid_key IS NULL OR v_prs_perslid_key <> rec.prs_perslid_key
-- updaten budgethouder als:
IF (v_prs_perslid_key IS NULL OR v_prs_perslid_key <> rec.prs_perslid_key) AND v_kostenplaats_actueel = 1
THEN
v_errorhint :=
@@ -1060,34 +1128,33 @@ BEGIN
-- Alle mandaten goed inregelen
SELECT prs_perslidkostenplaats_key
INTO v_prs_perslidkostenplaats_key
SELECT COUNT(*)
INTO v_teller_mandaat
FROM prs_perslidkostenplaats
WHERE prs_perslid_key = rec.prs_perslid_key
AND prs_kostenplaats_key = rec.prs_kostenplaats_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_prs_perslidkostenplaats_key := NULL;
AND prs_kostenplaats_key = rec.prs_kostenplaats_key ;
IF v_prs_perslidkostenplaats_key IS NULL
IF v_teller_mandaat = 0
THEN
v_errorhint :=
'bijwerken kostenplaats-mandaat - kostenplaat_key '
v_errorhint :=
'bijwerken kostenplaats-mandaat - kostenplaat_key'
|| TO_CHAR (rec.prs_kostenplaats_key);
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);
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 IF;
END;
END LOOP;
FOR rec IN c_loc_kp_del
@@ -1115,7 +1182,7 @@ EXCEPTION
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint);
v_aanduiding || ' - HINT: ' || v_errorhint);
END;
/
@@ -1787,9 +1854,9 @@ 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.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,
flx.getdomeinwaarde(221,flx.getflex('ALG',1140, l.alg_locatie_key,'L')) kostenplaats_1,
flx.getdomeinwaarde(221,flx.getflex('ALG',1141, l.alg_locatie_key,'L')) kostenplaats_2,
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