WEND#89932 -- Contractbeheer - Aanpassing rappel svn path=/Customer/trunk/; revision=69789
1434 lines
59 KiB
SQL
1434 lines
59 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Script containing customer specific sql statements for the FACILITOR database
|
|
|
|
DEFINE thisfile = 'wend.sql'
|
|
DEFINE dbuser = 'WEND'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
|
SPOOL &fcltlogfile
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
---------------------------------------
|
|
PROMPT &fcltcusttxt
|
|
---------------------------------------
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
-- Mail2Melding - Basis uit SVRZ overgenomen:
|
|
--- WEND : key 121 = Melding 'Melding via mail - Nog te rubriceren' (meldpunt@wend.facilitor.nl)
|
|
CREATE OR REPLACE PROCEDURE wend_processemail (
|
|
pfrom IN VARCHAR2,
|
|
pto IN VARCHAR2,
|
|
psubject IN VARCHAR2,
|
|
pbody IN VARCHAR2,
|
|
psessionid IN VARCHAR2,
|
|
pemailkey IN NUMBER)
|
|
AS
|
|
c_onbekend_key NUMBER (10) := 3281 ; -- Melder onbekend
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_exist_ticket VARCHAR2 (255) := '';
|
|
v_perslid_key NUMBER (10);
|
|
v_kostenplaats_key NUMBER (10);
|
|
v_locatie_key NUMBER (10);
|
|
v_discipline_key NUMBER (10);
|
|
v_stdmelding_key NUMBER (10);
|
|
v_melding_key NUMBER (10);
|
|
v_folder_kkey NUMBER (10);
|
|
v_count NUMBER (10);
|
|
v_count_wp NUMBER (10);
|
|
v_fac_result_from VARCHAR2 (250);
|
|
v_fac_result_fromaddr VARCHAR2 (250);
|
|
v_fw_from VARCHAR2 (1000) := '';
|
|
v_from_string VARCHAR2 (1000) := NULL ;
|
|
v_voor_at VARCHAR2 (1000) := '';
|
|
v_na_at VARCHAR2 (1000) := '';
|
|
|
|
|
|
BEGIN
|
|
CASE
|
|
WHEN UPPER (pto) LIKE 'MELDPUNT@%'
|
|
THEN
|
|
|
|
-- 1. HANDMATIG doorgestuurd vanuit facilitairmeldpunt@wender.nl en helpdesk@wender.nl
|
|
-- Voorbeeld WENDER: Van: Ben Onderstijn <b.onderstijn@wender.nl> Van: Paula van der Tooren <P.Tooren@wender.nl>
|
|
-- Dus eerst op zoek naar eerste VAN-regel
|
|
v_from_string :=
|
|
SUBSTR(pbody,
|
|
REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1),
|
|
INSTR(pbody,CHR(10),REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1),1)-REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1)) ;
|
|
|
|
-- Als deze bestaat dan gaan we via die kant het from-adres-bebepalen
|
|
IF v_from_string IS NOT NULL AND INSTR(v_from_string,'@')>0
|
|
THEN
|
|
|
|
IF INSTR(v_from_string, '<',1,1)>0
|
|
THEN
|
|
v_na_at :=
|
|
SUBSTR(v_from_string,
|
|
INSTR(v_from_string,'@',1,1)+1,
|
|
INSTR(v_from_string,'.nl')+3 - INSTR(v_from_string,'@',1,1)-1) ;
|
|
|
|
v_voor_at :=
|
|
SUBSTR (v_from_string,
|
|
INSTR (v_from_string, '<',1,1) + 1,
|
|
INSTR (v_from_string, '@',1,1) - INSTR (v_from_string, '<',1,1) -1);
|
|
|
|
v_fw_from := v_voor_at || '@' || v_na_at;
|
|
|
|
ELSE
|
|
v_na_at :=
|
|
SUBSTR(v_from_string,
|
|
INSTR(v_from_string,'@',1,1)+1,
|
|
REGEXP_INSTR(v_from_string,'$')-INSTR(v_from_string,'@',1,1)-1) ;
|
|
|
|
v_voor_at :=
|
|
SUBSTR (v_from_string,
|
|
INSTR (v_from_string, ':',1,1) + 2,
|
|
INSTR (v_from_string, '@',1,1) - INSTR (v_from_string, ':',1,1) -2);
|
|
|
|
v_fw_from := v_voor_at || '@' || v_na_at;
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
-- 2. AUTOMATISCH doorgestuurde mail OF geen "Van: met email-adres" in de body. Dan dus maar terugvallen op de v_fromaddr...
|
|
SELECT fac_result_waarde
|
|
INTO v_fac_result_fromaddr
|
|
FROM fac_result WHERE fac_result_sessionid = psessionid AND fac_result_naam = 'fromaddr' ;
|
|
|
|
v_fac_result_fromaddr := REPLACE(REPLACE(v_fac_result_fromaddr,'>',''),'<','') ;
|
|
|
|
v_fw_from := v_fac_result_fromaddr;
|
|
|
|
END IF;
|
|
|
|
v_fw_from := SUBSTR (v_fw_from, 1, 50);
|
|
|
|
-- Bepaal de melder/noteur op basis van e-mail adres zoals in pfrom?
|
|
v_errormsg := 'Fout bepalen melder ' || COALESCE (pfrom, '???');
|
|
SELECT COUNT (*), max(prs_perslid_key)
|
|
INTO v_count, v_perslid_key
|
|
FROM prs_v_aanwezigperslid
|
|
WHERE UPPER (prs_perslid_email) LIKE UPPER (v_fw_from) || '%';
|
|
|
|
-- Als er persoon gevonden is, dan ff checken of er ook werkplekkoppelingen onder zijn aangemaakt
|
|
IF v_count = 1
|
|
THEN
|
|
SELECT COUNT (*)
|
|
INTO v_count_wp
|
|
FROM prs_perslidwerkplek
|
|
WHERE prs_perslid_key = v_perslid_key;
|
|
END IF;
|
|
|
|
-- Als er persoon gevonden is, dan ff checken of er op gekoppelde Afdeling ook een kostenplaats is gekoppeld
|
|
IF v_count = 1
|
|
THEN
|
|
SELECT MIN(a.prs_kostenplaats_key)
|
|
INTO v_kostenplaats_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
|
WHERE prs_perslid_key = v_perslid_key AND p.prs_afdeling_key = a.prs_afdeling_key ;
|
|
END IF;
|
|
|
|
-- Locatie erbij halen
|
|
IF v_count = 1 AND v_count_wp > 0
|
|
THEN
|
|
SELECT p.prs_perslid_key, MIN (wpg.alg_locatie_key)
|
|
INTO v_perslid_key, v_locatie_key
|
|
FROM prs_v_aanwezigperslid p,
|
|
(SELECT pw.prs_perslid_key, pw.prs_werkplek_key
|
|
FROM prs_perslidwerkplek pw
|
|
WHERE NOT EXISTS
|
|
(SELECT 1
|
|
FROM prs_perslidwerkplek
|
|
WHERE prs_perslid_key = pw.prs_perslid_key
|
|
AND prs_perslidwerkplek_key > pw.prs_perslidwerkplek_key)) pw,
|
|
prs_v_werkplekperslid_gegevens wpg
|
|
WHERE p.prs_perslid_key = v_perslid_key
|
|
AND p.prs_perslid_key = pw.prs_perslid_key(+)
|
|
AND pw.prs_werkplek_key = wpg.prs_werkplek_key(+)
|
|
GROUP BY p.prs_perslid_key;
|
|
END IF;
|
|
|
|
-- Geen werkplek of Melder onbekend - Dan melding op locatie_key 32 (Hoofdkantoor Wirdumerpoort (LE-OOSTER))
|
|
IF (v_count = 1 AND v_count_wp = 0) OR v_count = 0
|
|
THEN
|
|
v_locatie_key := 32;
|
|
END IF;
|
|
|
|
-- Melder kan niet bepaald worden, dus inlezen onder 'Melder onbekend (M2M)'
|
|
-- Op deze 'Melder onbekend' is aan voorkant wel afdeling Onbekend gekoppeld met default wender-kostenplaats. Deze kp halen we er daarom nu ook bij
|
|
IF v_count = 0
|
|
THEN
|
|
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
|
|
INTO v_perslid_key, v_kostenplaats_key
|
|
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND p.prs_perslid_key = c_onbekend_key;
|
|
END IF;
|
|
|
|
v_errormsg := 'Fout bepalen bestaande melding';
|
|
v_exist_ticket := psubject;
|
|
IF REGEXP_INSTR (v_exist_ticket, '\d') > 0
|
|
THEN
|
|
v_exist_ticket := SUBSTR (v_exist_ticket, REGEXP_INSTR (v_exist_ticket, '\d')) || 'x'; -- Gedeelte vanaf eerste cijfer in v_exist_ticket plus 'x'!
|
|
v_exist_ticket := SUBSTR (v_exist_ticket, 1, REGEXP_INSTR (v_exist_ticket, '\D') - 1); -- Gedeelte tot eerste niet-cijfer in v_exist_ticket!
|
|
ELSE
|
|
v_exist_ticket := 'x';
|
|
END IF;
|
|
|
|
SELECT COUNT (*)
|
|
INTO v_count
|
|
FROM mld_melding
|
|
WHERE mld_melding_key = fac.safe_to_number (v_exist_ticket);
|
|
|
|
-- Om te voorkomen dat huisnummers in het Onderwerp resulteren in het
|
|
-- toevoegen van Notities, dit voor alle meldingen doen (vanaf start met nr 10.000)
|
|
IF v_count = 1 AND fac.safe_to_number (v_exist_ticket) >= 10000
|
|
THEN -- Notitie bij bestaande melding!
|
|
SELECT mld_stdmelding_key, mld_melding_key
|
|
INTO v_stdmelding_key, v_melding_key
|
|
FROM mld_melding
|
|
WHERE mld_melding_key = fac.safe_to_number (v_exist_ticket);
|
|
|
|
v_errormsg := 'Fout toevoegen notitie';
|
|
INSERT INTO mld_melding_note (mld_melding_key,
|
|
prs_perslid_key,
|
|
mld_melding_note_omschrijving,
|
|
mld_melding_note_flag)
|
|
VALUES (v_melding_key,
|
|
v_perslid_key,
|
|
pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
|
0);
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
|
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
|
|
|
|
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
|
|
UPDATE mld_melding
|
|
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
|
|
WHERE mld_melding_key = v_melding_key;
|
|
ELSE -- Nieuwe melding!
|
|
|
|
-- Bepaal de afgesproken soortmelding met key= 1 Melding via mail - Nog te rubriceren
|
|
v_errormsg := 'Fout bepalen soortmelding';
|
|
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
|
INTO v_discipline_key, v_stdmelding_key
|
|
FROM mld_stdmelding
|
|
WHERE mld_stdmelding_key = 101;
|
|
|
|
-- Suggested extensions:
|
|
-- - Check for MLDUSE-write autorisations
|
|
-- - Parse the subject to find the appropriate stdmelding, if uniquely possible
|
|
-- - Append (as a note?) to an existing melding if #key is found in the subject
|
|
v_errormsg := 'Fout toevoegen melding';
|
|
INSERT INTO mld_melding (mld_melding_module,
|
|
mld_meldbron_key,
|
|
mld_alg_locatie_key,
|
|
mld_alg_onroerendgoed_keys,
|
|
mld_melding_datum,
|
|
mld_melding_omschrijving,
|
|
mld_stdmelding_key,
|
|
mld_melding_t_uitvoertijd,
|
|
prs_kostenplaats_key,
|
|
prs_perslid_key,
|
|
prs_perslid_key_voor,
|
|
mld_melding_status,
|
|
mld_melding_spoed,
|
|
mld_melding_onderwerp,
|
|
mld_melding_behandelaar2_key,
|
|
mld_ins_discipline_key)
|
|
VALUES ('MLD',
|
|
4, -- email
|
|
v_locatie_key,
|
|
NULL, --v_onrgoed_keys,
|
|
SYSDATE,
|
|
'From-adres: ' || v_fw_from || CHR (13) || CHR (10) ||
|
|
SUBSTR (pbody, 1, 2000),
|
|
v_stdmelding_key,
|
|
NULL,
|
|
v_kostenplaats_key,
|
|
v_perslid_key,
|
|
v_perslid_key,
|
|
NULL,
|
|
3, -- prio normaal
|
|
SUBSTR (psubject, 1, 80),
|
|
NULL,
|
|
NULL)
|
|
RETURNING mld_melding_key
|
|
INTO v_melding_key;
|
|
|
|
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
|
|
|
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
|
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
|
|
|
END IF;
|
|
|
|
|
|
-- Find the lowest volgnummer of the Folder-flexfield.
|
|
SELECT MIN (k1.mld_kenmerk_key)
|
|
INTO v_folder_kkey
|
|
FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
|
|
WHERE sm1.mld_stdmelding_key = v_stdmelding_key
|
|
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
|
|
AND k1.mld_kenmerk_verwijder IS NULL
|
|
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
|
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
|
AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
|
OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
|
OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T')
|
|
OR (k1.mld_kenmerk_niveau = 'A')
|
|
)
|
|
AND NOT EXISTS
|
|
(SELECT 1
|
|
FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
|
|
WHERE sm2.mld_stdmelding_key = v_stdmelding_key
|
|
AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
|
|
AND k2.mld_kenmerk_verwijder IS NULL
|
|
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
|
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
|
AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
|
|
OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
|
|
OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T')
|
|
OR (k1.mld_kenmerk_niveau = 'A')
|
|
)
|
|
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
|
|
|
IF v_folder_kkey IS NOT NULL
|
|
THEN
|
|
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
|
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
|
|
|
-- originele email wordt opgeslagen bij de melding
|
|
INSERT INTO fac_result (fac_result_sessionid,
|
|
fac_result_naam,
|
|
fac_result_waarde)
|
|
VALUES (psessionid,
|
|
'kenmerkorgmailpath',
|
|
'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
|
|
|
END IF;
|
|
|
|
ELSE
|
|
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
|
VALUES (psessionid, 'errormsg', 'Ontvanger ongeldig - Neem contact op met uw systeembeheerder ');
|
|
END CASE;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
fac.writelog ('PROCESSEMAIL', 'E', 'BLOS_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg);
|
|
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
|
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ');
|
|
COMMIT;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE PROCEDURE wend_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);
|
|
v_aantal_in_fclt NUMBER;
|
|
v_seq_of_columns VARCHAR (255);
|
|
|
|
-- overige variabelen
|
|
v_naam_verantw VARCHAR2(255);
|
|
v_prs_perslid_email_verantw VARCHAR2(255);
|
|
|
|
CURSOR c_verantw
|
|
IS
|
|
SELECT i.fac_imp_file_index, i.prs_perslid_email, i.prs_kenmerk12
|
|
FROM fac_imp_perslid i
|
|
WHERE fac_import_key = p_import_key
|
|
ORDER BY i.fac_imp_file_index;
|
|
|
|
|
|
BEGIN
|
|
|
|
-- Ticket WEND#86093
|
|
-- BESTAND WORDT: GivenName,Surname,UserPrincipalName,Title,EmailAddress,Mobile,telephoneNumber,employeeID,Department,Office,sAMAccountName,manager
|
|
--- VOORBEELD:
|
|
--- Popke,van der Meer,p.vandermeer@wender.nl,,p.vandermeer@wender.nl,0682300088,0880663081,204240,test,test location,CN=Jens Waterreus,OU=Accounts,OU=Wender,DC=internal,DC=wender,DC=nl
|
|
|
|
-- Import csv formaat - kolommen:
|
|
-- 1. Afdeling - DEZE VOEGEN WE BIJ IMPORT TOE - Wender stuurt namelijk geen Department mee...
|
|
-- 2. GivenName
|
|
-- 3. Surname
|
|
-- 4. UserPrincipalName
|
|
-- 5. Title
|
|
-- 6. EmailAddress
|
|
-- 7. Mobile
|
|
-- 8. TelephoneNumber
|
|
-- 9. EmployeeID
|
|
-- 10. Department - DEZE IS DUS LEEG (VOORALSNOG)
|
|
-- 11. Office
|
|
-- 12. sAMAccountName (max 15 karakters) - Om verplichte kolommen mee te vullen en daarna te updaten (afdeling, functie, ..)
|
|
-- 13. Manager (CN=Jens Waterreus)
|
|
-- 14. t/m 19 - Manager - komt in details mee maar gebruiken we niet: OU=Accounts,OU=Wender,DC=internal,DC=wender,DC=nl
|
|
|
|
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
|
v_seq_of_columns := '0;0;0;0;0;0;1;3;0;2;'
|
|
-- v_alg_locatie_code 1
|
|
-- v_alg_gebouw_code 2
|
|
-- v_alg_verdieping_volgnr 3
|
|
-- v_alg_ruimte_nr 4
|
|
-- v_prs_werkplek_volgnr 5
|
|
-- v_prs_werkplek_omschrijving 6
|
|
-- v_prs_afdeling_naam 7 -- VERPLICHT BIJ IMPORT - Geen toepassing bij Wender. Vullen deze daarom zelf op positie 1 in fac_imp-tabel
|
|
-- v_prs_perslid_naam 8 -- VERPLICHT BIJ IMPORT
|
|
-- v_prs_perslid_tussenvoegsel 9
|
|
-- v_prs_perslid_voornaam 10
|
|
|| '0;0;0;0;0;8;7;6;0;9;'
|
|
-- v_prs_perslid_voorletters 11
|
|
-- v_prs_perslid_partner_naam 12
|
|
-- v_prs_perslid_partner_tussenv 13
|
|
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
|
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
|
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
|
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
|
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
|
-- v_prs_perslid_telefoonnr 16
|
|
-- v_prs_perslid_mobiel 17
|
|
-- v_prs_perslid_email 18
|
|
-- v_prs_perslid_dienstverband 19
|
|
-- v_prs_perslid_nr 20
|
|
|| '12;6;0;0;0;0;2;3;4;5;'
|
|
-- v_prs_srtperslid_omschrijving 21 -- VERPLICHT BIJ IMPORT - Niet altijd gevuld bij WENDER. Daarom intieel vullen met sAMAccountName en daarna omzetten
|
|
-- v_prs_perslid_oslogin 22
|
|
-- v_prs_perslid_wachtwoord 23
|
|
-- v_prs_perslid_titel 24
|
|
-- v_prs_perslid_apikey 25
|
|
-- v_dummy 26
|
|
-- v_prs_kenmerk1 27
|
|
-- v_prs_kenmerk2 28
|
|
-- v_prs_kenmerk3 29
|
|
-- v_prs_kenmerk4 30
|
|
|| '6;7;8;9;10;11;12;13;0;0;'
|
|
|| '0;0;0;0;0;0';
|
|
|
|
|
|
-- Het aangeleverde bestand heeft de gegevens komma gescheiden ipv ;
|
|
v_errorhint := 'Delimiter goed zetten';
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
-- Als het aangeleverde bestand aanhalingstekens om de invoervelden heeft, dan halen we dit bij deze weg..
|
|
UPDATE fac_imp_file
|
|
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
|
WHERE fac_import_key = p_import_key;
|
|
|
|
-- header aanvullen met afdeling
|
|
--- deze afdeling/department komt niet mee uit entra-wender en voeg hier de algemene afdeling WEND toe waarop alle medewerkers mogen landen.
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
'Afdeling_Wender'
|
|
|| ';' ||
|
|
fac_imp_file_line
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index = 1;
|
|
|
|
-- regels
|
|
--- deze afdeling vullen met WEND
|
|
UPDATE fac_imp_file i
|
|
SET i.fac_imp_file_line =
|
|
'WEND'
|
|
|| ';' ||
|
|
fac_imp_file_line
|
|
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
|
|
|
v_errorhint := 'Generieke update';
|
|
-- csv verwerken naar de fac_imp_perslid-tabel
|
|
prs.import_perslid(p_import_key, v_seq_of_columns, 'Afdeling_Wender;GivenName;Surname;UserPrincipalName;Title;EmailAddress;Mobile;telephoneNumber;employeeID;Department;Office;sAMAccountName;manager%');
|
|
|
|
|
|
-- POST-UPDATES op data in fac_imp_perslid-tabel doen om verwerking goed/volledig/cust-specifiek te laten verlopen
|
|
v_errorhint := 'Post update(s)';
|
|
|
|
-- Loginnaam afleiden van emailadres
|
|
UPDATE fac_imp_perslid
|
|
SET prs_perslid_oslogin =
|
|
UPPER((SUBSTR (prs_perslid_email,
|
|
0,
|
|
INSTR (prs_perslid_email, '@') - 1)))
|
|
WHERE UPPER (prs_perslid_email) LIKE '%WENDER.NL%';
|
|
|
|
-- Delete uit AD Wender-medewerkers uit oude fusie-organisaties ZIEN en HETKOPLAND
|
|
DELETE fac_imp_perslid
|
|
WHERE UPPER (prs_perslid_email) LIKE '%ZIENN.NL%' or UPPER (prs_perslid_email) LIKE '%HETKOPLAND.NL%' ;
|
|
|
|
-- Functie is niet altijd gevuld, functie eerst gevuld met achternaam, nu vullen met kenmerk (of 'Onbekend').
|
|
UPDATE fac_imp_perslid
|
|
SET prs_srtperslid_omschrijving =
|
|
DECODE (prs_kenmerk4, NULL, 'Onbekend', prs_kenmerk4);
|
|
|
|
FOR rec IN c_verantw
|
|
LOOP
|
|
BEGIN
|
|
|
|
v_errorhint := 'Leidinggevende erbij zoeken';
|
|
|
|
-- Bijv: CN=Jens Waterreus (in prs_kenmerk12 opgenomen)
|
|
IF rec.prs_kenmerk12 IS NOT NULL
|
|
THEN
|
|
|
|
v_prs_perslid_email_verantw := NULL ;
|
|
v_naam_verantw := SUBSTR(rec.prs_kenmerk12, 4) ;
|
|
|
|
SELECT MAX(p.prs_perslid_email)
|
|
INTO v_prs_perslid_email_verantw
|
|
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames pf
|
|
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
|
AND UPPER(pf.prs_perslid_naam_friendly) = UPPER(v_naam_verantw) ;
|
|
|
|
IF v_prs_perslid_email_verantw IS NOT NULL
|
|
THEN
|
|
|
|
UPDATE fac_imp_perslid
|
|
SET prs_kenmerk13 = v_prs_perslid_email_verantw
|
|
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
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);
|
|
END wend_import_perslid;
|
|
/
|
|
|
|
|
|
CREATE OR REPLACE PROCEDURE wend_update_perslid (p_import_key IN NUMBER)
|
|
IS
|
|
-- Alle personen verwijderen die niet meer in het import import bestand voorkomen
|
|
-- Personen in de juiste autorisatiegroep zetten.
|
|
-- Match bij WENDERGROEP is Email.
|
|
-- Geen acties tenzij het aantal records in de importtabel meer dan 50 medewerkers betreft.
|
|
|
|
CURSOR c_del
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full, v.prs_bedrijf_key, b.prs_bedrijf_naam
|
|
FROM prs_perslid p, prs_v_perslid_fullnames pf, prs_v_afdeling v, prs_bedrijf b
|
|
WHERE UPPER (p.prs_perslid_email) LIKE '%WENDER.NL%'
|
|
AND NOT EXISTS (SELECT 1 FROM fac_imp_perslid WHERE INSTR(UPPER (p.prs_perslid_email),UPPER (prs_perslid_email) ) > 0 )
|
|
AND pf.prs_perslid_key = p.prs_perslid_key
|
|
AND p.prs_Afdeling_key = v.prs_afdeling_key
|
|
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND v.prs_bedrijf_key = 21 ; -- Alleen onder/voor bedrijf Wender Opvang (key 21)
|
|
|
|
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden
|
|
IS
|
|
SELECT p.prs_perslid_key, p.prs_perslid_email, i.prs_perslid_partner_naam, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13
|
|
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key
|
|
ORDER BY 2;
|
|
|
|
CURSOR c_verantw
|
|
IS
|
|
SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
p.leidinggevende_emailadres,
|
|
CASE WHEN p.prs_perslid_key_verantw IS NOT NULL
|
|
THEN (SELECT prs_perslid_email FROM prs_perslid WHERE prs_perslid_key = p.prs_perslid_key_verantw)
|
|
ELSE NULL
|
|
END
|
|
prs_perslid_verantw_email
|
|
FROM fac_imp_perslid i,
|
|
(SELECT p.prs_perslid_key,
|
|
p.prs_perslid_email,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_oslogin,
|
|
p.prs_perslid_key_verantw,
|
|
(SELECT kw.prs_kenmerklink_waarde
|
|
FROM prs_kenmerklink kw
|
|
WHERE kw.prs_kenmerk_key = 1060
|
|
AND kw.prs_kenmerklink_niveau = 'P'
|
|
AND kw.prs_link_key = p.prs_perslid_key)
|
|
leidinggevende_emailadres
|
|
FROM prs_perslid p) p
|
|
WHERE p.prs_perslid_key = i.prs_perslid_key ;
|
|
|
|
v_count NUMBER;
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_errormsg VARCHAR2 (400);
|
|
v_errorhint VARCHAR2 (400);
|
|
|
|
-- overige variabelen
|
|
v_prs_perslid_key_verantw NUMBER(10);
|
|
|
|
BEGIN
|
|
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
|
|
|
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
|
|
|
IF v_count >= 50
|
|
THEN
|
|
v_errorhint := 'Verwerken persoonsgegevens';
|
|
|
|
-- Geldig importbestand wat betreft aantal personen
|
|
|
|
COMMIT;
|
|
|
|
-- generic update
|
|
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
|
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
|
prs.update_perslid (p_import_key, 'EMAIL', NULL);
|
|
|
|
v_errorhint := 'Verwijderen persoonsgegevens';
|
|
|
|
-- Verwijder personen die niet meer in de import voorkomen.
|
|
FOR rec IN c_del
|
|
LOOP
|
|
BEGIN
|
|
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
|
-- NULL;
|
|
END;
|
|
END LOOP;
|
|
|
|
FOR rec IN c_flex
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken kenmerkvelden';
|
|
|
|
PRS.upsertkenmerk (1021, rec.prs_perslid_key, rec.prs_kenmerk1); -- GivenName
|
|
PRS.upsertkenmerk (1022, rec.prs_perslid_key, rec.prs_kenmerk2); -- SurName
|
|
PRS.upsertkenmerk (1023, rec.prs_perslid_key, rec.prs_kenmerk3); -- UserPrincipalName
|
|
PRS.upsertkenmerk (1024, rec.prs_perslid_key, rec.prs_kenmerk4); -- Title
|
|
PRS.upsertkenmerk (1025, rec.prs_perslid_key, rec.prs_kenmerk5); -- EmailAddress
|
|
PRS.upsertkenmerk (1026, rec.prs_perslid_key, rec.prs_kenmerk6); -- Mobile
|
|
PRS.upsertkenmerk (1027, rec.prs_perslid_key, rec.prs_kenmerk7); -- TelephoneNumber
|
|
PRS.upsertkenmerk (1028, rec.prs_perslid_key, rec.prs_kenmerk8); -- EmployeeID
|
|
PRS.upsertkenmerk (1029, rec.prs_perslid_key, rec.prs_kenmerk9); -- Department
|
|
PRS.upsertkenmerk (1030, rec.prs_perslid_key, rec.prs_kenmerk10); -- Office
|
|
PRS.upsertkenmerk (1040, rec.prs_perslid_key, rec.prs_kenmerk11); -- sAMAccountName
|
|
PRS.upsertkenmerk (1031, rec.prs_perslid_key, rec.prs_kenmerk12); -- Manager
|
|
PRS.upsertkenmerk (1060, rec.prs_perslid_key, rec.prs_kenmerk13); -- Emailadres leidinggevende
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
|
|
FOR rec IN c_verantw
|
|
LOOP
|
|
BEGIN
|
|
v_errorhint:='Fout bijwerken verantwoordelijke';
|
|
|
|
-- als de aangeboden waarde uit azure anders is dan de huidige verantwoordelijke in de personenkaart dan gaan we personenkaart updaten
|
|
IF COALESCE(rec.leidinggevende_emailadres, '<leeg>') <> COALESCE(rec.prs_perslid_verantw_email, '<leeg>')
|
|
THEN
|
|
|
|
-- geen gevonden facilitor-manager dan gevulde verantwoordelijke verwijderen
|
|
IF rec.leidinggevende_emailadres IS NULL
|
|
THEN
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = ''
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
-- wel gevonden facilitor-manager dan bijbehorende verantwoordelijke_key in personenkaart vullen
|
|
IF rec.leidinggevende_emailadres IS NOT NULL
|
|
THEN
|
|
|
|
SELECT prs_perslid_key
|
|
INTO v_prs_perslid_key_verantw
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_email = rec.leidinggevende_emailadres ;
|
|
|
|
UPDATE prs_perslid
|
|
SET prs_perslid_key_verantw = v_prs_perslid_key_verantw
|
|
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
|
|
|
END IF;
|
|
|
|
|
|
END IF;
|
|
|
|
|
|
END;
|
|
END LOOP;
|
|
|
|
ELSE
|
|
fac.imp_writelog (p_import_key,
|
|
'E',
|
|
v_errormsg,
|
|
v_errorhint);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
COMMIT;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
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);
|
|
END wend_update_perslid;
|
|
/
|
|
|
|
-----------------------------------------
|
|
-- Rapportage-views --
|
|
-----------------------------------------
|
|
|
|
CREATE OR REPLACE VIEW wend_v_rap_opdrachten_intern
|
|
(
|
|
TYPE,
|
|
MLD_OPDR_KEY,
|
|
MLD_UITVOERENDE_KEY,
|
|
OPDRACHTNR,
|
|
OPDRACHT_DATUM,
|
|
STATUS,
|
|
MELDING,
|
|
BEHANDELAAR,
|
|
LOCATIE_PLAATS,
|
|
LOCATIE_OMSCHRIJVING,
|
|
GEPLANDE_AANVANG,
|
|
OMSCHRIJVING,
|
|
PRS_PERSLID_KEY,
|
|
NAAM_UITVOERDER,
|
|
UREN_BESTEED,
|
|
AFMELD_DATUM,
|
|
OPDRACHT_TYPE,
|
|
TD_NAAM,
|
|
ALG_DISTRICT_OMSCHRIJVING,
|
|
PRIORITEIT
|
|
)
|
|
AS
|
|
SELECT CASE
|
|
WHEN mu.TYPE = 'B' THEN 'Poule-opdracht'
|
|
WHEN mu.TYPE = 'P' THEN 'Klus-opdracht'
|
|
ELSE '<?>'
|
|
END
|
|
TYPE,
|
|
o.mld_opdr_key,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' THEN o.prs_perslid_key
|
|
WHEN mu.TYPE = 'P' THEN mu.mld_uitvoerende_key
|
|
ELSE NULL
|
|
END
|
|
mld_uitvoerende_key,
|
|
TO_CHAR (o.mld_melding_key)
|
|
|| '/'
|
|
|| o.mld_opdr_bedrijfopdr_volgnr
|
|
opdrachtnummer,
|
|
o.mld_opdr_datumbegin,
|
|
DECODE (
|
|
os.mld_statusopdr_key,
|
|
8, DECODE (o.mld_opdr_halted,
|
|
1, 'Onderbroken',
|
|
os.mld_statusopdr_omschrijving),
|
|
os.mld_statusopdr_omschrijving)
|
|
status,
|
|
std.mld_stdmelding_omschrijving,
|
|
COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>'), -- BEHANDELAAR
|
|
l.alg_locatie_plaats,
|
|
CASE WHEN m.mld_alg_onroerendgoed_keys IS NOT NULL
|
|
THEN l.alg_locatie_omschrijving || ' - ' || COALESCE(onr.alg_gebouw_naam, onr.alg_terreinsector_naam)
|
|
ELSE l.alg_locatie_omschrijving
|
|
END
|
|
locatie_omschrijving,
|
|
COALESCE(o.mld_opdr_plandatum, o.mld_opdr_einddatum)
|
|
geplande_aanvang,
|
|
TRIM (
|
|
REGEXP_REPLACE (
|
|
REGEXP_SUBSTR (o.mld_opdr_omschrijving,
|
|
'(([^ ]*)( |$)*){10}'),
|
|
'[[:space:]]',
|
|
' '))
|
|
|| '...',
|
|
p.prs_perslid_key,
|
|
mu.naam,
|
|
(SELECT ko.mld_kenmerkopdr_waarde
|
|
FROM mld_kenmerkopdr ko
|
|
WHERE ko.mld_opdr_key = o.mld_opdr_key
|
|
AND ko.mld_kenmerk_key = 3), -- kenmerk Uren_besteed
|
|
(SELECT MAX (ft.fac_tracking_datum)
|
|
FROM fac_tracking ft
|
|
WHERE ft.fac_tracking_refkey = o.mld_opdr_key
|
|
AND ft.fac_srtnotificatie_key = 74), -- ORDAFM
|
|
ot.mld_typeopdr_omschrijving,
|
|
CASE
|
|
WHEN mu.TYPE = 'B' THEN COALESCE (p.prs_perslid_naam_full, '<nog geen behandelaar>')
|
|
WHEN mu.TYPE = 'P' THEN mu.naam
|
|
ELSE '<?>'
|
|
END TD_NAAM,
|
|
di.alg_district_omschrijving,
|
|
COALESCE(v.prioriteit,'3 - NORMAAL')
|
|
prioriteit
|
|
FROM mld_opdr o,
|
|
mld_melding m,
|
|
mld_typeopdr ot,
|
|
prs_v_perslid_fullnames p,
|
|
ins_tab_discipline d,
|
|
mld_stdmelding std,
|
|
alg_locatie l,
|
|
alg_district di,
|
|
alg_v_onroerendgoed_gegevens onr,
|
|
mld_v_uitvoerende mu,
|
|
mld_statusopdr os,
|
|
(
|
|
SELECT ko.mld_opdr_key, ud.fac_usrdata_code || ' - ' || ud.fac_usrdata_omschr prioriteit
|
|
FROM mld_kenmerkopdr ko, fac_usrdata ud
|
|
WHERE fac.safe_to_number(ko.mld_kenmerkopdr_waarde) = ud.fac_usrdata_key
|
|
AND fac_usrtab_key = 81 -- keuzelijst eigen tabel Prioriteit
|
|
AND ko.mld_kenmerk_key = 361 -- kenmerk Prioriteit
|
|
) v
|
|
WHERE o.mld_melding_key = m.mld_melding_key(+)
|
|
AND o.prs_perslid_key = p.prs_perslid_key(+)
|
|
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
|
AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten
|
|
AND m.mld_stdmelding_key = std.mld_stdmelding_key(+)
|
|
AND std.mld_ins_discipline_key = d.ins_discipline_key(+)
|
|
AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie
|
|
AND l.alg_district_key = di.alg_district_key
|
|
AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key
|
|
AND os.mld_statusopdr_key = o.mld_statusopdr_key
|
|
AND m.mld_alg_onroerendgoed_keys = onr.alg_onroerendgoed_keys (+)
|
|
AND o.mld_opdr_key = v.mld_opdr_key(+)
|
|
AND mu.intern = 1;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_cal_opdrachten_intern
|
|
(
|
|
USER_KEY,
|
|
TITLE,
|
|
TOT,
|
|
VAN,
|
|
ITEM_KEY,
|
|
COLOR,
|
|
TEXTCOLOR
|
|
)
|
|
AS
|
|
SELECT mld_uitvoerende_key,
|
|
type || ' - ' || opdrachtnr || CHR(10) || locatie_plaats || CHR(10) || 'Prio: ' || prioriteit,
|
|
geplande_aanvang + 2/24,
|
|
geplande_aanvang,
|
|
mld_opdr_key,
|
|
DECODE (status,
|
|
'Afgewezen', '#C0C0C0', -- Afgewezen grijs
|
|
'Afgemeld', '#C0C0C0', -- Afgemeld grijs
|
|
'Toegekend', DECODE (LOWER(prioriteit),
|
|
'3 - normaal', '#0000FF', -- Toegekend en prio normaal is blauw
|
|
'4 - laag', '#20b2f5', -- Toegekend en prio laag is licht-blauw
|
|
'2 - hoog', '#f58a20', -- Toegekend en prio laag is oranje
|
|
'1 - kritiek', '#bf0b3b', -- Toegekend en prio laag is rood
|
|
'#0000FF'),
|
|
'Geaccepteerd', '#008000') color, -- Geaccepteerd groen
|
|
DECODE (status,
|
|
'Afgewezen', '#FFFFFF', -- Afgewezen
|
|
'Toegekend', '#FFFFFF', -- Toegekend
|
|
'Afgemeld', '#000000', -- Afgemeld
|
|
'Geaccepteerd', '#FFFFFF') textcolor -- Geaccepteerd
|
|
FROM wend_v_rap_opdrachten_intern ;
|
|
|
|
CREATE OR REPLACE VIEW WEND_V_ALG_ONROERENDGOED
|
|
(
|
|
DISTRICT,
|
|
LOCATIE,
|
|
LOCATIE_CODE,
|
|
LOCATIE_KEY,
|
|
GEBOUW,
|
|
-- gegevens uit locatiekaart
|
|
LOCATIEMANAGER,
|
|
OCTOQ,
|
|
EXTRA_INFO,
|
|
--
|
|
VERDIEPING,
|
|
RUIMTENR,
|
|
RUIMTE_OMSCHRIJVING,
|
|
RUIMTEFUNCTIE,
|
|
BVO_M2,
|
|
VLOERSOORT
|
|
)
|
|
AS
|
|
SELECT d.alg_district_omschrijving,
|
|
l.alg_locatie_omschrijving,
|
|
l.alg_locatie_code,
|
|
l.alg_locatie_key,
|
|
v.alg_gebouw_code || ' - ' || v.alg_gebouw_naam
|
|
gebouw,
|
|
km.locatiemanager,
|
|
km.octoq,
|
|
km.extra_info,
|
|
v.alg_verdieping_omschrijving || ' - ' || v.alg_verdieping_code
|
|
verdieping,
|
|
v.alg_ruimte_nr,
|
|
v.alg_ruimte_omschrijving,
|
|
sr.alg_srtruimte_omschrijving,
|
|
r.alg_ruimte_bruto_vloeropp,
|
|
flx.getdomeinwaarde (141, flx.getflex ('ALG', 1160, r.alg_ruimte_key, 'R')) vloersoort
|
|
FROM alg_v_onroerendgoed_gegevens v,
|
|
alg_locatie l,
|
|
alg_district d,
|
|
(SELECT l.alg_locatie_key,
|
|
flx.getdomeinwaarde(41, flx.getflex('ALG', 1120, l.alg_locatie_key, 'L')) locatiemanager,
|
|
flx.getflex('ALG',1100, l.alg_locatie_key, 'L') octoq,
|
|
flx.getflex('ALG',1020, l.alg_locatie_key, 'L') extra_info
|
|
FROM alg_locatie l ) km,
|
|
alg_ruimte r,
|
|
alg_srtruimte sr
|
|
WHERE v.alg_locatie_key = l.alg_locatie_key
|
|
AND l.alg_district_key = d.alg_district_key
|
|
AND v.alg_type IN ('R')
|
|
AND v.alg_locatie_key = km.alg_locatie_key (+)
|
|
AND v.alg_ruimte_key = r.alg_ruimte_key AND r.alg_ruimte_verwijder IS NULL
|
|
AND r.alg_srtruimte_key = sr.alg_srtruimte_key (+)
|
|
ORDER BY d.alg_district_omschrijving, l.alg_locatie_code, v.alg_gebouw_code, v.alg_ruimte_nr ;
|
|
|
|
-----------------------------------------
|
|
-- Voor keuzelijstjes (kenmerk domein) --
|
|
-----------------------------------------
|
|
|
|
CREATE OR REPLACE VIEW wend_v_gebouweigenaren
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
PRS_BEDRIJF_NAAM,
|
|
PRS_BEDRIJF_PLAATS,
|
|
PRS_BEDRIJF_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT
|
|
b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam,
|
|
b.prs_bedrijf_bezoek_plaats,
|
|
b.prs_bedrijf_verwijder
|
|
FROM prs_bedrijf b,
|
|
prs_kenmerklink kw,
|
|
prs_kenmerk k
|
|
WHERE (b.prs_bedrijf_intern IS NULL OR b.prs_bedrijf_intern = 0) -- extern bedrijf
|
|
AND k.prs_kenmerk_key = 1081 -- gebouweigenaar
|
|
AND k.prs_kenmerk_key = kw.prs_kenmerk_key
|
|
AND kw.prs_kenmerklink_niveau = 'B'
|
|
AND b.prs_bedrijf_key = kw.prs_link_key
|
|
ORDER BY b.prs_bedrijf_naam;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_verhuurderspartijen
|
|
(
|
|
PRS_BEDRIJF_KEY,
|
|
PRS_BEDRIJF_NAAM,
|
|
PRS_BEDRIJF_PLAATS,
|
|
PRS_BEDRIJF_VERWIJDER
|
|
)
|
|
AS
|
|
SELECT
|
|
b.prs_bedrijf_key,
|
|
b.prs_bedrijf_naam,
|
|
b.prs_bedrijf_bezoek_plaats,
|
|
b.prs_bedrijf_verwijder
|
|
FROM prs_bedrijf b,
|
|
prs_kenmerklink kw,
|
|
prs_kenmerk k
|
|
WHERE (b.prs_bedrijf_intern IS NULL OR b.prs_bedrijf_intern = 0) -- extern bedrijf
|
|
AND k.prs_kenmerk_key = 1082 -- verhuurderspartijen
|
|
AND k.prs_kenmerk_key = kw.prs_kenmerk_key
|
|
AND kw.prs_kenmerklink_niveau = 'B'
|
|
AND b.prs_bedrijf_key = kw.prs_link_key
|
|
ORDER BY b.prs_bedrijf_naam;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_kostenplaatsen
|
|
(
|
|
KEY,
|
|
KP_NR,
|
|
OMSCHRIJVING,
|
|
OMSCHRIJVING_TOT,
|
|
KP_EINDDATUM,
|
|
KP_GROEP
|
|
)
|
|
AS
|
|
SELECT
|
|
kp.prs_kostenplaats_key,
|
|
kp.prs_kostenplaats_nr,
|
|
kp.prs_kostenplaats_omschrijving,
|
|
kp.prs_kostenplaats_nr || ' ' || kp.prs_kostenplaats_omschrijving
|
|
omschrijving_tot,
|
|
prs_kostenplaats_eind,
|
|
kpg.prs_kostenplaatsgrp_oms
|
|
FROM
|
|
prs_kostenplaats kp,
|
|
prs_kostenplaatsgrp kpg
|
|
WHERE
|
|
kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
|
|
AND kp.prs_kostenplaats_verwijder IS NULL
|
|
AND TRUNC(SYSDATE) < COALESCE(TRUNC(prs_kostenplaats_eind),TO_DATE('31-12-2199','DD-MM-YYYY'))
|
|
ORDER BY kp.prs_kostenplaats_nr
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_personenlijst
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM
|
|
)
|
|
AS
|
|
SELECT
|
|
p.prs_perslid_key,
|
|
CASE
|
|
WHEN p.prs_perslid_tussenvoegsel IS NOT NULL
|
|
THEN
|
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam
|
|
ELSE
|
|
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
|
END naam
|
|
FROM
|
|
prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b
|
|
WHERE
|
|
p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND b.prs_bedrijf_key = 21 -- bedrijfs_key Wender
|
|
-- AND UPPER(sp.prs_srtperslid_omschrijving) NOT IN ('TEAMACCOUNT','INTERNE AFDELING') -- Functies uitsluiten...
|
|
AND p.prs_perslid_verwijder IS NULL
|
|
ORDER BY p.prs_perslid_naam
|
|
;
|
|
|
|
-- locatiehoofden wender
|
|
CREATE OR REPLACE VIEW wend_v_personenlijst_loc
|
|
(
|
|
PRS_PERSLID_KEY,
|
|
NAAM,
|
|
PERSONEELSNUMMER,
|
|
EMAIL
|
|
)
|
|
AS
|
|
SELECT p.prs_perslid_key,
|
|
CASE
|
|
WHEN p.prs_perslid_tussenvoegsel IS NULL
|
|
THEN
|
|
p.prs_perslid_voornaam
|
|
|| ' '
|
|
|| p.prs_perslid_naam
|
|
|| ' (Locatiehoofd - '
|
|
|| sp.prs_srtperslid_omschrijving
|
|
|| ')'
|
|
ELSE
|
|
p.prs_perslid_voornaam
|
|
|| ' '
|
|
|| p.prs_perslid_tussenvoegsel
|
|
|| ' '
|
|
|| p.prs_perslid_naam
|
|
|| ' (Locatiehoofd - '
|
|
|| sp.prs_srtperslid_omschrijving
|
|
|| ')'
|
|
END
|
|
naam,
|
|
p.prs_perslid_nr,
|
|
p.prs_perslid_email
|
|
FROM prs_perslid p,
|
|
prs_srtperslid sp,
|
|
prs_v_afdeling a,
|
|
prs_bedrijf b,
|
|
prs_kenmerklink kl
|
|
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
|
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
|
AND p.prs_perslid_key = kl.prs_link_key
|
|
AND kl.prs_kenmerk_key = 1000 -- kenmerk locatiehoofd (vinkbox)
|
|
AND kl.prs_kenmerklink_waarde = '1'
|
|
AND kl.prs_kenmerklink_verwijder IS NULL
|
|
AND p.prs_perslid_verwijder IS NULL;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_locatielijst
|
|
(
|
|
ALG_LOCATIE_KEY,
|
|
NAAM
|
|
)
|
|
AS
|
|
SELECT
|
|
l.alg_locatie_key,
|
|
l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ' ' || l.alg_locatie_plaats || ')'
|
|
naam
|
|
FROM
|
|
alg_locatie l
|
|
WHERE
|
|
l.alg_locatie_verwijder IS NULL
|
|
AND l.alg_locatie_vervaldatum IS NULL OR TRUNC(l.alg_locatie_vervaldatum) > TRUNC(SYSDATE)
|
|
ORDER BY l.alg_locatie_omschrijving
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW wend_v_it_simkaarten
|
|
(
|
|
INS_DEEL_KEY,
|
|
SIMKAART
|
|
)
|
|
AS
|
|
SELECT
|
|
v.ins_deel_key,
|
|
v.ins_deel_upper
|
|
simkaart
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 421 -- IT-Intern
|
|
AND v.ins_srtdeel_key = 121 -- SIM-kaarten
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND (d.ins_deel_vervaldatum IS NULL OR TRUNC(d.ins_deel_vervaldatum) > TRUNC(sysdate) ) ;
|
|
|
|
-- Rapportage beheer simkaarten en mobiel
|
|
CREATE OR REPLACE VIEW wend_v_it_simkaarten_man
|
|
(
|
|
MOBIEL_NUMMER,
|
|
SIMKAART_NUMMER,
|
|
PUK_CODE,
|
|
MOB_NR_27092022, -- tijdelijk veld - bij overgang te gebruiken voor koppeling sim aan mob
|
|
STATUS,
|
|
ICT_OBJECT,
|
|
ICT_OBJECT_VERVALDATUM,
|
|
GEKOPPELD_AAN_TYPE,
|
|
GEKOPPELD_AAN,
|
|
NR_INS_DEEL_KEY,
|
|
OBJ_INS_DEEL_KEY
|
|
)
|
|
AS
|
|
SELECT
|
|
nr.ins_deel_upper,
|
|
flx.getflex ('INS', 182, nr.ins_deel_key) simkaart_nummer,
|
|
flx.getflex ('INS', 183, nr.ins_deel_key) puk_code,
|
|
flx.getflex ('INS', 201, nr.ins_deel_key) mob_nr_27092022,
|
|
CASE WHEN d.ins_deel_upper IS NOT NULL THEN 'Gekoppeld' ELSE 'Vrij' END
|
|
status,
|
|
d.ins_deel_upper,
|
|
d.ins_deel_vervaldatum,
|
|
d.gekoppeld_aan_type,
|
|
d.gekoppeld_aan,
|
|
nr.ins_deel_key,
|
|
d.ins_deel_key
|
|
FROM (SELECT v.ins_deel_key,
|
|
v.ins_deel_upper
|
|
FROM ins_v_deel_gegevens v, ins_deel d
|
|
WHERE v.ins_discipline_key = 421 -- IT-Intern
|
|
AND v.ins_srtdeel_key = 121 -- SIM-kaarten
|
|
AND v.ins_deel_key = d.ins_deel_key
|
|
AND d.ins_deel_verwijder IS NULL
|
|
AND (d.ins_deel_vervaldatum IS NULL OR TRUNC(d.ins_deel_vervaldatum) > TRUNC(sysdate) )
|
|
) nr,
|
|
(SELECT d.ins_deel_key,
|
|
d.ins_deel_upper,
|
|
kw.ins_kenmerkdeel_waarde,
|
|
num.ins_deel_upper as nummer_gekoppeld,
|
|
DECODE(d.ins_alg_ruimte_type, 'R', 'Locatie',
|
|
'A', 'Afdeling',
|
|
'P', 'Persoon/Teamaccount',
|
|
'')
|
|
gekoppeld_aan_type,
|
|
v.alg_plaatsaanduiding,
|
|
d.ins_deel_vervaldatum,
|
|
DECODE(d.ins_alg_ruimte_type, 'R', l.alg_locatie_omschrijving, v.alg_plaatsaanduiding)
|
|
gekoppeld_aan
|
|
FROM ins_deel d,
|
|
ins_kenmerkdeel kw,
|
|
ins_kenmerk k,
|
|
ins_deel num,
|
|
ins_v_deel_gegevens v,
|
|
alg_locatie l
|
|
WHERE d.ins_deel_key = kw.ins_deel_key
|
|
AND kw.ins_kenmerk_key = k.ins_kenmerk_key
|
|
AND k.ins_srtkenmerk_key = 143 -- SIM_kaart gekoppeld bij Mobiel
|
|
AND kw.ins_kenmerkdeel_verwijder IS NULL
|
|
AND fac.safe_to_number (kw.ins_kenmerkdeel_waarde) =
|
|
num.ins_deel_key
|
|
AND d.ins_deel_key = v.ins_deel_key
|
|
AND d.ins_alg_locatie_key = l.alg_locatie_key(+)
|
|
) d
|
|
WHERE
|
|
nr.ins_deel_upper = d.nummer_gekoppeld(+) ;
|
|
|
|
-----------------------------------------
|
|
-- Notificatiejobs --
|
|
-----------------------------------------
|
|
|
|
-- Notificactiejob voor WENDER om vanuit Opdrachten Notities met bepaalde notitie-classificatie Meldpunt IT en Meldpunt Facilitair in te lichten
|
|
-- Flag = 17 (incl. xemail, xmobile)
|
|
CREATE OR REPLACE VIEW WEND_V_NOTI_SERVICEDESK_ORD -- ORD = Orders/Opdrachten
|
|
(
|
|
SENDER,
|
|
RECEIVER,
|
|
TEXT,
|
|
CODE,
|
|
FAC_SRTNOTIFICATIE_KEY,
|
|
KEY,
|
|
XKEY,
|
|
XEMAIL,
|
|
XMOBILE
|
|
)
|
|
AS
|
|
SELECT (SELECT prs_perslid_key
|
|
FROM prs_perslid
|
|
WHERE prs_perslid_upper = 'FACILITOR')
|
|
sender,
|
|
NULL
|
|
receiver,
|
|
'Opdrachtnotitie bij ' || TO_CHAR(o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) ||
|
|
' van ' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
|
|
text,
|
|
'CUST01'
|
|
code,
|
|
(SELECT fac_srtnotificatie_key
|
|
FROM fac_srtnotificatie
|
|
WHERE fac_srtnotificatie_code = 'CUST01')
|
|
fac_srtnotificatie_key,
|
|
o.mld_opdr_key
|
|
key,
|
|
n.mld_opdr_note_key
|
|
xkey,
|
|
ng.fac_note_group_omschrijving
|
|
xemail,
|
|
NULL
|
|
xmobile
|
|
FROM mld_melding m,
|
|
mld_opdr o,
|
|
mld_opdr_note n,
|
|
prs_perslid p,
|
|
fac_note_group ng
|
|
WHERE o.mld_opdr_key = n.mld_opdr_key
|
|
AND m.mld_melding_key = o.mld_melding_key
|
|
AND n.prs_perslid_key = p.prs_perslid_key
|
|
AND n.fac_note_group_key = ng.fac_note_group_key
|
|
AND (
|
|
(
|
|
ng.fac_note_group_key = 1 -- Notitie voor Facilitair (1)
|
|
AND
|
|
n.prs_perslid_key NOT IN
|
|
(SELECT gg.prs_perslid_key
|
|
FROM fac_gebruikersgroep gg, fac_groep g
|
|
WHERE gg.fac_groep_key = g.fac_groep_key
|
|
AND g.fac_groep_key = 41) -- Meldpunt Facilitair (41)
|
|
)
|
|
OR
|
|
(
|
|
ng.fac_note_group_key = 2 -- Notitie voor IT (2)
|
|
AND
|
|
n.prs_perslid_key NOT IN
|
|
(SELECT gg.prs_perslid_key
|
|
FROM fac_gebruikersgroep gg, fac_groep g
|
|
WHERE gg.fac_groep_key = g.fac_groep_key
|
|
AND g.fac_groep_key = 43) -- Meldpunt IT (43)
|
|
)
|
|
)
|
|
AND n.mld_opdr_note_aanmaak >=
|
|
(SELECT COALESCE(fac_notificatie_job_lastrun, trunc(sysdate))
|
|
FROM fac_notificatie_job
|
|
WHERE fac_notificatie_job_view ='WEND_V_NOTI_SERVICEDESK_ORD') ;
|
|
|
|
-------------------------------
|
|
--- NOTI-JOBS ---------------
|
|
-------------------------------
|
|
|
|
-- Contract-Rappel
|
|
--- Notificatie op contractbeheerder, verantwoordelijke en/of 2e aanspreekpunt
|
|
--- Onderstaand rapport is basisview en deze fungeert als bron voor de rappel-notificatie
|
|
CREATE OR REPLACE VIEW wend_v_cnt_rappel_basis
|
|
AS
|
|
SELECT d.ins_discipline_omschrijving,
|
|
c.cnt_contract_key,
|
|
c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie,
|
|
NULL, '',
|
|
'.' || c.cnt_contract_versie)
|
|
cnt_contract_nr,
|
|
c.cnt_contract_looptijd_van begindatum,
|
|
c.cnt_contract_looptijd_tot einddatum,
|
|
cnt.cnt_getopzegdatum (c.cnt_contract_key) cnt_opzegdatum,
|
|
cnt.cnt_getrappeldatum (c.cnt_contract_key) cnt_rappeldatum,
|
|
DECODE (cnt.cnt_contract_status (c.cnt_contract_looptijd_van,
|
|
cnt.cnt_getrappeldatum (c.cnt_contract_key),
|
|
cnt.cnt_getopzegdatum (c.cnt_contract_key),
|
|
c.cnt_contract_looptijd_tot),
|
|
0, lcl.l ('lcl_cnt_future'),
|
|
1, lcl.l ('lcl_cnt_topical'),
|
|
2, lcl.l ('lcl_cnt_warn'),
|
|
3, lcl.l ('lcl_cnt_cancel'),
|
|
4, lcl.l ('lcl_cnt_past'))
|
|
fase_actief,
|
|
DECODE (
|
|
c.cnt_contract_status,
|
|
0,
|
|
DECODE (fac.getsetting ('cnt_contract_approval'),
|
|
1, lcl.l ('lcl_cnt_active_approval'),
|
|
lcl.l ('lcl_cnt_active')),
|
|
1,
|
|
lcl.l ('lcl_cnt_inactive'),
|
|
2,
|
|
lcl.l ('lcl_cnt_new'),
|
|
3,
|
|
lcl.l ('lcl_cnt_forapproval'))
|
|
cnt_contract_status,
|
|
(SELECT kc.cnt_kenmerkcontract_waarde
|
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
|
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND k.cnt_kenmerk_key = 224) -- contractbeheerder
|
|
vink_beheerder,
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = c.prs_perslid_key_beh
|
|
AND p.prs_perslid_verwijder IS NULL)
|
|
beheerder_email,
|
|
(SELECT kc.cnt_kenmerkcontract_waarde
|
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
|
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND k.cnt_kenmerk_key = 223) -- contractverantwoordelijke
|
|
vink_verantwoordelijke,
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = c.prs_perslid_key_eig
|
|
AND p.prs_perslid_verwijder IS NULL)
|
|
veantwoordelijke_email,
|
|
(SELECT kc.cnt_kenmerkcontract_waarde
|
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
|
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND k.cnt_kenmerk_key = 225) -- rappel 2e aanspreekpunt
|
|
vink_2e_aanspreekpunt,
|
|
(SELECT p.prs_perslid_email
|
|
FROM prs_perslid p
|
|
WHERE p.prs_perslid_key = (SELECT fac.safe_to_number(kc.cnt_kenmerkcontract_waarde)
|
|
FROM cnt_kenmerkcontract kc, cnt_kenmerk k
|
|
WHERE k.cnt_kenmerk_key = kc.cnt_kenmerk_key
|
|
AND kc.cnt_contract_key = c.cnt_contract_key
|
|
AND k.cnt_kenmerk_key = 241)
|
|
AND p.prs_perslid_verwijder IS NULL)
|
|
tweede_aanspreekpunt_email
|
|
FROM cnt_v_aanwezigcontract c, ins_tab_discipline d, prs_afdeling a
|
|
WHERE c.ins_discipline_key = d.ins_discipline_key
|
|
AND d.ins_discipline_module = 'CNT'
|
|
AND c.prs_afdeling_key_eig = a.prs_afdeling_key ;
|
|
|
|
|
|
-- WEND: Contractbeheerder(_eig) is Beheerder/Administrateur en de Contractverantwoordelijke (_beh) is 1e aanspreekpunt die beslist over wel/niet verlengen. Tevens optie om 2e aanspreekpunt mee te nemen in rappel
|
|
CREATE OR REPLACE VIEW wend_v_noti_cntreminder
|
|
(
|
|
code,
|
|
sender,
|
|
receiver,
|
|
text,
|
|
key,
|
|
xkey,
|
|
xemail,
|
|
xmobile
|
|
)
|
|
AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
|
SELECT 'CNTMAI',
|
|
NULL,
|
|
c.prs_perslid_key_beh,
|
|
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
|
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
|
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM wend_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND v.cnt_contract_key = c.cnt_contract_key
|
|
AND v.vink_beheerder = 1
|
|
AND c.cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND c.prs_perslid_key_beh <> c.prs_perslid_key_eig -- als administrateur gelijk aan 1e aanspreekpunt dan dan sturen we de info-mail niet uit
|
|
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
|
(SELECT km.cnt_contract_key
|
|
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
|
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_key = 243)
|
|
UNION ALL -- Op rappel-datum ACTIE-mail naar het 1e aanspreekpunt sturen (contractverantwoordelijke)
|
|
SELECT 'CUST02',
|
|
NULL,
|
|
c.prs_perslid_key_eig,
|
|
'ACTIE: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
|
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
|
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
NULL,
|
|
NULL,
|
|
NULL
|
|
FROM wend_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND v.cnt_contract_key = c.cnt_contract_key
|
|
AND v.vink_verantwoordelijke = 1
|
|
AND c.cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND c.prs_perslid_key_eig IS NOT NULL
|
|
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
|
(SELECT km.cnt_contract_key
|
|
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
|
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_key = 243)
|
|
UNION ALL -- Op rappel-datum INFO-mail naar het tweede aanspreekpunt
|
|
SELECT 'CUST03',
|
|
NULL,
|
|
NULL,
|
|
'TER INFO: Rappel verstuurd voor contract ' || c.cnt_contract_nummer_intern
|
|
|| DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|
|
|| ' (' || c.cnt_contract_omschrijving || ' ' || b.prs_bedrijf_naam || ')'
|
|
|| ' - Moet uiterlijk per ' || TO_CHAR (cnt.cnt_getopzegdatum (c.cnt_contract_key), 'dd-mm-yyyy')
|
|
|| ' worden verlengd of opgezegd.',
|
|
c.cnt_contract_key,
|
|
NULL,
|
|
v.tweede_aanspreekpunt_email,
|
|
NULL
|
|
FROM wend_v_cnt_rappel_basis v, cnt_v_aanwezigcontract c, prs_bedrijf b
|
|
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
|
|
AND v.cnt_contract_key = c.cnt_contract_key
|
|
AND v.vink_2e_aanspreekpunt = 1
|
|
AND v.tweede_aanspreekpunt_email IS NOT NULL
|
|
AND c.cnt_contract_status = 0
|
|
AND cnt.cnt_getrappeldatum (c.cnt_contract_key) = TRUNC (SYSDATE)
|
|
AND NOT EXISTS -- kenmerkveld 'Opgezegd' staat uit
|
|
(SELECT km.cnt_contract_key
|
|
FROM cnt_kenmerkcontract km, cnt_kenmerk k
|
|
WHERE km.cnt_contract_key = c.cnt_contract_key AND km.cnt_kenmerk_key = k.cnt_kenmerk_key AND k.cnt_kenmerk_key = 243)
|
|
;
|
|
|
|
|
|
|
|
|
|
------ payload end ------
|
|
|
|
SET DEFINE OFF
|
|
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
|
/
|
|
|
|
COMMIT;
|
|
SET ECHO OFF
|
|
SPOOL OFF
|
|
SET DEFINE ON
|
|
PROMPT Logfile of this upgrade is: &fcltlogfile
|