CSUN#27668 -- speciale autorisatie hoofdgebouw.
svn path=/Customer/trunk/; revision=19375
This commit is contained in:
148
CSUN/CSUN.sql
148
CSUN/CSUN.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user