MNNL#78061 PRS-import/Uitbreiden met P-kolom
svn path=/Customer/trunk/; revision=64490
This commit is contained in:
184
MNNL/mnnl.sql
184
MNNL/mnnl.sql
@@ -374,7 +374,7 @@ BEGIN
|
|||||||
(SELECT 1
|
(SELECT 1
|
||||||
FROM fac_gebruikersgroep
|
FROM fac_gebruikersgroep
|
||||||
WHERE fac_groep_key = 2101 -- _Default_VB
|
WHERE fac_groep_key = 2101 -- _Default_VB
|
||||||
AND prs_perslid_key = p.prs_perslid_key);
|
AND prs_perslid_key = p.prs_perslid_key);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
-- Afnemen 2341=_Default_IV van medewerkers niet onder IV (op niveau 1)!
|
-- Afnemen 2341=_Default_IV van medewerkers niet onder IV (op niveau 1)!
|
||||||
@@ -403,7 +403,7 @@ BEGIN
|
|||||||
(SELECT 1
|
(SELECT 1
|
||||||
FROM fac_gebruikersgroep
|
FROM fac_gebruikersgroep
|
||||||
WHERE fac_groep_key = 2341 -- _Default_IV
|
WHERE fac_groep_key = 2341 -- _Default_IV
|
||||||
AND prs_perslid_key = p.prs_perslid_key);
|
AND prs_perslid_key = p.prs_perslid_key);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
-- Afnemen 2342=_Default_PV van medewerkers niet onder PV (op niveau 1)!
|
-- Afnemen 2342=_Default_PV van medewerkers niet onder PV (op niveau 1)!
|
||||||
@@ -432,7 +432,7 @@ BEGIN
|
|||||||
(SELECT 1
|
(SELECT 1
|
||||||
FROM fac_gebruikersgroep
|
FROM fac_gebruikersgroep
|
||||||
WHERE fac_groep_key = 2342 -- _Default_PV
|
WHERE fac_groep_key = 2342 -- _Default_PV
|
||||||
AND prs_perslid_key = p.prs_perslid_key);
|
AND prs_perslid_key = p.prs_perslid_key);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
-- Afnemen 2343=_Default_FRS & EC van medewerkers niet onder FRS of EC (op niveau 1)!
|
-- Afnemen 2343=_Default_FRS & EC van medewerkers niet onder FRS of EC (op niveau 1)!
|
||||||
@@ -461,7 +461,7 @@ BEGIN
|
|||||||
(SELECT 1
|
(SELECT 1
|
||||||
FROM fac_gebruikersgroep
|
FROM fac_gebruikersgroep
|
||||||
WHERE fac_groep_key = 2343 -- _Default_FRS & EC
|
WHERE fac_groep_key = 2343 -- _Default_FRS & EC
|
||||||
AND prs_perslid_key = p.prs_perslid_key);
|
AND prs_perslid_key = p.prs_perslid_key);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
|
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
|
||||||
@@ -486,6 +486,182 @@ BEGIN
|
|||||||
END mnnl_update_prs;
|
END mnnl_update_prs;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE MNNL_IMPORT_WW (p_import_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
c_delim VARCHAR2 (1) := ';'; -- Field seperator
|
||||||
|
v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Import line
|
||||||
|
v_errormsg VARCHAR2 (1000) := '';
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
v_aanduiding VARCHAR2 (1000) := '';
|
||||||
|
header_is_valid NUMBER := 0;
|
||||||
|
v_count_tot NUMBER (10) := 0;
|
||||||
|
v_count_imp NUMBER (10) := 0;
|
||||||
|
-- De importvelden
|
||||||
|
v_perslid_nr VARCHAR2 (255);
|
||||||
|
v_afstand_ww VARCHAR2 (255);
|
||||||
|
|
||||||
|
CURSOR c1
|
||||||
|
IS
|
||||||
|
SELECT fac_imp_file_line, LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte
|
||||||
|
FROM fac_imp_file
|
||||||
|
WHERE fac_import_key = p_import_key
|
||||||
|
ORDER BY fac_imp_file_index;
|
||||||
|
BEGIN
|
||||||
|
DELETE FROM mnnl_imp_ww;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
FOR rec1 IN c1
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
v_newline := rec1.fac_imp_file_line;
|
||||||
|
v_errormsg := 'Fout opvragen importregel';
|
||||||
|
v_aanduiding := '';
|
||||||
|
-- Lees alle veldwaarden
|
||||||
|
--Personeelsnummer;Afstand woon werk
|
||||||
|
fac.imp_getfield (v_newline, c_delim, v_perslid_nr);
|
||||||
|
fac.imp_getfield (v_newline, c_delim, v_afstand_ww);
|
||||||
|
v_aanduiding := '[' || v_perslid_nr || '|' || v_afstand_ww || '] ';
|
||||||
|
|
||||||
|
-- Ik controleer of ik een geldige header heb, dat is: in de juiste
|
||||||
|
-- kolommen de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||||||
|
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||||
|
IF (header_is_valid = 0)
|
||||||
|
THEN
|
||||||
|
IF UPPER (v_perslid_nr) = 'PERSONEELSNUMMER'
|
||||||
|
AND UPPER (v_afstand_ww) = 'AFSTAND WOON WERK'
|
||||||
|
THEN
|
||||||
|
header_is_valid := 1;
|
||||||
|
END IF;
|
||||||
|
ELSIF (rec1.regellengte > 0) -- Lege regels overslaan
|
||||||
|
THEN
|
||||||
|
BEGIN
|
||||||
|
v_count_tot := v_count_tot + 1;
|
||||||
|
|
||||||
|
-- Direct wegschrijven; controleer alle veldwaarden maar niet.
|
||||||
|
v_errormsg := 'Fout wegschrijven importregel';
|
||||||
|
INSERT INTO mnnl_imp_ww (perslid_nr, afstand_ww)
|
||||||
|
VALUES (TRIM (v_perslid_nr), fac.safe_to_number (REPLACE (v_afstand_ww, ',', '.')));
|
||||||
|
|
||||||
|
v_count_imp := v_count_imp + 1;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||||
|
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||||||
|
END;
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
IF (header_is_valid = 0)
|
||||||
|
THEN
|
||||||
|
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens afspraak!');
|
||||||
|
ELSE
|
||||||
|
fac.imp_writelog (p_import_key, 'S', 'Woon-Werk/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||||||
|
fac.imp_writelog (p_import_key, 'S', 'Woon-Werk/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_imp), '');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||||
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces Woon-Werk afgebroken!');
|
||||||
|
END MNNL_IMPORT_WW;
|
||||||
|
/
|
||||||
|
|
||||||
|
CREATE OR REPLACE PROCEDURE MNNL_UPDATE_WW (p_import_key IN NUMBER)
|
||||||
|
AS
|
||||||
|
c_ww_kkey NUMBER (10) := 1000; -- 'Woon-Werk-afstand'-kenmerk!
|
||||||
|
c_pp_gkey NUMBER (10) := 2421; -- 'Parkeerplaats'-autorisatiegroep!
|
||||||
|
v_errormsg VARCHAR2 (1000) := '';
|
||||||
|
oracle_err_num NUMBER;
|
||||||
|
oracle_err_mes VARCHAR2 (200);
|
||||||
|
v_aanduiding VARCHAR2 (1000) := '';
|
||||||
|
v_count NUMBER (10);
|
||||||
|
|
||||||
|
-- Bijwerken persoonsgegevens met Woon-Werk-afstand.
|
||||||
|
CURSOR c_upd_ww
|
||||||
|
IS
|
||||||
|
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_nr || '] ' aanduiding,
|
||||||
|
p.prs_perslid_key,
|
||||||
|
p.prs_perslid_nr,
|
||||||
|
kl.prs_kenmerklink_key,
|
||||||
|
ROUND (x.afstand_ww, 2) afstand_ww
|
||||||
|
FROM mnnl_imp_ww x,
|
||||||
|
prs_v_aanwezigperslid p,
|
||||||
|
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
|
||||||
|
WHERE x.perslid_nr = p.prs_perslid_nr
|
||||||
|
AND p.prs_perslid_inactief IS NULL
|
||||||
|
AND p.prs_perslid_key = kl.prs_link_key(+)
|
||||||
|
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) != x.afstand_ww -- Afstand gewijzigd?
|
||||||
|
ORDER BY 2;
|
||||||
|
BEGIN
|
||||||
|
v_count := 0;
|
||||||
|
FOR rec IN c_upd_ww
|
||||||
|
LOOP
|
||||||
|
BEGIN
|
||||||
|
IF rec.prs_kenmerklink_key IS NULL
|
||||||
|
THEN
|
||||||
|
v_errormsg := 'Fout toevoegen woon-werk-afstand';
|
||||||
|
INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde)
|
||||||
|
VALUES (rec.prs_perslid_key, 'P', c_ww_kkey, TO_CHAR (rec.afstand_ww));
|
||||||
|
ELSE
|
||||||
|
v_errormsg := 'Fout bijwerken woon-werk-afstand';
|
||||||
|
UPDATE prs_kenmerklink
|
||||||
|
SET prs_kenmerklink_waarde = TO_CHAR (rec.afstand_ww)
|
||||||
|
WHERE prs_kenmerklink_key = rec.prs_kenmerklink_key;
|
||||||
|
END IF;
|
||||||
|
v_count := v_count + 1;
|
||||||
|
END;
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
fac.imp_writelog (p_import_key, 'S', 'Woon-Werk/#bijgewerkt: ' || TO_CHAR (v_count), '');
|
||||||
|
|
||||||
|
-- Afnemen PP-autorisatiegroep als geldt woon-werk-afstand <=8km!
|
||||||
|
v_errormsg := 'Fout afnemen PP-autorisatiegroep';
|
||||||
|
DELETE FROM fac_gebruikersgroep gg
|
||||||
|
WHERE gg.fac_groep_key = c_pp_gkey -- PP-autorisatiegroep
|
||||||
|
AND EXISTS
|
||||||
|
(SELECT 1
|
||||||
|
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab,
|
||||||
|
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
|
||||||
|
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
||||||
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||||
|
AND ab.prs_bedrijf_key = 5 -- MN
|
||||||
|
AND p.prs_perslid_key = kl.prs_link_key(+)
|
||||||
|
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) < 8
|
||||||
|
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||||||
|
|
||||||
|
-- Toekennen PP-autorisatiegroep als geldt woon-werk-afstand >8km!
|
||||||
|
v_errormsg := 'Fout toekennen PP-autorisatiegroep';
|
||||||
|
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||||||
|
SELECT c_pp_gkey, p.prs_perslid_key -- PP-autorisatiegroep
|
||||||
|
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab,
|
||||||
|
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
|
||||||
|
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
||||||
|
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||||
|
AND ab.prs_bedrijf_key = 5 -- MN
|
||||||
|
AND p.prs_perslid_key = kl.prs_link_key(+)
|
||||||
|
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) > 8
|
||||||
|
AND NOT EXISTS -- Niet al in PP-autorisatiegroep!
|
||||||
|
(SELECT 1
|
||||||
|
FROM fac_gebruikersgroep
|
||||||
|
WHERE fac_groep_key = c_pp_gkey -- PP-autorisatiegroep
|
||||||
|
AND prs_perslid_key = p.prs_perslid_key);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
oracle_err_num := SQLCODE;
|
||||||
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||||
|
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||||
|
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Importproces Woon-Werk afgebroken!');
|
||||||
|
END MNNL_UPDATE_WW;
|
||||||
|
/
|
||||||
|
|
||||||
-- KOPPELING SENTIDO
|
-- KOPPELING SENTIDO
|
||||||
CREATE OR REPLACE VIEW mnnl_v_api_sentido
|
CREATE OR REPLACE VIEW mnnl_v_api_sentido
|
||||||
AS
|
AS
|
||||||
|
|||||||
Reference in New Issue
Block a user