BLOS#79136 -- Systematiek Locatieleiders en Werkplekkoppelingen - HERZIEN
svn path=/Customer/trunk/; revision=62220
This commit is contained in:
199
BLOS/blos.sql
199
BLOS/blos.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user