CSUN#27668 -- speciale autorisatie hoofdgebouw.

svn path=/Customer/trunk/; revision=19375
This commit is contained in:
Arthur Egberink
2013-10-04 14:53:38 +00:00
parent 2bf5501b01
commit 16a6c5fa16

View File

@@ -242,6 +242,10 @@ END;
/
-- stuur mail notificatie naar alternatief emailadres dat bij de melding staat. srtkenmerk_key = 1
-- en stuur mail naar de BB-er die via een CSU locatie waar hij/zij een werkplek heeft onder hetzelfde
-- district als de locatie waar de melding op is ingevoerd. Uitzondering is het pand Gustav Mahlerlaan 10
-- in A'dam (hoofdgebouw ABN key = 6218) deze heeft een vast emailadres.
CREATE OR REPLACE PROCEDURE csun_export_mailnoti (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
@@ -251,7 +255,7 @@ CREATE OR REPLACE PROCEDURE csun_export_mailnoti (
AS
CURSOR c
IS
SELECT m.mld_melding_key, p.prs_perslid_email
SELECT m.mld_melding_key, DECODE (m.mld_alg_locatie_key, 6218, 'Aab.amsterdam@csu.nl', p.prs_perslid_email) prs_perslid_email
FROM prs_perslid p,
mld_melding m,
alg_locatie l,
@@ -327,6 +331,7 @@ AS
subject_regexp fac_setting.fac_setting_default%TYPE;
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
mldnum VARCHAR2(4000);
srtdisc VARCHAR2(4000);
cnt NUMBER(10);
@@ -416,6 +421,20 @@ BEGIN
fac.trackaction('MLDNOT', mldkey, sender, NULL, '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
-- DBMS_OUTPUT.PUT_LINE('Notitie toegevoegd.');
-- Notificatie naar behandelaar
BEGIN
SELECT mld_melding_behandelaar_key
INTO behandelaar_key
FROM mld_melding m
WHERE mld_melding_key = mldkey;
fac.putnotificationsrtprio(null, behandelaar_key, 'MLDMAI', mldkey, 'Melding ' || mldkey || ' is door de klant aangepast.', 2, null, null, null, 2, null);
EXCEPTION WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Geen behandelaar gevonden.');
END;
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
BEGIN
@@ -1021,7 +1040,7 @@ END;
CREATE OR REPLACE PROCEDURE csun_import_project (p_import_key IN NUMBER)
AS
c_fielddelimitor VARCHAR2 (1) := ';';
c_fielddelimitor VARCHAR2 (1) := ',';
v_newline VARCHAR2 (1000); -- Input line
v_errormsg VARCHAR2 (1000);
v_error_hint VARCHAR2 (1000);
@@ -1032,7 +1051,8 @@ AS
v_error NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_accountcode VARCHAR2 (255); --
v_accountcode VARCHAR2 (255); -- 14
v_accountnaam VARCHAR2 (255); -- 60
v_project VARCHAR2 (255); -- 8
v_locatie_code VARCHAR2 (255); -- 10
v_locatie_omschrijving VARCHAR2 (255); -- 30
@@ -1040,7 +1060,12 @@ AS
v_locatie_postcode VARCHAR2 (255); -- 12
v_locatie_plaats VARCHAR2 (255); -- 30
v_dm VARCHAR2 (255); -- 100
v_voornaam VARCHAR2 (255); -- 30
v_voorletters VARCHAR2 (255); -- 10
v_tussenvoegsels VARCHAR2 (255); -- 15
v_achternaam VARCHAR2 (255); -- 60
v_bu VARCHAR2 (255);
v_vervallen VARCHAR2 (255);
v_kenmerk1 VARCHAR2 (255);
v_kenmerk2 VARCHAR2 (255);
v_kenmerk3 VARCHAR2 (255);
@@ -1076,13 +1101,19 @@ BEGIN
v_error := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountcode);
fac.imp_getfield (v_newline, c_fielddelimitor, v_accountnaam);
fac.imp_getfield (v_newline, c_fielddelimitor, v_project);
fac.imp_getfield (v_newline, c_fielddelimitor, v_bu);
fac.imp_getfield (v_newline, c_fielddelimitor, v_dm);
fac.imp_getfield (v_newline, c_fielddelimitor, v_voorletters);
fac.imp_getfield (v_newline, c_fielddelimitor, v_voornaam);
fac.imp_getfield (v_newline, c_fielddelimitor, v_tussenvoegsels);
fac.imp_getfield (v_newline, c_fielddelimitor, v_achternaam);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_omschrijving);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_adres);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_postcode);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_plaats);
fac.imp_getfield (v_newline, c_fielddelimitor, v_vervallen);
fac.imp_getfield (v_newline, c_fielddelimitor, v_locatie_code);
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk1);
fac.imp_getfield (v_newline, c_fielddelimitor, v_kenmerk2);
@@ -1095,13 +1126,21 @@ BEGIN
IF (header_is_valid = 0)
THEN
IF UPPER (v_accountcode) = 'ACCOUNTCODE'
AND UPPER (v_project) = 'PROJECT'
AND UPPER (v_bu) = 'BU'
AND UPPER (v_locatie_omschrijving) = 'OMSCHRIJVING'
AND UPPER (v_dm) = 'DM'
IF UPPER (v_accountcode) = 'FPACCC'
AND UPPER (v_project) = 'FPPRJ#'
AND UPPER (v_achternaam) = 'FPDINM'
AND UPPER (v_bu) = 'FPREGO'
AND UPPER (v_locatie_omschrijving) = 'FPLOCO'
AND UPPER (v_locatie_plaats) = 'FPPLBA'
THEN
header_is_valid := 1;
ELSE
IF rec1.fac_imp_file_index = 1 THEN
fac.imp_writelog (p_import_key,
'I',
'Header FPACCC:'||v_accountcode||'-FPPRJ#:'||v_project||'-FPDINM:'||v_achternaam||'-FPREGO:'||v_bu||'-FPLOCO:'||v_locatie_omschrijving||'-FPPLBA:'||v_locatie_plaats,
'Geen geldige headerregel aanwezig');
END IF;
END IF;
ELSE
-- Insert geformatteerde import record
@@ -1114,9 +1153,15 @@ BEGIN
|| ']';
INSERT INTO csun_imp_project (accountcode,
accountnaam,
project,
vervallen,
bu,
dm,
voornaam,
voorletters,
tussenvoegsels,
achternaam,
code,
omschrijving,
adres,
@@ -1128,9 +1173,15 @@ BEGIN
kenmerk4,
kenmerk5)
VALUES (SUBSTR(TRIM(v_accountcode),1,14),
SUBSTR(TRIM(v_accountnaam),1,60),
SUBSTR(TRIM(v_project),1,14),
SUBSTR(TRIM(v_vervallen),1,1),
SUBSTR(TRIM(v_bu),1,14),
TO_NUMBER(TRIM(v_dm)),
SUBSTR(TRIM(v_voornaam),1,14),
SUBSTR(TRIM(v_voorletters),1,14),
SUBSTR(TRIM(v_tussenvoegsels),1,14),
SUBSTR(TRIM(v_achternaam),1,60),
SUBSTR(TRIM(v_locatie_code),1,10),
SUBSTR(TRIM(v_locatie_omschrijving),1,60),
SUBSTR(TRIM(v_locatie_adres),1,35),
@@ -1199,19 +1250,23 @@ IS
CURSOR c_account
IS
SELECT distinct accountcode
FROM csun_imp_project;
SELECT distinct accountcode, accountnaam
FROM csun_imp_project
WHERE COALESCE(UPPER(vervallen), 'N') <> 'J';
CURSOR c_district (c_accountcode IN VARCHAR2)
IS
SELECT distinct dm FROM csun_imp_project
WHERE accountcode = c_accountcode;
SELECT distinct dm, voornaam, voorletters, tussenvoegsels, achternaam
FROM csun_imp_project
WHERE accountcode = c_accountcode
AND COALESCE(UPPER(vervallen), 'N') <> 'J';
CURSOR c (c_accountcode IN VARCHAR2, c_dm IN NUMBER)
IS
SELECT * FROM csun_imp_project
WHERE accountcode = c_accountcode
AND dm = c_dm;
AND dm = c_dm
AND COALESCE(UPPER(vervallen), 'N') <> 'J';
FUNCTION get_alg_kenmerk (p_kenmerk_key IN NUMBER, p_onrgoed_key IN NUMBER) RETURN VARCHAR2
AS
@@ -1238,28 +1293,43 @@ BEGIN
LOOP
BEGIN
v_error_hint := 'Ophalen data voor accountcode: ' || rec_a.accountcode;
SELECT fac_usrdata_key
INTO v_account_key
FROM fac_usrdata
WHERE fac_usrtab_key = 1 -- Eigentabel met client
AND fac_usrdata_code = rec_a.accountcode;
BEGIN
SELECT fac_usrdata_key
INTO v_account_key
FROM fac_usrdata
WHERE fac_usrtab_key = 1 -- Eigentabel met client
AND fac_usrdata_code = rec_a.accountcode;
EXCEPTION WHEN NO_DATA_FOUND
THEN
INSERT INTO fac_usrdata
( fac_usrtab_key, fac_usrdata_code, fac_usrdata_omschr )
VALUES
( 1, rec_a.accountcode, rec_a.accountnaam)
RETURNING fac_usrdata_key INTO v_account_key;
END;
FOR rec_d IN c_district(rec_a.accountcode)
LOOP
BEGIN
v_error_hint := 'Ophalen data voor dm: ' || rec_d.dm;
v_error_hint := 'Ophalen data voor dm: ' || rec_d.dm || ' Naam:' || rec_d.achternaam;
SELECT alg_onrgoed_key
INTO v_district_key
FROM prs_kenmerklink kl,
alg_onrgoedkenmerk aog
WHERE prs_kenmerk_key = 1040 -- dm beheerderscode
FROM prs_perslid p,
alg_onrgoedkenmerk aog,
alg_district d
WHERE p.prs_perslid_naam = rec_d.achternaam
AND p.prs_perslid_voorletters = rec_d.voorletters
AND COALESCE(p.prs_perslid_tussenvoegsel, '.') = COALESCE(rec_d.tussenvoegsels, '.')
AND alg_kenmerk_key = 1021 -- key van districtmanager
AND prs_link_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
AND prs_kenmerklink_waarde = rec_d.dm;
AND prs_perslid_key = fac.safe_to_number(alg_onrgoedkenmerk_waarde)
AND aog.alg_onrgoed_key = d.alg_district_key
AND d.alg_district_verwijder IS NULL
AND aog.alg_onrgoedkenmerk_verwijder IS NULL;
FOR rec IN c(rec_a.accountcode, rec_d.dm)
LOOP
BEGIN
v_locatie_key := NULL;
-- Get BUD reference
v_error_hint := 'Bepalen bb referentie: ' || rec.dm;
v_bud_key := get_alg_kenmerk (1060, v_district_key);
@@ -1284,7 +1354,7 @@ BEGIN
v_locatie_code := rec.code;
END IF;
INSERT INTO alg_locatie (alg_district_key, alg_locatie_code, alg_locatie_omschrijving)
VALUES (v_district_key, v_locatie_code, SUBSTR(rec.omschrijving,1,50))
VALUES (v_district_key, 'P' || v_locatie_code, SUBSTR(rec.omschrijving,1,50))
RETURNING alg_locatie_key
INTO v_locatie_key;
END;
@@ -1562,7 +1632,7 @@ INSERT INTO prs_werkplek (prs_werkplek_volgnr, prs_werkplek_virtueel, prs_alg_ru
FROM alg_v_aanwezigruimte r
WHERE NOT EXISTS
(SELECT wp.prs_alg_ruimte_key
FROM prs_v_aanwezigwerkplek wp
FROM prs_werkplek wp
WHERE r.alg_ruimte_key = wp.prs_alg_ruimte_key
AND prs_werkplek_volgnr = 1);
@@ -1576,13 +1646,30 @@ INSERT INTO prs_perslidwerkplek (prs_perslid_key, prs_perslidwerkplek_bezetting,
prs_v_werkplek_gegevens wpg
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_naam IN
AND (a.prs_afdeling_naam IN
('Adecco',
'Manpower',
'Luba',
'Servex',
'USG PA',
'USG People')
'USG People',
'DJI')
AND (EXISTS
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg
WHERE fac_groep_key = 61
AND gg.prs_perslid_key = p.prs_perslid_key))
OR
( a.prs_afdeling_naam = 'Kentalis'
AND EXISTS (SELECT alg_onrgoedkenmerk_key
FROM alg_onrgoedkenmerk aog,
prs_kenmerklink kl
WHERE (aog.alg_onrgoedkenmerk_waarde = kl.prs_kenmerklink_waarde
OR kl.prs_kenmerklink_waarde = 'alles')
AND aog.alg_onrgoed_key = wpg.alg_locatie_key
AND kl.prs_link_key = p.prs_perslid_key
AND aog.alg_kenmerk_key = 1123 -- klantspecifieke regioindeling
AND kl.prs_kenmerk_key = 1060))) -- klantspecifieke regioautorisatie)
AND fac.safe_to_number (aogk.alg_onrgoedkenmerk_waarde) =
fac_usrdata_key
AND aogk.alg_kenmerk_key = 1000
@@ -1590,11 +1677,6 @@ INSERT INTO prs_perslidwerkplek (prs_perslid_key, prs_perslidwerkplek_bezetting,
AND wpg.prs_werkplek_volgnr = 1
AND UPPER (prs_afdeling_naam) LIKE UPPER (fac_usrdata_omschr) || '%'
AND fac_usrtab_key = 1
AND EXISTS
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg
WHERE fac_groep_key = 61
AND gg.prs_perslid_key = p.prs_perslid_key)
AND NOT EXISTS
(SELECT prs_perslidwerkplek_key
FROM prs_perslidwerkplek pwp