From 955ba0a62b6aff9b3414e77448251947e74f7333 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Mon, 23 Sep 2019 14:29:15 +0000 Subject: [PATCH] TWYN#58846 Er is geen source van views voor grafische rapportages. svn path=/Customer/trunk/; revision=44316 --- TWYN/twyn.sql | 2517 ------------------------------------------------- 1 file changed, 2517 deletions(-) delete mode 100644 TWYN/twyn.sql diff --git a/TWYN/twyn.sql b/TWYN/twyn.sql deleted file mode 100644 index fadadb621..000000000 --- a/TWYN/twyn.sql +++ /dev/null @@ -1,2517 +0,0 @@ --- --- $Id$ --- --- Script containing customer specific sql statements for the FACILITOR database --- --- NB: Overbodig geworden: alle BCS2000 projecten zijn ingelezen. --- Met script TWYN#55541.sql zijn de procedures en de tabellen die hiervoor gebruikt worden gedropt. --- - -DEFINE thisfile = 'TWYN.SQL' -DEFINE dbuser = '^TWYN' -DEFINE custid = 'TWYN' - -SET ECHO ON -SET DEFINE ON -COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; -WHENEVER SQLERROR EXIT; -SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL; -WHENEVER SQLERROR CONTINUE; -SPOOL &fcltlogfile -SET DEFINE OFF - ------- payload begin ------ - ---============================================================================= --- IMPORTFUNCTIES -------------------------------------------------------------------------------- -CREATE OR REPLACE PROCEDURE twyn_import_reportdbf (p_import_key IN NUMBER) -AS - c_delim VARCHAR2 (1) := ';'; - v_newline fac_imp_file.fac_imp_file_line%TYPE; -- Input line - v_searchline fac_imp_file.fac_imp_file_line%TYPE; -- Input line voor zoeken op kolomnummer - v_errormsg VARCHAR2 (1000); - v_errorhint VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - header_is_valid NUMBER (1) := 0; - v_ongeldig NUMBER (1) := 0; - v_imp_count NUMBER (5) := 0; - - -- Importvelden staan in de procedures. - -- Overige velden: - -- Keys - k_project_code VARCHAR2(20) := NULL; - k_subproject_code VARCHAR2(20) := NULL; - k_rubriek_nr VARCHAR2(20) := NULL; - k_groep_nr VARCHAR2(60) := NULL; - k_onderdeel_nr VARCHAR2(5) := NULL; - k_budget_nr VARCHAR2(5) := NULL; - k_bedrijf_code VARCHAR2(4) := NULL; - k_contract_nr NUMBER(5); - k_contract_volgnr NUMBER(5); - k_factuur_nr NUMBER(10); - k_factuur_volgnr NUMBER(10); - - CURSOR c1 - IS - SELECT fac_imp_file_line - , LENGTH (TRIM (REPLACE (fac_imp_file_line, c_delim, ''))) regellengte - FROM FAC_IMP_FILE - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; - - - - FUNCTION isDate(p_date IN VARCHAR2) RETURN NUMBER IS - v_date DATE; - BEGIN - SELECT TO_DATE(p_date) INTO v_date FROM DUAL; - RETURN 1; - EXCEPTION - WHEN OTHERS THEN RETURN 0; - END; --isDate - - FUNCTION isNumeric(p_number IN VARCHAR2) RETURN NUMBER IS - v_number NUMBER := 0; - BEGIN - IF (LENGTH(TRIM(TRANSLATE(p_number, ' +-.0123456789', ' '))) IS NULL) THEN - v_number := 1; - END IF; - RETURN v_number; - END; --isNumeric - - PROCEDURE imp_skip( p_line IN OUT VARCHAR2 - , p_aantal NUMBER) - IS - --v_nn_001 VARCHAR2 (256); --001 DIUNITNO - --v_nn_002 VARCHAR2 (256); --002 DIDIR - v_nn VARCHAR2 (256); - BEGIN - FOR i IN 1.. p_aantal - LOOP - fac.imp_getfield (p_line, c_delim, v_nn); - END LOOP; - END; --imp_skip - - PROCEDURE imp_project( p_line IN OUT VARCHAR2 - , p_project_nummer OUT VARCHAR2) - IS - v_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer - v_project_omschr VARCHAR2 (256); --004 PROMSCHR :omschrijving project - v_project_fullnr VARCHAR2 (256); --005 PRFULLNR :(samenvoeging van projectnummer en omschrijving) - v_project_opdrachtgever VARCHAR2 (256); --006 PROPDRGVR :opdractgever - v_project_startdatum VARCHAR2 (256); --007 PRSTRTDAT :startdatum project - v_project_code VARCHAR2 (256); --008 PRCODEINT :internationaal projectcode - v_project_leider VARCHAR2 (256); --009 PRLEIDER :projectleider - v_project_incl_btw VARCHAR2 (256); --010 PRINCBTW :bedragen inclusief btw - v_project_indextabel VARCHAR2 (256); --011 PRIDXTABEL :naam indextabel - v_project_valuta VARCHAR2 (256); --012 PRVALUTA :valuta - v_count_project NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_project_nummer); - fac.imp_getfield (p_line, c_delim, v_project_omschr); - fac.imp_getfield (p_line, c_delim, v_project_fullnr); - fac.imp_getfield (p_line, c_delim, v_project_opdrachtgever); - fac.imp_getfield (p_line, c_delim, v_project_startdatum); - fac.imp_getfield (p_line, c_delim, v_project_code); - fac.imp_getfield (p_line, c_delim, v_project_leider); - fac.imp_getfield (p_line, c_delim, v_project_incl_btw); - fac.imp_getfield (p_line, c_delim, v_project_indextabel); - fac.imp_getfield (p_line, c_delim, v_project_valuta); - -- - p_project_nummer := NULL; - v_project_nummer := TRIM(v_project_nummer); - IF (v_project_nummer IS NOT NULL) THEN - SELECT COUNT(*) - INTO v_count_project - FROM twyn_imp_discipline - WHERE bgt_disc_params_code = v_project_nummer; - - - IF (v_count_project = 0) THEN - INSERT INTO twyn_imp_discipline - ( bgt_disc_params_code - , ins_discipline_omschrijving - , bgt_disc_params_opdrachtgever - , bgt_disc_params_startdatum - , ins_discipline_btw - , bgt_disc_params_leider - ) - VALUES - ( v_project_nummer - , SUBSTR(v_project_omschr, 1, 30) - , v_project_opdrachtgever - , fac.safe_to_date(v_project_startdatum, 'dd-mm-yyyy') - , CASE WHEN v_project_incl_btw = 'WAAR' THEN 1 ELSE 0 END - , v_project_leider - ); - p_project_nummer := v_project_nummer; - END IF; - END IF; - END; --imp_project - - PROCEDURE imp_subproject( p_line IN OUT VARCHAR2 - , p_subproject_nummer OUT VARCHAR2) - IS - v_nn_013 VARCHAR2 (256); --013 VANAAM :valuta naam - v_subproject_nummer VARCHAR2 (256); --014 SPNUMMER :code subproject - v_nn_015 VARCHAR2 (256); --015 SPNR - v_nn_016 VARCHAR2 (256); --016 SPNRs - v_subproject_omschr VARCHAR2 (256); --017 SPOMSCHR :omschrijving subproject - v_nn_018 VARCHAR2 (256); --018 SPFULLNR :(samenvoeging van subprojectnummer en omschrijving) - v_subproject_fase_nr VARCHAR2 (256); --019 SPPSTATUS :projectfase nummer - v_subproject_prijspeildatum VARCHAR2 (256); --020 SPDATPP :datum prijsniveau - v_nn_021 VARCHAR2 (256); --021 SPBOUWTIJD :bouwtijd - v_nn_022 VARCHAR2 (256); --022 SPCAPAC :capaciteit - v_nn_023 VARCHAR2 (256); --023 SPBRUVLOPP :vloeroppervlak - v_nn_024 VARCHAR2 (256); --024 SPINHOUD :inhoud - v_nn_025 VARCHAR2 (256); --025 SPIPSPJ - v_nn_026 VARCHAR2 (256); --026 SPRESOFONV - v_nn_027 VARCHAR2 (256); --027 SPRENTE - v_nn_028 VARCHAR2 (256); --028 SPDIRKOST - v_nn_029 VARCHAR2 (256); --029 SPBIJKOMENDREPORT - v_subproject_soort_nr VARCHAR2 (256); --030 SPPROSOORT :projectsoort nummer - v_subproject_notes VARCHAR2 (256); --031 SPOPMERKINGREPORT :opmerking - v_subproject_fase_omschr VARCHAR2 (256); --032 PSSTATUS :projectfase omschrijving - v_subproject_soort_omschr VARCHAR2 (256); --033 PSRTSOORT :projesctsoort omschrijving - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer - v_count_subproject NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_nn_013); - fac.imp_getfield (p_line, c_delim, v_subproject_nummer); - fac.imp_getfield (p_line, c_delim, v_nn_015); - fac.imp_getfield (p_line, c_delim, v_nn_016); - fac.imp_getfield (p_line, c_delim, v_subproject_omschr); - fac.imp_getfield (p_line, c_delim, v_nn_018); - fac.imp_getfield (p_line, c_delim, v_subproject_fase_nr); - fac.imp_getfield (p_line, c_delim, v_subproject_prijspeildatum); - fac.imp_getfield (p_line, c_delim, v_nn_021); - fac.imp_getfield (p_line, c_delim, v_nn_022); - fac.imp_getfield (p_line, c_delim, v_nn_023); - fac.imp_getfield (p_line, c_delim, v_nn_024); - fac.imp_getfield (p_line, c_delim, v_nn_025); - fac.imp_getfield (p_line, c_delim, v_nn_026); - fac.imp_getfield (p_line, c_delim, v_nn_027); - fac.imp_getfield (p_line, c_delim, v_nn_028); - fac.imp_getfield (p_line, c_delim, v_nn_029); - fac.imp_getfield (p_line, c_delim, v_subproject_soort_nr); - fac.imp_getfield (p_line, c_delim, v_subproject_notes); - fac.imp_getfield (p_line, c_delim, v_subproject_fase_omschr); - fac.imp_getfield (p_line, c_delim, v_subproject_soort_omschr); - -- - p_subproject_nummer := NULL; - v_subproject_nummer := TRIM(v_subproject_nummer); - IF (v_subproject_nummer IS NOT NULL) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - SELECT COUNT(*) - INTO v_count_subproject - FROM twyn_imp_project - WHERE bgt_project_discipline = s_project_nummer - AND bgt_project_code = v_subproject_nummer; - - IF (v_count_subproject = 0) THEN - INSERT INTO twyn_imp_project - ( bgt_project_code - , bgt_project_omschrijving - , bgt_project_volgnr - , bgt_project_discipline - , bgt_project_prijspeildatum - , bgt_project_notes - , bgt_project_fase_nr - , bgt_project_fase_omschr - , bgt_project_soort_nr - , bgt_project_soort_omschr - ) - VALUES - ( v_subproject_nummer - , TRIM(v_subproject_omschr) - , 1 - , s_project_nummer - , fac.safe_to_date(v_subproject_prijspeildatum, 'dd-mm-yyyy') - , v_subproject_notes - , fac.safe_To_Integer(v_subproject_fase_nr) - , v_subproject_fase_omschr - , fac.safe_To_Integer(v_subproject_soort_nr) - , v_subproject_soort_omschr - ); - p_subproject_nummer := v_subproject_nummer; - END IF; - END IF; - END; --imp_subproject - - PROCEDURE imp_rubriek( p_line IN OUT VARCHAR2 - , p_rubriek_nr OUT VARCHAR2) - IS - v_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer - v_rubriek_omschr VARCHAR2 (256); --035 RUOMSCHR :rubriek omschrijving - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - v_count_rubriek NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_rubriek_nr); - fac.imp_getfield (p_line, c_delim, v_rubriek_omschr); - -- - p_rubriek_nr := NULL; - v_rubriek_nr := TRIM(v_rubriek_nr); - IF (v_rubriek_nr IS NOT NULL) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - SELECT COUNT(*) - INTO v_count_rubriek - FROM twyn_imp_kostenrubriek - WHERE bgt_project_code = s_subproject_code - AND bgt_kostenrubriek_code = v_rubriek_nr; - - IF (v_count_rubriek = 0) THEN - INSERT INTO twyn_imp_kostenrubriek - ( bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , bgt_kostenrubriek_oms - ) - VALUES - ( s_project_nummer - , s_subproject_code - , v_rubriek_nr - , TRIM(v_rubriek_omschr) - ); - p_rubriek_nr := v_rubriek_nr; - END IF; - END IF; - END; --imp_rubriek - - PROCEDURE imp_groep( p_line IN OUT VARCHAR2 - , p_groep_nr OUT VARCHAR2) - IS - v_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer - v_groep_omschr VARCHAR2 (256); --037 GrOMSCHR :groep omoschrijving - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek) - v_count_groep NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_groep_nr); - fac.imp_getfield (p_line, c_delim, v_groep_omschr); - -- - p_groep_nr := NULL; - v_groep_nr := TRIM(v_groep_nr); - IF (v_groep_nr IS NOT NULL) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr); - SELECT COUNT(*) - INTO v_count_groep - FROM twyn_imp_kostensoortgrp - WHERE bgt_project_code = s_subproject_code - AND bgt_kostenrubriek_code = s_rubriek_nr - AND prs_kostensoortgrp_altcode = v_groep_nr; - - IF (v_count_groep = 0) THEN - INSERT INTO twyn_imp_kostensoortgrp - ( bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_altcode - , prs_kostensoortgrp_oms - ) - VALUES - ( s_project_nummer - , s_subproject_code - , s_rubriek_nr - , v_groep_nr - , TRIM(v_groep_omschr) - ); - p_groep_nr := v_groep_nr; - END IF; - END IF; - END; --imp_groep - - PROCEDURE imp_onderdeel( p_line IN OUT VARCHAR2 - , p_onderdeel_nr OUT VARCHAR2) - IS - v_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer - v_onderdeel_omschr VARCHAR2 (256); --039 ONOMSCHR :onderdeel omschrijving - v_nn_040 VARCHAR2 (256); --040 ONOPMERK :onderdeel opmerking - v_nn_041 VARCHAR2 (256); --041 ONIDXTABEL :indextabel - v_nn_042 VARCHAR2 (256); --042 ONI_EDATUM :einddatum - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek) - s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep) - s_btw_code VARCHAR2 (256); --094 COBTCODE :btw code - s_btw_waarde VARCHAR2 (256); --095 COBTBTW :btw waarde - v_count_onderdeel NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_onderdeel_nr); - fac.imp_getfield (p_line, c_delim, v_onderdeel_omschr); - fac.imp_getfield (p_line, c_delim, v_nn_040); - fac.imp_getfield (p_line, c_delim, v_nn_041); - fac.imp_getfield (p_line, c_delim, v_nn_042); - -- - p_onderdeel_nr := NULL; - v_onderdeel_nr := TRIM(v_onderdeel_nr); - IF (v_onderdeel_nr IS NOT NULL) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 94, s_btw_code); - fac.imp_getfield_nr(v_searchline, c_delim, 95, s_btw_waarde); - - SELECT COUNT(*) - INTO v_count_onderdeel - FROM twyn_imp_kostensoort - WHERE bgt_project_code = s_subproject_code - AND bgt_kostenrubriek_code = s_rubriek_nr - AND prs_kostensoortgrp_altcode = s_groep_nr - AND prs_kostensoort_oms = v_onderdeel_nr; - - IF (v_count_onderdeel = 0) THEN - INSERT INTO twyn_imp_kostensoort - ( bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_altcode - , prs_kostensoort_oms - , prs_kostensoort_opmerking - , bgt_btw_code - , bgt_btw_waarde - ) - VALUES - ( s_project_nummer - , s_subproject_code - , s_rubriek_nr - , s_groep_nr - , v_onderdeel_nr - , TRIM(v_onderdeel_omschr) - , s_btw_code - , fac.safe_To_Integer(s_btw_waarde) - ); - END IF; - p_onderdeel_nr := v_onderdeel_nr; - -- - IF (s_btw_code IS NOT NULL) THEN - UPDATE twyn_imp_kostensoort - SET bgt_btw_code = s_btw_code - , bgt_btw_waarde = fac.safe_To_Integer(s_btw_waarde) - WHERE bgt_btw_code IS NULL - AND bgt_project_discipline = s_project_nummer - AND bgt_project_code = s_subproject_code - AND bgt_kostenrubriek_code = s_rubriek_nr - AND prs_kostensoortgrp_altcode = s_groep_nr - AND prs_kostensoort_oms = v_onderdeel_nr; - END IF; - END IF; - END; --imp_onderdeel - - PROCEDURE imp_budget( p_line IN OUT VARCHAR2 - , p_budget_nr OUT VARCHAR2) - IS - v_budget_nr VARCHAR2 (256); --043 BUNUMMER :budgetnummer/meer-minder-code/reserve-code - v_budget_omschr VARCHAR2 (256); --044 BUOMSCHR :omschrijving - v_budget_meerminder VARCHAR2 (256); --045 BUMEERMIND :is meer-minder werk - v_budget_init VARCHAR2 (256); --046 BUBEDRINIT :startbedrag - v_nn_047 VARCHAR2 (256); --047 BUWBRBINIT : - v_nn_048 VARCHAR2 (256); --048 BUPSTIJGIN :prijsstijging - v_budget_mutatie VARCHAR2 (256); --049 BUBEDRMUT :bedrag mutatie - v_nn_050 VARCHAR2 (256); --050 BUWBRBMUT : - v_budget_reserve_mut VARCHAR2 (256); --051 BUBEDRMUTR :bedrag mutatie reserve - v_nn_052 VARCHAR2 (256); --052 BUBEDRMMW :bedrag meer-minder werk - v_nn_053 VARCHAR2 (256); --053 BUWBRBMMW - v_budget_reserve VARCHAR2 (256); --054 BURESERVE :bedrag reserve - v_nn_055 VARCHAR2 (256); --055 BUWBRRESRV - v_nn_056 VARCHAR2 (256); --056 BUWBRRESR - v_nn_057 VARCHAR2 (256); --057 BUWBRRES - v_nn_058 VARCHAR2 (256); --058 BUWBRRESR2 - v_nn_059 VARCHAR2 (256); --059 BURESERVE2 - v_budget_type VARCHAR2 (256); --060 BUTYPE :budget type - v_budget_datum VARCHAR2 (256); --061 BUDATUM :datum - v_nn_062 VARCHAR2 (256); --062 BUSTATUS :status - v_nn_063 VARCHAR2 (256); --063 BUKSOORT :kostensoort - v_nn_064 VARCHAR2 (256); --064 BUSORTNR : - v_nn_065 VARCHAR2 (256); --065 KOOMSCHR - v_nn_066 VARCHAR2 (256); --066 BSSTATUS - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek) - s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep) - s_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer (soort) - BEGIN - fac.imp_getfield (p_line, c_delim, v_budget_nr); - fac.imp_getfield (p_line, c_delim, v_budget_omschr); - fac.imp_getfield (p_line, c_delim, v_budget_meerminder); - fac.imp_getfield (p_line, c_delim, v_budget_init); - fac.imp_getfield (p_line, c_delim, v_nn_047); - fac.imp_getfield (p_line, c_delim, v_nn_048); - fac.imp_getfield (p_line, c_delim, v_budget_mutatie); - fac.imp_getfield (p_line, c_delim, v_nn_050); - fac.imp_getfield (p_line, c_delim, v_budget_reserve_mut); - fac.imp_getfield (p_line, c_delim, v_nn_052); - fac.imp_getfield (p_line, c_delim, v_nn_053); - fac.imp_getfield (p_line, c_delim, v_budget_reserve); - fac.imp_getfield (p_line, c_delim, v_nn_055); - fac.imp_getfield (p_line, c_delim, v_nn_056); - fac.imp_getfield (p_line, c_delim, v_nn_057); - fac.imp_getfield (p_line, c_delim, v_nn_058); - fac.imp_getfield (p_line, c_delim, v_nn_059); - fac.imp_getfield (p_line, c_delim, v_budget_type); - fac.imp_getfield (p_line, c_delim, v_budget_datum); - fac.imp_getfield (p_line, c_delim, v_nn_062); - fac.imp_getfield (p_line, c_delim, v_nn_063); - fac.imp_getfield (p_line, c_delim, v_nn_064); - fac.imp_getfield (p_line, c_delim, v_nn_065); - fac.imp_getfield (p_line, c_delim, v_nn_066); - - p_budget_nr := NULL; - v_budget_nr := TRIM(v_budget_nr); - -- geldige budgetrecords hebben een geldige datum (anders nl "0-1-1900") - IF (isDate(v_budget_datum) = 1 ) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr); - IF (v_budget_type IN ('N','R','P','B')) THEN - INSERT INTO twyn_imp_budget - ( bgt_nr - , bgt_oms - , bgt_discipline - , bgt_project - , bgt_kostenrubriek - , bgt_kostensoortgrp - , bgt_kostensoort - , bgt_meerminder - , bgt_datum - , bedr_init_excl - , bedr_mut_excl - , bedr_res_mut_excl - , bedr_mmw_excl - , reserve - , reserve2 - , type - , status - , kostensoort - , soortnr - ) - VALUES - ( v_budget_nr - , v_budget_omschr - , s_project_nummer - , s_subproject_code - , s_rubriek_nr - , s_groep_nr - , s_onderdeel_nr - , CASE WHEN v_budget_meerminder = 'WAAR' THEN 1 ELSE 0 END - , fac.safe_to_date(v_budget_datum, 'dd-mm-yyyy') - , fac.safe_To_Number( REPLACE(v_budget_init, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_budget_mutatie, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_budget_reserve, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_nn_052, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_budget_reserve_mut, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_nn_059, ',', '.') ) - , TRIM(v_budget_type) - , fac.safe_To_Integer(v_nn_062) - , v_nn_063 - , fac.safe_To_Integer(v_nn_064) - ); - p_budget_nr := v_budget_nr; - END IF; - END IF; - END; --imp_budget - - PROCEDURE imp_contract( p_line IN OUT VARCHAR2 - , p_contract_nr OUT NUMBER - , p_contract_volgnr OUT NUMBER) - IS - v_contract_nr VARCHAR2 (256); --067 CONUMMER - v_contract_volgnr VARCHAR2 (256); --068 COSUBNUMME - v_contract_meerminder VARCHAR2 (256); --069 COMEERMIND - v_bedrijf_code VARCHAR2 (256); --070 COCONTTNT - v_contract_omschr VARCHAR2 (256); --071 COOMSCHR - v_contract_datum VARCHAR2 (256); --072 CODATUM - v_contract_bedrag_excl VARCHAR2 (256); --073 COBEDRAG - v_nn_074 VARCHAR2 (256); --074 COWBRBEDR - v_nn_075 VARCHAR2 (256); --075 COBEDRMMW - v_nn_076 VARCHAR2 (256); --076 COBEDRBMMW - v_nn_077 VARCHAR2 (256); --077 COWBRBEMMW - v_contract_bedrag_btw VARCHAR2 (256); --078 COBEDRAGBT - v_nn_079 VARCHAR2 (256); --079 COWBRBBTW - v_nn_080 VARCHAR2 (256); --080 COBWTTARIE - v_contract_bedrag_incl VARCHAR2 (256); --081 COEBEDRAG - v_nn_082 VARCHAR2 (256); --082 COOLDBEDRA - v_nn_083 VARCHAR2 (256); --083 COOLDBTW - v_nn_084 VARCHAR2 (256); --084 COOLDPSTIJ - v_nn_085 VARCHAR2 (256); --085 COPSTIJGIN - v_nn_086 VARCHAR2 (256); --086 COEDATUM - v_contract_kenmerk VARCHAR2 (256); --087 COKENMERK - v_nn_088 VARCHAR2 (256); --088 COMMWNR - v_nn_089 VARCHAR2 (256); --089 COMMWSTATU - v_nn_090 VARCHAR2 (256); --090 COBEDRRAM - v_nn_091 VARCHAR2 (256); --091 COBEDRDEF - v_contract_status VARCHAR2 (256); --092 COSTATUS :contractstatus key - v_nn_093 VARCHAR2 (256); --093 COWITHFA - v_nn_094 VARCHAR2 (256); --094 COBTCODE :btw code - v_nn_095 VARCHAR2 (256); --095 COBTBTW :btw waarde - v_nn_096 VARCHAR2 (256); --096 CSSTATUS :contractstatus omschrijving - v_is_contract VARCHAR2 (256); --097 COISCONTR :iscontract - s_factuur_nr VARCHAR2 (256); --107 FANUMMER :factuurnummer - s_grootboek_nr VARCHAR2 (256); --121 GRB :grootboek nummer - s_grootboek_oms VARCHAR2 (256); --124 GRB_OMSCHR :grootboek omschrijving - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek) - s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep) - s_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer (soort) - v_count_contract NUMBER(3); - v_i_contract_nr NUMBER(10); - v_i_factuur_nr NUMBER(10); - v_i_grootboek_nr NUMBER(10); - v_i_iscontract NUMBER(1); - BEGIN - fac.imp_getfield (p_line, c_delim, v_contract_nr); - fac.imp_getfield (p_line, c_delim, v_contract_volgnr); - fac.imp_getfield (p_line, c_delim, v_contract_meerminder); - fac.imp_getfield (p_line, c_delim, v_bedrijf_code); - fac.imp_getfield (p_line, c_delim, v_contract_omschr); - fac.imp_getfield (p_line, c_delim, v_contract_datum); - fac.imp_getfield (p_line, c_delim, v_contract_bedrag_excl); - fac.imp_getfield (p_line, c_delim, v_nn_074); - fac.imp_getfield (p_line, c_delim, v_nn_075); - fac.imp_getfield (p_line, c_delim, v_nn_076); - fac.imp_getfield (p_line, c_delim, v_nn_077); - fac.imp_getfield (p_line, c_delim, v_contract_bedrag_btw); - fac.imp_getfield (p_line, c_delim, v_nn_079); - fac.imp_getfield (p_line, c_delim, v_nn_080); - fac.imp_getfield (p_line, c_delim, v_contract_bedrag_incl); - fac.imp_getfield (p_line, c_delim, v_nn_082); - fac.imp_getfield (p_line, c_delim, v_nn_083); - fac.imp_getfield (p_line, c_delim, v_nn_084); - fac.imp_getfield (p_line, c_delim, v_nn_085); - fac.imp_getfield (p_line, c_delim, v_nn_086); - fac.imp_getfield (p_line, c_delim, v_contract_kenmerk); - fac.imp_getfield (p_line, c_delim, v_nn_088); - fac.imp_getfield (p_line, c_delim, v_nn_089); - fac.imp_getfield (p_line, c_delim, v_nn_090); - fac.imp_getfield (p_line, c_delim, v_nn_091); - fac.imp_getfield (p_line, c_delim, v_contract_status); - fac.imp_getfield (p_line, c_delim, v_nn_093); - fac.imp_getfield (p_line, c_delim, v_nn_094); - fac.imp_getfield (p_line, c_delim, v_nn_095); - fac.imp_getfield (p_line, c_delim, v_nn_096); - fac.imp_getfield (p_line, c_delim, v_is_contract); - - fac.imp_getfield_nr(v_searchline, c_delim, 107, s_factuur_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 121, s_grootboek_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 124, s_grootboek_oms); - - p_contract_nr := fac.safe_To_Integer(v_contract_nr); - p_contract_volgnr := fac.safe_To_Integer(v_contract_volgnr); - - v_i_contract_nr := fac.safe_To_Integer(v_contract_nr); - v_i_factuur_nr := fac.safe_To_Integer(s_factuur_nr); - v_i_grootboek_nr := fac.safe_To_Integer(s_grootboek_nr); - v_i_iscontract := fac.safe_To_Integer(v_is_contract); - - IF ( (v_i_iscontract = 1) - AND (v_i_contract_nr > 0) - AND (v_i_factuur_nr = 0) - ) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr); - - SELECT COUNT(*) - INTO v_count_contract - FROM twyn_imp_contract - WHERE bgt_contract_nr = p_contract_nr - AND bgt_contract_volgnr = p_contract_volgnr; - - IF (v_count_contract = 0) THEN - INSERT INTO twyn_imp_contract - ( bgt_contract_nr - , bgt_contract_volgnr - , bgt_contract_meerminder - , bgt_bedrijf_code - , bgt_contract_omschr - , bgt_contract_datum - , bgt_contract_bedrag_excl - , bgt_contract_bedrag_btw - , bgt_contract_bedrag_incl - , bgt_contract_status - , bgt_contract_referentie - , bgt_discipline_code - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_code - , prs_kostensoort_code - , prs_kostenplaats_nr - , prs_kostenplaats_oms - ) - VALUES - ( p_contract_nr - , p_contract_volgnr - , fac.safe_To_Integer(v_contract_meerminder) - , v_bedrijf_code - , v_contract_omschr - , fac.safe_to_date(v_contract_datum, 'dd-mm-yyyy') - , fac.safe_To_Number( REPLACE(v_contract_bedrag_excl, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_contract_bedrag_btw, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_contract_bedrag_incl, ',', '.') ) - , fac.safe_To_Number(v_contract_status) - , v_contract_kenmerk - , s_project_nummer - , s_subproject_code - , s_rubriek_nr - , s_groep_nr - , s_onderdeel_nr - , fac.safe_To_Integer(s_grootboek_nr) - , s_grootboek_oms - ); - END IF; - END IF; - END; --imp_contract - - PROCEDURE imp_contractant( p_line IN OUT VARCHAR2 - , p_bedrijf_code OUT VARCHAR2) - IS - v_bedrijf_code VARCHAR2 (256); --098 CNNUMMER - v_bedrijf_naam VARCHAR2 (256); --099 CNNAAM - v_bedrijf_adres VARCHAR2 (256); --100 CNADRES - v_bedrijf_postcode VARCHAR2 (256); --101 CNPOSTCODE - v_bedrijf_plaats VARCHAR2 (256); --102 CNPLAATS - v_bedrijf_contactpers VARCHAR2 (256); --103 CNCTCTPERS - v_bedrijf_telnr VARCHAR2 (256); --104 CNTELNR - v_bedrijf_faxnr VARCHAR2 (256); --105 CNFAXNR - v_bedrijf_debiteurnr VARCHAR2 (256); --106 CNDEBNR - v_count_bedrijf NUMBER (3); - BEGIN - fac.imp_getfield (p_line, c_delim, v_bedrijf_code); - fac.imp_getfield (p_line, c_delim, v_bedrijf_naam); - fac.imp_getfield (p_line, c_delim, v_bedrijf_adres); - fac.imp_getfield (p_line, c_delim, v_bedrijf_postcode); - fac.imp_getfield (p_line, c_delim, v_bedrijf_plaats); - fac.imp_getfield (p_line, c_delim, v_bedrijf_contactpers); - fac.imp_getfield (p_line, c_delim, v_bedrijf_telnr); - fac.imp_getfield (p_line, c_delim, v_bedrijf_faxnr); - fac.imp_getfield (p_line, c_delim, v_bedrijf_debiteurnr); - -- - p_bedrijf_code := NULL; - IF (v_bedrijf_code IS NOT NULL) THEN - SELECT COUNT(*) - INTO v_count_bedrijf - FROM fac_imp_ext_bedrijf - WHERE prs_bedrijf_overig1 = v_bedrijf_code; - - IF (v_count_bedrijf = 0) THEN - INSERT INTO fac_imp_ext_bedrijf - ( prs_bedrijf_naam - , prs_bedrijf_bezoek_adres - , prs_bedrijf_bezoek_postcode - , prs_bedrijf_bezoek_plaats - , prs_bedrijf_telefoon - , prs_bedrijf_fax - , prs_bedrijf_contact_persoon - , prs_bedrijf_overig1 - ) - VALUES - ( v_bedrijf_naam - , v_bedrijf_adres - , v_bedrijf_postcode - , v_bedrijf_plaats - , v_bedrijf_telnr - , v_bedrijf_faxnr - , v_bedrijf_contactpers - , v_bedrijf_code - ); - ELSE - UPDATE (SELECT prs_bedrijf_bezoek_adres - , prs_bedrijf_bezoek_postcode - , prs_bedrijf_bezoek_plaats - , prs_bedrijf_telefoon - , prs_bedrijf_fax - , prs_bedrijf_contact_persoon - , prs_bedrijf_overig1 - FROM fac_imp_ext_bedrijf - WHERE prs_bedrijf_overig1 = v_bedrijf_code - ) - SET prs_bedrijf_bezoek_adres = COALESCE(v_bedrijf_adres, prs_bedrijf_bezoek_adres) - , prs_bedrijf_bezoek_postcode = COALESCE(v_bedrijf_postcode, prs_bedrijf_bezoek_postcode) - , prs_bedrijf_bezoek_plaats = COALESCE(v_bedrijf_plaats, prs_bedrijf_bezoek_plaats) - , prs_bedrijf_telefoon = COALESCE(v_bedrijf_telnr, prs_bedrijf_telefoon) - , prs_bedrijf_fax = COALESCE(v_bedrijf_faxnr, prs_bedrijf_fax) - , prs_bedrijf_contact_persoon = COALESCE(v_bedrijf_contactpers, prs_bedrijf_contact_persoon); - END IF; - p_bedrijf_code := v_bedrijf_code; - END IF; - END; --imp_contractant - - PROCEDURE imp_factuur( p_line IN OUT VARCHAR2 - , p_factuur_nr OUT NUMBER - , p_factuur_volgnr OUT NUMBER) - IS - v_factuur_nr VARCHAR2 (256); --107 FANUMMER - v_factuur_volgnr VARCHAR2 (256); --108 FASUBNUMME - v_factuur_refnr VARCHAR2 (256); --109 FACNTTNTNR - v_factuur_omschr VARCHAR2 (256); --110 FAOMSCHR - v_factuur_datum VARCHAR2 (256); --111 FADATUM - v_nn_112 VARCHAR2 (256); --112 FACOBEDRAG - v_nn_113 VARCHAR2 (256); --113 FACOEBEDRA - v_nn_114 VARCHAR2 (256); --114 FACOBEDRBT - v_factuur_bedrag_excl VARCHAR2 (256); --115 FABEDRAG - v_factuur_bedrag_btw VARCHAR2 (256); --116 FABEDRAGBT - v_nn_117 VARCHAR2 (256); --117 FABTWTARIE - v_factuur_bedrag_incl VARCHAR2 (256); --118 FAEBEDRAG - v_factuur_adviesdatum VARCHAR2 (256); --119 FAADVDAT - v_nn_120 VARCHAR2 (256); --120 FASTATUS - v_factuur_grootboek VARCHAR2 (256); --121 GRB - v_nn_122 VARCHAR2 (256); --122 GRB2 - v_nn_123 VARCHAR2 (256); --123 GRBNummer - v_nn_124 VARCHAR2 (256); --124 GRB_OMSCHR - v_nn_125 VARCHAR2 (256); --125 FABTCODE - v_nn_126 VARCHAR2 (256); --126 FABTBTW - v_factuur_status VARCHAR2 (256); --127 FSSTATUS - v_nn_128 VARCHAR2 (256); --128 INNUMMER - v_nn_129 VARCHAR2 (256); --129 INNAAM - v_nn_130 VARCHAR2 (256); --130 INPERIODE - v_nn_131 VARCHAR2 (256); --131 INCIJFER - v_nn_132 VARCHAR2 (256); --132 RecordType - s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline) - s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project) - s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek) - s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep) - s_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer (soort) - s_contract_nr VARCHAR2 (256); --067 CONUMMER - s_contract_volgnr VARCHAR2 (256); --068 COSUBNUMME - s_contract_kenmerk VARCHAR2 (256); --087 COKENMERK - BEGIN - fac.imp_getfield (v_newline, c_delim, v_factuur_nr); - fac.imp_getfield (v_newline, c_delim, v_factuur_volgnr); - fac.imp_getfield (v_newline, c_delim, v_factuur_refnr); - fac.imp_getfield (v_newline, c_delim, v_factuur_omschr); - fac.imp_getfield (v_newline, c_delim, v_factuur_datum); - fac.imp_getfield (v_newline, c_delim, v_nn_112); - fac.imp_getfield (v_newline, c_delim, v_nn_113); - fac.imp_getfield (v_newline, c_delim, v_nn_114); - fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_excl); - fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_btw); - fac.imp_getfield (v_newline, c_delim, v_nn_117); - fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_incl); - fac.imp_getfield (v_newline, c_delim, v_factuur_adviesdatum); - fac.imp_getfield (v_newline, c_delim, v_nn_120); - fac.imp_getfield (v_newline, c_delim, v_factuur_grootboek); - fac.imp_getfield (v_newline, c_delim, v_nn_122); - fac.imp_getfield (v_newline, c_delim, v_nn_123); - fac.imp_getfield (v_newline, c_delim, v_nn_124); - fac.imp_getfield (v_newline, c_delim, v_nn_125); - fac.imp_getfield (v_newline, c_delim, v_nn_126); - fac.imp_getfield (v_newline, c_delim, v_factuur_status); - fac.imp_getfield (v_newline, c_delim, v_nn_128); - fac.imp_getfield (v_newline, c_delim, v_nn_129); - fac.imp_getfield (v_newline, c_delim, v_nn_130); - fac.imp_getfield (v_newline, c_delim, v_nn_131); - fac.imp_getfield (v_newline, c_delim, v_nn_132); - - p_factuur_nr := fac.safe_To_Integer(v_factuur_nr); - p_factuur_volgnr := fac.safe_To_Integer(v_factuur_volgnr); - IF (isDate(v_factuur_datum) = 1 AND p_factuur_nr > 0) THEN - fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer); - fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code); - fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 67, s_contract_nr); - fac.imp_getfield_nr(v_searchline, c_delim, 68, s_contract_volgnr); - fac.imp_getfield_nr(v_searchline, c_delim, 87, s_contract_kenmerk); - - INSERT INTO twyn_imp_factuur - ( bgt_factuur_nr - , bgt_factuur_volgnr - , bgt_factuur_refnr - , bgt_factuur_omschr - , bgt_factuur_datum - , bgt_factuur_bedrag_excl - , bgt_factuur_bedrag_btw - , bgt_factuur_bedrag_incl - , bgt_factuur_adviesdatum - , bgt_factuur_grootboek - , bgt_factuur_status - , bgt_contract_nr - , bgt_contract_volgnr - , bgt_contract_referentie - , bgt_discipline_code - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_code - , prs_kostensoort_code - ) - VALUES - ( p_factuur_nr - , p_factuur_volgnr - , SUBSTR(v_factuur_refnr, 1, 12) - , v_factuur_omschr - , fac.safe_to_date(v_factuur_datum, 'dd-mm-yyyy') - , fac.safe_To_Number( REPLACE(v_factuur_bedrag_excl, ',', '.') ) - , fac.safe_To_Number( REPLACE(v_factuur_bedrag_btw , ',', '.') ) - , fac.safe_To_Number( REPLACE(v_factuur_bedrag_incl, ',', '.') ) - , fac.safe_to_date(v_factuur_adviesdatum, 'dd-mm-yyyy') - , fac.safe_To_Integer(v_factuur_grootboek) - , v_factuur_status - , s_contract_nr - , s_contract_volgnr - , s_contract_kenmerk - , s_project_nummer - , s_subproject_code - , s_rubriek_nr - , s_groep_nr - , s_onderdeel_nr - ); - END IF; - END; --imp_factuur - - PROCEDURE nabewerken_budget(p_import_key IN NUMBER) - AS - CURSOR c_budget - IS - SELECT key - , bgt_discipline - , bgt_project - , bgt_kostenrubriek - , bgt_kostensoortgrp - , bgt_kostensoort - , bgt_datum - , bedr_init_excl - , bedr_mut_excl - , bedr_init_btw - , bedr_mut_btw - , type - FROM twyn_imp_budget - WHERE type IN ('N','R'); - - v_discipline twyn_imp_budget.bgt_discipline%TYPE; - v_project twyn_imp_budget.bgt_project%TYPE; - v_rubriek twyn_imp_budget.bgt_kostenrubriek%TYPE; - v_groep twyn_imp_budget.bgt_kostensoortgrp%TYPE; - v_soort twyn_imp_budget.bgt_kostensoort%TYPE; - v_datum twyn_imp_budget.bgt_datum%TYPE; - v_init_excl twyn_imp_budget.bedr_init_excl%TYPE; - v_mut_excl twyn_imp_budget.bedr_mut_excl%TYPE; - v_type twyn_imp_budget.type%TYPE; - BEGIN - fac.imp_writelog (p_import_key, 'I', 'Nabewerken budget', NULL); - v_errormsg := 'Fout bij nabewerken budget '; - DELETE FROM twyn_imp_budget WHERE bgt_datum IS NULL; - -- - UPDATE twyn_imp_budget i - SET bedr_init_btw = (SELECT COALESCE(MAX(b.bedr_init_excl), 0) - FROM twyn_imp_budget b - WHERE b.type = 'B' - AND b.bgt_datum = i.bgt_datum - AND b.bgt_discipline = i.bgt_discipline - AND b.bgt_project = i.bgt_project - AND ((b.bgt_kostenrubriek = i.bgt_kostenrubriek AND i.bgt_kostenrubriek IS NOT NULL) OR (b.bgt_kostenrubriek IS NULL AND i.bgt_kostenrubriek IS NULL)) - AND ((b.bgt_kostensoortgrp = i.bgt_kostensoortgrp AND i.bgt_kostensoortgrp IS NOT NULL) OR (b.bgt_kostensoortgrp IS NULL AND i.bgt_kostensoortgrp IS NULL)) - AND ((b.bgt_kostensoort = i.bgt_kostensoort AND i.bgt_kostensoort IS NOT NULL) OR (b.bgt_kostensoort IS NULL AND i.bgt_kostensoort IS NULL)) - ) - , bedr_mut_btw = (SELECT COALESCE(MAX(b.bedr_mut_excl), 0) - FROM twyn_imp_budget b - WHERE b.type = 'B' - AND b.bgt_datum IS NOT NULL - AND b.bgt_datum = i.bgt_datum - AND b.bgt_discipline = i.bgt_discipline - AND b.bgt_project = i.bgt_project - AND ((b.bgt_kostenrubriek = i.bgt_kostenrubriek AND i.bgt_kostenrubriek IS NOT NULL) OR (b.bgt_kostenrubriek IS NULL AND i.bgt_kostenrubriek IS NULL)) - AND ((b.bgt_kostensoortgrp = i.bgt_kostensoortgrp AND i.bgt_kostensoortgrp IS NOT NULL) OR (b.bgt_kostensoortgrp IS NULL AND i.bgt_kostensoortgrp IS NULL)) - AND ((b.bgt_kostensoort = i.bgt_kostensoort AND i.bgt_kostensoort IS NOT NULL) OR (b.bgt_kostensoort IS NULL AND i.bgt_kostensoort IS NULL)) - AND (b.bgt_nr = i.bgt_nr) - ) - WHERE type IN ('N','R'); - -- - -- verrekenen btw van reserve en prijsstijging die samen zijn genomen. - UPDATE twyn_imp_budget - SET bedr_init_btw = (bedr_init_excl * (SELECT SUM(COALESCE(b.bedr_init_btw, 0)) / SUM(COALESCE(b.bedr_init_excl, 0)) - FROM twyn_imp_budget b - WHERE b.type in ('R','P') - AND b.bedr_init_excl > 0 - ) - ) - WHERE type in ('R','P') - AND bedr_init_excl > 0; - -- - -- De P-regels mogen er nu uit. - DELETE FROM twyn_imp_budget WHERE type = 'P'; - -- - DELETE FROM twyn_imp_budget WHERE type = 'B'; - UPDATE twyn_imp_budget SET key = ROWNUM; - COMMIT; - EXCEPTION - WHEN OTHERS THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ' r.'|| v_imp_count || ')'; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding ||' * '|| v_errormsg, - v_errorhint); - END; --nabewerken_budget; --- --- -BEGIN - -- Eerst opruiming - DELETE FROM twyn_imp_discipline; - DELETE FROM twyn_imp_project; - DELETE FROM twyn_imp_kostenrubriek; - DELETE FROM twyn_imp_kostensoortgrp; - DELETE FROM twyn_imp_kostensoort; - DELETE FROM twyn_imp_budget; - DELETE FROM twyn_imp_contract; - DELETE FROM fac_imp_ext_bedrijf; - DELETE FROM twyn_imp_factuur; - - - FOR rec IN c1 - LOOP - BEGIN - v_aanduiding := NULL; - v_errorhint := 'Fout inlezen importregel'; - v_newline := rec.fac_imp_file_line; - v_ongeldig := 0; - v_imp_count := v_imp_count + 1; - - IF (header_is_valid = 0) - THEN - -- Sla voorlopig de eerste regel gewoon over. - -- Later misschien controleren of het een geldige header is. - header_is_valid := 1; - ELSIF rec.regellengte > 1 -- Lege regels overslaan! - THEN - -- Lees alle veldwaarden - v_searchline := v_newline; -- bewaar de oorspronkelijke regel om in te kunnen zoeken. - -- - v_aanduiding := 'START'; - imp_skip(v_newline, 2); - -- - v_aanduiding := 'PROJECT'; - imp_project(v_newline, k_project_code); - -- - v_aanduiding := 'SUBPROJECT'; - imp_subproject(v_newline, k_subproject_code); - -- - v_aanduiding := 'RUBRIEK'; - imp_rubriek(v_newline, k_rubriek_nr); - -- - v_aanduiding := 'GROEP'; - imp_groep(v_newline, k_groep_nr); - -- - v_aanduiding := 'ONDERDEEL'; - imp_onderdeel(v_newline, k_onderdeel_nr); - -- - v_aanduiding := 'BUDGET'; - imp_budget(v_newline, k_budget_nr); - -- - v_aanduiding := 'CONTRACT'; - imp_contract(v_newline, k_contract_nr, k_contract_volgnr); - -- - v_aanduiding := 'CONTRACTANT'; - imp_contractant(v_newline, k_bedrijf_code); - -- - v_aanduiding := 'FACTUUR'; - imp_factuur(v_newline, k_factuur_nr, k_factuur_volgnr); - -- - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ' r.'|| v_imp_count || ')'; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding ||' * '|| v_errormsg, - v_errorhint); - END; - END LOOP; - -- - nabewerken_budget(p_import_key); - - COMMIT; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ' r.'|| v_imp_count || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Inlezen bgt conversie afgebroken!'); -END twyn_import_reportdbf; -/ - -CREATE OR REPLACE PROCEDURE twyn_update_reportdbf (p_import_key IN NUMBER) -AS - g_errormsg VARCHAR2 (1000); - g_errorhint VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - g_aanduiding VARCHAR2 (200); - g_perslid_key NUMBER (10); - - TYPE budget_rec IS RECORD - ( - bgt_discipline twyn_imp_budget.bgt_discipline%TYPE, - bgt_project twyn_imp_budget.bgt_project%TYPE, - bgt_kostenrubriek twyn_imp_budget.bgt_kostenrubriek%TYPE, - bgt_kostensoortgrp twyn_imp_budget.bgt_kostensoortgrp%TYPE, - bgt_kostensoort twyn_imp_budget.bgt_kostensoort%TYPE, - type VARCHAR2(1), - bgt_datum twyn_imp_budget.bgt_datum%TYPE, - bedr_init_excl twyn_imp_budget.bedr_init_excl%TYPE, - bedr_init_btw twyn_imp_budget.bedr_init_btw%TYPE, - key NUMBER(10) - ); - - TYPE kosten_keys IS RECORD - ( - bgt_discipline_key bgt_disc_params.bgt_ins_discipline_key%TYPE, - bgt_project_key bgt_project.bgt_project_key%TYPE, - bgt_kostenrubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE, - prs_kostensoortgrp_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE, - prs_kostensoort_key prs_kostensoort.prs_kostensoort_key%TYPE, - is_reserve NUMBER(1), - status NUMBER(1), - type VARCHAR2(1) - ); - - FUNCTION get_kosten_keys( p_import_key IN NUMBER - , p_prefix IN VARCHAR2 - , p_discipline IN VARCHAR2 - , p_project IN VARCHAR2 - , p_rubriek IN VARCHAR2 - , p_groep IN VARCHAR2 - , p_soort IN VARCHAR2 - , p_type IN VARCHAR2 DEFAULT NULL - ) RETURN kosten_keys - IS - a_rubriek_code bgt_kostenrubriek.bgt_kostenrubriek_code%TYPE; - a_groep_code prs_kostensoortgrp.prs_kostensoortgrp_altcode%TYPE; - a_soort_code prs_kostensoort.prs_kostensoort_oms%TYPE; - a_kosten_keys KOSTEN_KEYS; - BEGIN - a_kosten_keys.status := -1; - g_errormsg := 'Fout bij ophalen ('|| p_prefix ||')kosten-keys ['|| NVL(p_discipline, 'k') - ||'.'|| NVL(p_project, 'k') - ||'.'|| NVL(p_rubriek, 'k') - ||'.'|| NVL(p_groep, 'k') - ||'.'|| NVL(p_soort, 'k') - ||'.'|| NVL(p_type, 'k') - ||']'; - BEGIN - IF (p_rubriek IS NULL) THEN - SELECT d.bgt_ins_discipline_key - , p.bgt_project_key - , r.bgt_kostenrubriek_key - , NULL - , NULL - , p_type - INTO a_kosten_keys.bgt_discipline_key - , a_kosten_keys.bgt_project_key - , a_kosten_keys.bgt_kostenrubriek_key - , a_kosten_keys.prs_kostensoortgrp_key - , a_kosten_keys.prs_kostensoort_key - , a_kosten_keys.type - FROM bgt_disc_params d - , bgt_project p - , bgt_kostenrubriek r - WHERE d.bgt_ins_discipline_key = p.ins_discipline_key - AND p.bgt_project_key = r.bgt_project_key - AND r.bgt_kostenrubriek_code = 'R' - AND d.bgt_disc_params_code = p_discipline - AND p.bgt_project_code = p_project; - ELSE - a_rubriek_code := p_rubriek; - SELECT DECODE(a_rubriek_code, NULL, NULL, DECODE(p_groep, NULL, NULL, a_rubriek_code ||'.'|| p_groep)) INTO a_groep_code FROM DUAL; - SELECT DECODE(a_groep_code, NULL, NULL, DECODE(p_soort, NULL, NULL, a_groep_code ||'.'|| p_soort)) INTO a_soort_code FROM DUAL; - SELECT DISTINCT - d.bgt_ins_discipline_key - , p.bgt_project_key - , DECODE(p_rubriek, NULL, NULL, r.bgt_kostenrubriek_key) - , DECODE(p_groep, NULL, NULL, g.prs_kostensoortgrp_key) - , DECODE(p_soort, NULL, NULL, s.prs_kostensoort_key) - INTO a_kosten_keys.bgt_discipline_key - , a_kosten_keys.bgt_project_key - , a_kosten_keys.bgt_kostenrubriek_key - , a_kosten_keys.prs_kostensoortgrp_key - , a_kosten_keys.prs_kostensoort_key - FROM bgt_disc_params d - , bgt_project p - , bgt_kostenrubriek r - , prs_kostensoortgrp g - , prs_kostensoort s - WHERE d.bgt_ins_discipline_key = p.ins_discipline_key - AND p.bgt_project_key = r.bgt_project_key - AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key - AND g.prs_kostensoortgrp_key = s.prs_kostensoortgrp_key - AND d.bgt_disc_params_code = p_discipline - AND p.bgt_project_code = p_project - AND r.bgt_kostenrubriek_code = NVL(a_rubriek_code, r.bgt_kostenrubriek_code) - AND g.prs_kostensoortgrp_altcode = NVL(a_groep_code, g.prs_kostensoortgrp_altcode) - AND s.prs_kostensoort_altcode = NVL(a_soort_code, s.prs_kostensoort_altcode); - END IF; - -- - a_kosten_keys.status := 1; - a_kosten_keys.is_reserve := 0; - IF ( p_rubriek IS NULL - AND p_groep IS NULL - AND p_soort IS NULL - ) THEN - a_kosten_keys.is_reserve := 1; - END IF; - - EXCEPTION - WHEN TOO_MANY_ROWS THEN - fac.imp_writelog ( p_import_key, 'W', g_errormsg, NULL); - WHEN NO_DATA_FOUND THEN - a_kosten_keys.status := 0; - END; - RETURN a_kosten_keys; - END; --get_kosten_keys - - FUNCTION get_opdr_key( p_kostensoort_key IN NUMBER - , p_contract_nr IN NUMBER - , p_contract_volgnr IN NUMBER - ) RETURN NUMBER - IS - a_opdr_key mld_opdr.mld_opdr_key%TYPE; - BEGIN - g_errormsg := 'Fout bij ophalen opdracht-key ['|| TO_CHAR(p_contract_nr) ||'/'|| TO_CHAR(p_contract_volgnr) ||'] '||p_kostensoort_key; - BEGIN - SELECT mld_opdr_key - INTO a_opdr_key - FROM mld_opdr - WHERE mld_opdr_ordernr = TO_CHAR(p_contract_nr) - AND mld_opdr_bedrijfopdr_volgnr = TO_CHAR(p_contract_volgnr) - AND prs_kostensoort_key = p_kostensoort_key; - EXCEPTION - WHEN NO_DATA_FOUND THEN - a_opdr_key := -1; - END; - RETURN a_opdr_key; - END; - - FUNCTION get_btw_perc( p_excl IN NUMBER - , p_btw IN NUMBER - ) RETURN NUMBER - IS - a_perc NUMBER (3); - a_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE; - BEGIN - -- Bepaal de btw-key door het percentage te berekenen - IF ((p_excl = p_btw) OR (NVL(p_btw, 0) = 0) OR (NVL(p_excl, 0) = 0)) THEN - a_perc := 0; - ELSE - SELECT ROUND((p_btw / p_excl) * 100) - INTO a_perc - FROM DUAL; - END IF; - BEGIN - SELECT fin_btwtabelwaarde_key - INTO a_btw_key - FROM fin_btwtabelwaarde - WHERE fin_btwtabelwaarde_perc = a_perc; - EXCEPTION - WHEN NO_DATA_FOUND THEN - a_btw_key := NULL; - END; - RETURN a_btw_key; - END; --get_btw_perc - - FUNCTION get_btw_key( p_code IN VARCHAR2 - , p_perc IN NUMBER - ) RETURN NUMBER - IS - a_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE; - BEGIN - BEGIN - SELECT fin_btwtabelwaarde_key - INTO a_btw_key - FROM fin_btwtabelwaarde - WHERE fin_btwtabelwaarde_perc = p_perc; - EXCEPTION - WHEN NO_DATA_FOUND THEN - INSERT INTO fin_btwtabelwaarde - ( fin_btwtabelwaarde_code - , fin_btwtabelwaarde_oms - , fin_btwtabelwaarde_perc - , fin_btwtabel_key - ) - VALUES - ( SUBSTR(p_code,1,1) || TO_CHAR(p_perc) - , p_code - , p_perc - , (SELECT MAX(fin_btwtabel_key) FROM fin_btwtabel) - ) - RETURNING fin_btwtabelwaarde_key INTO a_btw_key; - END; - RETURN a_btw_key; - END; -- get_btw_key - - - PROCEDURE update_discipline(p_import_key IN NUMBER) - AS - CURSOR c_discipline - IS - SELECT bgt_disc_params_code - , ins_discipline_omschrijving - , bgt_disc_params_opdrachtgever - , bgt_disc_params_startdatum - , ins_discipline_btw - , bgt_disc_params_leider - FROM twyn_imp_discipline; - l_disc_key bgt_disc_params.bgt_ins_discipline_key%TYPE; - l_count NUMBER(3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec IN c_discipline - LOOP - g_errormsg := 'Fout bij toevoegen discipline ' || l_rec.bgt_disc_params_code; - BEGIN - SELECT dp.bgt_ins_discipline_key - INTO l_disc_key - FROM bgt_disc_params dp - , ins_tab_discipline td - WHERE dp.bgt_ins_discipline_key = td.ins_discipline_key - AND td.ins_discipline_verwijder IS NULL - AND dp.bgt_disc_params_code = l_rec.bgt_disc_params_code; - -- - fac.imp_writelog ( p_import_key - , 'W' - , 'Discipline [' || l_rec.bgt_disc_params_code || '] bestaat al' - , NULL - ); - EXCEPTION - WHEN NO_DATA_FOUND THEN - g_errorhint := 'Toevoegen discipline'; - INSERT INTO ins_tab_discipline - ( ins_discipline_module - , ins_discipline_omschrijving - , ins_discipline_btw - ) - VALUES - ( 'BGT' - , l_rec.ins_discipline_omschrijving - , l_rec.ins_discipline_btw - ) - RETURNING ins_discipline_key INTO l_disc_key; - -- - INSERT INTO bgt_disc_params - ( bgt_ins_discipline_key - , bgt_disc_params_code - , bgt_disc_params_startdatum - , bgt_disc_params_opdrachtgever - ) - VALUES - ( l_disc_key - , l_rec.bgt_disc_params_code - , l_rec.bgt_disc_params_startdatum - , l_rec.bgt_disc_params_opdrachtgever - ); - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Discipline [' || l_rec.bgt_disc_params_code || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Discipline: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_discipline - - PROCEDURE update_project(p_import_key IN NUMBER) - AS - CURSOR c_project - IS - SELECT bgt_project_discipline - , bgt_project_code - , bgt_project_volgnr - , bgt_project_omschrijving - , bgt_project_prijspeildatum - , bgt_project_notes - , bgt_project_fase_nr - , bgt_project_fase_omschr - , bgt_project_soort_nr - , bgt_project_soort_omschr - FROM twyn_imp_project - ORDER BY bgt_project_code; - l_disc_key bgt_disc_params.bgt_ins_discipline_key%TYPE; - l_project_key bgt_project.bgt_project_key%TYPE; - l_count NUMBER(3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec in c_project - LOOP - BEGIN - g_errormsg := 'Fout bij opvragen discipline ' || l_rec.bgt_project_discipline; - SELECT dp.bgt_ins_discipline_key - INTO l_disc_key - FROM bgt_disc_params dp - , ins_tab_discipline td - WHERE dp.bgt_ins_discipline_key = td.ins_discipline_key - AND td.ins_discipline_verwijder IS NULL - AND dp.bgt_disc_params_code = l_rec.bgt_project_discipline; - - -- - g_errormsg := 'Fout bij toevoegen project ' || l_rec.bgt_project_code; - BEGIN - SELECT bgt_project_key - INTO l_project_key - FROM bgt_project - WHERE ins_discipline_key = l_disc_key - AND bgt_project_code = l_rec.bgt_project_code - AND bgt_project_volgnr = l_rec.bgt_project_volgnr - AND bgt_project_verwijder IS NULL; - -- - fac.imp_writelog ( p_import_key - , 'W' - , 'Project [' || l_rec.bgt_project_code || '] bestaat al in discipline [' || l_rec.bgt_project_discipline || ']' - , NULL - ); - EXCEPTION - WHEN NO_DATA_FOUND THEN - g_errorhint := 'Toevoegen project'; - INSERT INTO bgt_project - ( ins_discipline_key - , bgt_project_code - , bgt_project_omschrijving - , bgt_project_volgnr - , bgt_project_prijspeildatum - , bgt_project_notes - ) - VALUES - ( l_disc_key - , l_rec.bgt_project_code - , l_rec.bgt_project_omschrijving - , l_rec.bgt_project_volgnr - , l_rec.bgt_project_prijspeildatum - , l_rec.bgt_project_notes - ) - RETURNING bgt_project_key INTO l_project_key; - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Project [' || l_rec.bgt_project_code || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - END; - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'W', 'Onbekende discipline [' || l_rec.bgt_project_discipline || ']', NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Project: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_project - - PROCEDURE update_rubriek(p_import_key IN NUMBER) - AS - CURSOR c_rubriek - IS - SELECT bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , bgt_kostenrubriek_oms - FROM twyn_imp_kostenrubriek - ORDER BY bgt_kostenrubriek_code; - l_project_key bgt_project.bgt_project_key%TYPE; - l_rubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE; - l_count NUMBER(3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec IN c_rubriek - LOOP - BEGIN - g_errormsg := 'Fout bij opvragen project ' || l_rec.bgt_project_code; - SELECT bgt_project_key - INTO l_project_key - FROM bgt_project p - , bgt_disc_params d - WHERE p.ins_discipline_key = d.bgt_ins_discipline_key - AND p.bgt_project_code = l_rec.bgt_project_code - AND d.bgt_disc_params_code = l_rec.bgt_project_discipline; - -- - g_errormsg := 'Fout bij toevoegen rubriek ' || l_rec.bgt_kostenrubriek_code; - BEGIN - IF (l_count = 0) THEN - -- Discipline/project bevat geen enkele rubriek. Maak eerst rubriek Reserve aan. - BEGIN - SELECT bgt_kostenrubriek_key - INTO l_rubriek_key - FROM bgt_kostenrubriek - WHERE bgt_kostenrubriek_code = 'R' - AND bgt_project_key = l_project_key; - EXCEPTION - WHEN NO_DATA_FOUND THEN - INSERT INTO bgt_kostenrubriek - ( bgt_kostenrubriek_code - , bgt_kostenrubriek_oms - , bgt_project_key - ) - VALUES - ( 'R' - , 'R' ||' '|| 'Reserve' - , l_project_key - ); - fac.imp_writelog ( p_import_key - , 'I' - , 'Rubriek [R Reserve] toegevoegd' - , NULL - ); - END; - END IF; - -- - SELECT bgt_kostenrubriek_key - INTO l_rubriek_key - FROM bgt_kostenrubriek - WHERE bgt_project_key = l_project_key - AND bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code; - -- - fac.imp_writelog ( p_import_key - , 'W' - , 'Rubriek [' || l_rec.bgt_kostenrubriek_code || '] bestaat al' - , NULL - ); - EXCEPTION - WHEN NO_DATA_FOUND THEN - g_errorhint := 'Toevoegen rubriek'; - INSERT INTO bgt_kostenrubriek - ( bgt_kostenrubriek_code - , bgt_kostenrubriek_oms - , bgt_project_key - ) - VALUES - ( l_rec.bgt_kostenrubriek_code - , l_rec.bgt_kostenrubriek_code ||' '|| l_rec.bgt_kostenrubriek_oms - , l_project_key - ) - RETURNING bgt_kostenrubriek_key INTO l_rubriek_key; - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Rubriek [' || l_rec.bgt_kostenrubriek_code || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - END; - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'W', 'Onbekende project [' || l_rec.bgt_project_code || ']', NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Rubriek: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_rubriek - - PROCEDURE update_groep(p_import_key IN NUMBER) - AS - CURSOR c_groep - IS - SELECT bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_altcode - , prs_kostensoortgrp_oms - FROM twyn_imp_kostensoortgrp - ORDER BY prs_kostensoortgrp_altcode; - l_rubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE; - l_groep_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE; - l_rubriek_code bgt_kostenrubriek.bgt_kostenrubriek_code%TYPE; - l_groep_code prs_kostensoortgrp.prs_kostensoortgrp_altcode%TYPE; - l_count NUMBER(3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec IN c_groep - LOOP - BEGIN - l_rubriek_code := l_rec.bgt_kostenrubriek_code; - g_errormsg := 'Fout bij opvragen rubriek ' || l_rubriek_code; - SELECT bgt_kostenrubriek_key - INTO l_rubriek_key - FROM bgt_kostenrubriek r - , bgt_project p - , bgt_disc_params d - WHERE r.bgt_project_key = p.bgt_project_key - AND p.ins_discipline_key = d.bgt_ins_discipline_key - AND d.bgt_disc_params_code = l_rec.bgt_project_discipline - AND p.bgt_project_code = l_rec.bgt_project_code - AND r.bgt_kostenrubriek_code = l_rubriek_code; - -- - l_groep_code := l_rec.bgt_kostenrubriek_code ||'.'|| l_rec.prs_kostensoortgrp_altcode; - g_errormsg := 'Fout bij toevoegen groep ' || l_groep_code; - BEGIN - SELECT prs_kostensoortgrp_key - INTO l_groep_key - FROM prs_kostensoortgrp - WHERE bgt_kostenrubriek_key = l_rubriek_key - AND prs_kostensoortgrp_altcode = l_groep_code; - -- - fac.imp_writelog ( p_import_key - , 'W' - , 'Groep [' || l_groep_code || '] bestaat al' - , NULL - ); - EXCEPTION - WHEN NO_DATA_FOUND THEN - g_errorhint := 'Toevoegen groep'; - INSERT INTO prs_kostensoortgrp - ( prs_kostensoortgrp_oms - , prs_kostensoortgrp_altcode - , bgt_kostenrubriek_key - ) - VALUES - ( l_groep_code ||' '|| l_rec.prs_kostensoortgrp_oms - , l_groep_code - , l_rubriek_key - ) - RETURNING prs_kostensoortgrp_key INTO l_groep_key; - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Groep [' || l_groep_code || ': ' || l_rec.prs_kostensoortgrp_oms || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - END; - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'W', 'Onbekende rubriek [' || l_rec.bgt_kostenrubriek_code || ']', NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Groep: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_groep - - PROCEDURE update_soort(p_import_key IN NUMBER) - AS - CURSOR c_soort - IS - SELECT bgt_project_discipline - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_altcode - , prs_kostensoort_oms - , prs_kostensoort_opmerking - , bgt_btw_code - , bgt_btw_waarde - FROM twyn_imp_kostensoort - ORDER BY prs_kostensoort_oms; - l_groep_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE; - l_soort_key prs_kostensoort.prs_kostensoort_key%TYPE; - l_groep_code prs_kostensoortgrp.prs_kostensoortgrp_altcode%TYPE; - l_soort_code prs_kostensoort.prs_kostensoort_oms%TYPE; - l_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE; - l_count NUMBER(3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec IN c_soort - LOOP - BEGIN - l_groep_code := l_rec.bgt_kostenrubriek_code ||'.'|| l_rec.prs_kostensoortgrp_altcode; - g_errormsg := 'Fout bij opvragen groep ' || l_groep_code; - SELECT prs_kostensoortgrp_key - INTO l_groep_key - FROM bgt_disc_params d - , bgt_project p - , bgt_kostenrubriek r - , prs_kostensoortgrp g - WHERE r.bgt_project_key = p.bgt_project_key - AND r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key - AND p.ins_discipline_key = d.bgt_ins_discipline_key - AND d.bgt_disc_params_code = l_rec.bgt_project_discipline - AND p.bgt_project_code = l_rec.bgt_project_code - AND r.bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code - AND g.prs_kostensoortgrp_altcode = l_groep_code; - -- - l_soort_code := l_groep_code ||'.'|| l_rec.prs_kostensoort_oms; - g_errormsg := 'Fout bij toevoegen soort ' || l_soort_code; - BEGIN - SELECT prs_kostensoort_key - INTO l_soort_key - FROM prs_kostensoort - WHERE prs_kostensoortgrp_key = l_groep_key - AND prs_kostensoort_altcode = l_soort_code; - -- - fac.imp_writelog ( p_import_key - , 'W' - , 'Soort [' || l_soort_code || '] bestaat al' - , NULL - ); - EXCEPTION - WHEN NO_DATA_FOUND THEN - g_errorhint := 'Toevoegen soort'; - l_btw_key := get_btw_key(l_rec.bgt_btw_code, l_rec.bgt_btw_waarde); - INSERT INTO prs_kostensoort - ( prs_kostensoort_oms - , prs_kostensoort_altcode - , prs_kostensoort_opmerking - , prs_kostensoortgrp_key - , fin_btwtabelwaarde_key - ) - VALUES - ( l_soort_code ||' '|| l_rec.prs_kostensoort_opmerking - , l_soort_code - , l_soort_code - , l_groep_key - , l_btw_key - ) - RETURNING prs_kostensoort_key INTO l_soort_key; - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Soort [' || l_soort_code || ': ' || l_rec.prs_kostensoort_opmerking || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - END; - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'W', 'Onbekende groep [' || l_groep_code || ']', NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Soort: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_soort - - PROCEDURE update_bedrijf(p_import_key IN NUMBER) - AS - CURSOR c_bedrijf - IS - SELECT prs_bedrijf_overig1 - , prs_bedrijf_naam - , prs_bedrijf_bezoek_adres - , prs_bedrijf_bezoek_postcode - , prs_bedrijf_bezoek_plaats - , prs_bedrijf_telefoon - , prs_bedrijf_fax - , prs_bedrijf_contact_persoon - FROM fac_imp_ext_bedrijf - ORDER BY prs_bedrijf_overig1; - - l_count_i NUMBER(3) := 0; - l_count_u NUMBER(3) := 0; - l_bedrijf_key NUMBER(10); - BEGIN - g_errormsg := NULL; - FOR r_bedrijf IN c_bedrijf - LOOP - g_errormsg := 'Fout bij toevoegen contractant ' || r_bedrijf.prs_bedrijf_overig1; - BEGIN - SELECT prs_bedrijf_key - INTO l_bedrijf_key - FROM prs_bedrijf - WHERE prs_bedrijf_naam_upper = UPPER(r_bedrijf.prs_bedrijf_naam); - -- - UPDATE prs_bedrijf - SET prs_bedrijf_post_adres = r_bedrijf.prs_bedrijf_bezoek_adres - , prs_bedrijf_post_postcode = r_bedrijf.prs_bedrijf_bezoek_postcode - , prs_bedrijf_post_plaats = r_bedrijf.prs_bedrijf_bezoek_plaats - , prs_bedrijf_telefoon = r_bedrijf.prs_bedrijf_telefoon - , prs_bedrijf_fax = r_bedrijf.prs_bedrijf_fax - , prs_bedrijf_contact_persoon = r_bedrijf.prs_bedrijf_contact_persoon - , prs_leverancier_nr = r_bedrijf.prs_bedrijf_overig1 - WHERE prs_bedrijf_key = l_bedrijf_key; - fac.imp_writelog ( p_import_key - , 'I' - , 'Bedrijf [' || r_bedrijf.prs_bedrijf_overig1 || '] aangepast' - , NULL - ); - l_count_u := l_count_u + 1; - EXCEPTION - WHEN NO_DATA_FOUND THEN - INSERT INTO prs_bedrijf - ( prs_bedrijf_naam - , prs_bedrijf_post_adres - , prs_bedrijf_post_postcode - , prs_bedrijf_post_plaats - , prs_bedrijf_telefoon - , prs_bedrijf_fax - , prs_bedrijf_contact_persoon - , prs_leverancier_nr - ) - VALUES - ( r_bedrijf.prs_bedrijf_naam - , r_bedrijf.prs_bedrijf_bezoek_adres - , r_bedrijf.prs_bedrijf_bezoek_postcode - , r_bedrijf.prs_bedrijf_bezoek_plaats - , r_bedrijf.prs_bedrijf_telefoon - , r_bedrijf.prs_bedrijf_fax - , r_bedrijf.prs_bedrijf_contact_persoon - , r_bedrijf.prs_bedrijf_overig1 - ); - fac.imp_writelog ( p_import_key - , 'I' - , 'Bedrijf [' || r_bedrijf.prs_bedrijf_overig1 || '] toegevoegd' - , NULL - ); - l_count_i := l_count_i + 1; - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Bedrijf: aantal regels toegevoegd: ' || TO_CHAR(l_count_i), NULL); - fac.imp_writelog ( p_import_key, 'S', 'Bedrijf: aantal regels gewijzigd: ' || TO_CHAR(l_count_u), NULL); - COMMIT; - END; --update_bedrijf - - - PROCEDURE update_budget(p_import_key IN NUMBER) - AS - CURSOR c_budget(p_isinit NUMBER) - IS - SELECT t.key - , t.bgt_nr - , t.soortnr - , t.bgt_oms - , t.bgt_budget_key - , t.bgt_discipline - , t.bgt_project - , t.bgt_kostenrubriek - , t.bgt_kostensoortgrp - , t.bgt_kostensoort - , t.bedr_init_excl - , t.bedr_init_btw - , t.bgt_datum - , t.type - , min(x.bedrag) bedrag_min - , max(x.bedrag) bedrag_max - , min(t.bedr_mut_btw) bedrag_btw - FROM twyn_imp_budget t - , (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_mut_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_res_mut_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - ) x - WHERE t.key = x.key - AND ( (soortnr = 0 AND p_isinit = 0) - OR (soortnr > 0 AND p_isinit = 1) - ) - GROUP BY t.key - , t.bgt_nr - , t.soortnr - , t.bgt_oms - , t.bgt_budget_key - , t.bgt_discipline - , t.bgt_project - , t.bgt_kostenrubriek - , t.bgt_kostensoortgrp - , t.bgt_kostensoort - , t.bedr_init_excl - , t.bedr_init_btw - , t.bgt_datum - , t.type - ORDER BY t.bgt_nr; - - CURSOR c_reserve - IS - SELECT p.ins_discipline_key - , r.bgt_project_key - , r.bgt_kostenrubriek_key - , r.bgt_kostenrubriek_code - FROM bgt_kostenrubriek r - , bgt_project p - , bgt_disc_params d - WHERE d.bgt_ins_discipline_key = p.ins_discipline_key - AND p.bgt_project_key = r.bgt_project_key - AND (d.bgt_disc_params_code, p.bgt_project_code) IN - (SELECT DISTINCT - bgt_discipline - , bgt_project - FROM twyn_imp_budget - ); - - CURSOR c_contract - IS - SELECT DISTINCT - bgt_discipline_code bgt_discipline - , bgt_project_code bgt_project - , bgt_kostenrubriek_code bgt_kostenrubriek - , prs_kostensoortgrp_code bgt_kostensoortgrp - , prs_kostensoort_code bgt_kostensoort - , (SELECT MIN(bgt_datum) FROM twyn_imp_budget) bgt_datum - , 0 bedr_init_excl - , 0 bedr_init_btw - , 0 is_reserve - , 'C' type - , NULL key - FROM twyn_imp_contract c - WHERE NOT EXISTS - (SELECT 1 - FROM twyn_imp_budget b - WHERE b.bgt_discipline = c.bgt_discipline_code - AND b.bgt_project = c.bgt_project_code - AND b.bgt_kostenrubriek = c.bgt_kostenrubriek_code - AND b.bgt_kostensoortgrp = c.prs_kostensoortgrp_code - AND b.bgt_kostensoort = c.prs_kostensoort_code - ) - ORDER BY 1,2,3,4,5; - - l_disc_key bgt_disc_params.bgt_ins_discipline_key%TYPE; - l_project_key bgt_project.bgt_project_key%TYPE; - l_rubriek_key bgt_kostenrubriek.bgt_kostenrubriek_key%TYPE; - l_groep_key prs_kostensoortgrp.prs_kostensoortgrp_key%TYPE; - l_soort_key prs_kostensoort.prs_kostensoort_key%TYPE; - l_budget_key bgt_budget.bgt_budget_key%TYPE; - l_bedrag_van bgt_budgetmutatie.bgt_budget_bedrag_van%TYPE; - l_bedrag_naar bgt_budgetmutatie.bgt_budget_bedrag_naar%TYPE; - l_btw_naar bgt_budgetmutatie.bgt_budget_btwbedrag_naar%TYPE; - l_budget_van bgt_budgetmutatie.bgt_budget_key_van%TYPE; - l_budget_naar bgt_budgetmutatie.bgt_budget_key_naar%TYPE; - l_bedrag_min bgt_budgetmutatie.bgt_budget_bedrag_van%TYPE; - l_bedrag_max bgt_budgetmutatie.bgt_budget_bedrag_van%TYPE; - l_btw_van bgt_budgetmutatie.bgt_budget_btwbedrag_van%TYPE; - l_budgetmutatie_key bgt_budgetmutatie.bgt_budgetmutatie_key%TYPE; - l_budget_gegevens VARCHAR2(200); - l_count NUMBER(3); - l_aantal NUMBER(3); - l_mut_volgnr VARCHAR2(10); - l_mut_code VARCHAR2(1); - t_rec BUDGET_REC; - - FUNCTION get_budgetrec_1( b_rec IN c_budget%ROWTYPE - , c_rec IN c_contract%ROWTYPE - ) RETURN budget_rec - IS - a_budget_rec BUDGET_REC; - BEGIN - IF (b_rec.bgt_discipline IS NOT NULL) THEN - a_budget_rec.bgt_discipline := b_rec.bgt_discipline; - a_budget_rec.bgt_project := b_rec.bgt_project; - a_budget_rec.bgt_kostenrubriek := b_rec.bgt_kostenrubriek; - a_budget_rec.bgt_kostensoortgrp := b_rec.bgt_kostensoortgrp; - a_budget_rec.bgt_kostensoort := b_rec.bgt_kostensoort; - a_budget_rec.bgt_datum := b_rec.bgt_datum; - a_budget_rec.type := b_rec.type; - a_budget_rec.bedr_init_excl := b_rec.bedr_init_excl; - a_budget_rec.bedr_init_btw := b_rec.bedr_init_btw; - a_budget_rec.key := b_rec.key; - END IF; - -- - IF (c_rec.bgt_discipline IS NOT NULL) THEN - a_budget_rec.bgt_discipline := c_rec.bgt_discipline; - a_budget_rec.bgt_project := c_rec.bgt_project; - a_budget_rec.bgt_kostenrubriek := c_rec.bgt_kostenrubriek; - a_budget_rec.bgt_kostensoortgrp := c_rec.bgt_kostensoortgrp; - a_budget_rec.bgt_kostensoort := c_rec.bgt_kostensoort; - a_budget_rec.bgt_datum := c_rec.bgt_datum; - a_budget_rec.type := c_rec.type; - a_budget_rec.bedr_init_excl := c_rec.bedr_init_excl; - a_budget_rec.bedr_init_btw := c_rec.bedr_init_btw; - a_budget_rec.key := c_rec.key; - END IF; - -- - RETURN a_budget_rec; - END; -- get_budgetrec_1 - - PROCEDURE add_budget( p_import_key IN NUMBER - , p_mode IN VARCHAR2 - , p_rec IN BUDGET_REC) - AS - a_budget_key bgt_budget.bgt_budget_key%TYPE; - a_kosten_keys KOSTEN_KEYS; - BEGIN - a_kosten_keys := get_kosten_keys( p_import_key - , 'budget' - , p_rec.bgt_discipline - , p_rec.bgt_project - , p_rec.bgt_kostenrubriek - , p_rec.bgt_kostensoortgrp - , p_rec.bgt_kostensoort - , p_rec.type); - -- - g_errormsg := 'Fout bij toevoegen ' || p_mode ||' ' - ||'[('|| NVL(TO_CHAR(a_kosten_keys.bgt_discipline_key), 'x') ||'='|| NVL(p_rec.bgt_discipline,'-') ||')' - ||'.('|| NVL(TO_CHAR(a_kosten_keys.bgt_project_key), 'x') ||'='|| NVL(p_rec.bgt_project,'-') ||')' - ||'.('|| NVL(TO_CHAR(a_kosten_keys.bgt_kostenrubriek_key), 'x') ||'='|| NVL(p_rec.bgt_kostenrubriek,'-') ||')' - ||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoortgrp_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoortgrp,'-') ||')' - ||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoort_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoort,'-') ||')' - ||'.('|| NVL(a_kosten_keys.type, 'x') ||'='|| NVL(p_rec.type,'-') ||')' - ||']'; - BEGIN - SELECT bgt_budget_key - INTO a_budget_key - FROM bgt_budget - WHERE ins_discipline_key = a_kosten_keys.bgt_discipline_key - AND bgt_project_key = a_kosten_keys.bgt_project_key - AND (bgt_kostenrubriek_key = NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) OR (NVL(a_kosten_keys.bgt_kostenrubriek_key,-1) < 0 AND bgt_kostenrubriek_key IS NULL)) - AND (prs_kostensoortgrp_key = NVL(a_kosten_keys.prs_kostensoortgrp_key,-1) OR (NVL(a_kosten_keys.prs_kostensoortgrp_key,-1) < 0 AND prs_kostensoortgrp_key IS NULL)) - AND (prs_kostensoort_key = NVL(a_kosten_keys.prs_kostensoort_key,-1) OR (NVL(a_kosten_keys.prs_kostensoort_key,-1) < 0 AND prs_kostensoort_key IS NULL)); - EXCEPTION - WHEN TOO_MANY_ROWS THEN - fac.imp_writelog ( p_import_key, 'W' - , 'SELECT bgt_budget_key FROM bgt_budget WHERE ins_discipline_key = ' || a_kosten_keys.bgt_discipline_key - || ' AND bgt_project_key = ' || a_kosten_keys.bgt_project_key - || ' AND (bgt_kostenrubriek_key = ' || a_kosten_keys.bgt_kostenrubriek_key || ' OR bgt_kostenrubriek_key IS NULL)' - || ' AND (prs_kostensoortgrp_key = ' || a_kosten_keys.prs_kostensoortgrp_key || ' OR prs_kostensoortgrp_key IS NULL)' - || ' AND (prs_kostensoort_key = ' || a_kosten_keys.prs_kostensoort_key || ' OR prs_kostensoort_key IS NULL)' - , NULL - ); - WHEN NO_DATA_FOUND THEN - l_budget_gegevens := p_rec.bgt_discipline - ||':'|| p_rec.bgt_project - ||':'|| p_rec.bgt_kostenrubriek - ||':'|| p_rec.bgt_kostensoortgrp - ||':'|| p_rec.bgt_kostensoort - ||':'|| p_rec.type - ||' R='|| a_kosten_keys.is_reserve - ||' E='|| NVL(p_rec.bedr_init_excl, 0); - g_errorhint := 'Toevoegen budget'; - INSERT INTO bgt_budget - ( ins_discipline_key - , bgt_project_key - , bgt_kostenrubriek_key - , prs_kostensoortgrp_key - , prs_kostensoort_key - , bgt_budget_aanmaak - , bgt_budget_bedrag - , bgt_budget_btwbedrag - , bgt_budget_isreserve - ) - VALUES - ( a_kosten_keys.bgt_discipline_key - , a_kosten_keys.bgt_project_key - , a_kosten_keys.bgt_kostenrubriek_key - , a_kosten_keys.prs_kostensoortgrp_key - , a_kosten_keys.prs_kostensoort_key - , p_rec.bgt_datum - , NVL(p_rec.bedr_init_excl, 0) - , NVL(p_rec.bedr_init_btw, 0) - , NVL(a_kosten_keys.is_reserve, 0) - ) - RETURNING bgt_budget_key INTO a_budget_key; - fac.imp_writelog ( p_import_key, 'I', 'budgetkey: ['|| a_budget_key ||'] '|| l_budget_gegevens, NULL); - END; - -- - -- Zet de budget_key bij alle overeenkomstige regels, dus ook mutaties - fac.imp_writelog ( p_import_key, 'I', 'budgetkey: ['|| a_budget_key ||'] bijwerken', NULL); - UPDATE twyn_imp_budget - SET bgt_budget_key = a_budget_key - WHERE key = p_rec.key - OR ( bgt_discipline = p_rec.bgt_discipline - AND bgt_project = p_rec.bgt_project - AND bgt_kostenrubriek = p_rec.bgt_kostenrubriek - AND bgt_kostensoortgrp = p_rec.bgt_kostensoortgrp - AND bgt_kostensoort = p_rec.bgt_kostensoort - ); - END; --add_budget - - BEGIN - g_errormsg := NULL; - -- initialisatie budget - l_count := 0; - FOR l_rec IN c_budget(0) - LOOP - -- Keys ophalen - t_rec := get_budgetrec_1(l_rec, NULL); - add_budget(p_import_key, 'budget', t_rec); - l_count := l_count + 1; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Budget: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - -- - -- Budget reserveposten voor rubrieken aanmaken - l_count := 0; - FOR l_rec IN c_reserve - LOOP - g_errormsg := 'Fout bij toevoegen budget op rubriek [' || l_rec.bgt_kostenrubriek_code ||']'; - BEGIN - SELECT bgt_budget_key - INTO l_budget_key - FROM bgt_budget - WHERE ins_discipline_key = l_rec.ins_discipline_key - AND bgt_project_key = l_rec.bgt_project_key - AND bgt_kostenrubriek_key = l_rec.bgt_kostenrubriek_key - AND prs_kostensoort_key IS NULL; - EXCEPTION - WHEN NO_DATA_FOUND THEN - INSERT INTO bgt_budget - ( ins_discipline_key - , bgt_project_key - , bgt_kostenrubriek_key - , bgt_budget_bedrag - , bgt_budget_btwbedrag - , bgt_budget_isreserve - ) - VALUES - ( l_rec.ins_discipline_key - , l_rec.bgt_project_key - , l_rec.bgt_kostenrubriek_key - , 0 - , 0 - , 0 - ) - RETURNING bgt_budget_key INTO l_budget_key; - -- - UPDATE twyn_imp_budget - SET bgt_budget_key = (SELECT bgt_budget_key - FROM bgt_budget b - , bgt_kostenrubriek r - WHERE b.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key - AND r.bgt_kostenrubriek_code = 'R' - AND b.bgt_project_key = l_rec.bgt_project_key - ) - WHERE key IN (SELECT tb.key - FROM twyn_imp_budget tb - , bgt_project p - , bgt_disc_params d - WHERE tb.bgt_project = p.bgt_project_code - AND tb.bgt_discipline = d.bgt_disc_params_code - AND tb.bgt_kostenrubriek = l_rec.bgt_kostenrubriek_code - AND p.bgt_project_key = l_rec.bgt_project_key - AND d.bgt_ins_discipline_key = l_rec.ins_discipline_key - AND tb.bgt_kostensoortgrp IS NULL - AND tb.bgt_kostensoort IS NULL - ); - l_count := l_count + 1; - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Rubriekbudget: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - -- - -- Overige budgetposten: niet geinitialiseerd, maar wel gebruikt in contracten. - l_count := 0; - FOR l_rec in c_contract - LOOP - t_rec := get_budgetrec_1(NULL, l_rec); - add_budget(p_import_key, 'budgetpost contracten', t_rec); - l_count := l_count + 1; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd tgv contracten: ' || TO_CHAR(l_count), NULL); - -- - -- Overige budgetposten: niet geinitialiseerd, maar wel gebruikt in mutaties. - l_count := 0; - FOR l_rec in c_budget(1) - LOOP - IF (l_rec.bgt_budget_key IS NULL) THEN - t_rec := get_budgetrec_1(l_rec, NULL); - add_budget(p_import_key, 'budgetpost mutaties', t_rec); - l_count := l_count + 1; - END IF; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd tgv mutaties: ' || TO_CHAR(l_count), NULL); - -- - -- De mutaties - l_count := 0; - FOR l_rec IN c_budget(1) - LOOP - g_errormsg := 'Fout bij toevoegen budgetmutatie ' - || '[('||l_rec.bgt_nr||';'||l_rec.key||')' - || '.'|| NVL(l_rec.bgt_kostenrubriek, 'x') - || '.'|| NVL(l_rec.bgt_kostensoortgrp, 'x') - || '.'|| NVL(l_rec.bgt_kostensoort, 'x') - || '.'|| NVL(l_rec.type, 'x') - || ']'; - BEGIN - SELECT count(*) - INTO l_aantal - FROM twyn_imp_budget - WHERE bgt_nr = l_rec.bgt_nr; - -- - IF (l_aantal > 1) THEN - -- Er zijn zowel van- als naar- budget regels. - SELECT x.bgt_budget_key - , min(x.bedrag) - , max(x.bedrag) - INTO l_budget_key - , l_bedrag_min - , l_bedrag_max - FROM (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_mut_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_res_mut_excl bedrag FROM twyn_imp_budget WHERE bgt_datum IS NOT NULL - ) x - WHERE x.key <> l_rec.key - AND x.bgt_nr = l_rec.bgt_nr - AND x.bgt_nr IS NOT NULL - GROUP BY x.bgt_budget_key; - ELSE - -- Er is alleen een van- of naar- budget regel. - SELECT x.bgt_budget_key - , min(x.bedrag) - , max(x.bedrag) - INTO l_budget_key - , l_bedrag_min - , l_bedrag_max - FROM (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_mut_excl bedrag FROM twyn_imp_budget - UNION - SELECT bgt_nr, key, bgt_budget_key, bedr_res_mut_excl bedrag FROM twyn_imp_budget - ) x - WHERE x.key = l_rec.key - AND x.bgt_nr IS NOT NULL - GROUP BY x.bgt_budget_key; - END IF; - -- - IF (l_bedrag_min < 0) THEN - l_btw_van := 0; - l_bedrag_van := l_bedrag_min; - l_budget_van := l_budget_key; - l_btw_naar := l_rec.bedrag_btw; - l_bedrag_naar := l_rec.bedrag_max; - l_budget_naar := l_rec.bgt_budget_key; - ELSE - l_btw_van := 0; - l_bedrag_van := l_rec.bedrag_min; - l_budget_van := l_rec.bgt_budget_key; - l_btw_naar := l_rec.bedrag_btw; - l_bedrag_naar := l_bedrag_max; - l_budget_naar := l_budget_key; - END IF; - -- - l_mut_volgnr := CASE WHEN UPPER(SUBSTR(l_rec.bgt_nr,1,1)) IN ('R','N','M') THEN SUBSTR(l_rec.bgt_nr,2) ELSE l_rec.bgt_nr END; - l_mut_code := CASE WHEN UPPER(SUBSTR(l_rec.bgt_nr,1,1)) IN ('R','N','M') THEN SUBSTR(l_rec.bgt_nr,1,1) ELSE NULL END; - -- - BEGIN - SELECT bgt_budgetmutatie_key - INTO l_budgetmutatie_key - FROM bgt_budgetmutatie - WHERE bgt_budgetmutatie_datum = l_rec.bgt_datum - AND bgt_budgetmutatie_volgnr = l_mut_volgnr - AND bgt_budgetmutatie_omschrijving = l_rec.bgt_oms - AND bgt_budget_key_van = l_budget_van - AND bgt_budget_bedrag_van = l_bedrag_van; - l_budget_gegevens := 'Mutatie-key '|| l_budgetmutatie_key - ||' gevonden voor budget-key '|| l_budget_van - ||' ('|| l_mut_volgnr ||' '|| l_rec.bgt_datum ||' '|| l_bedrag_van ||' '|| l_rec.bgt_oms - ||' )'; - fac.imp_writelog ( p_import_key, 'I', l_budget_gegevens, NULL); - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'I', 'Mutatie: '||ABS(l_bedrag_van)||' van '||TO_CHAR(l_budget_van)||' naar '||TO_CHAR(l_budget_naar), NULL); - INSERT INTO bgt_budgetmutatie - ( bgt_budgetmutatie_datum - , bgt_budgetmutatie_volgnr - , bgt_budgetmutatie_code - , bgt_budgetmutatie_omschrijving - , prs_perslid_key - , bgt_budget_key_van - , bgt_budget_bedrag_van - , bgt_budget_btwbedrag_van - , bgt_budget_key_naar - , bgt_budget_bedrag_naar - , bgt_budget_btwbedrag_naar - ) - VALUES - ( l_rec.bgt_datum - , l_mut_volgnr - , l_mut_code - , l_rec.bgt_oms - , g_perslid_key - , l_budget_van - , l_bedrag_van - , l_btw_van - , l_budget_naar - , l_bedrag_naar - , l_btw_naar - ) - RETURNING bgt_budgetmutatie_key INTO l_budgetmutatie_key; - -- - l_count := l_count + 1; - END; - EXCEPTION - WHEN NO_DATA_FOUND THEN - l_budget_gegevens:= 'Geen budgetmutatie voor ' - || '[('||l_rec.bgt_nr||';'||l_rec.key||')' - || '.'|| NVL(l_rec.bgt_kostenrubriek, 'x') - || '.'|| NVL(l_rec.bgt_kostensoortgrp, 'x') - || '.'|| NVL(l_rec.bgt_kostensoort, 'x') - || ']'; - fac.imp_writelog ( p_import_key, 'I', l_budget_gegevens, NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Budgetmutaties: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - - END; - - PROCEDURE update_opdracht(p_import_key IN NUMBER) - AS - CURSOR c_opdracht - IS - SELECT bgt_contract_nr - , bgt_contract_volgnr - , bgt_contract_omschr - , bgt_contract_datum - , bgt_contract_bedrag_excl - , bgt_contract_bedrag_btw - , bgt_contract_meerminder - , bgt_contract_status - , bgt_contract_referentie - , bgt_bedrijf_code - , bgt_discipline_code - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_code - , prs_kostensoort_code - , prs_kostenplaats_nr - , prs_kostenplaats_oms - FROM twyn_imp_contract; - - a_kosten_keys KOSTEN_KEYS; - a_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE; - a_kostenplaats_key prs_kostenplaats.prs_kostenplaats_key%TYPE; - a_kostenplaatsgrp_key prs_kostenplaatsgrp.prs_kostenplaatsgrp_key%TYPE; - l_count NUMBER (3) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec IN c_opdracht - LOOP - a_kosten_keys := get_kosten_keys( p_import_key - , 'opdracht' - , l_rec.bgt_discipline_code - , l_rec.bgt_project_code - , l_rec.bgt_kostenrubriek_code - , l_rec.prs_kostensoortgrp_code - , l_rec.prs_kostensoort_code); - -- - g_errormsg := 'Fout bij toevoegen contract['|| l_rec.bgt_contract_nr ||'/'|| l_rec.bgt_contract_volgnr ||']'; - BEGIN - SELECT pb.prs_bedrijf_key - INTO a_bedrijf_key - FROM prs_bedrijf pb - , fac_imp_ext_bedrijf eb - WHERE pb.prs_bedrijf_naam_upper = UPPER(eb.prs_bedrijf_naam) - AND pb.prs_leverancier_nr = l_rec.bgt_bedrijf_code; - -- - -- - IF (l_rec.prs_kostenplaats_nr IS NOT NULL) THEN - BEGIN - SELECT prs_kostenplaats_key - INTO a_kostenplaats_key - FROM prs_kostenplaats - WHERE prs_kostenplaats_upper = UPPER(TO_CHAR(l_rec.prs_kostenplaats_nr)); - EXCEPTION - WHEN NO_DATA_FOUND THEN - INSERT INTO prs_kostenplaats - ( prs_kostenplaats_nr - , prs_kostenplaats_omschrijving - , prs_kostenplaats_upper - , prs_kostenplaats_module - , prs_kostenplaatsgrp_key - ) - VALUES - ( TO_CHAR(l_rec.prs_kostenplaats_nr) - , l_rec.prs_kostenplaats_oms - , UPPER(TO_CHAR(l_rec.prs_kostenplaats_nr)) - , 'PRJ' - , 1 - ) - RETURNING prs_kostenplaats_key INTO a_kostenplaats_key; - END; - ELSE - a_kostenplaats_key := NULL; - END IF; - -- - -- conversie contractstatus naar mld_statusopdr_key: - -- 10 Raming 10 Ter goedkeuring - -- 20 Te besluiten 3 Ter fiattering - -- 30 Accoord 8 Geaccepteerd - -- 40 Opgedragen 5 Toegekend - -- 50 vervallen 1 Afgewezen - -- overige codes: 2 Niet akkoord - INSERT INTO mld_opdr - ( mld_opdr_id - , mld_opdr_ordernr - , mld_opdr_bedrijfopdr_volgnr - , mld_uitvoerende_keys - , mld_opdr_omschrijving - , mld_opdr_datumbegin - , mld_opdr_kosten - , mld_opdr_kosten_btw - , prs_kostensoort_key - , prs_perslid_key - , mld_typeopdr_key - , mld_opdr_module - , mld_statusopdr_key - , prs_kostenplaats_key - , mld_opdr_meerwerk - ) - VALUES - ( l_rec.bgt_contract_referentie - , l_rec.bgt_contract_nr - , l_rec.bgt_contract_volgnr - , a_bedrijf_key - , l_rec.bgt_contract_omschr - , l_rec.bgt_contract_datum - , l_rec.bgt_contract_bedrag_excl - , l_rec.bgt_contract_bedrag_btw - , a_kosten_keys.prs_kostensoort_key - , g_perslid_key - , 5 - , 'MLD' - , DECODE(l_rec.bgt_contract_status, 10,10, 20,3, 30,8, 40,5, 50,1, 2) - , a_kostenplaats_key - , CASE WHEN l_rec.bgt_contract_meerminder = 0 THEN 0 ELSE 1 END - ); - fac.imp_writelog ( p_import_key - , 'I' - , 'Contract [' || l_rec.bgt_contract_nr ||'/'|| l_rec.bgt_contract_volgnr || '] toegevoegd' - , NULL - ); - l_count := l_count + 1; - EXCEPTION - WHEN NO_DATA_FOUND THEN - fac.imp_writelog ( p_import_key, 'W', 'Onbekend bedrijf [' || l_rec.bgt_bedrijf_code || ']', NULL); - END; - END LOOP; - fac.imp_writelog ( p_import_key, 'S', 'Contracten: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL); - COMMIT; - END; --update_opdracht - - PROCEDURE update_factuur(p_import_key IN NUMBER) - AS - CURSOR c_factuur - IS - SELECT bgt_factuur_nr - , bgt_factuur_volgnr - , bgt_factuur_refnr - , bgt_factuur_omschr - , bgt_factuur_datum - , bgt_factuur_bedrag_excl - , bgt_factuur_bedrag_btw - , bgt_factuur_bedrag_incl - , bgt_factuur_adviesdatum - , bgt_factuur_grootboek - , bgt_factuur_status - , bgt_contract_nr - , bgt_contract_volgnr - , bgt_discipline_code - , bgt_project_code - , bgt_kostenrubriek_code - , prs_kostensoortgrp_code - , prs_kostensoort_code - FROM twyn_imp_factuur; - - l_opdr_key mld_opdr.mld_opdr_key%TYPE; - l_factuur_key fin_factuur.fin_factuur_key%TYPE; - l_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE; - l_refnr fin_factuur.fin_factuur_nr%TYPE; - l_kosten_keys KOSTEN_KEYS; - l_count_f NUMBER (10) := 0; - BEGIN - g_errormsg := NULL; - FOR l_rec in c_factuur - LOOP - BEGIN - l_kosten_keys := get_kosten_keys( p_import_key - , 'factuur' - , l_rec.bgt_discipline_code - , l_rec.bgt_project_code - , l_rec.bgt_kostenrubriek_code - , l_rec.prs_kostensoortgrp_code - , l_rec.prs_kostensoort_code); - l_opdr_key := get_opdr_key( l_kosten_keys.prs_kostensoort_key - , l_rec.bgt_contract_nr - , l_rec.bgt_contract_volgnr); - -- - g_errormsg := 'Fout bij toevoegen factuur['|| l_rec.bgt_contract_nr ||'/'|| l_rec.bgt_contract_volgnr ||']'; - l_refnr := l_rec.bgt_factuur_refnr; - IF (l_refnr = '' OR l_refnr IS NULL) THEN - l_refnr := 'F_' || l_rec.bgt_factuur_nr ||'.'|| l_rec.bgt_factuur_volgnr; - END IF; - fac.imp_writelog ( p_import_key, 'I', 'Opdracht('||l_opdr_key||') '||l_kosten_keys.prs_kostensoort_key||','||l_rec.bgt_contract_nr||','||l_rec.bgt_contract_volgnr, NULL); - IF (l_opdr_key > -1) THEN - g_errormsg := 'Fout bij toevoegen factuur['|| l_rec.bgt_factuur_nr ||']'; - -- - INSERT INTO fin_factuur - ( fin_factuur_nr - , fin_factuur_advies - , fin_factuur_datum - , fin_factuur_boekmaand - , fin_factuur_opmerking - , fin_factuur_totaal - , fin_factuur_totaal_btw - , mld_opdr_key - , prs_kostensoort_key - , fin_factuur_bron - , fin_factuur_statuses_key - ) - VALUES - ( l_refnr - , l_rec.bgt_factuur_adviesdatum - , l_rec.bgt_factuur_datum - , TO_CHAR(l_rec.bgt_factuur_datum, 'yyyy-mm') - , l_rec.bgt_factuur_omschr - , l_rec.bgt_factuur_bedrag_excl - , l_rec.bgt_factuur_bedrag_btw - , l_opdr_key - , l_kosten_keys.prs_kostensoort_key - , 1 - , 6 - ) - RETURNING fin_factuur_key INTO l_factuur_key; - l_count_f := l_count_f + 1; - -- - fac.imp_writelog ( p_import_key - , 'I' - , 'Factuur [' || l_rec.bgt_factuur_nr ||'/'|| l_rec.bgt_factuur_volgnr || '] toegevoegd' - , NULL - ); - END IF; - END; - END LOOP; - -- - fac.imp_writelog ( p_import_key, 'S', 'Facturen: aantal regels toegevoegd: ' || TO_CHAR(l_count_f), NULL); - COMMIT; - END; --update_factuur - - -BEGIN - SELECT prs_perslid_key - INTO g_perslid_key - FROM fac_import - WHERE fac_import_key = p_import_key; - - update_discipline(p_import_key); - update_project(p_import_key); - update_rubriek(p_import_key); - update_groep(p_import_key); - update_soort(p_import_key); - update_bedrijf(p_import_key); - update_budget(p_import_key); - update_opdracht(p_import_key); - update_factuur(p_import_key); -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 200); - g_errormsg := - g_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - g_aanduiding || g_errormsg, - 'Verwerken BCS conversie afgebroken!'); - COMMIT; -END; -/ - - ------- payload end ------ - -SET DEFINE OFF -BEGIN adm.systrackscriptId ('$Id$', 0); END; -/ - -COMMIT; -SET ECHO OFF -SPOOL OFF -SET DEFINE ON -PROMPT Logfile of this upgrade is: &fcltlogfile