HCAS#38912 Telefoonnummers blijven niet bewaard

svn path=/Customer/trunk/; revision=32257
This commit is contained in:
Suzan Wiegerinck
2017-01-06 14:36:09 +00:00
parent fa285e5065
commit d7de3f9e60

View File

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