From 557c462a252c8feb3ea68aa7d29ca043d531a86d Mon Sep 17 00:00:00 2001 From: Norbert Wassink Date: Mon, 8 Sep 2025 11:03:15 +0000 Subject: [PATCH] YKPN#84338 -- Evenementmanagement - Mail to reservering aanpassing notificatie en extra kenmerken svn path=/Customer/trunk/; revision=70236 --- YKPN/ykpn.sql | 148 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 122 insertions(+), 26 deletions(-) diff --git a/YKPN/ykpn.sql b/YKPN/ykpn.sql index ff2f4fe3b..cc967c91f 100644 --- a/YKPN/ykpn.sql +++ b/YKPN/ykpn.sql @@ -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