From 0ad7ed7c385decbeb3a2ba5ed7f42063fd54ba34 Mon Sep 17 00:00:00 2001 From: Marcel Bourseau Date: Wed, 21 Jan 2015 12:38:50 +0000 Subject: [PATCH] svn path=/Mareon/trunk/; revision=23912 --- sql/mareon.sql | 1994 +++++++++++++++++++++++++++++++++++ sql/mareon_ini.sql | 535 ++++++++++ sql/mareon_ini_aannemer.sql | 48 + 3 files changed, 2577 insertions(+) create mode 100644 sql/mareon.sql create mode 100644 sql/mareon_ini.sql create mode 100644 sql/mareon_ini_aannemer.sql diff --git a/sql/mareon.sql b/sql/mareon.sql new file mode 100644 index 0000000..801ec98 --- /dev/null +++ b/sql/mareon.sql @@ -0,0 +1,1994 @@ + +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +----------------------- +----------------------- +----------------------- Webservices voor AX (via adapter AxFacilitor.js) +----------------------- +----------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +SPOOL mareon.lst + +CREATE OR REPLACE VIEW mar_v_std_refusecode (std_weigercode) +AS + SELECT fac_usrdata_omschr + FROM fac_usrdata ud + WHERE ud.fac_usrtab_key = 1 + AND ud.fac_usrdata_code = '$MLD_OPDR_STD_REFUSECODE' + AND ud.fac_usrdata_verwijder IS NULL; + +CREATE OR REPLACE VIEW mar_v_sync_ax +(sync_date_lasttime, sync_date_now) +AS + SELECT (SELECT TO_DATE(fac_usrdata_omschr,'DD-MM-YYYY HH24:MI:SS') FROM fac_usrdata ud + WHERE ud.fac_usrtab_key = 1 + AND ud.fac_usrdata_code = '$SYNC_DATE_LASTTIME' + AND ud.fac_usrdata_verwijder IS NULL), + (SELECT TO_DATE(fac_usrdata_omschr,'DD-MM-YYYY HH24:MI:SS') FROM fac_usrdata ud + WHERE ud.fac_usrtab_key = 1 + AND ud.fac_usrdata_code = '$SYNC_DATE_NOW' + AND ud.fac_usrdata_verwijder IS NULL) + FROM DUAL; + +---------------------------------------------------------------------------------------------------------------------------------------- + +-- 3a View tbv websebservice voor AX/Tobias +CREATE OR REPLACE VIEW mar_v_bedrijven_ax +AS +SELECT + PRS_BEDRIJF_KEY, + PRS_BEDRIJF_NAAM, + PRS_BEDRIJF_NAAM_UPPER, + PRS_BEDRIJF_POST_ADRES, + PRS_BEDRIJF_POST_POSTCODE, + PRS_BEDRIJF_POST_PLAATS, + PRS_BEDRIJF_POST_LAND, + PRS_BEDRIJF_BEZOEK_ADRES, + PRS_BEDRIJF_BEZOEK_POSTCODE, + PRS_BEDRIJF_BEZOEK_PLAATS, + PRS_BEDRIJF_BEZOEK_LAND, + PRS_BEDRIJF_TELEFOON, + PRS_BEDRIJF_FAX, + PRS_BEDRIJF_TELEFOON2, + PRS_BEDRIJF_CONTACT_PERSOON, + PRS_BEDRIJF_CONTACT_TELEFOON, + PRS_BEDRIJF_CONTACT_FAX, + PRS_BEDRIJF_OPMERKING, + PRS_BEDRIJF_OPMERKING2, + PRS_BEDRIJF_UURLOON, + PRS_LEVERANCIER_NR, + PRS_OVEREENKOMST_NR, + PRS_OVEREENKOMST_DATUM, + PRS_BEDRIJF_EMAIL, + PRS_BEDRIJF_LEVERANCIER, + PRS_BEDRIJF_UITVOERENDE, + PRS_BEDRIJF_CONTRACT, + PRS_BEDRIJF_INTERN +FROM prs_bedrijf +WHERE prs_bedrijf.prs_bedrijf_verwijder IS NULL +AND prs_bedrijf_uitvoerende = 1 +AND PRS_OVEREENKOMST_NR IS NOT NULL; + + + + +-- 3c Import tbv AX-opdrachten + + +CREATE OR REPLACE PROCEDURE mar_import_ax_opdrachten ( + p_import_key IN NUMBER +) +IS + c_fielddelimitor VARCHAR2 (1) := ';'; + v_newline VARCHAR2 (4096); -- Input line + v_aanduiding VARCHAR2 (200); + v_errorhint VARCHAR2 (1000); + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + header_is_valid NUMBER := 0; + v_ongeldig NUMBER (1); + v_count_tot NUMBER (10); + v_count_import NUMBER (10); + v_count NUMBER; + -- De importvelden: + + v_ax_supplier_id VARCHAR2 (256); + v_mld_melding_externnr VARCHAR2 (256); + v_mld_melding_omschrijving VARCHAR2 (1024); + v_prs_afdeling_naam VARCHAR2 (256); + v_mld_melding_cust_name VARCHAR2 (256); + v_mld_melding_cust_straat VARCHAR2 (256); + v_mld_melding_cust_huisnr VARCHAR2 (256); + v_mld_melding_cust_huisnr2 VARCHAR2 (256); + v_mld_melding_cust_postcode VARCHAR2 (256); + v_mld_melding_cust_plaats VARCHAR2 (256); + v_mld_melding_cust_telefoonnr VARCHAR2 (256); + v_mld_melding_cust_object_oms VARCHAR2 (256); + v_mld_melding_memo VARCHAR2 (1024); + v_mld_opdr_externnr VARCHAR2 (256); + v_mld_opdr_ordernr VARCHAR2 (256); + v_mld_opdr_datumbegin VARCHAR2 (256); + v_mld_opdr_einddatum VARCHAR2 (256); + + + + CURSOR c1 + IS + SELECT * + FROM fac_imp_file + WHERE fac_import_key = p_import_key + ORDER BY fac_imp_file_index; +BEGIN + DELETE FROM mar_imp_ax_opdrachten; + + COMMIT; + + v_count_tot := 0; + v_count_import := 0; + + FOR rec1 IN c1 + LOOP + BEGIN + v_newline := rec1.fac_imp_file_line; + v_aanduiding := ''; + v_errorhint := 'Fout bij opvragen te importeren rij'; + v_ongeldig := 0; + -- Lees alle veldwaarden + + + -- v_bes_bestelopdr_id VARCHAR2 (256); + -- v_bes_srtdeel_nr VARCHAR2 (256); + -- v_serienummer VARCHAR2 (256); + -- v_datum VARCHAR2 (256); + + + -- 01 - AX Vendor Account nr (ax supplier id) + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ax_supplier_id); + + -- 02 - Meldingnr EXTERN, + -- - voor AX is dat iets als MLD00004574-01, en wordt gebruikt als taskID voor webservice communicatie voor accepteren, weigeren, plannen of afmelden opdracht. + -- - voor Tobias is dat iets als 156720, en wordt idemdito gebruikt als BonId voor webservie communicatie voor accepteren, weigeren, plannen of afmelden opdracht. + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_mld_melding_externnr); + + -- 03 - Melding omschrijving + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 3, v_mld_melding_omschrijving); + + -- 04 - Externe Company-id / company_id (Afdeling-code in Facilitor?) + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 4, v_prs_afdeling_naam); + + -- 05 - Flexprop huurdernaam / bewoners van woning + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 5, v_mld_melding_cust_name); + + -- 06 - Flexprop straatnaam van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 6, v_mld_melding_cust_straat); + + -- 07 - Flexprop huisnr van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 7, v_mld_melding_cust_huisnr); + + -- 08 - Flexprop huisnr toevoeging van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 8, v_mld_melding_cust_huisnr2); + + -- 09 - Flexprop postcode van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 9, v_mld_melding_cust_postcode); + + -- 10 - Flexprop plaats van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 10, v_mld_melding_cust_plaats); + + -- 11 - Flexprop plaats van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 11, v_mld_melding_cust_telefoonnr); + + -- 12 - Flexprop omschrijving van object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 12, v_mld_melding_cust_object_oms); + + -- 13 - Flexprop memo/opdrachtomschrijving bij object + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 13, v_mld_melding_memo); + + -- 14 - Externe opdrachtnr / purchase Ordernr + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 14, v_mld_opdr_externnr); + + -- 15 - Externe opdrachtnr / purchase Ordernr + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 15, v_mld_opdr_ordernr); + + -- 16 - Start opdrachtdatum + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 16, v_mld_opdr_datumbegin); + + -- 17 - Einde opdrachtdatum + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 17, v_mld_opdr_einddatum); + -- + + v_aanduiding := + '[' + || v_mld_melding_externnr + || '|' + || v_mld_melding_omschrijving + || '|' + || v_mld_melding_cust_name + || '|' + || v_mld_melding_cust_straat + || '|' + || v_mld_melding_cust_plaats + || '|' + || v_mld_opdr_externnr + || '] '; + + -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen + -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! + -- Ik negeer alles totdat ik een geldige header ben gepasseerd. + IF (header_is_valid = 0) + THEN + IF UPPER (v_mld_melding_externnr) = 'MLD_MELDING_EXTERNNR' + AND UPPER (v_mld_melding_omschrijving) = 'MLD_MELDING_OMSCHRIJVING' + AND UPPER (v_mld_opdr_externnr) = 'MLD_OPDR_EXTERNNR' + AND UPPER (v_mld_opdr_ordernr) = 'MLD_OPDR_ORDERNR' + THEN + header_is_valid := 1; + END IF; + ELSE + v_count_tot := v_count_tot + 1; + -- Controleer alle veldwaarden + + + -- + v_errorhint := 'Ongeldig extern leveranciernummer (vendor account number)'; + v_ax_supplier_id := TRIM (v_ax_supplier_id); + + IF (v_ax_supplier_id IS NOT NULL) + THEN + IF LENGTH (v_ax_supplier_id) > 50 + THEN + v_ax_supplier_id := SUBSTR (v_ax_supplier_id, 1, 50); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Extern leveranciersnummer te lang', 'Nummer wordt afgebroken tot [' || v_ax_supplier_id || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + -- + v_errorhint := 'Ongeldig extern meldingnummer'; + v_mld_melding_externnr := TRIM (v_mld_melding_externnr); + + IF (v_mld_melding_externnr IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_externnr) > 30 + THEN + v_mld_melding_externnr := SUBSTR (v_mld_melding_externnr, 1, 30); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Extern meldingnummer te lang', 'Nummer wordt afgebroken tot [' || v_mld_melding_externnr || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + + v_errorhint := 'Ongeldig melding omschrijving'; + v_mld_melding_omschrijving := TRIM (v_mld_melding_omschrijving); + + IF (v_mld_melding_omschrijving IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_omschrijving) > 1024 + THEN + v_mld_melding_omschrijving := SUBSTR (v_mld_melding_omschrijving, 1, 1024); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Melding omschrijving te lang', 'Omschrijving wordt afgebroken tot [' || v_mld_melding_omschrijving || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldig afdelingsnaam'; + v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam); + + IF (v_prs_afdeling_naam IS NOT NULL) + THEN + IF LENGTH (v_prs_afdeling_naam) > 10 + THEN + v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 10); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Afdelingscode te lang', 'Afdelingscode wordt afgebroken tot [' || v_prs_afdeling_naam || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige klantnaam/huurdersnaam'; + v_mld_melding_cust_name := TRIM (v_mld_melding_cust_name); + + IF (v_mld_melding_cust_name IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_name) > 50 + THEN + v_mld_melding_cust_name := SUBSTR (v_mld_melding_cust_name, 1, 50); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Naam klant/huurder te lang', 'Naam wordt afgebroken tot [' || v_mld_melding_cust_name || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige straatnaam'; + v_mld_melding_cust_straat := TRIM (v_mld_melding_cust_straat); + + IF (v_mld_melding_cust_straat IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_straat) > 40 + THEN + v_mld_melding_cust_straat := SUBSTR (v_mld_melding_cust_straat, 1, 40); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Straatnaam te lang', 'Naam wordt afgebroken tot [' || v_mld_melding_cust_straat || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldig huisnr'; + v_mld_melding_cust_huisnr := TRIM (v_mld_melding_cust_huisnr); + IF (v_mld_melding_cust_huisnr IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_huisnr) > 5 + THEN + v_mld_melding_cust_huisnr := SUBSTR (v_mld_melding_cust_huisnr, 1, 5); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Huisnr te lang', 'Nummer wordt afgebroken tot [' || v_mld_melding_cust_huisnr || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige toevoeging huisnr'; + v_mld_melding_cust_huisnr2 := TRIM (v_mld_melding_cust_huisnr2); + IF (v_mld_melding_cust_huisnr2 IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_huisnr2) > 5 + THEN + v_mld_melding_cust_huisnr2 := SUBSTR (v_mld_melding_cust_huisnr, 1, 5); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Toevoeging huisnr te lang', 'Nummer wordt afgebroken tot [' || v_mld_melding_cust_huisnr2 || ']' ); + END IF; + END IF; + + + v_errorhint := 'Ongeldige postcode'; + v_mld_melding_cust_postcode := TRIM (v_mld_melding_cust_postcode); + IF (v_mld_melding_cust_postcode IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_postcode) > 10 + THEN + v_mld_melding_cust_postcode := SUBSTR (v_mld_melding_cust_postcode, 1, 10); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Postcode te lang', 'Postcode wordt afgebroken tot [' || v_mld_melding_cust_postcode || ']' ); + END IF; + END IF; + + + + v_errorhint := 'Ongeldige plaatsnaam'; + v_mld_melding_cust_plaats := TRIM (v_mld_melding_cust_plaats); + IF (v_mld_melding_cust_plaats IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_plaats) > 50 + THEN + v_mld_melding_cust_plaats := SUBSTR (v_mld_melding_cust_plaats, 1, 50); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Plaatsnaam te lang', 'Plaatsnaam wordt afgebroken tot [' || v_mld_melding_cust_plaats || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige telefoonnummer'; + v_mld_melding_cust_telefoonnr := TRIM (v_mld_melding_cust_telefoonnr); + IF (v_mld_melding_cust_telefoonnr IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_telefoonnr) > 15 + THEN + v_mld_melding_cust_telefoonnr := SUBSTR (v_mld_melding_cust_telefoonnr, 1, 15); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Telefoonnummer is te lang', 'Telefoonnummer wordt afgebroken tot [' || v_mld_melding_cust_telefoonnr || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige objectomschrijving'; + v_mld_melding_cust_object_oms := TRIM (v_mld_melding_cust_object_oms); + IF (v_mld_melding_cust_object_oms IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_cust_object_oms) > 255 + THEN + v_mld_melding_cust_object_oms := SUBSTR (v_mld_melding_cust_object_oms, 1, 255); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Objectomschrijving te lang', 'Objectomschrijving wordt afgebroken tot [' || v_mld_melding_cust_object_oms || ']' ); + END IF; + END IF; + + + v_errorhint := 'Ongeldige opdrachtomschrijving (memo)'; + v_mld_melding_memo := TRIM (v_mld_melding_memo); + IF (v_mld_melding_memo IS NOT NULL) + THEN + IF LENGTH (v_mld_melding_memo) > 1024 + THEN + v_mld_melding_memo := SUBSTR (v_mld_melding_memo, 1, 1024); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Opdrachtomschrijving (memo) te lang', 'Omschrijving wordt afgebroken tot [' || v_mld_melding_memo || ']' ); + END IF; + END IF; + + + v_errorhint := 'Ongeldig extern opdrachtnummer'; + v_mld_opdr_externnr := TRIM (v_mld_opdr_externnr); + IF (v_mld_opdr_externnr IS NOT NULL) + THEN + IF LENGTH (v_mld_opdr_externnr) > 30 + THEN + v_mld_opdr_externnr := SUBSTR (v_mld_opdr_externnr, 1, 30); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Externe opdrachtnummer te lang', 'Opdrachtnummer wordt afgebroken tot [' || v_mld_opdr_externnr || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + + v_errorhint := 'Ongeldig externe taskId(AX)/BonId(Tobias)'; + v_mld_opdr_ordernr := TRIM (v_mld_opdr_ordernr); + IF (v_mld_opdr_ordernr IS NOT NULL) + THEN + IF LENGTH (v_mld_opdr_ordernr) > 30 + THEN + v_mld_opdr_ordernr := SUBSTR (v_mld_opdr_ordernr, 1, 30); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Externe TaskId/BonId te lang', 'TaskId/BonId wordt afgebroken tot [' || v_mld_opdr_ordernr || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + + + v_errorhint := 'Ongeldige opdracht startdatum'; + v_mld_opdr_datumbegin := TRIM (v_mld_opdr_datumbegin); + IF (v_mld_opdr_datumbegin IS NOT NULL) + THEN + IF LENGTH (v_mld_opdr_datumbegin) > 20 + THEN + v_mld_opdr_datumbegin := SUBSTR (v_mld_opdr_datumbegin, 1, 20); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Startdatum van opdracht te lang', 'Datum wordt afgebroken tot [' || v_mld_opdr_datumbegin || ']' ); + END IF; + END IF; + + v_errorhint := 'Ongeldige opdracht einddatum'; + v_mld_opdr_einddatum := TRIM (v_mld_opdr_einddatum); + IF (v_mld_opdr_einddatum IS NOT NULL) + THEN + IF LENGTH (v_mld_opdr_einddatum) > 20 + THEN + v_mld_opdr_einddatum := SUBSTR (v_mld_opdr_einddatum, 1, 20); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Einddatum van opdracht te lang', 'Datum wordt afgebroken tot [' || v_mld_opdr_einddatum || ']' ); + END IF; + END IF; + + + -- Insert geformatteerde import record + IF (v_ongeldig = 0) + THEN + BEGIN + v_errorhint := + 'Fout bij toevoegen regel aan importtabel mar_imp_ax_opdrachten'; + + INSERT INTO mar_imp_ax_opdrachten + (ax_supplier_id, + mld_melding_externnr, + mld_melding_omschrijving, + prs_afdeling_naam, + mld_melding_cust_name, + mld_melding_cust_straat, + mld_melding_cust_huisnr, + mld_melding_cust_huisnr2, + mld_melding_cust_postcode, + mld_melding_cust_plaats, + mld_melding_cust_telefoonnr, + mld_melding_cust_object_omschr, + mld_melding_memo, + mld_opdr_externnr, + mld_opdr_ordernr, + mld_opdr_datumbegin, + mld_opdr_einddatum) + VALUES + (v_ax_supplier_id, + v_mld_melding_externnr, + v_mld_melding_omschrijving, + v_prs_afdeling_naam, + v_mld_melding_cust_name, + v_mld_melding_cust_straat, + v_mld_melding_cust_huisnr, + v_mld_melding_cust_huisnr2, + v_mld_melding_cust_postcode, + v_mld_melding_cust_plaats, + v_mld_melding_cust_telefoonnr, + v_mld_melding_cust_object_oms, + v_mld_melding_memo, + v_mld_opdr_externnr, + v_mld_opdr_ordernr, + v_mld_opdr_datumbegin, + v_mld_opdr_einddatum); + + COMMIT; + v_count_import := v_count_import + 1; + EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := + v_errorhint + || ' ORACLE (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog + (p_import_key, + 'E', + v_aanduiding || v_errormsg, + 'Ingelezen regel kan niet worden weggeschreven!' + ); + COMMIT; + END; + END IF; + END IF; + END; + END LOOP; + + IF (header_is_valid = 0) + THEN + fac.imp_writelog (p_import_key, + 'E', + 'Ongeldig importbestand', + 'Geen header of header niet volgens specificatie!' + ); + ELSE + fac.imp_writelog (p_import_key, + 'S', + 'AX opdrachten: aantal ingelezen regels: ' + || TO_CHAR (v_count_tot), + '' + ); + + fac.imp_writelog (p_import_key, + 'S', + 'AX opdrachten: aantal geldige regels: ' + || TO_CHAR (v_count_import), + '' + ); + END IF; + COMMIT; +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := + 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; +END mar_import_ax_opdrachten; +/ + + +CREATE OR REPLACE PROCEDURE mar_update_ax_opdrachten ( + p_import_key IN NUMBER +) +IS + + v_aanduiding VARCHAR2 (200); + v_errorhint VARCHAR2 (1000); + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_count_tot NUMBER (10); + v_count_error NUMBER (10); + v_count NUMBER (10); + + v_aantal NUMBER (10); + + v_mld_melding_key NUMBER (10); + v_mld_opdr_key NUMBER (10); + v_mld_stdmelding_key NUMBER (10); + v_prs_perslid_key NUMBER (10); + v_prs_bedrijf_key NUMBER (10); + v_mld_opdr_bedrijfopdr_volgnr NUMBER (10); + v_flexsummary mld_opdr.mld_opdr_omschrijving%TYPE; + v_prs_bedrijfadres_url prs_bedrijfadres.prs_bedrijfadres_url%TYPE; + + v_adres VARCHAR2 (100); + + c_mld_typeopdr_key NUMBER(10); + + + c_kenmerk_key_cust_name NUMBER (10); + c_kenmerk_key_cust_adres NUMBER (10); + c_kenmerk_key_cust_postcode NUMBER (10); + c_kenmerk_key_cust_plaats NUMBER (10); + c_kenmerk_key_cust_telefoonnr NUMBER (10); + c_kenmerk_key_cust_object_oms NUMBER (10); + + + -- Alle ingelezen AX opdrachten + CURSOR c_ax_opdrachten + IS + SELECT * + FROM mar_imp_ax_opdrachten; + + + BEGIN + v_count_tot := 0; + v_count_error := 0; + + --MBMB Standaard opdracht key 5 (bestaat standaard) + c_mld_typeopdr_key := 5; + --MBMB + c_kenmerk_key_cust_name := 1; + c_kenmerk_key_cust_adres := 2; + c_kenmerk_key_cust_postcode := 3; + c_kenmerk_key_cust_plaats := 4; + c_kenmerk_key_cust_telefoonnr := 5; + c_kenmerk_key_cust_object_oms := 6; + + v_aanduiding := ''; + + -- Elke opdracht verwerken tot eventuele nieuwe melding (als deze nog niet bestaat) en een opdracht (indien opdracht ook nog niet bestaat). + + -- Key van de standaard melding die wordt gebruikt voor de evt. nieuwe melding.... + v_mld_stdmelding_key := 1; + + FOR rec_ax IN c_ax_opdrachten + LOOP + BEGIN + v_count_tot := v_count_tot + 1; + + v_aanduiding := + '[' + || rec_ax.mld_melding_externnr + || '|' + || rec_ax.mld_melding_omschrijving + || '|' + || rec_ax.mld_melding_cust_name + || '|' + || rec_ax.mld_melding_cust_straat + || '|' + || rec_ax.mld_melding_cust_plaats + || '|' + || rec_ax.mld_opdr_externnr + || '] '; + + -- Eerst checken of melding met externe melding nummer al bestaat, want dan niet aanmaken en (vooralsnog) ook niet updaten. + + SELECT MAX(m.mld_melding_key) + INTO v_mld_melding_key + FROM mld_melding m + WHERE m.mld_melding_externnr = rec_ax.mld_melding_externnr; + + IF v_mld_melding_key IS NULL + THEN + -- Melding is nieuw, dus inserten... + + v_errorhint := 'SYSTEM API user [_API_AX] niet gevonden, er is geen melding aangemaakt'; + -- Melder is api-user + SELECT prs_perslid_key + INTO v_prs_perslid_key + FROM prs_perslid + WHERE UPPER(prs_perslid_oslogin) = '_API_AX' + AND prs_perslid_verwijder IS NULL; + + -- Api user gevonden, we kunnen een melding aanmaken. + -- Meldbron-key = 6 (System), meldbron-nr is de company-id in AX. + INSERT INTO mld_melding (mld_melding_module, + mld_meldbron_key, + mld_meldbron_nr, + mld_melding_datum, + mld_melding_omschrijving, + mld_stdmelding_key, + mld_melding_einddatum, + prs_perslid_key, prs_perslid_key_voor, + mld_melding_status, + mld_melding_spoed, + mld_melding_externnr) + VALUES('MLD', 6, rec_ax.prs_afdeling_naam, + to_date(REPLACE(rec_ax.mld_opdr_datumbegin, 'T', ' '),'YYYY-MM-DD hh24:mi:ss'), + rec_ax.mld_melding_omschrijving, + v_mld_stdmelding_key, + to_date(REPLACE(COALESCE(rec_ax.mld_opdr_einddatum,'2099-12-31T00:00'), 'T', ' '),'YYYY-MM-DD hh24:mi:ss'), + v_prs_perslid_key,v_prs_perslid_key, + 2, + 3, + rec_ax.mld_melding_externnr + ) RETURNING mld_melding_key INTO v_mld_melding_key; + mld.setmeldingstatus(v_mld_melding_key, 4, NULL); + END IF; + + IF (rec_ax.mld_melding_cust_straat IS NOT NULL OR rec_ax.mld_melding_cust_huisnr IS NOT NULL OR rec_ax.mld_melding_cust_huisnr2 IS NOT NULL) + THEN v_adres := rec_ax.mld_melding_cust_straat || ' ' || rec_ax.mld_melding_cust_huisnr || rec_ax.mld_melding_cust_huisnr2; + ELSE v_adres := NULL; + END IF; + + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_name, v_mld_melding_key, rec_ax.mld_melding_cust_name); + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_adres, v_mld_melding_key, v_adres); + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_postcode, v_mld_melding_key, rec_ax.mld_melding_cust_postcode); + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_plaats, v_mld_melding_key, rec_ax.mld_melding_cust_plaats); + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_telefoonnr, v_mld_melding_key, rec_ax.mld_melding_cust_telefoonnr); + mld.upsertmeldingkenmerk (c_kenmerk_key_cust_object_oms, v_mld_melding_key, rec_ax.mld_melding_cust_object_omschr); + + + + COMMIT; + + -- Eerst checken of opdracht met externe opdrachtnummer al bestaat (bij deze of een andere melding), want dan niet aanmaken en (vooralsnog) ook niet updaten. + SELECT MAX(o.mld_opdr_key) + INTO v_mld_opdr_key + FROM mld_opdr o + WHERE mld_opdr_id = rec_ax.mld_opdr_externnr; + + IF v_mld_opdr_key IS NULL + THEN + -- Opdracht is nieuw, dus inserten... + + v_errorhint := 'Leverancier ' || UPPER(rec_ax.ax_supplier_id) || ' niet gevonden, er is geen opdracht aangemaakt'; + + SELECT prs_bedrijf_key + INTO v_prs_bedrijf_key + FROM prs_bedrijf + WHERE prs_bedrijf_verwijder IS NULL + AND prs_bedrijf_uitvoerende = 1 + AND UPPER(prs_overeenkomst_nr) = UPPER(rec_ax.ax_supplier_id); + + + v_errorhint := 'SYSTEM API user [_API_AX] niet gevonden, er is geen opdracht aangemaakt'; + -- Melder is api-user + SELECT prs_perslid_key + INTO v_prs_perslid_key + FROM prs_perslid + WHERE UPPER(prs_perslid_oslogin) = '_API_AX' + AND prs_perslid_verwijder IS NULL; + + v_errorhint := 'Fout bij bepalen van hoogste opdracht volgnummer (MLD_OPDR_BEDRIJFOPDR_VOLGNR)'; + + v_mld_opdr_bedrijfopdr_volgnr := mld.bepaalopdrmeldingvolgnr(v_mld_melding_key); + -- next line added by PF thanks to FSN#30247/untested + v_flexsummary := mld.mldflexsummary(v_mld_melding_key); + + v_errorhint := 'Fout bij insert van nieuwe opdracht bij melding(key)' || v_mld_melding_key; + INSERT INTO mld_opdr + (mld_opdr_id, mld_opdr_ordernr, mld_opdr_module, mld_melding_key, mld_uitvoerende_keys, + mld_typeopdr_key, mld_statusopdr_key, mld_opdr_omschrijving, + mld_opdr_datumbegin, mld_opdr_einddatum, + mld_opdr_bedrijfopdr_volgnr) + VALUES(rec_ax.mld_opdr_externnr, rec_ax.mld_opdr_ordernr, 'MLD', v_mld_melding_key, v_prs_bedrijf_key, + c_mld_typeopdr_key, 5, rec_ax.mld_melding_omschrijving || CHR(10) || rec_ax.mld_melding_memo || v_flexsummary, + to_date(REPLACE(rec_ax.mld_opdr_datumbegin, 'T', ' '),'YYYY-MM-DD hh24:mi:ss'), + to_date(REPLACE(COALESCE(rec_ax.mld_opdr_einddatum,'2099-12-31T00:00'), 'T', ' '),'YYYY-MM-DD hh24:mi:ss'), + v_mld_opdr_bedrijfopdr_volgnr + ) RETURNING mld_opdr_key INTO v_mld_opdr_key; + + + SELECT MAX(prs_bedrijfadres_url) + INTO v_prs_bedrijfadres_url + FROM prs_bedrijfadres + WHERE prs_bedrijfadres_type = 'O' + AND (mld_typeopdr_key IS NULL OR mld_typeopdr_key = c_mld_typeopdr_key) + AND prs_bedrijf_key = v_prs_bedrijf_key; + + IF v_prs_bedrijfadres_url IS NOT NULL + THEN + -- Opdracht bij deze leverancier heeft technisch adres, dus automtaisch verzenden via putorders... + UPDATE mld_opdr SET mld_opdr_teverzenden = 1 WHERE mld_opdr_key = v_mld_opdr_key; + END IF; + + END IF; + + + EXCEPTION + WHEN OTHERS + THEN + v_count_error := v_count_error + 1; + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := + 'OTHERS (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; + END; + END LOOP; + + + fac.imp_writelog (p_import_key, + 'S', + 'AX opdrachten: verwerkte regels zonder foutmelding: ' + || TO_CHAR (v_count_tot - v_count_error), + '' + ); + fac.imp_writelog (p_import_key, + 'S', + 'AX opdrachten: verwerkte regels met foutmelding: ' + || TO_CHAR (v_count_error), + '' + ); + COMMIT; + + +END mar_update_ax_opdrachten; +/ + +-- 3c Import tbv Tobias-opdrachten +CREATE OR REPLACE PROCEDURE mar_import_tobias_opdrachten ( + p_import_key IN NUMBER +) +AS +BEGIN + mar_import_ax_opdrachten(p_import_key); +END; +/ + +CREATE OR REPLACE PROCEDURE mar_update_tobias_opdrachten ( + p_import_key IN NUMBER +) +AS +BEGIN + mar_update_ax_opdrachten(p_import_key); +END; +/ + + + + +---------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- Webservice 6. View tbv webservice om opdrachten te accepteren, weigeren, af te melden... + + +CREATE OR REPLACE VIEW mar_v_opdr_info_4_ax +(mld_opdr_key, mld_statusopdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, mld_opdr_plandatum, mld_opdr_opmerking, fac_srtnotificatie_key, fac_tracking_datum) +AS +SELECT o.mld_opdr_key, o.mld_statusopdr_key, m.mld_meldbron_nr, m.mld_melding_externnr, o.mld_opdr_id, o.mld_opdr_ordernr, o.mld_opdr_plandatum, o.mld_opdr_opmerking, t.fac_srtnotificatie_key, t.fac_tracking_datum +FROM mld_melding m, mld_opdr o, fac_tracking t, fac_srtnotificatie sn +WHERE o.mld_opdr_key = t.fac_tracking_refkey +AND t.fac_tracking_datum >= (SELECT sync_date_lasttime FROM mar_v_sync_ax) +AND t.fac_tracking_datum < (SELECT LEAST(sync_date_now, sync_date_lasttime + 7) FROM mar_v_sync_ax) +AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key +AND sn.fac_srtnotificatie_xmlnode = 'opdracht' +AND m.mld_melding_key = o.mld_melding_key; + + +-- View van opdrachten met een opmerking sinds de 'laatste' keer. +CREATE OR REPLACE VIEW mar_v_opdr_opmerking_ax +(mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, mld_opdr_opmerking) +AS +SELECT DISTINCT mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, mld_opdr_opmerking +FROM mar_v_opdr_info_4_ax +WHERE mld_opdr_opmerking IS NOT NULL; + +-- View van afgemelde opdrachten sinds de 'laatste' keer. +CREATE OR REPLACE VIEW mar_v_opdr_afgemeld_ax +(mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, fac_tracking_datum, mld_opdr_opmerking) +AS +SELECT mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, fac_tracking_datum, mld_opdr_opmerking +FROM mar_v_opdr_info_4_ax +WHERE mld_statusopdr_key = 6 +AND fac_srtnotificatie_key = (select fac_srtnotificatie_key from fac_srtnotificatie where fac_srtnotificatie_code = 'ORDAFM'); + +CREATE OR REPLACE VIEW mar_v_opdr_accept_ax +(mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, fac_tracking_datum, mld_opdr_opmerking, fac_srtnotificatie_code) +AS +SELECT mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, fac_tracking_datum, mld_opdr_opmerking, 'ORDACP' +FROM mar_v_opdr_info_4_ax +WHERE mld_statusopdr_key = 8 +AND fac_srtnotificatie_key = (select fac_srtnotificatie_key from fac_srtnotificatie where fac_srtnotificatie_code = 'ORDACP'); + +-- MBMB +-- Constante c_fac_usrtab_key :=2 voor de user-tabel met weiger return codes. +-- MBMB +-- Constante flexprop-key := 7 voor weiger-code (tekst) bij afgewezen opdracht. + + +CREATE OR REPLACE VIEW mar_v_opdr_refuse_ax +(mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, fac_tracking_datum, mld_opdr_opmerking, fac_srtnotificatie_code) +AS +SELECT s.mld_opdr_key, s.ax_company_id, s.mld_melding_externnr, s.mld_opdr_externnr, mld_opdr_ordernr, s.fac_tracking_datum, COALESCE(ud.fac_usrdata_code, ref.std_weigercode), 'ORDCAN' +FROM mar_v_opdr_info_4_ax s, mld_kenmerkopdr ko, fac_usrdata ud, mar_v_std_refusecode ref +WHERE s.mld_statusopdr_key = 1 +AND s.fac_srtnotificatie_key = (select fac_srtnotificatie_key from fac_srtnotificatie where fac_srtnotificatie_code = 'ORDCAN') +AND ko.mld_opdr_key (+) = s.mld_opdr_key +AND ko.mld_kenmerk_key(+) = 7 +AND ko.mld_kenmerkopdr_verwijder(+) IS NULL +AND ud.fac_usrtab_key(+) = 2 +AND ud.fac_usrdata_key(+) = fac.safe_to_number(ko.mld_kenmerkopdr_waarde); + + +CREATE OR REPLACE VIEW mar_v_opdr_accept_refused_ax +AS +SELECT * FROM mar_v_opdr_accept_ax +UNION ALL +SELECT * FROM mar_v_opdr_refuse_ax; + + +-- View van opdrachten met een plandatum sinds de 'laatste' keer. +CREATE OR REPLACE VIEW mar_v_opdr_plandatum_ax +(mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, mld_opdr_plandatum, mld_opdr_opmerking) +AS +SELECT DISTINCT mld_opdr_key, ax_company_id, mld_melding_externnr, mld_opdr_externnr, mld_opdr_ordernr, mld_opdr_plandatum, mld_opdr_opmerking +FROM mar_v_opdr_info_4_ax +WHERE mld_opdr_plandatum IS NOT NULL; + + +CREATE OR REPLACE PROCEDURE mar_import_weiger_returncodes ( + p_import_key IN NUMBER +) +IS + c_fielddelimitor VARCHAR2 (1) := ';'; + v_newline VARCHAR2 (1000); -- Input line + v_aanduiding VARCHAR2 (200); + v_errorhint VARCHAR2 (1000); + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + header_is_valid NUMBER := 0; + v_ongeldig NUMBER (1); + v_count_tot NUMBER (10); + v_count_import NUMBER (10); + v_count NUMBER; + -- De importvelden: + v_ax_return_code VARCHAR (256); + v_ax_return_omschr VARCHAR (256); + v_ax_company_id VARCHAR (256); + + CURSOR c1 + IS + SELECT * + FROM fac_imp_file + WHERE fac_import_key = p_import_key + ORDER BY fac_imp_file_index; +BEGIN + DELETE FROM mar_imp_ax_returncodes; + + COMMIT; + + v_count_tot := 0; + v_count_import := 0; + + FOR rec1 IN c1 + LOOP + BEGIN + v_newline := rec1.fac_imp_file_line; + v_aanduiding := ''; + v_errorhint := 'Fout bij opvragen te importeren rij'; + v_ongeldig := 0; + -- Lees alle veldwaarden + + + -- 01 - Ax return code van de weigertekst + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ax_return_code); + + -- 02 - Ax weigertekst + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 2, v_ax_return_omschr); + + + -- + v_aanduiding := + '[' + || v_ax_return_code + || '|' + || v_ax_return_omschr + || '] '; + + -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen + -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! + -- Ik negeer alles totdat ik een geldige header ben gepasseerd. + IF (header_is_valid = 0) + THEN + IF UPPER (v_ax_return_code) = 'FAC_USRDATA_CODE' + AND UPPER (v_ax_return_omschr) = 'FAC_USRDATA_OMSCHR' + THEN + header_is_valid := 1; + END IF; + ELSE + v_count_tot := v_count_tot + 1; + -- Controleer alle veldwaarden + + -- + v_errorhint := 'Ongeldige returncode'; + v_ax_return_code := TRIM (v_ax_return_code); + + IF (v_ax_return_code IS NOT NULL) + THEN + IF LENGTH (v_ax_return_code) > 40 + THEN + v_ax_return_code := SUBSTR (v_ax_return_code, 1, 40); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Returncode te lang', 'Returncode wordt afgebroken tot [' || v_ax_return_code || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + + v_errorhint := 'Ongeldige returncode omschrijving'; + v_ax_return_omschr := TRIM (v_ax_return_omschr); + + IF (v_ax_return_omschr IS NOT NULL) + THEN + IF LENGTH (v_ax_return_omschr) > 60 + THEN + v_ax_return_omschr := SUBSTR (v_ax_return_omschr, 1, 60); + fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Meetwaarde te lang', 'Meetwaarde wordt afgebroken tot [' || v_ax_return_omschr || ']' ); + END IF; + ELSE + v_ongeldig := 1; + END IF; + + -- Insert geformatteerde import record + IF v_ongeldig = 0 + THEN + BEGIN + v_errorhint := + 'Fout bij toevoegen regel aan importtabel mar_imp_ax_returncodes'; + + INSERT INTO mar_imp_ax_returncodes (ax_return_code, ax_return_omschr) + VALUES (v_ax_return_code, v_ax_return_omschr); + + COMMIT; + v_count_import := v_count_import + 1; + EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := + v_errorhint + || ' ORACLE (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog + (p_import_key, + 'E', + v_aanduiding || v_errormsg, + 'Ingelezen regel kan niet worden weggeschreven!' + ); + COMMIT; + END; + END IF; + END IF; + END; + END LOOP; + + IF (header_is_valid = 0) + THEN + fac.imp_writelog (p_import_key, + 'E', + 'Ongeldig importbestand', + 'Geen header of header niet volgens specificatie!' + ); + ELSE + fac.imp_writelog (p_import_key, + 'S', + 'Returncodes: aantal ingelezen regels: ' + || TO_CHAR (v_count_tot), + '' + ); + END IF; + COMMIT; +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := + 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; +END mar_import_weiger_returncodes; +/ + + + + +CREATE OR REPLACE PROCEDURE mar_update_weiger_returncodes ( + p_import_key IN NUMBER +) +IS + + v_aanduiding VARCHAR2 (200); + v_errorhint VARCHAR2 (1000); + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + v_count_tot NUMBER (10); + v_count_error NUMBER (10); + v_count NUMBER (10); + + + v_fac_usrdata_key NUMBER (10); + + -- MBMB + -- Vaste key voor usertabel 'Returncodes': 2 + c_fac_usrtab_key NUMBER(10); + + + CURSOR c_ax_codes + IS + SELECT * + FROM mar_imp_ax_returncodes k; + + CURSOR c_ax_codes_2_delete + IS + SELECT fac_usrdata_key + FROM fac_usrdata ud + WHERE fac_usrtab_key = c_fac_usrtab_key + AND NOT EXISTS (SELECT 'x' from mar_imp_ax_returncodes WHERE UPPER(ax_return_code) = ud.fac_usrdata_upper) + AND fac_usrdata_verwijder IS NULL; + + BEGIN + -- MBMB + c_fac_usrtab_key :=2; + + v_count_tot := 0; + v_count_error := 0; + v_aanduiding := ''; + + -- Alles verwerken... + FOR c_ax IN c_ax_codes + LOOP + BEGIN + v_count_tot := v_count_tot + 1; + + v_errorhint := 'Fout bij bepalen returncode [' || c_ax.ax_return_code || ']'; + + SELECT MAX(ud.fac_usrdata_key) + INTO v_fac_usrdata_key + FROM fac_usrdata ud + WHERE ud.fac_usrdata_upper = UPPER(c_ax.ax_return_code) + AND ud.fac_usrdata_verwijder IS NULL + AND ud.fac_usrtab_key = c_fac_usrtab_key; + + IF (v_fac_usrdata_key IS NULL) + THEN + v_errorhint := 'Fout bij insert returncode [' || c_ax.ax_return_code || ']'; + INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) + VALUES (c_fac_usrtab_key, c_ax.ax_return_code, c_ax.ax_return_omschr); + ELSE + v_errorhint := 'Fout bij update returncode [' || c_ax.ax_return_code || ']'; + UPDATE fac_usrdata + SET fac_usrdata_omschr = c_ax.ax_return_omschr + WHERE fac_usrdata_key = v_fac_usrdata_key; + END IF; + + COMMIT; + + EXCEPTION + WHEN OTHERS + THEN + v_count_error := v_count_error + 1; + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := + 'OTHERS (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; + END; + END LOOP; + + + fac.imp_writelog (p_import_key, + 'S', + 'AX Returncodes: verwerkte regels zonder foutmelding: ' + || TO_CHAR (v_count_tot - v_count_error), + '' + ); + fac.imp_writelog (p_import_key, + 'S', + 'AX Returncodes: verwerkte regels met foutmelding: ' + || TO_CHAR (v_count_error), + '' + ); + COMMIT; + + v_count_tot := 0; + v_count_error := 0; + v_aanduiding := ''; + FOR c_ax IN c_ax_codes_2_delete + LOOP + BEGIN + v_count_tot := v_count_tot + 1; + v_errorhint := 'Fout bij delete (verwijderdatum) waarde in eigen tabel [' || c_ax.fac_usrdata_key || ']'; + UPDATE fac_usrdata + SET fac_usrdata_verwijder = SYSDATE + WHERE fac_usrdata_key = c_ax.fac_usrdata_key; + EXCEPTION + WHEN OTHERS + THEN + v_count_error := v_count_error + 1; + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 200); + v_errormsg := + 'OTHERS (error ' + || oracle_err_num + || '/' + || oracle_err_mes + || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; + END; + END LOOP; + + fac.imp_writelog (p_import_key, + 'S', + 'AX Returncodes verwijderen: verwerkte regels zonder foutmelding: ' + || TO_CHAR (v_count_tot - v_count_error), + '' + ); + fac.imp_writelog (p_import_key, + 'S', + 'AX Returncodes verwijderen: verwerkte regels met foutmelding: ' + || TO_CHAR (v_count_error), + '' + ); + COMMIT; +END mar_update_weiger_returncodes; +/ + + +---------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- Webservice 7. View tbv webservice voor Leverancier (SIDB-facturen) + +-- Deze functie overgenomen (gekopieerd) van lokale (sub)functie 'try_getopdracht_id' die zit in fac_update_factuur (file fac_pacf.src) +-- Redenen: deze functie rechtstreeks kan worden aangeroepen +-- 2e parameter p_leverancier_nr gebruiken (als extra check). +-- Opdrachtnummer is niet een broc, zeg maar een INTERN FACILITOR nummer, maar een extern nummer, zeg maar een opdracht dat uit een ander systeem komt. + +CREATE OR REPLACE FUNCTION mar_try_getopdracht_id (p_broc_nr IN VARCHAR2, p_leverancier_nr IN VARCHAR2) + RETURN NUMBER + AS + p_broc_key NUMBER(10); + BEGIN + p_broc_key := NULL; + BEGIN + --Externe opdrachtnummer p_broc_nr die leveracnier p_leverancier_nr toegewezen heeft gekregen, wordt in opdracht (mld_opdr_id) bewaard, dus hier op zoek naar... + SELECT o.mld_opdr_key + INTO p_broc_key + FROM mld_opdr o, mld_typeopdr mto, prs_bedrijf b + WHERE o.mld_typeopdr_key = mto.mld_typeopdr_key + AND mto.mld_typeopdr_kosten = 1 + AND o.mld_statusopdr_key NOT IN (1, 2, 3, 10) + AND o.mld_uitvoerende_keys = b.prs_bedrijf_key + AND b.prs_leverancier_nr = p_leverancier_nr + AND o.mld_opdr_id = p_broc_nr; + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + p_broc_key := NULL; + WHEN TOO_MANY_ROWS + THEN + p_broc_key := NULL; + END; + RETURN p_broc_key; +END; +/ + +CREATE OR REPLACE FUNCTION mar_getopdracht_nr (p_mld_opdr_key IN NUMBER) + RETURN VARCHAR2 + AS + p_broc_nr VARCHAR2(30); + BEGIN + p_broc_nr := NULL; + BEGIN + + SELECT sd.ins_srtdiscipline_prefix || m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr + INTO p_broc_nr + FROM mld_opdr o, mld_melding m, mld_stdmelding sm, mld_discipline d, ins_srtdiscipline sd + WHERE o.mld_opdr_key = p_mld_opdr_key + AND o.mld_melding_key = m.mld_melding_key + AND m.mld_stdmelding_key = sm.mld_stdmelding_key + AND sm.mld_ins_discipline_key = d.ins_discipline_key + AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key; + + + EXCEPTION + WHEN NO_DATA_FOUND + THEN + p_broc_nr := NULL; + WHEN TOO_MANY_ROWS + THEN + p_broc_nr := NULL; + END; + RETURN p_broc_nr; +END; +/ + +CREATE OR REPLACE PROCEDURE mar_post_fin_factuur_sidb (p_import_key IN NUMBER) +AS + -- In cursor cfactuur is alles mooi getrimmed. NB: de sortering is cruciaal! + CURSOR lev_ordernrs + IS + SELECT DISTINCT leveranciernr, ordernr, fac_import_key + FROM fac_imp_factuur + WHERE fac_import_key = p_import_key; + + + p_mld_opdr_key NUMBER(10); + p_fclt_broc_nr VARCHAR2(30); + +BEGIN + + FOR rc IN lev_ordernrs + LOOP + p_mld_opdr_key := mar_try_getopdracht_id (rc.ordernr, rc.leveranciernr); + -- Bestaat er een mld-opdracht voor de leverancier met externe opdrachtnr (AX-nr), zo nee, dan niks doen (dus geen rename van AX-nummer naar intern FCLT-nummer) + IF p_mld_opdr_key IS NULL + THEN + -- Er is geen mld-opdracht, we zien dit dan als een 'vreemde' factuur, DUS ZONDER REFERENTIE (broc) waarbij we de kenmerken 'externe opdrachtnr' en 'leveracniernr' 1-op-1 overnemen + -- In de pilot vullen we dan de kenmerken 1 en 2 met respectievelijk 'externe opdrachtnr (AX-nr)' en 'externe leveranciernr (AX)' + -- zodat de factuur kan worden ingelezen met de meest belangrijke factuurgegevens. + -- Zo'n factuur zonder geldige referentie is verder niet te wijzigen. Is ook goed, een vreemde factuur moet 1-op-1 worden doorgegevens met minimale gegevens. + UPDATE fac_imp_factuur + SET kenmerk1 = rc.ordernr, kenmerk2=rc.leveranciernr + WHERE fac_import_key = p_import_key + AND ordernr = rc.ordernr + AND leveranciernr = rc.leveranciernr; + ELSE + -- Er bestaat een opdracht voor de leverancier met externe opdrachtnr (AX-nr), dus we gaan deze ff updaten naar FCLT-opdrachtnr in de gehele tabel van deze importsessie ... + p_fclt_broc_nr := mar_getopdracht_nr (p_mld_opdr_key); + IF p_fclt_broc_nr IS NOT NULL + THEN + UPDATE fac_imp_factuur + SET ordernr = p_fclt_broc_nr + WHERE fac_import_key = p_import_key + AND ordernr = rc.ordernr + AND leveranciernr = rc.leveranciernr; + END IF; + END IF; + END LOOP; +END; +/ + + +CREATE OR REPLACE PROCEDURE mar_import_fin_factuur_sidb (p_import_key IN NUMBER) +AS + v_seq_of_columns VARCHAR(50); +BEGIN + +--In de XSL: leveranciernr(1);factuurnr(2);factuurdatum(3);factuuronderwerp(4);opdrachtnr(5);omschrijving(6);bedrag(7);btwperc(8);btwbedrag(9);btw_verlegd(10);document(11);IBAN(12);G_IBAN(13);G_bedrag(14) +-- LET OP: de kenmerken 1 en 2 worden al gebruikt voor opdrachtnummer (IONRxxxx) en leveranciernr (GLN) in geval dat referentienummer niet in Facilitor kan worden gevonden. +-- Dit gebeurt in de functie mar_post_fin_factuur_sidb +-- Daarom voor het 1e kenmerk 'IBAN' deze in kenmerk 3 zetten! +-- Kenmerk 4 en 5 zijn voor resp. G-rekening en G-bedrag. +-- Kenmerk 6 (vanaf 5.4.4) is het onderwerp van +--hulp voor pos : '1;2;3;4;5;6;7;8;9;0;1;12;3;4;15;6;7;18;19;20;1;2' + v_seq_of_columns := '1;2;3;5;0;0;6;0;7;9;8;11;0;0;10;0;0;12;13;14;0;4'; + + -- Variabelelijst + -- v_leveranciernr: 1 + -- v_factuurnr: 2 (VERPLICHT, anders zet Facilitor '-' in factuurnr, en is status van factuur "Incompleet") + -- v_factuurdatum: 3 + -- v_ordernr: 4 (VERPLICHT, anders is status van factuur "Incompleet") + -- v_locatie: 5 + -- v_afleverdatum: 6 + -- v_omschrijving: 7 + -- v_aantal: 8 + -- v_kostprijs: 9 (VERPLICHT, anders is status van factuur "Incompleet") + -- v_btw_bedrag: 10 (VERPLICHT, of anders veld 11, anders is status van factuur "Incompleet") + -- v_btw: 11 (VERPLICHT, of anders veld 10, anders is status van factuur "Incompleet") + -- v_docid: 12 + -- v_debiteur_nr: 13 + -- v_opmerking: 14 + -- v_btw_verlegd: 15 (VERPLICHT, Ja/Nee/ waarbij leeg gelijk is aan Nee. Andere waarden leidt tot "Incompleet") + -- v_kenmerk1: 16 (AX opdrachtnummer: IONRxxxx) + -- v_kenmerk2: 17 (GLN Leverancier(snummer) + -- v_kenmerk3: 18 (IBAN) + -- v_kenmerk4: 19 (G-IBAN - geblokkeerde rekening) + -- v_kenmerk5: 20 (G-Amount - bedrag geblokeerde rekening) + -- v_boekmaand: 21 + -- v_kenmerk6: 22 (Factuuronderwerp) + -- v_kenmerk7: 23 + -- v_kenmerk8: 24 + -- v_kenmerk9: 25 + -- v_kenmerk10: 26 + -- v_kenmerk11: 27 + -- v_kenmerk12: 28 + + fac_import_factuur_body(p_import_key, v_seq_of_columns); + mar_post_fin_factuur_sidb (p_import_key); +END; +/ + + +CREATE OR REPLACE PROCEDURE mar_post_update_factuur_sidb (p_import_key IN NUMBER) +AS + + CURSOR cfactuur_kenmerk_opdrnr_ax + IS + SELECT DISTINCT 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; + + CURSOR cfactuur_kenmerk_levnr_ax + IS + SELECT DISTINCT fin_factuur_key, kenmerk2, factuurnr, fac_imp_file_index + FROM fac_imp_factuur + WHERE fin_factuur_key IS NOT NULL + AND fac_import_key = p_import_key + AND kenmerk2 IS NOT NULL; + + CURSOR cfactuur_kenmerk_iban + IS + SELECT DISTINCT fin_factuur_key, kenmerk3, factuurnr, fac_imp_file_index + FROM fac_imp_factuur + WHERE fin_factuur_key IS NOT NULL + AND fac_import_key = p_import_key + AND kenmerk3 IS NOT NULL; + + CURSOR cfactuur_kenmerk_g_iban + IS + SELECT DISTINCT fin_factuur_key, kenmerk4, factuurnr, fac_imp_file_index + FROM fac_imp_factuur + WHERE fin_factuur_key IS NOT NULL + AND fac_import_key = p_import_key + AND kenmerk4 IS NOT NULL; + + CURSOR cfactuur_kenmerk_g_ammount + IS + SELECT DISTINCT fin_factuur_key, kenmerk5, factuurnr, fac_imp_file_index + FROM fac_imp_factuur + WHERE fin_factuur_key IS NOT NULL + AND fac_import_key = p_import_key + AND kenmerk5 IS NOT NULL; + + CURSOR cfactuur_kenmerk_onderwerp + IS + SELECT DISTINCT fin_factuur_key, kenmerk6, factuurnr, fac_imp_file_index + FROM fac_imp_factuur + WHERE fin_factuur_key IS NOT NULL + AND fac_import_key = p_import_key + AND kenmerk6 IS NOT NULL; + + -- Key van het kenmerk 'extern opdrachtnummer (opdr-nr AX) ' bij de factuur + c_kenmerk_key_opdrnr_ax NUMBER(10) := 2; + -- Key van het kenmerk 'leverancier nummer (lev-nr AX) ' bij de factuur + c_kenmerk_key_levnr_ax NUMBER(10) := 3; + -- Key van het kenmerk 'IBAN' bij de factuur + c_kenmerk_key_iban NUMBER(10) := 4; + -- Key van het kenmerk 'IBAN G-rekening' bij de factuur + c_kenmerk_key_g_iban NUMBER(10) := 5; + -- Key van het kenmerk 'Bedrag G-rekening' bij de factuur + c_kenmerk_key_g_ammount NUMBER(10) := 6; + -- Key van het kenmerk 'Factuuronderwerp' + c_kenmerk_key_onderwerp NUMBER(10) := 7; + + v_kenmerk6 VARCHAR2 (255); + +BEGIN + + -- Het externe opdrachtnr (AX) wordt in kenmerk 1 van fac_imp_factuur gezet, dus alle fac_imp_factuur langsgaan en verwerken + + FOR rc IN cfactuur_kenmerk_opdrnr_ax + LOOP + BEGIN + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_opdrnr_ax, rc.kenmerk1); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is de externe opdrnr (AX) niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / Opdr. nr. (AX): ' || rc.kenmerk1 + ); + END; + END LOOP; + + -- Het externe opdrachtnr (AX) wordt in kenmerk 2 van fac_imp_factuur gezet, dus alle fac_imp_factuur langsgaan en verwerken + + FOR rc IN cfactuur_kenmerk_levnr_ax + LOOP + BEGIN + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_levnr_ax, rc.kenmerk2); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is de leveranciersnummer (AX) niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / Opdr. nr. (AX): ' || rc.kenmerk2 + ); + END; + END LOOP; + + FOR rc IN cfactuur_kenmerk_iban + LOOP + BEGIN + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_iban, rc.kenmerk3); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is het IBAN niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / IBAN: ' || rc.kenmerk3 + ); + END; + END LOOP; + + + FOR rc IN cfactuur_kenmerk_g_iban + LOOP + BEGIN + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_g_iban, rc.kenmerk4); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is het IBAN G-rekening niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / IBAN G-rekening: ' || rc.kenmerk4 + ); + END; + END LOOP; + + FOR rc IN cfactuur_kenmerk_g_ammount + LOOP + BEGIN + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_g_ammount, rc.kenmerk5); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is het Bedrag G-rekening niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / Bedrag G-rekening: ' || rc.kenmerk5 + ); + END; + END LOOP; + + + FOR rc IN cfactuur_kenmerk_onderwerp + LOOP + BEGIN + v_kenmerk6 := replace(rc.kenmerk6, '@@',CHR (13)); + + INSERT INTO fin_kenmerkfactuur (fin_factuur_key, fin_kenmerk_key, fin_kenmerkfactuur_waarde) + VALUES (rc.fin_factuur_key, c_kenmerk_key_onderwerp, v_kenmerk6); + EXCEPTION + WHEN OTHERS + THEN + fac.imp_writelog (p_import_key, + 'W', + 'Van factuur met key ' || rc.fin_factuur_key || ' is het onderwerp niet bewaard (regel ' || rc.fac_imp_file_index || ')', + 'Factuurnr:' || rc.factuurnr || ' / Onderwerp: ' || rc.kenmerk6 + ); + END; + END LOOP; + +END; +/ + + + + +CREATE OR REPLACE PROCEDURE mar_update_fin_factuur_sidb (p_import_key IN NUMBER) +AS +BEGIN + -- Standaard FCLT verwerk import facturen + + + fac_update_factuur (p_import_key); + -- CUST: post processing voor verwerking van kenmerken 'Extern opdrachtnr' en 'Extern leveranciernr', alleen indien het referentienummer niet is gevonden (eerder bepaald, zie mar_post_fin_factuur_sidb) + mar_post_update_factuur_sidb(p_import_key); +END; +/ + + +-------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +-- MBMB Flexprop bestand met key = 1 +-- View waarin bij de factuur met fin_factuur_key het bijbehorende factuurbestand (PDF) geldt. +CREATE OR REPLACE VIEW mar_v_factuur_bestand (fin_factuur_key, fin_factuur_bestand) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 1; + +-- MBMB FIN-Flexprop externe opdrachtnummer (AX nr) met key = 2 +-- View waarin bij de factuur met fin_factuur_key het (voor Facilitor) vreemde opdrachtnummer staat (AX-nr) +CREATE OR REPLACE VIEW mar_v_factuur_externe_opdnr (fin_factuur_key, fin_factuur_opdnr) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 2; + + +-- MBMB FIN-Flexprop externe leveranciernummer (AX nr) met key = 3 +-- View waarin bij de factuur met fin_factuur_key het (voor Facilitor) vreemde leverancier staat (AX-nr) +CREATE OR REPLACE VIEW mar_v_factuur_externe_levnr (fin_factuur_key, fin_factuur_levnr) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 3; + +-- MBMB FIN-Flexprop IBAN met key = 4 +-- View waarin bij de factuur met fin_factuur_key het (voor Facilitor) 'vreemde' leverancier IBAN staat +CREATE OR REPLACE VIEW mar_v_factuur_iban (fin_factuur_key, fin_factuur_iban) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 4; + +-- MBMB FIN-Flexprop G-IBAN met key = 5 +-- View waarin bij de factuur met fin_factuur_key het (voor Facilitor) 'vreemde' leverancier G-IBAN staat +CREATE OR REPLACE VIEW mar_v_factuur_g_iban (fin_factuur_key, fin_factuur_g_iban) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 5; + +-- MBMB FIN-Flexprop G-Bedrag met key = 6 +-- View waarin bij de factuur met fin_factuur_key het (voor Facilitor) 'vreemde' leverancier G-Bedrag staat +CREATE OR REPLACE VIEW mar_v_factuur_g_ammount (fin_factuur_key, fin_factuur_g_ammount) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 6; + +-- MBMB FIN-Flexprop Factuur-onderwerp met key = 7 +-- View waarin bij de factuur met fin_factuur_key het onderwerp staat. +CREATE OR REPLACE VIEW mar_v_factuur_onderwerp (fin_factuur_key, fin_factuur_onderwerp) +AS +SELECT kf.fin_factuur_key, kf.fin_kenmerkfactuur_waarde +FROM fin_kenmerkfactuur kf +WHERE kf.fin_kenmerkfactuur_verwijder IS NULL +AND fin_kenmerk_key = 7; + +------------------ + + +-- MBMB PRS-Flexprop IBAN (bankrekeningnummer) bij bedrijf met key = 1 +CREATE OR REPLACE VIEW mar_v_bedrijf_bankrek_nr (prs_bedrijf_key, prs_leverancier_nr, prs_bedrijf_bankreknr) +AS +SELECT b.prs_bedrijf_key, b.prs_leverancier_nr, kl.prs_kenmerklink_waarde +FROM prs_kenmerklink kl, prs_bedrijf b +WHERE kl.prs_kenmerk_key(+) = 1 +AND prs_kenmerklink_niveau(+) = 'B' +AND prs_kenmerklink_verwijder(+) IS NULL +AND kl.prs_link_key(+) = b.prs_bedrijf_key +AND b.prs_bedrijf_verwijder IS NULL; + + +-- Webservice 8. View tbv webservice voor AX/Tobias (Xtractor-facturen) +-- Let op: prs_bedrijf_bankreknr en prs_bedrijf_bankreknr is normaal gesproken (bij een factuur met geldige referentie) dezelfde waarden, echter bij een +-- factuur zonder geldige refentie (import fout) kan de 1e waarde niet worden gevonden (via opdracht->prs_bedrijf) en wordt teruggevallen op de 2e waarde bankrekeningnr, +-- die mogelijk wel wordt gevonden obv GLN (lev. nr). + +CREATE OR REPLACE VIEW mar_v_factuur_ax ( + prs_woco_axnr, + fin_factuur_key, + opdracht_id, + fin_factuur_boekdatum, + fin_factuur_datum, + fin_factuur_boekmaand, + fin_factuur_nr, + fin_factuur_onderwerp, + fin_factuur_bestand, + prs_bedrijf_key, + prs_leverancier_nr, + prs_bedrijf_axnr, + prs_bedrijf_bankreknr, + prs_bedrijf_bankreknr2, + fin_factuur_iban, + fin_factuurregel_totaal, + fin_factuurregel_btw, + fin_factuurregel_btw_perc, + fin_btwtabelwaarde_btwcode, + fin_btwtabelwaarde_verlegd, + fin_factuurregel_nr, + fin_factuurregel_omschrijving, + fin_factuur_debiteur_nr, + fin_factuur_ext_opdnr, + fin_factuur_ext_levnr, + prs_kostensoort_refcode, + prs_kostenplaats_nr, + fin_factuur_g_iban, + fin_factuur_g_ammount, + bes_opdr_key, + mld_opdr_key, + mld_opdr_id, + cnt_contract_key, + fin_factuur_statuses_key, + fin_factuur_aanmaak + ) +AS + SELECT DISTINCT + (SELECT COALESCE(MAX(prs_overeenkomst_nr),'1') + FROM prs_bedrijf + WHERE prs_bedrijf_key = (SELECT MIN(prs_bedrijf_key) FROM prs_bedrijf WHERE prs_bedrijf_intern = 1 AND prs_bedrijf_verwijder IS NULL) + ), + f.fin_factuur_key, + COALESCE (TO_CHAR (cnt_contract_nummer), + (SELECT sd.ins_srtdiscipline_prefix + || m.mld_melding_key + || '/' + || o.mld_opdr_bedrijfopdr_volgnr + FROM mld_melding m, + mld_stdmelding std, + ins_tab_discipline d, + ins_srtdiscipline sd + WHERE m.mld_melding_key = o.mld_melding_key + AND m.mld_stdmelding_key = std.mld_stdmelding_key + AND std.mld_ins_discipline_key = d.ins_discipline_key + AND d.ins_srtdiscipline_key = + sd.ins_srtdiscipline_key) + ) + opdracht_id, + TO_CHAR(SYSDATE,'DD-MM-YYYY'), + TO_CHAR(f.fin_factuur_datum,'DD-MM-YYYY'), + f.fin_factuur_boekmaand, + f.fin_factuur_nr, + (SELECT fin_factuur_onderwerp FROM mar_v_factuur_onderwerp WHERE fin_factuur_key = f.fin_factuur_key) fin_factuur_onderwerp, + fb.fin_factuur_bestand, + COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key) prs_bedrijf_key, + (SELECT prs_leverancier_nr FROM prs_bedrijf WHERE prs_bedrijf_key = COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key)), + (SELECT prs_overeenkomst_nr FROM prs_bedrijf WHERE prs_bedrijf_key = COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key)), + (SELECT prs_bedrijf_bankreknr FROM mar_v_bedrijf_bankrek_nr WHERE prs_bedrijf_key = COALESCE (b_c.prs_bedrijf_key, b_o.prs_bedrijf_key)), + (SELECT MAX(prs_bedrijf_bankreknr) FROM mar_v_bedrijf_bankrek_nr WHERE prs_leverancier_nr = COALESCE (b_c.prs_leverancier_nr, b_o.prs_leverancier_nr,flev.fin_factuur_levnr)), + (SELECT fin_factuur_iban FROM mar_v_factuur_iban WHERE fin_factuur_key = f.fin_factuur_key), + fr.fin_factuurregel_totaal, + ROUND(fr.fin_factuurregel_btw,2), + btw.fin_btwtabelwaarde_perc, + btw.fin_btwtabelwaarde_code, + COALESCE(btw.fin_btwtabelwaarde_verlegd,0), + fr.fin_factuurregel_nr, + fr.fin_factuurregel_omschrijving, + f.fin_factuur_debiteur_nr, + COALESCE (o.mld_opdr_id, fopdr.fin_factuur_opdnr), + COALESCE (b_c.prs_leverancier_nr, b_o.prs_leverancier_nr,flev.fin_factuur_levnr), + COALESCE(ks_regel.prs_kostensoort_refcode,ks.prs_kostensoort_refcode), + COALESCE (kp_c.prs_kostenplaats_nr, kp_o.prs_kostenplaats_nr) prs_kostenplaats_nr, + (SELECT fin_factuur_g_iban FROM mar_v_factuur_g_iban WHERE fin_factuur_key = f.fin_factuur_key), + (SELECT fin_factuur_g_ammount FROM mar_v_factuur_g_ammount WHERE fin_factuur_key = f.fin_factuur_key), + NULL bes_opdr_key, + o.mld_opdr_key, + o.mld_opdr_id, + c.cnt_contract_key, + f.fin_factuur_statuses_key, + fac.gettrackingdate('FINNEW',f.fin_factuur_key) + FROM fin_factuur f, + mar_v_factuur_bestand fb, + mar_v_factuur_externe_opdnr fopdr, + mar_v_factuur_externe_levnr flev, + fin_factuurregel fr, + fin_btwtabelwaarde btw, + mld_opdr o, + mld_typeopdr ot, + cnt_contract c, + prs_bedrijf b_o, + prs_bedrijf b_c, + prs_kostensoort ks, + prs_kostensoort ks_regel, + prs_kostenplaats kp_c, + prs_kostenplaats kp_o, + fac_tracking t, + fac_srtnotificatie sn + WHERE f.fin_factuur_key = fr.fin_factuur_key + AND fr.fin_btwtabelwaarde_key = btw.fin_btwtabelwaarde_key + AND f.fin_factuur_key = fb.fin_factuur_key(+) + AND f.fin_factuur_key = fopdr.fin_factuur_key(+) + AND f.fin_factuur_key = flev.fin_factuur_key(+) + AND f.fin_factuur_verwijder IS NULL + AND f.bes_bestelopdr_key is null + AND f.mld_opdr_key = o.mld_opdr_key(+) + AND o.prs_kostenplaats_key = kp_o.prs_kostenplaats_key (+) + AND o.mld_typeopdr_key = ot.mld_typeopdr_key(+) + AND f.cnt_contract_key = c.cnt_contract_key(+) + AND o.mld_uitvoerende_keys = b_o.prs_bedrijf_key(+) + AND c.cnt_prs_bedrijf_key = b_c.prs_bedrijf_key(+) + AND c.prs_kostenplaats_key = kp_c.prs_kostenplaats_key (+) + AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+) + AND fr.prs_kostensoort_key = ks_regel.prs_kostensoort_key(+) + AND t.fac_tracking_refkey = f.fin_factuur_key + AND t.fac_tracking_datum >= (SELECT sync_date_lasttime FROM mar_v_sync_ax) + AND t.fac_tracking_datum < (SELECT LEAST(sync_date_now, sync_date_lasttime + 7) FROM mar_v_sync_ax) + AND sn.fac_srtnotificatie_key = t.fac_srtnotificatie_key + AND sn.fac_srtnotificatie_xmlnode = 'factuur'; + +-- Let op: de te exporteren facturen naar Ax, zijn die facturen die door aannemer zijn ingevoerd (status = 2). +-- Ook de akkoord-facturen (status =6) ook laten meedoen (PF). Ook al komen ze in huidige implementatie niet voor, model-technisch is dit beter. +-- Stel dat er een akkoord volgens wijzigende instellingen wordt bereikt, dan moet die factuur mee (hoewel akkoord eigenlijk betekent: akkoord voor uitbetaling). +-- Na export naar AX (of beter gezegd de folder Xtractor) wordt de status van die facturen verwerkt (status 7). +-- +-- Als extra (niet standaard) optie, dus voor uitzonderingsgevallen waarin je wilt dat fout geimporteerde facturen toch AX in gaan), is het mogelijk +-- om de facturen met fin_factuur_statuses_key = 3 ook te exporteren (standaard status 2 en 6) +CREATE OR REPLACE VIEW mar_v_factuur_ax_export +AS +SELECT * from mar_v_factuur_ax +WHERE fin_factuur_statuses_key IN + (SELECT fac.safe_to_number(fac_usrdata_omschr) + FROM fac_usrdata ud + WHERE ud.fac_usrtab_key = 1 + AND ud.fac_usrdata_code like '$FIN_FACTUUR_STATUSES_KEY%' + AND ud.fac_usrdata_verwijder IS NULL); + +CREATE OR REPLACE VIEW mar_v_factuur_ax_akkoord +AS +SELECT * from mar_v_factuur_ax +WHERE fin_factuur_statuses_key = 6; + + +-- Algemeen: sync status... +CREATE OR REPLACE PROCEDURE mar_import_ax_sync ( + p_import_key IN NUMBER +) +IS + c_fielddelimitor VARCHAR2 (1) := ';'; + v_newline VARCHAR2 (1000); -- Input line + v_aanduiding VARCHAR2 (200); + v_errorhint VARCHAR2 (1000); + v_errormsg VARCHAR2 (1000); + oracle_err_num NUMBER; + oracle_err_mes VARCHAR2 (200); + header_is_valid NUMBER := 0; + v_ongeldig NUMBER (1); + v_count_tot NUMBER (10); + v_count_import NUMBER (10); + v_count NUMBER; + + -- De importvelden: + v_ax_sync_mode VARCHAR (256); + + c_fac_usrtab_key NUMBER(10); + + + CURSOR c1 + IS + SELECT * + FROM fac_imp_file + WHERE fac_import_key = p_import_key + ORDER BY fac_imp_file_index; +BEGIN + + -- MBMB SYSTEM TABEL als usertabel met harde key 1. + c_fac_usrtab_key :=1; + + v_count_tot := 0; + v_count_import := 0; + + FOR rec1 IN c1 + LOOP + BEGIN + v_newline := rec1.fac_imp_file_line; + v_aanduiding := ''; + v_errorhint := 'Fout bij opvragen te importeren rij'; + v_ongeldig := 0; + -- Lees alle veldwaarden + + -- 01 - Ax sync mode + fac.imp_getfield_nr (v_newline, c_fielddelimitor, 1, v_ax_sync_mode); + + + -- + v_aanduiding := + '[' + || v_ax_sync_mode + || '] '; + + -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen + -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! + -- Ik negeer alles totdat ik een geldige header ben gepasseerd. + IF (header_is_valid = 0) + THEN + IF UPPER (v_ax_sync_mode) = 'AXSYNC_MODE' + THEN + header_is_valid := 1; + END IF; + ELSE + IF (v_count_tot = 0) + THEN + v_count_tot := v_count_tot + 1; + -- Controleer alle veldwaarden + + -- + v_errorhint := 'Ongeldige returncode'; + v_ax_sync_mode := TRIM (v_ax_sync_mode); + + IF (v_ax_sync_mode IS NOT NULL) + THEN + IF (v_ax_sync_mode = '0') + THEN + -- Start sync + UPDATE fac_usrdata + SET fac_usrdata_omschr = TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS') + WHERE fac_usrtab_key = c_fac_usrtab_key + AND fac_usrdata_code = '$SYNC_DATE_NOW' + AND fac_usrdata_verwijder IS NULL; + END IF; + IF (v_ax_sync_mode = '1') + THEN + -- Einde sync + + -- Eerst de facturen die zijn geexporteerd van ingevoerd -> verwerkt zetten. + UPDATE fin_factuur + SET fin_factuur_statuses_key = 7 + WHERE fin_factuur_key IN (select fin_factuur_key FROM mar_v_factuur_ax_export); + + UPDATE fac_usrdata ud1 + SET ud1.fac_usrdata_omschr = ( SELECT fac_usrdata_omschr FROM fac_usrdata ud2 + WHERE ud2.fac_usrtab_key = c_fac_usrtab_key + AND ud2.fac_usrdata_code = '$SYNC_DATE_NOW' + AND ud2.fac_usrdata_verwijder IS NULL) + WHERE ud1.fac_usrtab_key = c_fac_usrtab_key + AND ud1.fac_usrdata_code = '$SYNC_DATE_LASTTIME' + AND ud1.fac_usrdata_verwijder IS NULL; + + END IF; + END IF; + END IF; + END IF; + END; + END LOOP; + + IF (header_is_valid = 0) + THEN + fac.imp_writelog (p_import_key, + 'E', + 'Ongeldig importbestand', + 'Geen header of header niet volgens specificatie!' + ); + ELSE + fac.imp_writelog (p_import_key, + 'S', + 'AX Syncmode: aantal ingelezen regels: ' + || TO_CHAR (v_count_tot), + '' + ); + END IF; + COMMIT; +EXCEPTION + WHEN OTHERS + THEN + oracle_err_num := SQLCODE; + oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + v_errormsg := + 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; + fac.imp_writelog (p_import_key, + 'E', + v_aanduiding || v_errormsg, + v_errorhint + ); + COMMIT; +END mar_import_ax_sync; +/ + +CREATE OR REPLACE PROCEDURE mar_update_ax_sync ( + p_import_key IN NUMBER +) +IS + c_dummy VARCHAR2(50); +BEGIN + c_dummy := 'Dit is een dummy functie' ; +END mar_update_ax_sync; +/ + + + +COMMIT; + +SPOOL OFF + diff --git a/sql/mareon_ini.sql b/sql/mareon_ini.sql new file mode 100644 index 0000000..8327458 --- /dev/null +++ b/sql/mareon_ini.sql @@ -0,0 +1,535 @@ +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- /* MAREON_INI.SQL +-- * +-- * $Revision: $ +-- * $Id: MAREON_INI.SQL $ +-- */ +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- Created by MB +---------------------------------------------------------------------------------------------------------------------------------------------------------------- + +set echo on + +spool mareon_ini.lst + +-- +-- +------------------------------------------------------------------------ START --------------------------------------------------------------------- +-- +-- +-- + + +-- ALGEMEEN: labels + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'AX nummer' +WHERE fac_locale_xsl_label = 'lcl_prs_companies_overeenkomst_nr' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Leverancier Nr / GLN' +WHERE fac_locale_xsl_label = 'lcl_prs_companies_leverancier_nr' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Inkoopvoorwaarden' +WHERE fac_locale_xsl_label = 'lcl_prs_companies_opmerking' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Vermelden bij facturatie' +WHERE fac_locale_xsl_label = 'lcl_prs_companies_opmerking2' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Mijn MAREON' +WHERE fac_locale_xsl_label = 'lcl_body_portal' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Uiterste uitvoerdatum' +WHERE fac_locale_xsl_label = 'lcl_end_date_plan' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Uiterste uitvoerdatum' +WHERE fac_locale_xsl_label = 'lcl_opdr_enddate' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + +UPDATE fac_locale_xsl +SET fac_locale_xsl_cust = 'Plandatum' +WHERE fac_locale_xsl_label = 'lcl_opdr_plandate' +AND fac_locale_xsl_lang = 'NL' +AND fac_locale_xsl_module = 'ASP'; + + +-- ALGEMEEN SYCHRONISATIE BEWAKING + + +-- SYSTEEM TABEL IN USER-TABEL +-- (wordt mogelijk/zeer waarschijnlijk FAC_tabel, dan ff overal replacen +-- FAC_USRTAB_KEY = 1 + +INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving) +VALUES(1,'$SYSTEM','Systeemtabel'); +INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) +VALUES (1, '$SYNC_DATE_LASTTIME', TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS')); +INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) +VALUES (1, '$SYNC_DATE_NOW', TO_CHAR(SYSDATE,'DD-MM-YYYY HH24:MI:SS')); + +INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) +VALUES (1, '$FIN_FACTUUR_STATUSES_KEY1', '2'); +INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) +VALUES (1, '$FIN_FACTUUR_STATUSES_KEY2', '6'); + +-- Vaste weigercode/tekst +INSERT INTO fac_usrdata(fac_usrtab_key,fac_usrdata_code, fac_usrdata_omschr) +VALUES (1, '$MLD_OPDR_STD_REFUSECODE', 'Geann'); + + + +-- PRS-bedrijf gegevens: + +UPDATE prs_bedrijf +SET prs_bedrijf_opmerking = 'Prijsopgaven, transacties en leveringen volgens onze Algemene Inkoopvoorwaarden gedeponeerd bij de Kamer van Koophandel. Indien sprake is van een mantelovereenkomst, prijsopgaven, transacties en leveringen onder de de bepalingen van de mantelovereenkomst.', +prs_bedrijf_opmerking2 = 'Bij facturering altijd het inkooporder MAREON nummer MAR### vermelden!' +WHERE prs_bedrijf_intern = 1; + + +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 'AX_SYNC', 'Actie-import: zetten van sync timestamp', '../../appl/MAR/xsl/F_PutSync.xsl', fac_functie_key, 'UTF-8', 'MAR' +FROM fac_functie +WHERE fac_functie_code = 'WEB_PRSSYS'; + +INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_import_app_key, fac_api_options_json) +SELECT 'AX_SYNC', 'Actie-import: zetten van sync timestamp', 'appl/API/api_gen_import.asp', fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}' +FROM fac_import_app +WHERE fac_import_app_code = 'AX_SYNC'; + +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- IMPORT VAN WEIGER TEKSTEN: +-- +-- De weigercodes van AX IN USER-TABEL +-- FAC_USRTAB_KEY = 2 +-- + +INSERT INTO fac_usrtab (fac_usrtab_key, fac_usrtab_naam, fac_usrtab_omschrijving) +VALUES(2,'Returncodes','Returncodes weigeren opdracht'); + +CREATE TABLE mar_imp_ax_returncodes +( + ax_return_code VARCHAR (256), + ax_return_omschr VARCHAR (256), + ax_company_id VARCHAR (256) +); + +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 'WEIGER_RETURNCODES', 'Import van AX Weiger returncode via XML (getReturnCodes)', '../../appl/MAR/xsl/A_GetReturnCodes.xsl', fac_functie_key, 'UTF-8', 'MAR' +FROM fac_functie +WHERE fac_functie_code = 'WEB_PRSSYS'; + +INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_import_app_key, fac_api_options_json) +SELECT 'WEIGER_RETURNCODES', 'Import van AX Weiger returncode', 'appl/API/api_gen_import.asp', fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}' +FROM fac_import_app +WHERE fac_import_app_code = 'WEIGER_RETURNCODES'; + + + +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- ALGEMEEN MLD-STRUCTUUR: +-- Type melding Vakgroep Soort melding +-- Melding -> Melding -> Melding + + +INSERT INTO ins_srtdiscipline (ins_srtdiscipline_key, ins_srtdiscipline_module, ins_srtdiscipline_prefix, ins_srtdiscipline_omschrijving,ins_srtdiscipline_alg ,ins_srtdiscipline_ins, ins_srtdiscipline_bes) +VALUES (1,'MLD', 'MAR', 'Melding', 0, 0, 0); + +-- Er is met FCLT standaard 1 record opdrachttype aangemaakt (met mld_typeopdr_key = 5 en naam is 'standaard') +--> Updaten (kosten meerekenen, centraal/decentraal afmelden en ORDBO2 mag externe opdrachten inzien en verplicht afhandeling tekst invullen bij afmelden. +--> Koppelen aan type melding. + +UPDATE mld_typeopdr +SET mld_typeopdr_omschrijving = 'Opdracht', + mld_typeopdr_decentraal = 1, + mld_typeopdr_afmelden_extern = 1, + mld_typeopdr_kosten = 1, + mld_typeopdr_afhandeling = 1 +WHERE mld_typeopdr_key = 5; + +INSERT INTO mld_typeopdr_srtdiscipline (mld_typeopdr_key, ins_srtdiscipline_key) VALUES (5, 1); + +INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving, ins_discipline_kpnverplicht, ins_srtdiscipline_key, ins_discipline_btw) +SELECT 'MLD', 'Melding', 0, ins_srtdiscipline_key, 1 from ins_srtdiscipline; + +INSERT INTO mld_disc_params (mld_ins_discipline_key, mld_disc_params_factuurappr, mld_disc_params_factuurgrens, mld_disc_params_notify, mld_disc_params_opdr_kosten, + mld_disc_params_directklaar, mld_disc_params_frontendprio, mld_disc_params_bonotify, mld_disc_params_fenotes, mld_disc_params_eigen_kp, + mld_disc_params_startdatum, mld_disc_params_offerteauto, mld_disc_params_keten) +SELECT MAX(ins_discipline_key), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 +FROM ins_tab_discipline; + +INSERT INTO mld_stdmelding (mld_ins_discipline_key, mld_stdmelding_omschrijving, mld_stdmelding_t_uitvoertijd, mld_stdmelding_planbaar, mld_stdmelding_slabewaken, mld_stdmelding_notfrontend, + mld_stdmelding_prseigen, mld_stdmelding_notify, ins_srtinst_verplicht, alg_onrgoed_niveau, alg_org_obj_niveau, mld_stdmelding_freetext, mld_stdmelding_afmeldtext, + mld_stdmelding_doublecheck, mld_stdmelding_kopieerbaar, mld_stdmelding_kto, mld_stdmelding_autoorder, mld_stdmelding_vereisdienst, mld_stdmelding_regime, + mld_stdmelding_afhankelijk, mld_stdmelding_opdrtypevast, mld_stdmelding_directklaar, mld_stdmelding_kanverwijzen) +SELECT MAX(ins_discipline_key), 'Melding', MLD_T_UITVOERTIJD(tijdsduur=>1,eenheid=>'D'), 1, 0, 0, 0, 0, 0, 'R', -1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 +FROM ins_tab_discipline; + + +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- KENMERKEN / FLEXPROPS: +-- Naam (huurder), Adres, Postcode, Plaats, Telefoonnr, Objectomschrijving +-- + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (1, 'Huurder', 'C', 50); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 1, 1, MAX(INS_DISCIPLINE_KEY), 'D', 20, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (2, 'Adres', 'C', 50); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 2, 2, MAX(INS_DISCIPLINE_KEY), 'D', 30, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (3, 'Postcode', 'C', 10); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 3, 3, MAX(INS_DISCIPLINE_KEY), 'D', 40, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (4, 'Plaats', 'C', 50); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 4, 4, MAX(INS_DISCIPLINE_KEY), 'D', 50, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (5, 'Telefoonnr', 'C', 15); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 5, 5, MAX(INS_DISCIPLINE_KEY), 'D', 60, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, mld_srtkenmerk_lengte) +VALUES (6, 'Objectomschrijving', 'C', 256); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_stdmelding_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer, mld_kenmerk_groep) +SELECT 6, 6, MAX(INS_DISCIPLINE_KEY), 'D', 70, 0 FROM INS_TAB_DISCIPLINE; + +INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_usrtab_key) +VALUES ('MLD', 'Returncodes', 'FAC_USRDATA', 'FAC_USRDATA_KEY', 'FAC_USRDATA_OMSCHR', 2); + +INSERT INTO mld_srtkenmerk (mld_srtkenmerk_key, mld_srtkenmerk_omschrijving,mld_srtkenmerk_kenmerktype, fac_kenmerkdomein_key) +VALUES (7, 'Reden weigering', 'R', 1); +INSERT INTO mld_kenmerk (mld_kenmerk_key, mld_srtkenmerk_key, mld_typeopdr_key, mld_kenmerk_niveau, mld_kenmerk_volgnummer) +SELECT 7, 7, 5,'O', -1 FROM DUAL; +-- was eerder onderstaande, maar volgnummer nu op -1 zodat niet meer in beeld +-- SELECT 7, 7, 5,'O', 130 FROM DUAL; +---------------------------------------- + +INSERT INTO prs_kenmerk (prs_kenmerk_key, prs_kenmerk_niveau, prs_kenmerk_volgnr, prs_kenmerk_omschrijving, prs_kenmerk_kenmerktype, prs_kenmerk_lengte) +SELECT 1, 'B', 10, 'IBAN','C', 30 +FROM DUAL; + + +-- +-- +------------------------------------------------------------------------ ALLE WEBSERVICES --------------------------------------------------------------------- +-- +-- + +-- Webservice user (SYSTEM USER 'AX' voor alle API's) + +INSERT INTO prs_perslid(prs_perslid_module, prs_srtperslid_key, prs_afdeling_key, prs_perslid_naam, prs_perslid_oslogin, prs_perslid_apikey) +SELECT 'PRS', 1, 1, 'API_AX', '_API_AX', dbms_random.STRING('x',32) FROM DUAL; + +PROMPT Api-key: +SELECT prs_perslid_apikey FROM prs_perslid +WHERE prs_perslid_key = (SELECT MAX(prs_perslid_key) FROM prs_perslid); + +-- +-- +------------------------------------------------------------------------ STAP 3 --------------------------------------------------------------------- +-- +-- Stap 3 van de architectuurplaat: inschieten van de AX opdrachten naar Facilitor.... +-- 3a) opvragen van geldige aangesloten aannemers. +-- 3b) opvragen van ax-opdrachten per aangesloten aannemer (uit stap 3a) +-- 3c) Posten van de digitale (AX) opdrach naar Facilitor... +-- +-- + +-- Stap 3a:opvragen van geldige aangesloten aannemers. +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'AANNEMERS4AX', 'Webservice voor ophalen van geldige/aangesloten aannemers', 'appl/api/api_soap.asp', + '[{"req":"AANNEMERS4AX","node":"data_row","view":"mar_v_bedrijven_ax"}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + +-- Stap 3b voor AX en voor Tobias/AX: gebeurt in AXFacilitor.js (A_GetOpdrachten.js). + +-- Stap 3c van de architectuurplaat: posten van de digitale (AX) opdrachten voor aannemer... + +CREATE TABLE mar_imp_ax_opdrachten +( + ax_supplier_id VARCHAR (50), + mld_melding_externnr VARCHAR2 (50), + mld_melding_omschrijving VARCHAR2 (1024), + prs_afdeling_naam VARCHAR2 (256), + mld_melding_cust_name VARCHAR2 (256), + mld_melding_cust_straat VARCHAR2 (256), + mld_melding_cust_huisnr VARCHAR2 (10), + mld_melding_cust_huisnr2 VARCHAR2 (5), + mld_melding_cust_postcode VARCHAR2 (10), + mld_melding_cust_plaats VARCHAR2 (256), + mld_melding_cust_telefoonnr VARCHAR2 (15), + mld_melding_cust_object_omschr VARCHAR2 (256), + mld_melding_memo VARCHAR2 (1024), + mld_opdr_externnr VARCHAR2 (50), + mld_opdr_ordernr VARCHAR2 (50), + mld_opdr_datumbegin VARCHAR2 (20), + mld_opdr_einddatum VARCHAR2 (20) +); + +-- Stap 3c: import van AX-opdrachten. + +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 'AX_OPDRACHTEN', 'Opdrachten import van AX-XMLs (GetSupplierTasksSpec)', '../../appl/MAR/xsl/A_GetOpdrachten.xsl', fac_functie_key, 'UTF-8', 'MAR' +FROM fac_functie +WHERE fac_functie_code = 'WEB_ORDBOF'; + +INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_import_app_key, fac_api_options_json) +SELECT 'AX_OPDRACHTEN', 'Opdrachten import van AX-XMLs (GetSupplierTasksSpec)', 'appl/API/api_gen_import.asp', fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}' +FROM fac_import_app +WHERE fac_import_app_code = 'AX_OPDRACHTEN'; + +-- Stap 3c: import van TOBIAS/Ax-opdrachten. +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 'TOBIAS_OPDRACHTEN', 'Opdrachten import van Tobias-XMLs (GetBonnen)', '../../appl/MAR/xsl/T_GetOpdrachten.xsl', fac_functie_key, 'UTF-8', 'MAR' +FROM fac_functie +WHERE fac_functie_code = 'WEB_ORDBOF'; + +INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_import_app_key, fac_api_options_json) +SELECT 'TOBIAS_OPDRACHTEN', 'Opdrachten import van Tobias-XMLs (GetBonnen)', 'appl/API/api_gen_import.asp', fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}' +FROM fac_import_app +WHERE fac_import_app_code = 'TOBIAS_OPDRACHTEN'; + +-- +-- +------------------------------------------------------------------------ STAP 6 --------------------------------------------------------------------- +-- +-- Stap 6 van de architectuurplaat: bijwerken van opdracht-status + afhandelingstekst naar AX.... +-- 6a) Verwerken/Bijwerken van opmerking (afhandelingstekst) bij opdrachten naar AX +-- 6b) Verwerken/Bijwerken geaccepteerde en/of afgewezen opdrachten naar AX +-- 6c) Verwerken/Bijwerken van plandatum bij opdrachten naar AX +-- 6d) Verwerken/Bijwerken van einddatum bij gesloten/afgemelde opdrachten naar AX +-- +-- + +-- Stap 6a: opvragen van (nieuwe) opmerking (afhandelingstekst) bij opdrachten (sinds de laatste keer). +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'OPMERKING_OPDR_4AX', 'Webservice voor ophalen van opmerkingen bij opdrachten', 'appl/api/api_soap.asp', + '[{"req":"OPMERKING_OPDR_4AX","node":"data_row","view":"mar_v_opdr_opmerking_ax"}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + +-- Stap 6b: opvragen van (nieuwe) geaccepteerd en afgewezen opdrachten (sinds de laatste keer). +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'ACCEPT_REFUSED_OPDR_4AX', 'Webservice voor ophalen van afgemelde opdrachten', 'appl/api/api_soap.asp', + '[{"req":"ACCEPT_REFUSED_OPDR_4AX","node":"data_row","view":"mar_v_opdr_accept_refused_ax"}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + + +-- Stap 6c: opvragen van opdrachten die een plandatum hebben gekregen/gewijzigd (sinds de laatste keer). +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'GEPLANDE_OPDR_4AX', 'Webservice voor ophalen van plandatum bij opdrachten', 'appl/api/api_soap.asp', + '[{"req":"GEPLANDE_OPDR_4AX","node":"data_row","view":"mar_v_opdr_plandatum_ax"}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + +-- Stap 6d: opvragen van (nieuwe) afgesloten opdrachten (sinds de laatste keer). +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'AFGEMELDE_OPDR_4AX', 'Webservice voor ophalen van afgemelde opdrachten', 'appl/api/api_soap.asp', + '[{"req":"AFGEMELDE_OPDR_4AX","node":"data_row","view":"mar_v_opdr_afgemeld_ax"}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + + + + +-- +-- +------------------------------------------------------------------------ STAP 7 --------------------------------------------------------------------- +-- +-- Stap 7 van de architectuurplaat: posten van de digitale (SIDB) factuur door aannemer... +-- +-- + +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_SIDB', 'Factuur import van SIDB-XMLs (S@ales in bouwformaat)', '../../appl/MAR/xsl/F_PutFactuurSIDB.xsl', fac_functie_key, 'UTF-8', 'MAR' +FROM fac_functie +WHERE fac_functie_code = 'WEB_FINFOF'; + +INSERT INTO fac_api(fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_import_app_key, fac_api_options_json) +SELECT 'FIN_FACTUUR_SIDB', 'Factuur import van SIDB-XMLs (S@laes in bouwformaat)', 'appl/API/api_gen_import.asp', fac_import_app_key, '{"import_app_key":' || fac_import_app_key || '}' +FROM fac_import_app +WHERE fac_import_app_code = 'FIN_FACTUUR_SIDB'; + +--ONDERSTAANDE HANDMATIG AANMAKEN VOOR NIEUWE LEVERANCIER.... + +-- Stap om als leverancier/aannemer gebruik te kunnen maken van Aannemersportaal, altijd leverancier toevoegen, m.n. het prs_leverancier_nr vullen met supplier-id uit AX. +-- INSERT INTO prs_bedrijf (prs_leverancier_nr,....) VALUES ('Supplier-id uit AX', ....) +-- Stap om als leverancier/aannemer gebruik te kunnen maken om digitaal facturen (e-invoice) te kunnen insturen. +-- INSERT INTO prs_perslid(prs_perslid_module, prs_srtperslid_key, prs_afdeling_key, prs_perslid_naam, prs_perslid_oslogin, prs_perslid_apikey) +-- VALUES('PRS', 1, 1, 'LEV-X', '_LEV-X', 'LELrbeGCEFDrZLOJnzGcejtEAxQTLpfE'); + +-- Kenmerken voor de facturen +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype) +VALUES (1, 10, 'Factuurbijlage', 'F', 'X'); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (2, -1, 'Extern opdrachtnr', 'F', 'C', 50); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (3, -1, 'Extern leveranciernr', 'F', 'C', 50); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (4, -1, 'IBAN', 'F', 'C', 50); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (5, -1, 'IBAN G-rekening', 'F', 'C', 50); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (6, -1, 'Bedrag G-rekening', 'F', 'C', 50); +INSERT INTO fin_kenmerk (fin_kenmerk_key, fin_kenmerk_volgnr, fin_kenmerk_omschrijving, fin_kenmerk_type, fin_kenmerk_kenmerktype, fin_kenmerk_lengte) +VALUES (7, -1, 'Omschrijving', 'F', 'C', 250); + +-- BTW verlegd ain de BTW waarde tabel opnemen... +INSERT INTO fin_btwtabelwaarde (fin_btwtabel_key, fin_btwtabelwaarde_code, fin_btwtabelwaarde_oms, fin_btwtabelwaarde_perc, fin_btwtabelwaarde_verlegd) +SELECT MAX(fin_btwtabel_key), 'V', 'Verlegd', 21, 1 +FROM fin_btwtabel; + + +-- +-- +------------------------------------------------------------------------ STAP 8 --------------------------------------------------------------------- +-- +-- Stap 8 van de architectuurplaat: opvragen van de de digitale (Xtractor) goedgekeurde facturen +-- +-- + + + +-- Webservice voor AX tbv factuurinfo. + +INSERT INTO fac_api (fac_api_name, fac_api_omschrijving, fac_api_filepath, fac_api_viewmapping_json, fac_api_stylesheet) +SELECT 'FACT4AX_XTRACTOR', 'Webservice factuurinformatie tbv AX in Xtractor formaat', 'appl/api/api_soap.asp', + '[{"req":"FACT4AX_XTRACTOR","node":"data_row","view":"mar_v_factuur_ax_export","filter":{"datum_vanaf": {"colName": "fin_factuur_aanmaak","datatype": "date","operand": "GTE"}},"limit":10000}]', + 'appl/MAR/xsl/F_GetApiXML.xsl' +FROM DUAL; + + +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- +-- MAREON SPECIFIEKE DEFAULT INRICHTING(VARIABELEN) +-- + +-- Enkele settings + +-- mld_ord_show_kostenplaats = 0, kostenplaats is niet relevant (tot dusver). +-- Bij evt. handmatig toevoegen van opdracht door Woco (theorie) na knop bewaren/saven is kostenplaats verplicht maar niet beschikbaar --> conflict. +update fac_setting +set fac_setting_pvalue = 0 +where fac_setting_name = 'mld_ord_show_kostenplaats'; + +-- Autoprint order: orders will be never (=3) printed +update fac_setting +set fac_setting_pvalue = 3 +where fac_setting_name = 'mld_order_autoprint'; + +update fac_setting +set fac_setting_pvalue = 'no_reply@mareon.nl' +where fac_setting_name = 'puo_fromaddress'; + +update fac_setting +set fac_setting_pvalue = 'Mareon opdracht: Opdracht nr. ' +where fac_setting_name = 'puo_subjectprefixmld'; + +-- Gereserveerde autorisatiegroepen (key 1 en 2 bestaan standaard voor _default en _admin) +-- Woco zal dan key 3 krijgen. +-- Aannemer/leverancier zal dan key 4 krijgen. +-- Deze keys (3 en 4) wordt gebruikt bij runnen van 'mareon_ini_nieuwe_aannemer.sql' +INSERT INTO fac_groep(fac_groep_key, fac_groep_omschrijving) +VALUES(3, 'WoCo'); + + +INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write) +SELECT +(SELECT MAX(fac_groep_key) FROM fac_groep), +(SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_MLDBOF'), +(SELECT MAX(INS_DISCIPLINE_KEY) FROM INS_TAB_DISCIPLINE), +-1,-1,-1,-1 +FROM DUAL; + +INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write) +SELECT +(SELECT MAX(fac_groep_key) FROM fac_groep), +(SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_ORDBOF'), +(SELECT MAX(INS_DISCIPLINE_KEY) FROM INS_TAB_DISCIPLINE), +-1,-1,-1,-1 +FROM DUAL; + +INSERT INTO fac_groep(fac_groep_key, fac_groep_omschrijving) +VALUES(4, 'Leverancier'); + +INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write) +SELECT +(SELECT MAX(fac_groep_key) FROM fac_groep), +(SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_ORDBO2'), +(SELECT MAX(INS_DISCIPLINE_KEY) FROM INS_TAB_DISCIPLINE), +-1,-1,-1,-1 +FROM DUAL; + +INSERT INTO fac_groeprechten (fac_groep_key, fac_functie_key, ins_discipline_key, fac_gebruiker_prs_level_read, fac_gebruiker_prs_level_write, fac_gebruiker_alg_level_read, fac_gebruiker_alg_level_write) +SELECT +(SELECT MAX(fac_groep_key) FROM fac_groep), +(SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code = 'WEB_FINUSE'), +(SELECT MAX(INS_DISCIPLINE_KEY) FROM INS_TAB_DISCIPLINE), +-1,-1,-1,-1 +FROM DUAL; + + +---------------------------------------------------------------------------------------------------------------------------------------------------------------- +-- +-- FINAL STEP: SEQUENCES BIJSTELLEN +-- + +DROP SEQUENCE ins_s_ins_srtdiscipline_key; +CREATE SEQUENCE ins_s_ins_srtdiscipline_key START WITH 100 NOCACHE; + +DROP SEQUENCE fac_s_fac_usrtab_key; +CREATE SEQUENCE fac_s_fac_usrtab_key START WITH 100 NOCACHE; + +DROP SEQUENCE fac_s_fac_usrdata_key; +CREATE SEQUENCE fac_s_fac_usrdata_key START WITH 100 NOCACHE; + +DROP SEQUENCE mld_s_mld_srtkenmerk_key; +CREATE SEQUENCE mld_s_mld_srtkenmerk_key START WITH 100 NOCACHE; + +DROP SEQUENCE fin_s_fin_kenmerk_key; +CREATE SEQUENCE fin_s_fin_kenmerk_key START WITH 100 NOCACHE; + +DROP SEQUENCE fac_s_fac_groep_key; +CREATE SEQUENCE fac_s_fac_groep_key START WITH 100 NOCACHE; + +-- PRS_S_PRS_KENMERK_KEY staat al default op 1000, hoeft niet te worden aangepast (is al oke). + +commit; + +spool off + +@mareon.sql +-- +-- +------------------------------------------------------------------------ EINDE --------------------------------------------------------------------- +-- +-- +-- \ No newline at end of file diff --git a/sql/mareon_ini_aannemer.sql b/sql/mareon_ini_aannemer.sql new file mode 100644 index 0000000..4f1d9b7 --- /dev/null +++ b/sql/mareon_ini_aannemer.sql @@ -0,0 +1,48 @@ + +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +----------------------- +----------------------- +----------------------- Aansluiten van een nieuwe leverancier/aannemer +----------------------- +----------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +SPOOL mareon_ini_nieuwe_aannemer.lst + +--ONDERSTAANDE HANDMATIG AANMAKEN VOOR NIEUWE LEVERANCIER.... + +-- Stap om als leverancier/aannemer gebruik te kunnen maken van Aannemersportaal, altijd leverancier toevoegen, m.n. het prs_leverancier_nr vullen met supplier-id uit AX. + +INSERT INTO prs_bedrijf (prs_bedrijf_naam, prs_leverancier_nr, prs_overeenkomst_nr, prs_bedrijf_uitvoerende) VALUES ('&Aannemer_bedrijfs_naam', '&GLN_of_GS1_nummer', '&AX_supplier_id', 1); +PROMPT Vul de andere (NAW)leveranciergegevens eventueel in via relatiebeheer.... + +-- Stap om als leverancier/aannemer gebruik te kunnen maken om digitaal facturen (e-invoice) te kunnen insturen. + +INSERT INTO prs_perslid(prs_perslid_module, prs_srtperslid_key, prs_afdeling_key, prs_perslid_naam, prs_perslid_oslogin, prs_perslid_apikey) +SELECT 'PRS', 1, 1, prs_bedrijf_naam, prs_bedrijf_naam, dbms_random.STRING('x',32) +FROM prs_bedrijf +WHERE prs_bedrijf_key = (SELECT MAX(prs_bedrijf_key) FROM prs_bedrijf); + +PROMPT Api-key: +SELECT prs_perslid_apikey FROM prs_perslid +WHERE prs_perslid_key = (SELECT MAX(prs_perslid_key) FROM prs_perslid); + +INSERT INTO prs_contactpersoon (prs_contactpersoon_naam, prs_bedrijf_key, prs_perslid_key) +SELECT + (SELECT prs_bedrijf_naam FROM prs_bedrijf WHERE prs_bedrijf_key = (SELECT MAX(prs_bedrijf_key) FROM prs_bedrijf)), + (SELECT MAX(prs_bedrijf_key) FROM prs_bedrijf), + (SELECT MAX(prs_perslid_key) FROM prs_perslid) +FROM DUAL; + + +-- fac_groep_key 3 is gereserveerd voor aannemer/leverancier +INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) +SELECT 4, MAX(prs_perslid_key) FROM prs_perslid; + + + +COMMIT; + +SPOOL OFF \ No newline at end of file