MARX#73871 Mogelijkheid van 1 mailadres voor zowel XML als PDF

svn path=/Mareon/trunk/; revision=60634
This commit is contained in:
Marcel Bourseau
2023-06-05 14:59:01 +00:00
parent 5691aba06b
commit 5ba903baf1

View File

@@ -14289,6 +14289,7 @@ CREATE OR REPLACE PROCEDURE marx_add_contract_leverancier (p_import_key
v_prs_perslid_key IN NUMBER,
v_prs_contactpersoon_key IN NUMBER,
v_prs_perslid_apikey IN VARCHAR2,
v_fac_email_setting_user IN VARCHAR2,
v_prs_overeenkomst_nr IN VARCHAR2)
AS
v_prs_bedrijf_naam VARCHAR2 (100);
@@ -14299,6 +14300,8 @@ AS
v_mailtoken VARCHAR2 (100);
v_fac_email_setting_attachpath VARCHAR2 (1000);
v_extensie VARCHAR2 (20);
v_extensie_verplicht VARCHAR2 (20);
v_fac_email_setting_volgnr NUMBER(10);
c_test_of_prod VARCHAR2 (100);
BEGIN
SELECT MAX (prs_bedrijf_naam)
@@ -14398,8 +14401,15 @@ BEGIN
'PDF')
AND v_mail2api_folder IS NOT NULL
THEN
-- fac_email_setting_user wordt runtime bepaalt aan de hand van prefix factuur, gevolgd door de unieke prs_bedrijf_key van de woco, gevolgd door een random 16-teken string.
v_mailtoken := 'factuur_' || v_prs_bedrijf_woco_key || '_' || DBMS_RANDOM.STRING ('x', 16);
-- Als parameter 'v_fac_email_setting_user' wordt meegegeven, dan bepaalt deze het mailadres (= kolom user) van fac_email_setting, en anders
-- wordt fac_email_setting_user runtime bepaald aan de hand van prefix factuur, gevolgd door de unieke prs_bedrijf_key van de woco, gevolgd door een random 16-teken string.
IF v_fac_email_setting_user IS NOT NULL
THEN
-- MARX#73871 Mogelijkheid van 1 mailadres voor zowel XML als PDF
v_mailtoken := v_fac_email_setting_user;
ELSE
v_mailtoken := 'factuur_' || v_prs_bedrijf_woco_key || '_' || DBMS_RANDOM.STRING ('x', 16);
END IF;
-- fac_email_setting_attachpath is afhankelijk van XML of PDF.
-- Bij XML gebruiken we een absoluut pad (v_mail2api_folder, dwz setting uit eigen tabel), die eindigt op een backslash \, althans dat moet!
@@ -14407,6 +14417,7 @@ BEGIN
IF v_prs_overeenkomst_nr = 'PDF'
THEN
SELECT DECODE (fac.getsetting ('fac_otap'), 'P', 'P', 'A', 'T', 'T') INTO c_test_of_prod FROM DUAL;
v_fac_email_setting_attachpath :=
'@/appl/marx/export/bctadapter.asp?eCapture='
@@ -14425,7 +14436,9 @@ BEGIN
|| 'subject={2}'
|| '&'
|| 'filename={filename}';
v_extensie := 'pdf';
v_extensie := '.*\.(pdf)$';
v_extensie_verplicht := '.*\.(pdf)$';
v_fac_email_setting_volgnr := 10;
ELSE
SELECT v_mail2api_folder
|| DECODE (v_prs_overeenkomst_nr,
@@ -14441,13 +14454,18 @@ BEGIN
FROM DUAL;
v_extensie := '.*\.(xml|pdf)$';
v_extensie_verplicht := '.*\.(xml)$';
v_fac_email_setting_volgnr := 5;
END IF;
INSERT INTO fac_email_setting (fac_email_setting_user,
fac_email_setting_frommode,
fac_email_setting_attachpath,
fac_email_setting_attachext)
SELECT v_mailtoken, 0, v_fac_email_setting_attachpath, v_extensie FROM DUAL;
fac_email_setting_attachext,
fac_email_setting_reqattachext,
fac_email_setting_volgnr
)
SELECT v_mailtoken, 0, v_fac_email_setting_attachpath, v_extensie, v_extensie_verplicht,v_fac_email_setting_volgnr FROM DUAL;
fac.imp_writelog (
p_import_key,
@@ -14905,6 +14923,7 @@ AS
v_loginnaam VARCHAR2 (255);
v_perslid_loginnaam_gevonden NUMBER (10);
v_prs_perslid_email VARCHAR2 (255);
v_fac_email_setting_user VARCHAR2 (255);
v_prs_bedrijf_woco_key NUMBER (10);
v_prs_afdeling_key NUMBER (10);
@@ -14920,6 +14939,8 @@ BEGIN
FOR rec IN c1
LOOP
BEGIN
v_fac_email_setting_user := NULL;
SELECT MAX (prs_bedrijf_key)
INTO v_prs_bedrijf_key
FROM prs_bedrijf
@@ -15053,6 +15074,22 @@ BEGIN
v_prs_perslid_email := NULL;
v_perslid_loginnaam_gevonden := 1; -- init
v_loginnaam := SUBSTR (rec.oslogin, 1, 30);
IF rec.prs_bedrijf_contract = 1
THEN
-- MARX#73871 Mogelijkheid van 1 mailadres voor zowel XML als PDF.
-- In de laatste kolom in de FIP-sheet kan voortaan voor 2 verschillende perslid's hetzelfde mailadres worden meegegeven tbv 1 mailadres in fac_email_setting
-- Bijvoorbeeld:
-- Ymere-100 Factuurscanning;100;;;PDF;;;;;;;;;;;;;;;facturen.ymere.100@mareon.nl
-- Ymere-100 E-invoicing;100;;;XML;;;;;;;;;;;;;;;facturen.ymere.100@mareon.nl
-- Maar de inlognaam bij perslid moet natuurlijk wel uniek worden, daarom een prefix van prs_overeenkomst_nr
-- Als die al uniek was, dan wordt die nog unieker ;-) (maw kan geen kwaad om dit onvoorwaardelijk te doen)...
IF rec.prs_overeenkomst_nr IS NOT NULL
THEN
v_loginnaam := SUBSTR(rec.prs_overeenkomst_nr || '.' || v_loginnaam, 1, 30);
END IF;
END IF;
IF v_loginnaam IS NOT NULL
@@ -15080,6 +15117,12 @@ BEGIN
THEN
-- . zit na de @, dit is een mailadres, dus we gaan dit mailadres in de prs_perslid die zodadelijk wordt geinsert, toevoegen
v_prs_perslid_email := rec.oslogin;
v_fac_email_setting_user := v_prs_perslid_email;
IF rec.prs_overeenkomst_nr IS NOT NULL
THEN
v_prs_perslid_email := rec.prs_overeenkomst_nr || '.' || v_prs_perslid_email;
END IF;
END IF;
END IF;
@@ -15248,6 +15291,7 @@ BEGIN
v_prs_perslid_key,
v_prs_contactpersoon_key,
v_prs_perslid_apikey,
v_fac_email_setting_user,
rec.prs_overeenkomst_nr);
-- Reset van overeenkomstnummer (hier stond term PDF, UBL, SALES005 etc), die gaan we nu leeg maken....
@@ -15798,6 +15842,7 @@ BEGIN
v_prs_perslid_key,
v_prs_contactpersoon_key,
v_prs_perslid_apikey,
v_prs_perslid_email,
rec.prs_overeenkomst_nr);
ELSE
IF v_prs_bedrijf_key IS NULL