BRED#84141 -- Implementatie Bredenoord B.V. - procedures en rapportages definitief

svn path=/Customer/trunk/; revision=68385
This commit is contained in:
Jos Migo
2025-03-12 20:15:12 +00:00
parent 911afc7e66
commit 741ec75a0b

View File

@@ -138,12 +138,12 @@ AS
pemailkey IN NUMBER)
AS
c_onbekend_key NUMBER (10) := 9; -- Melder onbekend
c_leverancier_M2M_key NUMBER (10) := 81; -- Leverancier_key M2M
c_leverancier_M2M_key NUMBER (10) := 81; -- Leverancier_key M2M
defaultstdmelding fac_setting.fac_setting_default%TYPE;
c_locatie_key NUMBER (10) := 2 ; -- Apeldoorn
c_gebouw_key NUMBER (10) := 10 ; -- Woudhuis Kantoor
c_gebouw_key NUMBER (10) := 10 ; -- Woudhuis Kantoor
c_folder_kkey NUMBER (10) := 1 ; -- standaard folder_kenmerk_key
c_folder_opdr_kkey NUMBER (10) := 121 ; -- standaard folder_kenmerk_key tbv opdrachten
c_folder_opdr_kkey NUMBER (10) := 121 ; -- standaard folder_kenmerk_key tbv opdrachten
v_prs_werkplek_key NUMBER (10);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
@@ -158,6 +158,7 @@ AS
v_kostenplaats_key NUMBER (10);
v_discipline_key NUMBER (10);
v_melding_key NUMBER (10);
v_behandelaar2_key NUMBER (10);
v_folder_kkey NUMBER (10);
v_count NUMBER (10);
v_count_wp NUMBER (10);
@@ -167,7 +168,7 @@ AS
v_from_string VARCHAR2 (1000) := NULL;
v_voor_at VARCHAR2 (1000) := '';
v_na_at VARCHAR2 (1000) := '';
v_forward_soort NUMBER (1) := 2 ; -- 0 = De mail wordt direct van aanvrager doorgestuurd naar het facilitor-emailadres
v_forward_soort NUMBER (1) := 1 ; -- 0 = De mail wordt direct van aanvrager doorgestuurd naar het facilitor-emailadres
-- 1 = De mail wordt via eigen centrale klant-postbus automatisch geforward naar het facilitor-emailadres
-- 2 = De mail wordt via eigen centrale klant-postbus handmatig aangevuld en daarna geforward naar het facilitor-emailadres
v_forward_0 NUMBER (1) := 0 ;
@@ -259,30 +260,10 @@ AS
v_mailbody_notitie := v_mailbody_notitie_1 ;
END IF;
--- 2. DE MAILER BEPALEN (FROM-ADRES)
----- NOG UITWERKEN - HELE STUK UIT CASE-SERVICEDESK HIERONDER PLAATSEN...
--- 2. HET FROM-ADRES VAN DE MAILER/NOTEUR BEPALEN UIT MAILBODY (V_FW_FROM)
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, '>', ''),
'<',
'');
CASE
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
THEN
defaultstdmelding := fac.getsetting ('defaultstdmelding');
-- 1. HANDMATIG doorgestuurd vanuit eigen postbus servicedesk-team
-- Voorbeeld BRED: Van: Ruard Turksma <R.Turksma@bredenoord.com>
-- Dus eerst op zoek naar eerste VAN-regel
v_from_string :=
-- Dus eerst op zoek naar eerste VAN-regel
v_from_string :=
SUBSTR (pbody,
REGEXP_INSTR (pbody,
'Van:|From:|E-mail:',
@@ -304,7 +285,7 @@ AS
IF v_from_string IS NOT NULL
AND INSTR (v_from_string, '@') > 0
THEN
-- Als in die VAN-regel de structuur is 'alias_naam <maliadres>' dan moeten we tussen de haken het emailadres bepalen..
-- Als in die VAN-regel de structuur is 'alias_naam <mailadres>' dan moeten we tussen de haken het emailadres bepalen..
IF INSTR (v_from_string,
'<',
1,
@@ -378,8 +359,8 @@ AS
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...
ELSE -- Als er in mailboby geen "Van: met email-adres" dan maar terugvallen op from_adress uit fac_result
SELECT fac_result_waarde
INTO v_fac_result_fromaddr
FROM fac_result
@@ -392,11 +373,22 @@ AS
'');
v_fw_from := v_fac_result_fromaddr ;
END IF;
v_fw_from := SUBSTR (v_fw_from, 1, 50);
-- Tot slot FROM-email-adres heeft restrictie van 200
v_fw_from := SUBSTR (v_fw_from, 1, 200);
-- Bepaal de melder/noteur op basis van e-mail adres zoals in v_fw_from
---- MAILINSTELLING - SERVICEDESK TBV MELDINGEN
CASE
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
THEN
defaultstdmelding := fac.getsetting ('defaultstdmelding');
-- Bepaal de melder/noteur op basis van e-mail adres zoals bepaald in v_fw_from
v_errormsg :=
'Fout bepalen melder ' || COALESCE (pfrom, '???');
@@ -490,11 +482,12 @@ AS
WHERE mld_melding_key = fac.safe_to_number (v_exist_ticket);
-- Om te voorkomen dat we andere nummers in onderwerpveld ten onrechte als Facilitor-meldingsnummer gaan zien, de meldings-sequence vanag 10000 gezet en daar dus op zoeken
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
IF v_count = 1 AND fac.safe_to_number (v_exist_ticket) > 10000
THEN -- Notitie bij bestaande melding!
-- bestaande melding ophalen inclusief aanvrager_key omdat we deze ivm forward op bred-emailadres niet goed doorkrijgen in FROM-adres..
SELECT mld_stdmelding_key, mld_melding_key, prs_perslid_key
INTO v_stdmelding_key, v_melding_key, v_perslid_key
FROM mld_melding
WHERE mld_melding_key =
fac.safe_to_number (v_exist_ticket);
@@ -512,7 +505,56 @@ AS
v_mailbody_notitie,
0);
-- VOOR DE TEST NOG EVEN DE GESPLITSTE NOTITIES TONEN
-- Bepalen van de actieve behandelaar van deze melding
BEGIN
SELECT mld_melding_behandelaar2_key
INTO v_behandelaar2_key
FROM mld_melding m, prs_perslid p
WHERE mld_melding_key = v_melding_key
AND mld_melding_behandelaar2_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN OTHERS
THEN
v_behandelaar2_key := NULL;
END;
IF v_behandelaar2_key IS NOT NULL
THEN
-- Bestaande melding en behandelaar is bekend.
-- Notificatie naar behandelaar
fac.putnotificationsrtprio (
NULL,
v_behandelaar2_key,
'MLDNOB',
v_melding_key,
'Melding ' || v_melding_key || ' is door de aanvrager via M2M aangepast.',
2,
NULL,
NULL,
NULL,
2,
NULL);
END IF; -- Bestaande melding en behandelaar is bekend.
-- 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;
-- VOOR DE TEST NOG EVEN DE GESPLITSTE NOTITIES EN MAIL_ADRES_AANVRAGER-BEPALING IN KENMERKEVELDEN ZETTEN
BEGIN mld.upsertmeldingkenmerk (102, v_melding_key, v_forward_soort); END;
BEGIN mld.upsertmeldingkenmerk (103, v_melding_key, v_voor_at || '@' || v_na_at); END;
BEGIN mld.upsertmeldingkenmerk (104, v_melding_key, v_voor_at); END;
BEGIN mld.upsertmeldingkenmerk (105, v_melding_key, v_na_at); END;
BEGIN mld.upsertmeldingkenmerk (106, v_melding_key, v_fac_result_fromaddr); END;
BEGIN mld.upsertmeldingkenmerk (107, v_melding_key, v_mailbody_notitie_1); END;
BEGIN mld.upsertmeldingkenmerk (108, v_melding_key, v_mailbody_notitie_2); END;
BEGIN mld.upsertmeldingkenmerk (109, v_melding_key, v_mailbody_notitie_3); END;
@@ -526,11 +568,7 @@ AS
'Notitie onder exist-melding '
|| v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet! - DEZE NOG NETJES INPASSEN + NOTIFICATIE MLDNOB NAAR BEHANDELAAR DIRECT DOEN!!
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
ELSE
@@ -642,6 +680,7 @@ AS
|| '\');
END IF;
---- MAILINSTELLING - SERVICEDESK _PLANNING TBV OPDRACHTEN
WHEN UPPER (pto) LIKE 'SERVICEDESK_PLANNING@%'
THEN
-- Probeer noteur te bepalen op basis van e-mail adres tussen '<>' na eerste voorkomen 'Van:'!
@@ -1124,6 +1163,62 @@ SELECT mld_uitvoerende_key,
FROM bred_v_rap_opdrachten
ORDER BY geplande_aanvang_b ;
-- O.a. voor beheer nieuwe medewerkers en inactieve mederwerkers en koppeling object voor registreren van de uitgegeven middelen
CREATE OR REPLACE VIEW bred_v_rap_personenbeheer
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
PRS_PERLSID_EMAIL,
PRS_PERSLID_TELNR,
PRS_PERSLID_MOBIEL,
PRS_AFDELING_OMSCHRIJVING,
PRS_PERSLID_AANMAAK,
PRS_PERSLID_INDIENST,
PRS_PERSLID_UITDIENST,
PRS_PERSLID_INACTIEF,
PRS_PERSLID_INACTIEF_V,
PRS_PERSLID_VERWIJDER,
PRS_PERSLID_VERWIJDER_V,
OBJECT_MIDDEL_ACTIEF
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam
prs_perslid_naam,
p.prs_perslid_email,
p.prs_perslid_telefoonnr,
p.prs_perslid_mobiel,
a.prs_afdeling_omschrijving || ' (' || a.prs_afdeling_upper || ')'
prs_afdeling_omschrijving,
p.prs_perslid_aanmaak,
p.prs_perslid_ingangsdatum
prs_perslid_indienst,
p.prs_perslid_einddatum
prs_perslid_uitdienst,
p.prs_perslid_inactief,
CASE WHEN p.prs_perslid_inactief IS NOT NULL THEN 'ja' ELSE 'nee' END
prs_perslid_inactief_v,
p.prs_perslid_verwijder,
CASE WHEN p.prs_perslid_verwijder IS NOT NULL THEN 'ja' ELSE 'nee' END
prs_perslid_verwijder_v,
CASE WHEN d.prs_perslid_key IS NOT NULL THEN 'ja' ELSE 'nee' END
object_middel_actief
FROM prs_perslid p, prs_v_afdeling a, prs_bedrijf b,
(SELECT ins_alg_ruimte_key prs_perslid_key
FROM ins_deel d
WHERE d.ins_Srtdeel_key = 41 AND ins_alg_ruimte_type = 'P'
AND ins_deel_verwijder IS NULL
AND ins_deel_actief = 1
AND (ins_deel_vervaldatum IS NULL OR TRUNC(ins_deel_vervaldatum) <= TRUNC(SYSDATE) )
) d
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = 8
AND p.prs_perslid_key = d.prs_perslid_key (+)
;
-- Dagelijkse taak
CREATE OR REPLACE PROCEDURE bred_daily
AS