LPNL#67364 -- Mensen uitsluiten van de import ivm usertelling.

svn path=/Customer/trunk/; revision=54098
This commit is contained in:
Arthur Egberink
2021-12-10 07:33:04 +00:00
parent b4a71d91ff
commit ebdac5360d

View File

@@ -29,6 +29,8 @@ AS
p_delimitor VARCHAR2)
RETURN VARCHAR2;
PROCEDURE mld_ord_after_insert(p_opdr_key NUMBER);
PROCEDURE anonimize;
END;
@@ -56,6 +58,50 @@ AS
RETURN v_result;
END;
PROCEDURE mld_ord_after_insert(p_opdr_key NUMBER)
AS
v_count NUMBER;
v_perslid_key NUMBER;
v_perslid_naam VARCHAR2(100);
BEGIN
-- ORDGOE srtnotificatie_key = 95
-- Tracking srtnotificatie_key = 177
-- Marcel de Boon 22
-- Danny Flemming 26
SELECT count(*)
INTO v_count
FROM fac_notificatie
WHERE fac_srtnotificatie_key = 95
AND fac_notificatie_refkey = p_opdr_key
AND prs_perslid_key_receiver IN (26,22);
IF v_count = 2
THEN
SELECT fac_usrdata_code
INTO v_perslid_key
FROM fac_usrdata
WHERE fac_usrdata_key = FAC.safe_to_number(FLX.getflex ('OPD', 21, p_opdr_key));
dbms_output.put_line(' perslid:' || v_perslid_key);
DELETE fac_notificatie
WHERE fac_srtnotificatie_key = 95
AND prs_perslid_key_receiver <> v_perslid_key
AND fac_notificatie_refkey = p_opdr_key;
dbms_output.put_line(' Na delete:' || v_perslid_key);
SELECT prs_perslid_naam_full
INTO v_perslid_naam
FROM prs_v_perslid_fullnames
WHERE prs_perslid_key = v_perslid_key;
dbms_output.put_line(' Na select naam full:' || v_perslid_naam);
UPDATE fac_tracking
SET fac_tracking_oms = SUBSTR(fac_tracking_oms, 1, INSTR(fac_tracking_oms, 'verstuurd aan')) || 'verstuurd aan ' || v_perslid_naam
WHERE fac_tracking_refkey = p_opdr_key
AND fac_srtnotificatie_key = 177
AND fac_tracking_datum > SYSDATE - 1/(24*60);
END IF;
END;
PROCEDURE anonimize
AS
CURSOR c IS
@@ -145,6 +191,17 @@ BEGIN
DELETE fac_imp_perslid
WHERE LOWER (prs_perslid_email) LIKE '%carnext%';
-- Verwijder overgebleven records die geen persoon zijn
-- De strings waar we op zoeken staan in de eigen tabel met key 1
DELETE fac_imp_file
WHERE fac_import_key = p_import_key
AND fac_imp_file_index IN
(SELECT fac_imp_file_index
FROM fac_imp_perslid i, fac_usrdata ud
WHERE prs_perslid_naam LIKE fac_usrdata_omschr
AND fac_import_key = p_import_key
AND fac_usrtab_key = 1);
UPDATE fac_imp_perslid
SET prs_perslid_oslogin =
SUBSTR(SUBSTR (prs_perslid_email, 1, INSTR (prs_perslid_email, '@') - 1),1,30),
@@ -174,13 +231,24 @@ IS
CURSOR c IS
SELECT DISTINCT prs_kenmerk4
FROM fac_imp_perslid
WHERE NOT EXISTS
WHERE prs_kenmerk4 IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_afdeling a
WHERE UPPER (a.prs_afdeling_omschrijving) =
UPPER (prs_kenmerk4)
AND a.prs_afdeling_verwijder IS NULL);
CURSOR c_afd_del IS
SELECT *
FROM prs_afdeling a
WHERE prs_afdeling_verwijder IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_perslid p
WHERE prs_perslid_verwijder IS NULL
AND p.prs_afdeling_key = a.prs_afdeling_key);
v_bedrijf_key NUMBER (10);
v_afdeling_key1 NUMBER (10);
v_afdeling_key2 NUMBER (10);
@@ -236,6 +304,35 @@ BEGIN
prs.update_perslid (p_import_key, 'EMAIL', NULL);
-- Verwijder afdelingen waar geen personen meer aan gekoppeld zijn.
FOR rec IN c_afd_del
LOOP
BEGIN
v_errorhint := 'Verwijdere afdeling';
v_aanduiding := rec.prs_afdeling_omschrijving;
UPDATE prs_afdeling SET prs_afdeling_verwijder = SYSDATE
WHERE prs_afdeling_key = rec.prs_afdeling_key;
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.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
END;
END LOOP;
-- Zorg ervoor dat er geen persoonsgegevens achterblijven in de import tabel.
-- DELETE fac_imp_perslid;
COMMIT;
@@ -329,11 +426,11 @@ AS
min_van,
MAX (res_rsv_deel_tot)
max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_srtdeel_key, 21, 4, 0) ELSE 3 -- hele dag Electrische bureaus (21)
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_srtdeel_key, 21, 4, 101, 5, 0) ELSE 3 -- hele dag Electrische bureaus (21) , Electrisch/Breedbeeld (101)
END
waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_srtdeel_key, 21, 4, 0)
WHEN MAX (res_rsv_deel_tot) IS NULL THEN DECODE(ins_srtdeel_key, 21, 4, 101, 5, 0)
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
@@ -357,8 +454,8 @@ AS
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC(SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum >= TRUNC (res_rsv_deel_van)
AND datum < TRUNC (res_rsv_deel_tot) + 1) blokkerend -- vandaag en nog niet afgelopen
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND (r.res_deel_vervaldatum IS NULL or r.res_deel_vervaldatum > datums.datum)
@@ -381,7 +478,8 @@ AS
-- View om inzichtelijk te maken welke werkplekken wel of niet bevestigd zijn.
CREATE OR REPLACE VIEW lpnl_v_wp_bezetting
AS
SELECT l.alg_locatie_omschrijving,
SELECT l.alg_locatie_key,
l.alg_locatie_omschrijving,
dg.alg_gebouw_omschrijving,
dg.alg_verdieping_code,
dg.alg_ruimte_nr,
@@ -392,7 +490,8 @@ SELECT l.alg_locatie_omschrijving,
rrr.res_rsv_ruimte_tot,
h.ins_deel_statedate,
DECODE(ins_deel_state_history_key, NULL, 1, 0) no_show,
DECODE(ins_deel_state_history_key, NULL, 0, 1) show
DECODE(ins_deel_state_history_key, NULL, 0, 1) show,
FLX.getflex ('PRS', 1020, pf.prs_perslid_key, 'P') bhv
FROM res_rsv_ruimte rrr,
res_deel rd,
prs_v_perslid_fullnames pf,
@@ -408,6 +507,31 @@ SELECT l.alg_locatie_omschrijving,
AND dg.alg_locatie_key = l.alg_locatie_key;
-- Overzicht om te laten zien welke BHV-ers vandaag in het pand zijn.
CREATE OR REPLACE VIEW lpnl_v_bhv_overview
AS
SELECT alg_locatie_key,
alg_locatie_omschrijving,
prs_perslid_naam_full,
CASE
WHEN SYSDATE BETWEEN res_rsv_ruimte_van AND res_rsv_ruimte_tot
THEN
1 -- wp geboekt
ELSE
0
END wp,
CASE
WHEN SYSDATE BETWEEN res_rsv_ruimte_van
AND res_rsv_ruimte_tot
AND ins_deel_statedate IS NOT NULL
THEN
1 -- binnen
ELSE
0
END binnen
FROM lpnl_v_wp_bezetting
WHERE bhv = 1 AND TRUNC (res_rsv_ruimte_van) = TRUNC (SYSDATE);
-- Dagelijkse taak
CREATE OR REPLACE PROCEDURE lpnl_daily
AS