diff --git a/CEVA/ceva.sql b/CEVA/ceva.sql index 7b3d5b5a3..de5f9879d 100644 --- a/CEVA/ceva.sql +++ b/CEVA/ceva.sql @@ -264,31 +264,141 @@ AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_count_tot NUMBER (10) := 0; + v_count_del NUMBER (10); v_perslid_key NUMBER (15); CURSOR c IS - SELECT p.* - FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u - WHERE p.prs_perslid_key = u.prs_perslid_key - AND ( TRUNC (p.prs_perslid_login) < - TRUNC (SYSDATE) - 365 - AND p.prs_perslid_login IS NOT NULL) + SELECT '[' + || TO_CHAR (p.prs_perslid_key) + || '|' + || p.prs_perslid_email + || '|' + || p.prs_perslid_naam + || '] ' aanduiding, + p.prs_perslid_key, + COUNT (vp.prs_perslid_key) aant, + DECODE (p.prs_perslid_inactief, NULL, 0, 1) inactief + FROM prs_v_aanwezigperslid p, + FAC_V_LCRAP_FE_VS_KEY_DATA u, + prs_v_verplichting_keys vp + WHERE p.prs_perslid_key = u.prs_perslid_key + AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen? + AND ( TRUNC (p.prs_perslid_login) < + TRUNC (SYSDATE) - 365 + AND p.prs_perslid_login IS NOT NULL) + GROUP BY '[' + || TO_CHAR (p.prs_perslid_key) + || '|' + || p.prs_perslid_email + || '|' + || p.prs_perslid_naam + || '] ', + p.prs_perslid_key, + DECODE (p.prs_perslid_inactief, NULL, 0, 1) UNION ALL - SELECT p.* - FROM prs_v_aanwezigperslid p, FAC_V_LCRAP_FE_VS_KEY_DATA u - WHERE p.prs_perslid_key = u.prs_perslid_key - AND ( TRUNC (p.prs_perslid_aanmaak) < - TRUNC (SYSDATE) - 365 - AND p.prs_perslid_login IS NULL); + SELECT '[' + || TO_CHAR (p.prs_perslid_key) + || '|' + || p.prs_perslid_email + || '|' + || p.prs_perslid_naam + || '] ' aanduiding, + p.prs_perslid_key, + COUNT (vp.prs_perslid_key) aant, + DECODE (p.prs_perslid_inactief, NULL, 0, 1) inactief + FROM prs_v_aanwezigperslid p, + FAC_V_LCRAP_FE_VS_KEY_DATA u, + prs_v_verplichting_keys vp + WHERE p.prs_perslid_key = u.prs_perslid_key + AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen? + AND ( TRUNC (p.prs_perslid_aanmaak) < + TRUNC (SYSDATE) - 365 + AND p.prs_perslid_login IS NULL) + GROUP BY '[' + || TO_CHAR (p.prs_perslid_key) + || '|' + || p.prs_perslid_email + || '|' + || p.prs_perslid_naam + || '] ', + p.prs_perslid_key, + DECODE (p.prs_perslid_inactief, NULL, 0, 1); BEGIN + v_count_del := 0; + FOR rec IN c LOOP BEGIN - v_perslid_key := rec.prs_perslid_key; - prs.delete_perslid (1, v_perslid_key); + IF rec.aant = 0 + THEN + v_errormsg := 'Fout schonen collega'; + + DELETE FROM + prs_collega + WHERE prs_perslid_key = rec.prs_perslid_key + OR prs_perslid_key_alt = rec.prs_perslid_key; + + v_errormsg := 'Fout schonen persoon'; + + UPDATE prs_perslid + SET prs_perslid_verwijder = SYSDATE + WHERE prs_perslid_key = rec.prs_perslid_key; + + v_count_del := v_count_del + 1; + + IF MOD (v_count_del, 1000) = 0 + THEN + COMMIT; + END IF; + ELSE + fac.writelog ( + 'SCHONEN_PERSONEN', + 'I', + rec.aanduiding + || '/#Verplichtingen: ' + || TO_CHAR (rec.aant), + 'Persoon niet geschoond'); + + IF rec.inactief = 0 + THEN + v_errormsg := 'Fout inactiveren persoon'; + + UPDATE prs_perslid + SET prs_perslid_inactief = SYSDATE + WHERE prs_perslid_key = rec.prs_perslid_key; + + fac.trackaction ('PRSUPD', + rec.prs_perslid_key, + 3, --Facilitor + SYSDATE, + 'Persoon inactief gemaakt'); + END IF; + END IF; + EXCEPTION + WHEN OTHERS + THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen! + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := + v_errormsg + || ' ORACLE (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.writelog ('SCHONEN_PERSONEN', + 'W', + rec.aanduiding || v_errormsg, + 'Fout schonen persoon'); END; END LOOP; + + fac.writelog ('SCHONEN_PERSONEN', + 'S', + 'Personen/#geschoond: ' || TO_CHAR (v_count_del), + ''); + COMMIT; EXCEPTION WHEN OTHERS THEN @@ -540,6 +650,203 @@ AS AND d.ins_alg_ruimte_key = aog.alg_ruimte_key AND l.alg_locatie_key = aog.alg_locatie_key; +CREATE OR REPLACE VIEW CEVA_V_EXPORT_BIJLAGEN_LOCATIES +( + TYPE, + LOCATIE, + GEBOUW, + VERDIEPING, + RUIMTE, + OBJECT_KEY, + OBJECT_ID, + OBJECT_OMSCHRIJVING, + MELDING, + CATEGORY, + CALL, + FAC_BIJLAGEN_AANMAAK, + FAC_BIJLAGEN_FILENAME, + FAC_BIJLAGEN_KEY, + FAC_BIJLAGEN_ZIPPATH, + CHECK_LENGTE +) +AS + SELECT 'locatie', + l.alg_locatie_omschrijving AS locatie, + NULL AS gebouw, + NULL AS verdieping, + NULL AS ruimte, + NULL AS object_key, + NULL AS object_id, + NULL AS object_omschrijving, + NULL AS melding, + NULL AS category, + NULL AS call, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, alg_locatie l + WHERE b.fac_bijlagen_verwijder IS NULL + AND b.fac_bijlagen_module = 'ALG' + AND b.fac_bijlagen_refkey = l.alg_locatie_key + UNION ALL + SELECT 'gebouw', + l.alg_locatie_omschrijving, + g.alg_gebouw_omschrijving, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, alg_locatie l, alg_gebouw g + WHERE b.fac_bijlagen_verwijder IS NULL + AND l.alg_locatie_key = g.alg_locatie_key + AND b.fac_bijlagen_module = 'ALG' + AND b.fac_bijlagen_refkey = g.alg_gebouw_key + UNION ALL + SELECT 'verdieping', + l.alg_locatie_omschrijving, + g.alg_gebouw_omschrijving, + v.alg_verdieping_omschrijving, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, + alg_locatie l, + alg_gebouw g, + alg_verdieping v + WHERE b.fac_bijlagen_verwijder IS NULL + AND l.alg_locatie_key = g.alg_locatie_key + AND g.alg_gebouw_key = v.alg_gebouw_key + AND b.fac_bijlagen_module = 'ALG' + AND b.fac_bijlagen_refkey = v.alg_verdieping_key + UNION ALL + SELECT 'ruimte', + l.alg_locatie_omschrijving, + g.alg_gebouw_omschrijving, + v.alg_verdieping_omschrijving, + r.alg_ruimte_nr, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, + alg_locatie l, + alg_gebouw g, + alg_verdieping v, + alg_ruimte r + WHERE b.fac_bijlagen_verwijder IS NULL + AND l.alg_locatie_key = g.alg_locatie_key + AND g.alg_gebouw_key = v.alg_gebouw_key + AND v.alg_verdieping_key = r.alg_verdieping_key + AND b.fac_bijlagen_module = 'ALG' + AND b.fac_bijlagen_refkey = r.alg_ruimte_key + UNION ALL + SELECT 'melding', + l.alg_locatie_omschrijving, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + m.mld_melding_key, + disc.ins_discipline_omschrijving, + sm.mld_stdmelding_omschrijving, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, + alg_locatie l, + mld_melding m, + mld_stdmelding sm, + ins_tab_discipline disc + WHERE b.fac_bijlagen_verwijder IS NULL + AND m.mld_alg_locatie_key = l.alg_locatie_key + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND sm.mld_ins_discipline_key = disc.ins_discipline_key + AND b.fac_bijlagen_module = 'MLD' + AND b.fac_bijlagen_refkey = m.mld_melding_key + UNION ALL + SELECT 'object', + l.alg_locatie_omschrijving, + NULL, + NULL, + NULL, + d.ins_deel_key, + d.ins_deel_omschrijving, + d.ins_deel_opmerking, + NULL, + NULL, + NULL, + b.fac_bijlagen_aanmaak, + b.fac_bijlagen_filename, + b.fac_bijlagen_key, + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename fac_bijlagen_zippath, -- Let op, padnaam kan/mag MAX 258 posities hebben (i.v.m. insuffficient memory) + LENGTH ( + b.fac_bijlagen_disk_directory + || CHR (92) + || b.fac_bijlagen_filename) check_lengte + FROM fac_v_bijlagen b, alg_locatie l, ins_deel d + WHERE b.fac_bijlagen_verwijder IS NULL + AND d.ins_alg_locatie_key = l.alg_locatie_key + AND b.fac_bijlagen_module = 'INS' + AND b.fac_bijlagen_refkey = d.ins_deel_key; + ------ payload end ------ SET DEFINE OFF