From d7de3f9e609bedfc71bc9bd4b365aafc4c7cf53e Mon Sep 17 00:00:00 2001 From: Suzan Wiegerinck Date: Fri, 6 Jan 2017 14:36:09 +0000 Subject: [PATCH] HCAS#38912 Telefoonnummers blijven niet bewaard svn path=/Customer/trunk/; revision=32257 --- HCAS/HCAS.sql | 250 ++++++++++++++++++++++++++++---------------------- 1 file changed, 138 insertions(+), 112 deletions(-) diff --git a/HCAS/HCAS.sql b/HCAS/HCAS.sql index 45273836b..47a8284aa 100644 --- a/HCAS/HCAS.sql +++ b/HCAS/HCAS.sql @@ -1,3 +1,4 @@ + -- Script containing customer specific configuration sql statements for HCAS -- (c) 2016 Facilitor B.V. -- Support: +31 53 4800710 @@ -9,23 +10,21 @@ SPOOL hcas.lst CREATE OR REPLACE PROCEDURE hcas_import_perslid (p_import_key IN NUMBER) AS - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (400); - v_errorhint VARCHAR2 (400); - + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_errormsg VARCHAR2 (400); + v_errorhint VARCHAR2 (400); BEGIN - v_errorhint := 'Generieke update'; -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc - prs.import_perslid (p_import_key, - '0;0;0;0;0;8;1;2;0;3;' || - '0;0;0;0;0;0;0;6;0;0;' || - '5;1;0;0;0;0;4;0;0;0;'|| - '0;0;0;0;0;0;0;0;0;0;'|| - '0;0;0;0;0;0', - '"SamAccountName";"sn";"GivenName";"Department";"Function";"Mail";"TelephoneNumber";"Location"%' - ); + prs.import_perslid ( + p_import_key, + '0;0;0;0;0;8;1;2;0;3;' + || '0;0;0;0;0;0;0;6;0;0;' + || '5;1;0;0;0;0;4;0;0;0;' + || '0;0;0;0;0;0;0;0;0;0;' + || '0;0;0;0;0;0', + '"SamAccountName";"sn";"GivenName";"Department";"Function";"Mail";"TelephoneNumber";"Location"%'); COMMIT; EXCEPTION @@ -34,13 +33,15 @@ EXCEPTION oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes; - fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); + fac.imp_writelog (p_import_key, + 'E', + v_errormsg, + v_errorhint); END hcas_import_perslid; / -CREATE OR REPLACE PROCEDURE hcas_update_perslid ( - p_import_key IN NUMBER -) IS +CREATE OR REPLACE PROCEDURE hcas_update_perslid (p_import_key IN NUMBER) +IS -- Alle personen verwijderen die niet meer in import bestand voorkomen. -- Key bij HCAS is SAMAccountName, hieronder de query om alle personen te verwijderen die: -- a) niet meer in het importbestand staan, wel in Facilitor, en @@ -48,44 +49,41 @@ CREATE OR REPLACE PROCEDURE hcas_update_perslid ( -- c) waarvan de persoon in Facilitor niet begint met een _ in de loginnaam (ook van af blijven) CURSOR c_del IS - SELECT p.prs_perslid_key, - p.prs_perslid_oslogin, - p.prs_perslid_oslogin2, - pf.prs_perslid_naam_full - FROM fac_imp_perslid i, - prs_perslid p, - prs_v_perslid_fullnames_all pf - WHERE UPPER(p.prs_perslid_oslogin) = UPPER(i.prs_perslid_oslogin(+)) - AND SUBSTR(p.prs_perslid_oslogin, 1, 1) <> '_' - AND i.prs_perslid_oslogin IS NULL - AND p.prs_perslid_verwijder IS NULL - AND p.prs_perslid_oslogin2 IS NULL - AND pf.prs_perslid_key = p.prs_perslid_key - ORDER BY 2; - - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_errormsg VARCHAR2 (400); - v_count NUMBER; + SELECT p.prs_perslid_key, + p.prs_perslid_oslogin, + p.prs_perslid_oslogin2, + pf.prs_perslid_naam_full + FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf + WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin(+)) + AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_' + AND i.prs_perslid_oslogin IS NULL + AND p.prs_perslid_verwijder IS NULL + AND p.prs_perslid_oslogin2 IS NULL + AND pf.prs_perslid_key = p.prs_perslid_key + ORDER BY 2; + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_errormsg VARCHAR2 (400); + v_count NUMBER; BEGIN -- generic update - SELECT count(*) - INTO v_count - FROM fac_imp_perslid; + SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid; -- Afdelingsomschrijving ingelezen in kenmerk; op basis daarvan de afdelingscode -- invullen (verplicht veld afdelingscode tijdelijk gevuld met oslogin). UPDATE fac_imp_perslid i SET prs_afdeling_naam = - (SELECT prs_afdeling_naam - FROM prs_afdeling a - WHERE prs_afdeling_verwijder IS NULL - AND UPPER(a.prs_afdeling_omschrijving) = UPPER(i.prs_kenmerk1) ); + (SELECT prs_afdeling_naam + FROM prs_afdeling a + WHERE prs_afdeling_verwijder IS NULL + AND UPPER (a.prs_afdeling_omschrijving) = + UPPER (i.prs_kenmerk1)); + -- Onbekende afdelingen bewaren voor logging UPDATE fac_imp_perslid - SET prs_afdeling_naam = SUBSTR(prs_kenmerk1, 1, 15) + SET prs_afdeling_naam = SUBSTR (prs_kenmerk1, 1, 15) WHERE prs_afdeling_naam IS NULL; -- Locatieomschrijving ingelezen; op basis daarvan de juiste vastgoedgegevens @@ -93,28 +91,41 @@ BEGIN -- Omdat werkplekken alleen worden aangevuld, dit alleen doen voor personen die -- nog geen werkplek hebben. UPDATE fac_imp_perslid i - SET (alg_locatie_code, - alg_gebouw_code, - alg_verdieping_volgnr, - alg_ruimte_nr) = - (SELECT rg.alg_locatie_code, - MIN(rg.alg_gebouw_upper), - MIN(rg.alg_verdieping_volgnr), - rg.alg_ruimte_nr - FROM alg_v_ruimte_gegevens rg - WHERE i.prs_werkplek_omschrijving = rg.alg_locatie_omschrijving - AND rg.alg_ruimte_nr = '_WP' - GROUP BY rg.alg_locatie_code, rg.alg_ruimte_nr) - WHERE NOT EXISTS (SELECT DISTINCT prs_perslid_oslogin - FROM prs_perslidwerkplek pw, - prs_v_aanwezigperslid ap - WHERE ap.prs_perslid_key = pw.prs_perslid_key - AND ap.prs_perslid_oslogin = UPPER(i.prs_perslid_oslogin)); + SET + (alg_locatie_code, + alg_gebouw_code, + alg_verdieping_volgnr, + alg_ruimte_nr + ) = + ( SELECT rg.alg_locatie_code, + MIN (rg.alg_gebouw_upper), + MIN (rg.alg_verdieping_volgnr), + rg.alg_ruimte_nr + FROM alg_v_ruimte_gegevens rg + WHERE i.prs_werkplek_omschrijving = + rg.alg_locatie_omschrijving + AND rg.alg_ruimte_nr = '_WP' + GROUP BY rg.alg_locatie_code, rg.alg_ruimte_nr) + WHERE NOT EXISTS + (SELECT DISTINCT prs_perslid_oslogin + FROM prs_perslidwerkplek pw, prs_v_aanwezigperslid ap + WHERE ap.prs_perslid_key = pw.prs_perslid_key + AND ap.prs_perslid_oslogin = + UPPER (i.prs_perslid_oslogin)); + + -- Als er al een telefoonnummer bekend is in Facilitor, dan moet deze bewaard blijven + UPDATE fac_imp_perslid i + SET i.prs_perslid_telefoonnr = + (SELECT p.prs_perslid_telefoonnr + FROM prs_perslid p + WHERE p.prs_perslid_verwijder IS NULL + AND p.prs_perslid_telefoonnr IS NOT NULL + AND p.prs_perslid_key = i.prs_perslid_key); + -- Tijdelijke gegevens opruimen UPDATE fac_imp_perslid i - SET prs_werkplek_omschrijving = NULL, - prs_kenmerk1 = NULL; + SET prs_werkplek_omschrijving = NULL, prs_kenmerk1 = NULL; -- 'LOGIN' betekent dat op basis van Login wordt gematched. -- 'NR' betekent dat op basis van Personeelsnummer wordt gematched. @@ -134,7 +145,10 @@ EXCEPTION oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes; - fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces personen afgebroken!'); + fac.imp_writelog (p_import_key, + 'E', + v_errormsg, + 'Importproces personen afgebroken!'); END hcas_update_perslid; / @@ -144,7 +158,8 @@ END hcas_update_perslid; CREATE OR REPLACE VIEW hcas_v_rap_qrc_ins_mld AS SELECT i.ins_deel_omschrijving hide_f_sort, - l.alg_locatie_code||' '||l.alg_locatie_omschrijving fclt_f_locatie, + l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving + fclt_f_locatie, o.alg_gebouw_omschrijving fclt_f_gebouw, o.alg_plaatsaanduiding fclt_f_plaats, d.ins_discipline_omschrijving fclt_f_discipline, @@ -168,29 +183,33 @@ AS fac_bookmark b, mld_stdmelding sm WHERE b.fac_bookmark_path = 'appl/pda/melding.asp' - AND b.fac_bookmark_query LIKE '%stdm_key='||sm.mld_stdmelding_key||'%' - AND (b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE) - AND ins_deel_verwijder IS NULL - AND i.ins_deel_module = 'INS' - AND i.ins_deel_parent_key IS NULL - AND s.ins_srtdeel_key = i.ins_srtdeel_key - AND g.ins_srtgroep_key = s.ins_srtgroep_key - AND d.ins_discipline_key = g.ins_discipline_key - AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key - AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type - AND i.ins_alg_ruimte_type IN ('T', 'R', 'W') - AND o.alg_locatie_key = i.ins_alg_locatie_key - AND i.ins_alg_locatie_key = l.alg_locatie_key - AND sm.ins_srtinst_key IS NOT NULL - AND sm.ins_srtinst_key = DECODE(sm.ins_srtinst_niveau, - 'S', i.ins_srtdeel_key, - 'G', s.ins_srtgroep_key, - 'D', g.ins_discipline_key); + AND b.fac_bookmark_query LIKE + '%stdm_key=' || sm.mld_stdmelding_key || '%' + AND (b.fac_bookmark_expire IS NULL + OR b.fac_bookmark_expire > SYSDATE) + AND ins_deel_verwijder IS NULL + AND i.ins_deel_module = 'INS' + AND i.ins_deel_parent_key IS NULL + AND s.ins_srtdeel_key = i.ins_srtdeel_key + AND g.ins_srtgroep_key = s.ins_srtgroep_key + AND d.ins_discipline_key = g.ins_discipline_key + AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key + AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type + AND i.ins_alg_ruimte_type IN ('T', 'R', 'W') + AND o.alg_locatie_key = i.ins_alg_locatie_key + AND i.ins_alg_locatie_key = l.alg_locatie_key + AND sm.ins_srtinst_key IS NOT NULL + AND sm.ins_srtinst_key = + DECODE (sm.ins_srtinst_niveau, + 'S', i.ins_srtdeel_key, + 'G', s.ins_srtgroep_key, + 'D', g.ins_discipline_key); CREATE OR REPLACE VIEW hcas_v_rap_qrc_ins AS SELECT i.ins_deel_omschrijving hide_f_sort, - l.alg_locatie_code||' '||l.alg_locatie_omschrijving fclt_f_locatie, + l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving + fclt_f_locatie, o.alg_gebouw_omschrijving fclt_f_gebouw, o.alg_plaatsaanduiding fclt_f_plaats, d.ins_discipline_omschrijving fclt_f_discipline, @@ -212,22 +231,23 @@ AS ins_discipline d, alg_locatie l, fac_bookmark b - WHERE b.fac_bookmark_path = 'appl/pda/ins_deel.asp' - AND COALESCE(b.fac_bookmark_expire, SYSDATE+1) > SYSDATE - AND ins_deel_verwijder IS NULL - AND COALESCE(i.ins_deel_vervaldatum, SYSDATE+1) > SYSDATE - AND i.ins_deel_module = 'INS' - AND i.ins_deel_parent_key IS NULL - AND s.ins_srtdeel_key = i.ins_srtdeel_key - AND g.ins_srtgroep_key = s.ins_srtgroep_key - AND d.ins_discipline_key = g.ins_discipline_key - AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key - AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type - AND i.ins_alg_ruimte_type IN ('T', 'R', 'W') - AND o.alg_locatie_key = i.ins_alg_locatie_key - AND l.alg_locatie_key = i.ins_alg_locatie_key; + WHERE b.fac_bookmark_path = 'appl/pda/ins_deel.asp' + AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE + AND ins_deel_verwijder IS NULL + AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE + AND i.ins_deel_module = 'INS' + AND i.ins_deel_parent_key IS NULL + AND s.ins_srtdeel_key = i.ins_srtdeel_key + AND g.ins_srtgroep_key = s.ins_srtgroep_key + AND d.ins_discipline_key = g.ins_discipline_key + AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key + AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type + AND i.ins_alg_ruimte_type IN ('T', 'R', 'W') + AND o.alg_locatie_key = i.ins_alg_locatie_key + AND l.alg_locatie_key = i.ins_alg_locatie_key; --- HCAS#37147 rapportage met aantallen nog actieve medewerkers per afdeling + CREATE OR REPLACE VIEW HCAS_V_RAP_MDW_AFDELING ( AANTAL, @@ -236,20 +256,26 @@ CREATE OR REPLACE VIEW HCAS_V_RAP_MDW_AFDELING KOSTENPLAATS ) AS - SELECT COUNT (prs_perslid_key), - a.prs_afdeling_upper, - PRS_AFDELING_OMSCHRIJVING, - PRS_KOSTENPLAATS_KEY - FROM prs_v_aanwezigperslid p, prs_afdeling a - WHERE P.PRS_AFDELING_KEY(+) = A.PRS_AFDELING_KEY - AND prs_afdeling_verwijder IS NULL -GROUP BY a.prs_afdeling_upper, - PRS_AFDELING_OMSCHRIJVING, - PRS_KOSTENPLAATS_KEY; + SELECT COUNT (prs_perslid_key), + a.prs_afdeling_upper, + PRS_AFDELING_OMSCHRIJVING, + PRS_KOSTENPLAATS_KEY + FROM prs_v_aanwezigperslid p, prs_afdeling a + WHERE P.PRS_AFDELING_KEY(+) = A.PRS_AFDELING_KEY + AND prs_afdeling_verwijder IS NULL + GROUP BY a.prs_afdeling_upper, + PRS_AFDELING_OMSCHRIJVING, + PRS_KOSTENPLAATS_KEY; -BEGIN adm.systrackscriptId('$Id$', 0); END; +BEGIN + adm.systrackscriptId ('$Id$', 0); +END; / -BEGIN fac.registercustversion('HCAS', 4); END; + +BEGIN + fac.registercustversion ('HCAS', 4); +END; / + COMMIT; -SPOOL OFF; +SPOOL OFF; \ No newline at end of file