AREO#83181 Uitbreiding AREO omgeving - werkplek en ruimte reservering
svn path=/Customer/trunk/; revision=65606
This commit is contained in:
256
AREO/areo.sql
256
AREO/areo.sql
@@ -186,113 +186,6 @@ CREATE OR REPLACE PACKAGE AREO
|
||||
AS
|
||||
|
||||
PROCEDURE inactivate_prs;
|
||||
|
||||
PROCEDURE update_prs_saml (p_perslid_key IN NUMBER);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE BODY AREO
|
||||
AS
|
||||
|
||||
PROCEDURE inactivate_prs
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER (10);
|
||||
v_perslid_naam VARCHAR (100);
|
||||
v_perslid_nr VARCHAR (30);
|
||||
|
||||
--- Als een persoon 15 maanden niet meer heeft ingelogd, dan verwijderen we deze
|
||||
CURSOR prs_del IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, p.prs_perslid_email, prs_perslid_login
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE p.prs_perslid_login <
|
||||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'mm')
|
||||
GROUP BY p.prs_perslid_key, p.prs_perslid_oslogin, p.prs_perslid_email, prs_perslid_login;
|
||||
|
||||
BEGIN
|
||||
-- Proberen de accounts te verwijderen
|
||||
FOR rec IN prs_del
|
||||
LOOP
|
||||
prs.delete_perslid(NULL, rec.prs_perslid_key);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
-- Neem gegevens over vanuit SAML
|
||||
PROCEDURE update_prs_saml (p_perslid_key IN NUMBER)
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
|
||||
CURSOR prs_update IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_srtperslid_key,
|
||||
p.prs_afdeling_key,
|
||||
a.prs_kenmerklink_waarde AS saml_a,
|
||||
f.prs_kenmerklink_waarde AS saml_f
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_afdeling a,
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink pkm1
|
||||
WHERE prs_kenmerk_key = 1000 --Abteilung
|
||||
AND pkm1.prs_kenmerklink_verwijder IS NULL) a,
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink pkm1
|
||||
WHERE prs_kenmerk_key = 1001 --Funktion
|
||||
AND pkm1.prs_kenmerklink_verwijder IS NULL) f
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND prs_perslid_key = p_perslid_key
|
||||
AND p.prs_perslid_key = a.prs_link_key(+)
|
||||
AND p.prs_perslid_key = f.prs_link_key(+);
|
||||
BEGIN
|
||||
v_errormsg :='Add Organisation in system table '||(p_perslid_key);
|
||||
|
||||
SELECT COUNT(*) INTO v_count
|
||||
FROM prs_perslidkostenplaats
|
||||
WHERE prs_perslid_key=p_perslid_key;
|
||||
IF v_COUNT=0 THEN
|
||||
INSERT INTO prs_perslidkostenplaats(prs_perslid_key,
|
||||
prs_perslidkostenplaats_boeken,
|
||||
prs_perslidkostenplaats_inzage,
|
||||
prs_perslidkostenplaats_aanmk)
|
||||
VALUES(p_perslid_key,
|
||||
1,
|
||||
0,
|
||||
SYSDATE);
|
||||
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 ('Mandatering medewerker',
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PACKAGE AREO
|
||||
AS
|
||||
|
||||
PROCEDURE inactivate_prs;
|
||||
|
||||
PROCEDURE update_prs (p_perslid_key IN NUMBER);
|
||||
|
||||
END;
|
||||
/
|
||||
@@ -309,7 +202,7 @@ AS
|
||||
v_perslid_naam VARCHAR (100);
|
||||
v_perslid_nr VARCHAR (30);
|
||||
|
||||
--- Als een persoon 15 maanden niet meer heeft ingelogd, dan verwijderen we deze
|
||||
--- Als een persoon 12 maanden niet meer heeft ingelogd, dan verwijderen we deze
|
||||
CURSOR prs_del IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_oslogin,
|
||||
@@ -317,7 +210,7 @@ AS
|
||||
prs_perslid_login
|
||||
FROM prs_v_aanwezigperslid p
|
||||
WHERE p.prs_perslid_login <
|
||||
TRUNC (ADD_MONTHS (SYSDATE, -15), 'mm')
|
||||
TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||||
GROUP BY p.prs_perslid_key,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_email,
|
||||
@@ -329,137 +222,26 @@ AS
|
||||
prs.delete_perslid (NULL, rec.prs_perslid_key);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
-- Neem gegevens over vanuit SAML
|
||||
PROCEDURE update_prs (p_perslid_key IN NUMBER)
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (200);
|
||||
v_count NUMBER;
|
||||
v_organisation NUMBER;
|
||||
v_function NUMBER;
|
||||
|
||||
CURSOR prs_update IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_srtperslid_key,
|
||||
p.prs_afdeling_key,
|
||||
a.prs_kenmerklink_waarde AS saml_a,
|
||||
f.prs_kenmerklink_waarde AS saml_f
|
||||
FROM prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_afdeling a,
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink pkm1
|
||||
WHERE prs_kenmerk_key = 1000 --Organisation/Abteilung
|
||||
AND pkm1.prs_kenmerklink_verwijder IS NULL) a,
|
||||
(SELECT *
|
||||
FROM prs_kenmerklink pkm1
|
||||
WHERE prs_kenmerk_key = 1001 --Function/Funktion
|
||||
AND pkm1.prs_kenmerklink_verwijder IS NULL) f
|
||||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND prs_perslid_key = p_perslid_key
|
||||
AND p.prs_perslid_key = a.prs_link_key(+)
|
||||
AND p.prs_perslid_key = f.prs_link_key(+);
|
||||
BEGIN
|
||||
FOR rec IN prs_update
|
||||
LOOP
|
||||
v_organisation := 1;
|
||||
v_function := 1;
|
||||
|
||||
v_errormsg :=
|
||||
'Add Organisation in system table for prs_key '
|
||||
|| (p_perslid_key)
|
||||
|| ' ('
|
||||
|| (rec.prs_perslid_email)
|
||||
|| ')';
|
||||
|
||||
SELECT prs_afdeling_key
|
||||
INTO v_organisation
|
||||
FROM prs_afdeling
|
||||
WHERE UPPER (prs_afdeling_omschrijving) = UPPER (rec.saml_a)
|
||||
AND prs_afdeling_verwijder IS NULL;
|
||||
|
||||
IF v_organisation = 1
|
||||
THEN
|
||||
INSERT INTO prs_afdeling (prs_bedrijf_key,
|
||||
prs_afdeling_parentkey,
|
||||
prs_afdeling_naam,
|
||||
prs_afdeling_omschrijving)
|
||||
VALUES (2,
|
||||
NULL,
|
||||
prs_s_prs_afdeling_key.nextval,
|
||||
rec.saml_a)
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_organisation;
|
||||
END IF;
|
||||
|
||||
v_errormsg :=
|
||||
'Change organisation for prs_key '
|
||||
|| (p_perslid_key)
|
||||
|| ' ('
|
||||
|| (rec.prs_perslid_email)
|
||||
|| ')';
|
||||
|
||||
UPDATE prs_perslid
|
||||
SET prs_afdeling_key = v_organisation
|
||||
WHERE prs_perslid_key = p_perslid_key;
|
||||
|
||||
v_errormsg :=
|
||||
'Add Function in system table for prs_key '
|
||||
|| (p_perslid_key)
|
||||
|| ' ('
|
||||
|| (rec.prs_perslid_email)
|
||||
|| ')';
|
||||
|
||||
SELECT prs_srtperslid_key
|
||||
INTO v_function
|
||||
FROM prs_srtperslid
|
||||
WHERE UPPER (prs_srtperslid_omschrijving) =
|
||||
UPPER (rec.saml_f)
|
||||
AND prs_srtperslid_verwijder IS NULL;
|
||||
|
||||
IF v_function = 1
|
||||
THEN
|
||||
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving,
|
||||
prs_srtperslid_aanmaak)
|
||||
VALUES (rec.saml_f, SYSDATE)
|
||||
RETURNING prs_srtperslid_key
|
||||
INTO v_function;
|
||||
END IF;
|
||||
|
||||
v_errormsg :=
|
||||
'Change function for prs_key '
|
||||
|| (p_perslid_key)
|
||||
|| ' ('
|
||||
|| (rec.prs_perslid_email)
|
||||
|| ')';
|
||||
|
||||
UPDATE prs_perslid
|
||||
SET prs_srtperslid_key = v_function
|
||||
WHERE prs_perslid_key = p_perslid_key;
|
||||
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 ('Update perslid SAML',
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE AREO_DAILY
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
areo.inactivate_prs;
|
||||
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.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
|
||||
END AREO_DAILY;
|
||||
/
|
||||
|
||||
|
||||
------ payload end ------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user