VGLD#82798 Mareon Factuurscanning aanzetten voor VGLD

svn path=/Customer/trunk/; revision=65317
This commit is contained in:
Suzan Wiegerinck
2024-06-27 12:59:20 +00:00
parent 75d18b9c49
commit 356daa1a42

View File

@@ -2256,6 +2256,167 @@ AS
AND b.prs_perslid_key_voor = pf2.prs_perslid_key
AND fac_activiteit_key IS NULL;
/* Formatted on 27-6-2024 11:39:30 (QP5 v5.336) */
CREATE OR REPLACE PROCEDURE vgld_import_fin_factuur_marx (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
BEGIN
v_seq_of_columns :=
'1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28';
fac_import_factuur_body (p_import_key, v_seq_of_columns);
END;
/
CREATE OR REPLACE PROCEDURE vgld_update_fin_factuur_marx (p_import_key IN NUMBER)
AS
v_aanduiding VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
c_kenmerk_key_bijlage NUMBER (10);
c_kenmerk_key_soort VARCHAR (1) := 'M'; -- fin_kenmerk_kenmerktype = M(foldermap) of F(enkelvoudig bestand)
v_aanduiding_controle VARCHAR2 (1000); -- Voor logging op bijbehorende controle zodat men weet wat men moet controleren
v_fin_factuur_key NUMBER(10);
v_perslid_key PRS_PERSLID.PRS_PERSLID_KEY%TYPE;
CURSOR cfactuur
IS
SELECT i.fin_factuur_key, factuurdatum, i.kenmerk1, i.kenmerk2, i.kenmerk3, i.kenmerk6, i.kenmerk7, i.kenmerk8, i.kenmerk9, i.factuurnr, i.fac_imp_file_index, f.fin_factuur_totaal, f.fin_factuur_totaal_btw, f.mld_opdr_key, f.cnt_contract_key, f.bes_bestelopdr_key
FROM fac_imp_factuur i, fin_factuur f
WHERE i.fin_factuur_key IS NOT NULL
AND i.fac_import_key = p_import_key
AND f.fin_factuur_key = i.fin_factuur_key -- Incl bijlage
AND kenmerk1 IS NOT NULL;
BEGIN
-- Nu kunnen we de standaard FCLT verwerk import facturen draaien
fac_update_factuur (p_import_key);
-- CUST: post processing voor verwerking van het PDF document
SELECT MIN (fin_kenmerk_key)
INTO c_kenmerk_key_bijlage
FROM fin_kenmerk
WHERE fin_kenmerk_code = 'FACTUURBESTAND' AND fin_kenmerk_verwijder IS NULL;
FOR rec IN cfactuur
LOOP
BEGIN
LOOP
BEGIN
-- Als er een bijlage-flexprop en een bijlage is, dan gaan we deze PDF hier inzetten....
IF c_kenmerk_key_bijlage IS NOT NULL AND rec.kenmerk1 IS NOT NULL
THEN
BEGIN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
'IMPORT:' || TO_CHAR (p_import_key),
'flexcode',
'FIN:'
|| TO_CHAR (rec.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
|| ':'
|| c_kenmerk_key_bijlage
|| ':' -- De kenmerk key
|| c_kenmerk_key_soort -- 'F of M'
);
-- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
-- Aanvulling JM: Voor F-enkelvoudig bestand wel nodig om kenmerk aan te maken, voor M-folder hoeft/moet dit niet
IF c_kenmerk_key_soort = 'F'
THEN
INSERT INTO fin_kenmerkfactuur (fin_factuur_key,
fin_kenmerk_key,
fin_kenmerkfactuur_waarde)
VALUES (rec.fin_factuur_key,
c_kenmerk_key_bijlage,
rec.kenmerk1);
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_aanduiding_controle :=
'Van factuur met key '
|| rec.fin_factuur_key
|| ' is de bestandsnaam niet bewaard (regel '
|| rec.fac_imp_file_index
|| ')';
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding_controle,
'Factuurnr:'
|| rec.factuurnr
|| ' / Bestandsnaam: '
|| rec.kenmerk1);
END;
COMMIT;
END IF;
END;
END LOOP;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
-- ROLLBACK;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
SELECT MAX (i.fin_factuur_key)
fin_factuur_key,
'Betreft factuur_key '
|| TO_CHAR (i.fin_factuur_key)
|| ' - Factuurnr '
|| i.factuurnr
INTO v_fin_factuur_key, v_errorhint
FROM fac_imp_factuur i, fin_factuur f
WHERE i.fac_import_key = p_import_key AND i.fin_factuur_key = f.fin_factuur_key(+)
GROUP BY i.fin_factuur_key,
'Betreft factuur_key '
|| TO_CHAR (i.fin_factuur_key)
|| ' - Factuurnr '
|| i.factuurnr;
IF v_fin_factuur_key IS NOT NULL
THEN
UPDATE fin_factuur
SET fin_factuur_statuses_key = 3,
fin_factuur_opmerking =
SUBSTR (
'Bij factuurimport is volgende Errormessage gemeld: '
|| v_errormsg
|| CHR (13)
|| CHR (10)
|| 'Actie 1: Informeren Facilitor'
|| CHR (13)
|| CHR (10)
|| 'Actie 2: Factuur gewoon oppakken: Aanvullen, doorzetten, etc',
1,
250)
WHERE fin_factuur_key = v_fin_factuur_key;
v_aanduiding := 'Factuur geimporteerd vanuit Mareon';
fac.trackaction ('FINUPD',
v_fin_factuur_key,
v_perslid_key,
NULL,
v_aanduiding);
END IF;
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint || ' - ' || v_aanduiding);
COMMIT;
END;
/
------ payload end ------
SET DEFINE OFF