--
-- $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

