LPNL#67364 -- Mensen uitsluiten van de import ivm usertelling.
svn path=/Customer/trunk/; revision=54098
This commit is contained in:
138
LPNL/LPNL.sql
138
LPNL/LPNL.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user