FSN#40049: Facilitor opdrachten via Mareon kunnen verstrekken

svn path=/Customer/; revision=34674
This commit is contained in:
Marcel Bourseau
2017-07-19 19:04:36 +00:00
parent 31203f6a48
commit fdc0d08bf3

148
onces/DEMO/DEMO40389.sql Normal file
View File

@@ -0,0 +1,148 @@
--
-- $Id$
--
-- Dit bestand is een copy (gebaseerd op) van MARX40389.sql --
-- Alles in de payload is copy, de 4 letlercode DEMO is in de plaats van CUST gekomen weliswaar--
DEFINE thisfile = 'DEMO40389.sql'
DEFINE dbuser = '^DEMO'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
-- A. OPDRACHTSTATUS: Registratie van API voor het opdrachtstatus bericht vanuit Mareon
INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_stylesheet, fac_api_options_json)
SELECT 'MARX_OPDR_STATUS', 'Webservice voor opdrachtmutaties vanuit Mareon', 'appl/api/api_opdrsoap.asp', 'appl/MARX/F_PutOpdrachtFCLT.xsl', '{"ORDremark": 6}'
FROM DUAL;
-- B. FACTUURBERICHT: Registratie van IMPORT + bijbehorende API voor het factuur bericht vanuit Mareon
-- 4.1 Standaard Facilitor factuur import
-- Deze doen we in DEMO niet, we willen ook graag de PDF inzichtelijk maken, daarom doen we die van stap 4.2
--INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_stylesheet, fac_import_app_key, fac_api_options_json)
--SELECT 'MARX_FIN_FACTUUR', 'Webservice voor facturen vanuit Mareon', 'appl/API/api_gen_import.asp', '../../appl/MARX/F_PutFactuurFCLT.xsl' ,fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}'
--FROM fac_import_app
--WHERE fac_import_app_code = 'FACTUUR'
--AND fac_import_app_prefix is NULL;
-- 4.2 Eigen CUST factuur import
-- Deze doen we in demo, de standaard uit stap 4.1 is daarom uitgecommentarieerd.
-- Indien je een eigen CUST functie wilt (en niet de standaard van hierboven van 4.1), dan:
-- 1. Draai bovenstaande insert in fac_api (punt 4.1) NIET, commentarieer deze insert uit.
-- 2. Verwijder onderstaande commentaar-regels van de 2x insert in fac_import_app en fac_api.
-- 3. En verander de naam 'F_PutFactuurFCLT.xsl' eventueel in een eigen stylesheet.
-- 4. En neem de 2 procedures import en update over in je CUST.sql en pas ze naar wens aan...
INSERT INTO fac_import_app (fac_import_app_code, fac_import_app_oms, fac_import_app_xsl, fac_functie_key, fac_import_app_charset, fac_import_app_prefix)
SELECT 'FIN_FACTUUR_MARX', 'Factuur import van Mareon factuur-XMLs', '', fac_functie_key, 'UTF-8', 'DEMO'
FROM fac_functie
WHERE fac_functie_code = 'WEB_PRSSYS';
INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_stylesheet, fac_import_app_key, fac_api_options_json)
SELECT 'MARX_FIN_FACTUUR', 'Webservice voor facturen vanuit Mareon', 'appl/API/api_gen_import.asp', '../../appl/MARX/F_PutFactuurFCLT.xsl' ,fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}'
FROM fac_import_app
WHERE fac_import_app_code = 'FIN_FACTUUR_MARX';
CREATE OR REPLACE PROCEDURE demo_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 demo_update_fin_factuur_marx (p_import_key IN NUMBER)
AS
-- Cursor met PDF naam
CURSOR cfactuur_kenmerk1
IS
SELECT fin_factuur_key, kenmerk1, factuurnr, fac_imp_file_index
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL
AND fac_import_key = p_import_key
AND kenmerk1 IS NOT NULL
AND fin_factuur_key = ( SELECT MAX (fin_factuur_key)
FROM fac_imp_factuur
WHERE fin_factuur_key IS NOT NULL
AND fac_import_key = p_import_key
AND kenmerk1 IS NOT NULL
);
c_kenmerk_key_bijlage NUMBER(10);
BEGIN
-- Standaard FCLT verwerk import facturen
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 k
WHERE fin_kenmerk_kenmerktype = 'F';
IF c_kenmerk_key_bijlage IS NOT NULL
THEN
-- Er is een bijlage flexprop, we gaan de PDF hier inzetten....
FOR rc IN cfactuur_kenmerk1
LOOP
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 (rc.fin_factuur_key) -- We kunnen niet meerdere imports tegelijk aan!
|| ':' || c_kenmerk_key_bijlage || ':' -- De kenmerk key
|| 'F'
);
-- FSN#33363: Zelf de insert in fin_kenmerkfactuur doen van het bestandskenmerk (FSN#33105 verzorgt dit niet namelijk)
INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde)
VALUES (rc.fin_factuur_key, c_kenmerk_key_bijlage, rc.kenmerk1);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (p_import_key,
'W',
'Van factuur met key ' || rc.fin_factuur_key || ' is de bestandsnaam niet bewaard (regel ' || rc.fac_imp_file_index || ')',
'Factuurnr:' || rc.factuurnr || ' / Bestandsnaam: ' || rc.kenmerk1
);
END;
END LOOP;
END IF;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile