MNNL#52790 PRS-import/Mobiele nummers niet wissen

svn path=/Customer/trunk/; revision=37519
This commit is contained in:
Maarten van der Heide
2018-03-28 14:20:46 +00:00
parent 5049255830
commit dabaf88e2f

View File

@@ -22,46 +22,44 @@ SET DEFINE OFF
--------------------------------------------------------------------------------------------------
--- ACTIVE DIRECTORY -----------------------------------------------------------
CREATE OR REPLACE PROCEDURE mnnl_import_prs (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_ruimte_key NUMBER;
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errorhint := 'Generieke import';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend')
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure.
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend'.)
prs.import_perslid (p_import_key,
'8;0;0;0;0;0;5;4;0;3;' ||
'0;0;0;0;0;7;0;6;0;0;' ||
'3;1;0;0;0;0;0;0;0;0;'||
'0;0;0;0;0;0;0;0;0;0;'||
'3;1;0;0;0;0;0;0;0;0;' ||
'0;0;0;0;0;0;0;0;0;0;' ||
'0;0;0;0;0;0',
--1 2 3 4 5 6 7 8
'"sAMAccountName";"name";"givenname";"sn";"department";"mail";"telephoneNumber";"L"%'
);
COMMIT;
v_errorhint := 'Verrijken import';
-- Ontbrekende/afwijkende zaken rechtzetten...
-- Ontbrekende/afwijkende zaken rechtzetten:
-- - vul functie met 'Onbekend'
-- - TODO: tussenvoegsels?
-- - vul titel/geslacht/personeelsnummer/mobiel/dienstverband met huidige waarde (om wissen te voorkomen)
UPDATE fac_imp_perslid p
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving
FROM prs_srtperslid
WHERE prs_srtperslid_key = 1)
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = 1),
(prs_perslid_titel, prs_perslid_geslacht, prs_perslid_nr, prs_perslid_mobiel, prs_perslid_dienstverband) =
(SELECT MAX(prs_perslid_titel), MAX(prs_perslid_geslacht), MAX(prs_perslid_nr), MAX(prs_perslid_mobiel), MAX(prs_perslid_dienstverband)
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin = UPPER(p.prs_perslid_oslogin))
WHERE fac_import_key = p_import_key;
COMMIT;
-- Werkplek toekennen, door locatiecode, gebouwcode, verdiepingvolgnr en ruimtenr in
--importabel te zetten.
-- Heeft de persoon al een werkplek op deze locatie? Dan kiezen we die -- met als netto
-- importabel te zetten.
-- Heeft de persoon al een werkplek op deze locatie? Dan kiezen we die, met als netto
-- resultaat dat er niets gebeurt.
-- Anders bepalen we de alfabetisch eerste ruimte op locatie en kiezen we die.
UPDATE fac_imp_perslid ip
@@ -69,26 +67,21 @@ BEGIN
(SELECT rg.alg_locatie_code, rg.alg_gebouw_upper, rg.alg_verdieping_volgnr, rg.alg_ruimte_nr
FROM alg_v_ruimte_gegevens rg
WHERE alg_ruimte_aanduiding = COALESCE(
-- Eventuele bestaande werkplek op locatie
-- Eventuele bestaande werkplek op locatie.
(SELECT MAX(rg.alg_ruimte_aanduiding)
FROM alg_v_ruimte_gegevens rg,
prs_werkplek w,
prs_perslidwerkplek pw,
prs_perslid p
WHERE rg.alg_locatie_omschrijving = ip.alg_locatie_code
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
FROM prs_perslid p, prs_perslidwerkplek pw, prs_werkplek w, alg_v_ruimte_gegevens rg
WHERE p.prs_perslid_key = pw.prs_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND p.prs_perslid_key = pw.prs_perslid_key
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin) ),
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste)
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
AND rg.alg_locatie_omschrijving = ip.alg_locatie_code
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin)),
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste).
(SELECT MIN(alg_ruimte_aanduiding)
FROM alg_v_ruimte_gegevens
WHERE alg_locatie_omschrijving = ip.alg_locatie_code
AND UPPER(alg_ruimte_nr) = '_WP') ) )
AND UPPER(alg_ruimte_nr) = '_WP')))
WHERE fac_import_key = p_import_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
@@ -99,42 +92,35 @@ EXCEPTION
END mnnl_import_prs;
/
CREATE OR REPLACE PROCEDURE mnnl_update_prs (p_import_key IN NUMBER)
IS
-- Alle personen binnen bedrijf "MN" verwijderen die niet meer in import bestand voorkomen.
-- prs_bedrijf MN 5
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
FROM fac_imp_perslid i,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom ab
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin(+))
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\'
AND pf.prs_perslid_key = p.prs_perslid_key
AND ab.prs_afdeling_key = p.prs_afdeling_key
AND ab.prs_bedrijf_key = 5
AND i.prs_perslid_oslogin IS NULL
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin(+))
AND p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\'
AND pf.prs_perslid_key = p.prs_perslid_key
AND ab.prs_afdeling_key = p.prs_afdeling_key
AND ab.prs_bedrijf_key = 5
AND i.prs_perslid_oslogin IS NULL
UNION ALL
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
FROM prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom ab
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND ab.prs_afdeling_key = p.prs_afdeling_key
AND ab.prs_bedrijf_key = 5
AND p.prs_perslid_oslogin IS NULL
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
AND NOT EXISTS (SELECT 1
FROM prs_v_verplichting_keys pv
WHERE p.prs_perslid_key = pv.prs_perslid_key)
ORDER BY 2;
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND ab.prs_afdeling_key = p.prs_afdeling_key
AND ab.prs_bedrijf_key = 5
AND p.prs_perslid_oslogin IS NULL
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
AND NOT EXISTS (SELECT 1
FROM prs_v_verplichting_keys pv
WHERE p.prs_perslid_key = pv.prs_perslid_key)
ORDER BY 2;
v_count NUMBER;
BEGIN
-- Generic update
SELECT COUNT(*)
@@ -143,12 +129,9 @@ BEGIN
IF v_count < 300
THEN
fac.imp_writelog (p_import_key,
'E',
'Het aantal te importeren personen is te klein ('
|| TO_CHAR (v_count) || ')',
'Zie specificatie'
);
fac.imp_writelog (p_import_key, 'E',
'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')',
'Zie specificatie');
RETURN;
END IF;