AREO#83181 Uitbreiding AREO omgeving - werkplek en ruimte reservering

svn path=/Customer/trunk/; revision=65606
This commit is contained in:
Sander Schepers
2024-07-17 11:19:49 +00:00
parent 43cad1a907
commit 23120a24b8

View File

@@ -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 ------