YKPN#84338 -- Evenementmanagement - Mail to reservering aanpassing notificatie en extra kenmerken

svn path=/Customer/trunk/; revision=70236
This commit is contained in:
Norbert Wassink
2025-09-08 11:03:15 +00:00
parent c060be732c
commit 557c462a25

View File

@@ -140,6 +140,7 @@ END;
CREATE OR REPLACE PACKAGE BODY YKPN
AS
PROCEDURE mail_evenementaanvraag(pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
@@ -185,6 +186,9 @@ AS
v_starttijd_label VARCHAR2 (1000);
v_eindtijd_label VARCHAR2 (1000);
v_genodigden_label VARCHAR2 (1000);
v_locatie_label VARCHAR2 (1000);
v_catering_label VARCHAR2 (1000);
v_bhv_label VARCHAR2 (1000);
v_stdmelding_key NUMBER;
@@ -195,8 +199,10 @@ AS
v_rrr_key NUMBER;
v_reservering_key NUMBER;
v_message VARCHAR2(250);
v_reservering_nr VARCHAR2(200);
v_aanvrager_email prs_perslid.prs_perslid_email%TYPE;
v_aanvrager VARCHAR2(100);
v_onderwerp mld_melding.mld_melding_onderwerp%type;
v_omschrijving VARCHAR2(4000);
v_alg_gebouw_key alg_gebouw.alg_gebouw_key%TYPE;
@@ -204,6 +210,10 @@ AS
v_starttijd VARCHAR2(4000);
v_eindtijd VARCHAR2(4000);
v_genodigden VARCHAR2(4000);
v_locatie VARCHAR2(4000);
v_catering VARCHAR2(4000);
v_cateraar_email VARCHAR2(200);
v_bhv VARCHAR2(4000);
v_stdmelding_uvt mld_stdmelding.mld_stdmelding_t_uitvoertijd%TYPE
:= MLD_T_UITVOERTIJD (NULL, NULL); -- constructor initialisatie
@@ -257,37 +267,47 @@ AS
v_error:=0;
v_reserveringnr_label:= 'Reserveringsnummer:';
v_reserveringnr_label:='Reserveringsnummer:';
v_omschrijving_label:='Geef een omschrijving van het evenement:';
v_aanvrager_label:='Wie is de opdrachtgever?';
v_onderwerp_label:='Wat is de naam van het evenement?';
v_datum_label:='Datum evenement';
v_starttijd_label:='Begintijd';
v_eindtijd_label:='Eindtijd';
v_datum_label:='Wanneer vindt het evenement plaats?';
v_starttijd_label:='Wat is de beoogde aanvangstijd?';
v_eindtijd_label:='Wat is de beoogde eindtijd?';
v_locatie_label := 'Om welke KPN locatie gaat het?';
v_catering_label:='Heb je catering nodig bij jouw evenement?';
DELETE imp_log WHERE imp_log_applicatie = 'MAIL_EVENEMENTAANVRAAG'; -- AND imp_log_datum < SYSDATE - 14;
-- De bais velden inlezen
v_errorhint := 'Opzoeken velden in de mail';
v_reserveringnr_label:='Reserveringsnummer:';
v_reservering_nr := findstr(pbody, v_reserveringnr_label,CHR(10));
v_aanvrager_email := findstr(pbody, v_aanvrager_label|| CHR(10),CHR(10));
v_onderwerp := findstr(pbody, v_onderwerp_label|| CHR(10),CHR(10));
v_omschrijving := findstr(pbody, v_omschrijving_label|| CHR(10),CHR(10));
v_locatie := findstr(pbody, v_locatie_label|| CHR(10),CHR(10));
v_catering := findstr(pbody, v_catering_label|| CHR(10),CHR(10));
v_datum := findstr(pbody, v_datum_label|| CHR(10),CHR(10));
v_starttijd :=findstr(pbody, v_starttijd_label|| CHR(10),CHR(10));
v_eindtijd := findstr(pbody, v_eindtijd_label|| CHR(10),CHR(10));
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_reservering_nr='||v_reservering_nr ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_aanvrager_email='||v_aanvrager_email, '');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_onderwerp='||v_onderwerp ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_omschrijving='||v_omschrijving, '');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_aanvrager_email='||v_aanvrager_email, '');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_onderwerp='||v_onderwerp ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_omschrijving='||v_omschrijving, '');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_locatie_key='||v_locatie_key ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_onrgoed_key='||v_onrgoed_key ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_rrr_key='||v_rrr_key ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'catering ='||v_catering ,'');
v_errormsg:='Ophalen aanvrager mislukt';
BEGIN
SELECT prs_perslid_key
INTO v_perslid_key
SELECT prs_perslid_key ,prs_perslid_voornaam||' '||prs_perslid_naam
INTO v_perslid_key , v_aanvrager
FROM prs_perslid
WHERE UPPER(prs_perslid_email) = UPPER(v_aanvrager_email)
AND prs_perslid_verwijder IS NULL
@@ -295,9 +315,11 @@ AS
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_perslid_key:=3;
END;
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_perslid_key='||v_perslid_key ,'');
v_aanvrager:=NULL;
END;
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_perslid_key='||v_perslid_key ,'');
v_errormsg:='Ophalen reservering mislukt';
IF LENGTH(v_reservering_nr)>1
THEN
BEGIN
@@ -331,19 +353,46 @@ AS
WHEN NO_DATA_FOUND
THEN
v_errormsg:='De reservering Nr is niet gevonden';
v_onrgoed_key:=-1;
v_locatie_key:=-1;
v_reservering_key:=-1;
v_rrr_key:=NULL;
v_error:=1;
END;
END IF;
IF (v_onrgoed_key>0 AND v_locatie>0)
THEN
v_errormsg:='De gebouw omschrijving niet gevonden';
BEGIN
SELECT MIN (alg_onrgoed_key) alg_gebouw_key,
alg_locatie_key
INTO v_onrgoed_key,
v_locatie_key
FROM ALG_ONRGOEDKENMERK aok, alg_kenmerk ak,
ALG_V_ONROERENDGOED_GEGEVENS a
WHERE ak.ALG_KENMERK_CODE = 'GEBOUW_CODE_EVENTS'
AND aok.ALG_KENMERK_KEY = ak.ALG_KENMERK_KEY
AND aok.ALG_ONRGOED_NIVEAU = 'G'
AND UPPER (aok.ALG_ONRGOEDKENMERK_WAARDE) =
UPPER (v_locatie)
AND aok.ALG_ONRGOEDKENMERK_VERWIJDER IS NULL
AND a.ALG_GEBOUW_KEY=alg_onrgoed_key
GROUP BY a.alg_locatie_key;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_onrgoed_key:=30721; -- default naar gebou landelijk
v_locatie_key:=841; -- default locatie landelijk
END;
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_locatie_key='||v_locatie_key ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_onrgoed_key='||v_onrgoed_key ,'');
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'v_rrr_key='||v_rrr_key ,'');
ELSE
v_errormsg:='De reservering Nr niet in de email gevonden';
v_error:=1;
END IF;
IF v_error=0 THEN
v_errormsg:='Toevoegen melding mislukt';
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_alg_locatie_key,
@@ -375,7 +424,7 @@ AS
NULL,
3, -- prio normaal
0,
v_rrr_key)
DECODE(v_rrr_key,-1,NULL,v_rrr_key))
RETURNING mld_melding_key
INTO v_melding_key;
@@ -385,7 +434,11 @@ AS
-- Gaan we de reservereing updaten met de melding_key
v_errormsg := 'Fout bij updte reservering';
UPDATE res_reservering set mld_melding_key=v_melding_key WHERE res_reservering_key=v_reservering_key;
IF v_reservering_key>0
THEN
UPDATE res_reservering set mld_melding_key=v_melding_key WHERE res_reservering_key=v_reservering_key;
END IF;
-- Mail in de notitie
v_errormsg := 'Fout bij toevoegen melding notitie';
INSERT INTO mld_melding_note(mld_melding_key,
@@ -408,13 +461,56 @@ AS
v_errormsg := 'Fout bij toevoegen toevoegen kenmerk '||rec.Tekstlabel;
v_kenmerk_key := getKenmerkKey(rec.Tekstlabel, v_stdmelding_key);
IF LENGTH(v_value)>0 AND v_kenmerk_key>0 THEN
mld.upsertmeldingkenmerk(v_kenmerk_key, v_melding_key, v_value);
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', rec.Tekstlabel||'-'||v_value||'('||v_kenmerk_key||')', '');
mld.upsertmeldingkenmerk(v_kenmerk_key, v_melding_key, v_value);
END IF;
END LOOP;
v_errormsg := 'Fout bij toevoegen notificatie';
IF INSTR(UPPER(v_catering),'JA')>0
THEN
BEGIN
-- Notificatie naar de cateraar versturen
SELECT aok.alg_onrgoedkenmerk_waarde
INTO v_cateraar_email
FROM alg_onrgoedkenmerk aok, alg_kenmerk ak
WHERE ak.alg_kenmerk_key = 1063 -- Email adres cateraar
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
AND aok.alg_onrgoed_niveau = 'G'
AND aok.alg_onrgoed_key =v_locatie_key
AND aok.alg_onrgoedkenmerk_verwijder IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_cateraar_email:='fallback@cirfood.nl';
END;
FAC.trackaction ('CUST26', v_melding_key, NULL, NULL, '#Mail naar cateraar gestuurd naar: ' || v_cateraar_email);
v_message:='Op '||v_datum||' heeft aanvrager '||v_aanvrager||' een event van '||v_starttijd||' tot '||v_eindtijd||'. Hiervoor heeft aanvrager catering nodig. Graag contact opnemen met '||v_aanvrager_email;
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
prs_perslid_key_receiver,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit)
VALUES (901, -- CUST26
2, -- mail
v_cateraar_email, -- email
null,
v_message,
v_melding_key,
NULL,
2);
fac.writelog('MAIL_EVENEMENTAANVRAAG', 'I', 'Notificatie naar cateraar'|| v_cateraar_email, '');
END IF;
-- Starten we nu de workflow
MLD.mld_nextworkflowstep (v_melding_key, -1);
@@ -3139,7 +3235,7 @@ AS
END;
/
-- EINDE BODY