AAXX#87553 -- Personenkoppeling Kenter - Werkpleksynchronisatie
svn path=/Customer/trunk/; revision=69043
This commit is contained in:
251
AA/ALLR/allr.sql
251
AA/ALLR/allr.sql
@@ -240,7 +240,6 @@ BEGIN
|
||||
AND ROWNUM = 1);
|
||||
|
||||
-- Medewerkers van Kenter worden vanaf 6 november buiten de koppeling gehouden
|
||||
-- SCRIPT NIET EERDER LEVEREN!!!!!!!!!!!!!
|
||||
DELETE fac_imp_perslid WHERE LOWER(prs_perslid_email) LIKE '%kenter.nu';
|
||||
|
||||
DELETE fac_imp_perslid WHERE LOWER(prs_perslid_email) LIKE '%@alliander.onmicrosoft.com';
|
||||
@@ -621,6 +620,253 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
-- functie om de Kenter-medewerkers de werkplek-koppelingen te geven op de Kenter-gerelateerde gebouwen (zie AAXX#87553)
|
||||
CREATE OR REPLACE VIEW allr_v_export_kenter_wp
|
||||
(
|
||||
result,
|
||||
result_order
|
||||
)
|
||||
AS
|
||||
SELECT '"SYNC - Werkplekkoppelingen Kenter medewerkers"'
|
||||
|| ';"Uitgevoerd"',
|
||||
0
|
||||
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 = 'KENTER_WP' ;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE allr_select_kenter_wp (
|
||||
p_applname IN VARCHAR2,
|
||||
p_applrun IN VARCHAR2)
|
||||
AS
|
||||
|
||||
-- specifiek
|
||||
c_alg_bedrijf_key NUMBER (10) := 22421 ; -- bedrijf Kenter B.V.
|
||||
c_alg_kenmerk_key NUMBER (10) := 1500 ; -- Kenmerk_key Kenter-gerelateerd-gebouw
|
||||
c_prs_kenmerk_key NUMBER (10) := 1060 ; -- Kenmerk_key op personenkaart om de laatste sync-datum op weg te schrijven
|
||||
v_upsert_sync NUMBER (1) ;
|
||||
|
||||
-- Werkplekkoppelingen toevoegen of verwijder
|
||||
CURSOR c
|
||||
IS
|
||||
SELECT km.prs_perslid_key,
|
||||
km.prs_perslid_email,
|
||||
kw.alg_ruimte_key,
|
||||
kw.alg_gebouw_key,
|
||||
kw.alg_gebouw_naam,
|
||||
kw.alg_locatie_key,
|
||||
(SELECT w.prs_werkplek_key
|
||||
FROM prs_werkplek w, prs_perslidwerkplek wp
|
||||
WHERE wp.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND w.prs_alg_ruimte_key = kw.alg_ruimte_key
|
||||
AND wp.prs_perslid_key = km.prs_perslid_key)
|
||||
prs_werkplek_key,
|
||||
CASE
|
||||
WHEN kw.alg_ruimte_key IN
|
||||
(SELECT r.alg_ruimte_key
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_perslidwerkplek wp,
|
||||
prs_werkplek w,
|
||||
alg_ruimte r,
|
||||
alg_v_onrgoed_boom onr,
|
||||
alg_locatie l
|
||||
WHERE 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
|
||||
AND p.prs_perslid_key = km.prs_perslid_key
|
||||
)
|
||||
THEN
|
||||
'OK'
|
||||
ELSE
|
||||
'TOEVOEGEN WP'
|
||||
END actie
|
||||
FROM (SELECT p.prs_perslid_key, p.prs_perslid_email
|
||||
FROM prs_perslid p, prs_v_afdeling_boom ab
|
||||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = c_alg_bedrijf_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
) km, -- alle kentermedewerkers
|
||||
(SELECT k.alg_kenmerk_omschrijving,
|
||||
v.alg_gebouw_key,
|
||||
g.alg_gebouw_naam,
|
||||
v.alg_ruimte_key,
|
||||
g.alg_locatie_key
|
||||
FROM alg_gebouw g,
|
||||
alg_onrgoedkenmerk kw,
|
||||
alg_kenmerk k,
|
||||
( SELECT alg_gebouw_key, MIN (alg_ruimte_key) alg_ruimte_key
|
||||
FROM alg_v_allonrgoed_gegevens
|
||||
WHERE alg_ruimte_nr = '_WP'
|
||||
GROUP BY alg_gebouw_key) v
|
||||
WHERE g.alg_gebouw_key = kw.alg_onrgoed_key
|
||||
AND kw.alg_onrgoed_niveau = 'G'
|
||||
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_key = c_alg_kenmerk_key
|
||||
AND g.alg_gebouw_key = v.alg_gebouw_key) kw -- alle kenter werkplekken
|
||||
UNION
|
||||
SELECT km.prs_perslid_key,
|
||||
km.prs_perslid_email,
|
||||
wp.alg_ruimte_key,
|
||||
wp.alg_gebouw_key,
|
||||
wp.alg_gebouw_naam,
|
||||
wp.alg_locatie_key,
|
||||
wp.prs_werkplek_key,
|
||||
CASE
|
||||
WHEN wp.alg_ruimte_key IN
|
||||
(SELECT v.alg_ruimte_key
|
||||
FROM alg_gebouw g,
|
||||
alg_onrgoedkenmerk kw,
|
||||
alg_kenmerk k,
|
||||
( SELECT alg_gebouw_key,
|
||||
MIN (alg_ruimte_key) alg_ruimte_key
|
||||
FROM alg_v_allonrgoed_gegevens
|
||||
WHERE alg_ruimte_nr = '_WP'
|
||||
GROUP BY alg_gebouw_key) v
|
||||
WHERE g.alg_gebouw_key = kw.alg_onrgoed_key
|
||||
AND kw.alg_onrgoed_niveau = 'G'
|
||||
AND kw.alg_kenmerk_key = k.alg_kenmerk_key
|
||||
AND k.alg_kenmerk_key = c_alg_kenmerk_key
|
||||
AND g.alg_gebouw_key = v.alg_gebouw_key) -- kw -- alle kenter werkplekken
|
||||
THEN
|
||||
'OK'
|
||||
ELSE
|
||||
'VERWIJDEREN WP'
|
||||
END actie
|
||||
FROM (SELECT p.prs_perslid_key, p.prs_perslid_email
|
||||
FROM prs_perslid p, prs_v_afdeling_boom ab
|
||||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = c_alg_bedrijf_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
) km, -- alle kentermedewerkers
|
||||
( SELECT p.prs_perslid_key,
|
||||
l.alg_locatie_key,
|
||||
r.alg_ruimte_key,
|
||||
g.alg_gebouw_key,
|
||||
g.alg_gebouw_naam,
|
||||
w.prs_werkplek_key
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_perslidwerkplek wp,
|
||||
prs_werkplek w,
|
||||
alg_ruimte r,
|
||||
alg_v_onrgoed_boom onr,
|
||||
alg_locatie l,
|
||||
alg_gebouw g
|
||||
WHERE 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
|
||||
AND onr.alg_gebouw_key = g.alg_gebouw_key
|
||||
ORDER BY wp.prs_perslid_key) wp
|
||||
WHERE km.prs_perslid_key = wp.prs_perslid_key
|
||||
ORDER BY 1, 3, 4;
|
||||
|
||||
|
||||
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
|
||||
LOOP
|
||||
BEGIN
|
||||
-- Werkplekkoppelingen van de Kentergebouwen
|
||||
v_aanduiding :=
|
||||
'bijwerken werkplekkoppelingen kenter-medewerker - perslid_key:'
|
||||
|| TO_CHAR (rec.prs_perslid_key);
|
||||
|
||||
v_upsert_sync := 0 ;
|
||||
|
||||
IF rec.actie = 'TOEVOEGEN WP'
|
||||
THEN
|
||||
v_errorhint :=
|
||||
'actie toevoegen werkplek - gebouw_key: '
|
||||
|| TO_CHAR (rec.alg_gebouw_key);
|
||||
|
||||
-- PROCEDURE movetoruimte (p_prs_key IN NUMBER, p_ruimte_key IN NUMBER, p_alg_type IN VARCHAR2, p_virtual IN NUMBER DEFAULT 0);
|
||||
BEGIN
|
||||
PRS.movetoruimte (rec.prs_perslid_key,
|
||||
rec.alg_ruimte_key,
|
||||
'G',
|
||||
1);
|
||||
|
||||
v_upsert_sync := 1 ;
|
||||
END;
|
||||
|
||||
END IF;
|
||||
|
||||
IF rec.actie = 'VERWIJDEREN WP'
|
||||
THEN
|
||||
v_errorhint :=
|
||||
'actie verwijderen werkplek - gebouw_key: '
|
||||
|| TO_CHAR (rec.alg_gebouw_key);
|
||||
|
||||
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 (c_prs_kenmerk_key, rec.prs_perslid_key, TO_CHAR(sysdate, 'dd-mm-yyyy HH24:MI'));
|
||||
|
||||
END IF;
|
||||
|
||||
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_aanduiding || ' - ' || v_errormsg,
|
||||
v_errorhint);
|
||||
|
||||
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_aanduiding || ' - HINT: ' || v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
-------------------
|
||||
-- Rapportages --
|
||||
-------------------
|
||||
@@ -1340,6 +1586,9 @@ CREATE OR REPLACE PROCEDURE allr_select_daily_task (p_applname IN VARCHAR2,
|
||||
AS
|
||||
BEGIN
|
||||
aaxx_daily_task (p_applname, p_applrun);
|
||||
|
||||
-- kenter - toevoegen gebouw-werkplekken
|
||||
allr_select_kenter_wp ('KENTER_WP', SYSDATE) ;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user