diff --git a/ASPN/aspn.sql b/ASPN/aspn.sql index 9d24b6759..a8f7f35ef 100644 --- a/ASPN/aspn.sql +++ b/ASPN/aspn.sql @@ -80,14 +80,15 @@ 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;0;7;4;0;3;' || - '0;0;0;0;0;10;11;6;0;8;' || - '9;0;0;0;0;0;0;0;0;0;'|| + '0;0;0;0;0;0;6;3;0;2;' || + '0;0;0;0;0;9;11;5;0;7;' || + '8;0;0;0;0;0;10;0;0;0;'|| '0;0;0;0;0;0;0;0;0;0;'|| '0;0;0;0;0;0', - 'S.No;SAM Account Name;First Name;Last Name;Display Name;Email Address;Department;Employee Number;Title;Telephone Number;Mobile%' + 'SamAccountName;GivenName;Surname;DisplayName;EmailAddress;Department;EmployeeNumber;Title;HomePhone;Office;MobilePhone%' ); +-- Afdelingscode uit de string met afdelingnaam halen. UPDATE fac_imp_perslid SET prs_afdeling_naam = REGEXP_SUBSTR (prs_afdeling_naam, '[[:digit:]]{1,}', @@ -96,6 +97,46 @@ SET prs_afdeling_naam = REGEXP_SUBSTR (prs_afdeling_naam, 'i'); COMMIT; + +-- Ruimtenummer en gebouwcode vullen met waarden uit kenmerk1 (office) +UPDATE fac_imp_perslid + SET alg_ruimte_nr = + REGEXP_SUBSTR (prs_kenmerk1, + '[[:digit:].]{1,}', + 1, + 1, + 'i'), + alg_gebouw_code = + UPPER (REGEXP_SUBSTR (prs_kenmerk1, + '[[:alpha:]]{1,}', + 1, + 1, + 'i')); + +COMMIT; + +-- Aanvullen met locatiecode en verdiepingvolgnr, dan wordt bij de update-actie automatisch een werkplek toegekend +UPDATE fac_imp_perslid p + SET p.alg_locatie_code = + (SELECT l.alg_locatie_code + FROM alg_locatie l, alg_gebouw g + WHERE g.alg_gebouw_code = p.alg_gebouw_code + AND g.alg_locatie_key = l.alg_locatie_key + AND g.alg_gebouw_verwijder IS NULL + AND l.alg_locatie_verwijder IS NULL), + p.alg_verdieping_volgnr = + (SELECT v.alg_verdieping_volgnr + FROM alg_verdieping v, alg_gebouw g, alg_ruimte r + WHERE g.alg_gebouw_code = p.alg_gebouw_code + AND r.alg_ruimte_nr = p.alg_ruimte_nr + AND r.alg_verdieping_key = v.alg_verdieping_key + AND v.alg_gebouw_key = g.alg_gebouw_key + AND g.alg_gebouw_verwijder IS NULL + AND v.alg_verdieping_verwijder IS NULL + AND r.alg_ruimte_verwijder IS NULL), + p.prs_kenmerk1 = NULL; +COMMIT; + EXCEPTION WHEN OTHERS THEN @@ -112,15 +153,24 @@ CREATE OR REPLACE PROCEDURE aspn_update_perslid ( -- Alle personen verwijderen die niet meer in import bestand voorkomen. 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 - WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin(+)) - AND pf.prs_perslid_key = p.prs_perslid_key - AND p.prs_perslid_oslogin IS NOT NULL - AND i.prs_perslid_oslogin IS NULL + SELECT p.prs_perslid_key, p.prs_perslid_email + FROM fac_imp_perslid i, prs_perslid p + WHERE UPPER (p.prs_perslid_email) = UPPER (i.prs_perslid_email(+)) + AND p.prs_perslid_email IS NOT NULL + AND i.prs_perslid_email IS NULL AND p.prs_perslid_verwijder IS NULL - AND substr(p.prs_perslid_oslogin, 1, 1) != '_' - ORDER BY 2; + AND p.prs_perslid_oslogin IS NULL; + + CURSOR c1 + IS + SELECT p.prs_perslid_key + FROM prs_perslid p + WHERE p.prs_perslid_oslogin IS NULL + AND NOT EXISTS + (SELECT 'x' + FROM fac_gebruikersgroep f + WHERE p.prs_perslid_key = f.prs_perslid_key + AND f.fac_groep_key = 1); v_count NUMBER; @@ -142,9 +192,9 @@ BEGIN RETURN; END IF; - -- 'LOGIN' betekent dat op basis van oslogin wordt gematched. + -- 'EMAIL' betekent dat op basis van email wordt gematched. -- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen - prs.update_perslid (p_import_key, 'LOGIN', NULL); + prs.update_perslid (p_import_key, 'EMAIL', NULL); -- Verwijder personen die niet meer in de import voorkomen. FOR rec IN c_del @@ -153,6 +203,15 @@ BEGIN prs.delete_perslid (p_import_key, rec.prs_perslid_key); END; END LOOP; + + -- Toekennen van de default autorisatiegroep + FOR rec IN c1 + LOOP + BEGIN + INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key) + VALUES (rec.prs_perslid_key, 1); + END; + END LOOP; END aspn_update_perslid; / @@ -204,6 +263,31 @@ AS 'S', i.ins_srtdeel_key, 'G', s.ins_srtgroep_key, 'D', g.ins_discipline_key); + +-- View t.b.v. reserveringsoverzicht voor desktop en mobile. +-- Zo krijgt FE geen mogelijkheid tot herhalen van een reservering +CREATE OR REPLACE VIEW aspn_v_rap_mijn_wp_reservering +AS + SELECT rrr.res_rsv_ruimte_host_key, + rrr.res_rsv_ruimte_van, + rrr.res_rsv_ruimte_tot, + rg.alg_locatie_omschrijving, + rg.alg_gebouw_omschrijving, + rg.alg_verdieping_omschrijving, + rg.alg_ruimte_nr, + rd.res_deel_omschrijving, + rg.alg_ruimte_aanduiding, + rrr.res_rsv_ruimte_key + FROM res_rsv_ruimte rrr, + res_rsv_deel rrd, + res_deel rd, + alg_v_ruimte_gegevens rg + WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key + AND rrd.res_deel_key = rd.res_deel_key + AND rrr.alg_ruimte_key = rg.alg_ruimte_key + AND rrr.res_rsv_ruimte_verwijder IS NULL + AND rrd.res_rsv_deel_verwijder IS NULL + AND rrr.res_rsv_ruimte_van > = TRUNC(SYSDATE); ------ payload end ------