Files
Customer/TWYN/twyn.sql
Erik Groener 604ae6ddce FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization
svn path=/Customer/trunk/; revision=35424
2017-09-25 12:59:29 +00:00

7163 lines
240 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
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;
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','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_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);
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, 121, s_grootboek_nr);
fac.imp_getfield_nr(v_searchline, c_delim, 124, s_grootboek_oms);
p_contract_nr := NULL;
p_contract_volgnr := NULL;
IF (fac.safe_To_Integer(v_is_contract) = 1 AND fac.safe_To_Integer(v_contract_nr) > 0 AND fac.safe_To_Integer(s_grootboek_nr) > 0) THEN
p_contract_nr := fac.safe_To_Integer(v_contract_nr);
p_contract_volgnr := fac.safe_To_Integer(v_contract_volgnr);
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 := NULL;
p_factuur_volgnr := NULL;
IF (isDate(v_factuur_datum) = 1 AND fac.safe_To_Integer(v_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);
p_factuur_nr := fac.safe_To_Integer(v_factuur_nr);
p_factuur_volgnr := fac.safe_To_Integer(v_factuur_volgnr);
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
, v_factuur_refnr
, 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
AS
BEGIN
v_errormsg := 'Fout bij nabewerken budget ';
UPDATE twyn_imp_budget i
SET bedr_init_btw = (SELECT b.bedr_init_excl
FROM twyn_imp_budget b
WHERE 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 OR (b.bgt_kostenrubriek IS NULL AND i.bgt_kostenrubriek IS NULL))
AND (b.bgt_kostensoortgrp = i.bgt_kostensoortgrp OR (b.bgt_kostensoortgrp IS NULL AND i.bgt_kostensoortgrp IS NULL))
AND (b.bgt_kostensoort = i.bgt_kostensoort OR (b.bgt_kostensoort IS NULL AND i.bgt_kostensoort IS NULL))
)
WHERE type IN ('N','R');
--
DELETE FROM twyn_imp_budget WHERE type = 'B';
UPDATE twyn_imp_budget SET key = ROWNUM;
COMMIT;
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;
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 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)
);
FUNCTION get_kosten_keys( p_prefix IN VARCHAR2
, p_discipline IN VARCHAR2
, p_project IN VARCHAR2
, p_rubriek IN VARCHAR2
, p_groep IN VARCHAR2
, p_soort IN VARCHAR2
) 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')
||']';
BEGIN
IF (p_rubriek IS NULL) THEN
SELECT d.bgt_ins_discipline_key
, p.bgt_project_key
, r.bgt_kostenrubriek_key
, NULL
, NULL
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
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, a_rubriek_code ||'.'|| p_groep) INTO a_groep_code FROM DUAL;
SELECT DECODE(a_groep_code, 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 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) ||']';
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 bgt_ins_discipline_key
INTO l_disc_key
FROM bgt_disc_params
WHERE 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 bgt_ins_discipline_key
INTO l_disc_key
FROM bgt_disc_params
WHERE 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
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_leverancier_nr = r_bedrijf.prs_bedrijf_overig1;
--
UPDATE prs_bedrijf
SET prs_bedrijf_naam = r_bedrijf.prs_bedrijf_naam
, 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
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
, min(x.bedrag) bedrag_min
, max(x.bedrag) bedrag_max
FROM twyn_imp_budget t
, (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 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
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
);
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_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_budgetmutatie_key bgt_budgetmutatie.bgt_budgetmutatie_key%TYPE;
l_budget_gegevens VARCHAR2(200);
l_count NUMBER(3);
PROCEDURE add_budget( p_import_key IN NUMBER
, p_rec IN c_budget%ROWTYPE)
AS
a_budget_key bgt_budget.bgt_budget_key%TYPE;
a_kosten_keys KOSTEN_KEYS;
BEGIN
a_kosten_keys := get_kosten_keys( 'budget'
, p_rec.bgt_discipline
, p_rec.bgt_project
, p_rec.bgt_kostenrubriek
, p_rec.bgt_kostensoortgrp
, p_rec.bgt_kostensoort);
--
g_errormsg := 'Fout bij toevoegen budget ['|| NVL(TO_CHAR(a_kosten_keys.bgt_discipline_key), 'x')
||'.'|| NVL(TO_CHAR(a_kosten_keys.bgt_project_key), 'x')
||'.'|| NVL(TO_CHAR(a_kosten_keys.bgt_kostenrubriek_key), 'x')
||'.'|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoortgrp_key), 'x')
||'.'|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoort_key), 'x')
||']';
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 = a_kosten_keys.bgt_kostenrubriek_key
AND prs_kostensoortgrp_key = a_kosten_keys.prs_kostensoortgrp_key
AND prs_kostensoort_key = a_kosten_keys.prs_kostensoort_key;
EXCEPTION
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
||' 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
g_errormsg := 'Fout bij toevoegen budget ['|| NVL(l_rec.bgt_discipline, 'x')
||'.'|| NVL(l_rec.bgt_project, 'x')
||'.'|| NVL(l_rec.bgt_kostenrubriek, 'x')
||'.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
||'.'|| NVL(l_rec.bgt_kostensoort, 'x')
||']';
add_budget(p_import_key, l_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 mutaties.
l_count := 0;
FOR l_rec in c_budget(1)
LOOP
g_errormsg := 'Fout bij toevoegen budgetpost ['|| NVL(l_rec.bgt_kostenrubriek, 'x')
||'.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
||'.'|| NVL(l_rec.bgt_kostensoort, 'x')
||']';
IF (l_rec.bgt_budget_key IS NULL) THEN
add_budget(p_import_key, l_rec);
l_count := l_count + 1;
END IF;
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Budgetposten: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
--
-- De mutaties
l_count := 0;
FOR l_rec IN c_budget(1)
LOOP
g_errormsg := 'Fout bij toevoegen budgetmutatie ['|| NVL(l_rec.bgt_kostenrubriek, 'x')
||'.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
||'.'|| NVL(l_rec.bgt_kostensoort, 'x')
||']';
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.bgt_nr = l_rec.bgt_nr
AND x.key <> l_rec.key
GROUP BY x.bgt_budget_key;
--
IF (l_bedrag_min < 0) THEN
l_bedrag_van := l_bedrag_min;
l_budget_van := l_budget_key;
l_bedrag_naar := l_rec.bedrag_max;
l_budget_naar := l_rec.bgt_budget_key;
ELSE
l_bedrag_van := l_rec.bedrag_min;
l_budget_van := l_rec.bgt_budget_key;
l_bedrag_naar := l_bedrag_max;
l_budget_naar := l_budget_key;
END IF;
--
BEGIN
SELECT bgt_budgetmutatie_key
INTO l_budgetmutatie_key
FROM bgt_budgetmutatie
WHERE bgt_budgetmutatie_datum = l_rec.bgt_datum
AND bgt_budgetmutatie_omschrijving = l_rec.bgt_nr ||' - '|| l_rec.bgt_oms
AND bgt_budget_key_van = l_budget_van
AND bgt_budget_bedrag_van = l_bedrag_van;
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_omschrijving
, prs_perslid_key
, bgt_budget_key_van
, bgt_budget_bedrag_van
, bgt_budget_key_naar
, bgt_budget_bedrag_naar
)
VALUES
( l_rec.bgt_datum
, l_rec.bgt_nr ||' - '|| l_rec.bgt_oms
, g_perslid_key
, l_budget_van
, l_bedrag_van
, l_budget_naar
, l_bedrag_naar
)
RETURNING bgt_budgetmutatie_key INTO l_budgetmutatie_key;
--
l_count := l_count + 1;
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( '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 prs_bedrijf_key
INTO a_bedrijf_key
FROM prs_bedrijf
WHERE prs_leverancier_nr = l_rec.bgt_bedrijf_code;
--
BEGIN
SELECT prs_kostenplaatsgrp_key
INTO a_kostenplaatsgrp_key
FROM prs_kostenplaatsgrp
WHERE bgt_project_key = a_kosten_keys.bgt_project_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
INSERT INTO prs_kostenplaatsgrp
( prs_kostenplaatsgrp_nr
, prs_kostenplaatsgrp_oms
, bgt_project_key
)
VALUES
( l_rec.bgt_discipline_code
, l_rec.bgt_project_code
, a_kosten_keys.bgt_project_key
)
RETURNING prs_kostenplaatsgrp_key INTO a_kostenplaatsgrp_key;
END;
--
BEGIN
SELECT prs_kostenplaats_key
INTO a_kostenplaats_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_nr = 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
( l_rec.prs_kostenplaats_nr
, l_rec.prs_kostenplaats_oms
, TO_CHAR(l_rec.prs_kostenplaats_nr)
, 'PRJ'
, a_kostenplaatsgrp_key
)
RETURNING prs_kostenplaats_key INTO a_kostenplaats_key;
END;
--
-- 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( '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;
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;
/
CREATE OR REPLACE PROCEDURE twyn_import_projectcsv (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_code VARCHAR2(20) := NULL;
k_groep_code VARCHAR2(60) := NULL;
k_soort_code VARCHAR2(5) := NULL;
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 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_header( p_line IN OUT VARCHAR2
, p_valid OUT NUMBER)
IS
v_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
v_rubriek_omschr VARCHAR2 (256); --002 RUBRIEK_OMSCHRIJVING
v_groep_code VARCHAR2 (256); --003 GROEP_CODE
v_groep_omschr VARCHAR2 (256); --004 GROEP_OMSCHRIJVING
v_soort_code VARCHAR2 (256); --005 SOORT_CODE
v_soort_omschr VARCHAR2 (256); --006 SOORT_OMSCHRIJVING
v_soort_btw_perc VARCHAR2 (256); --007 BTW_PERCENTAGE
v_soort_btw_oms VARCHAR2 (256); --008 BTW_OMSCHRIJVING
s_valid_header NUMBER(1);
BEGIN
s_valid_header := 0;
fac.imp_getfield (p_line, c_delim, v_rubriek_code);
fac.imp_getfield (p_line, c_delim, v_rubriek_omschr);
fac.imp_getfield (p_line, c_delim, v_groep_code);
fac.imp_getfield (p_line, c_delim, v_groep_omschr);
fac.imp_getfield (p_line, c_delim, v_soort_code);
fac.imp_getfield (p_line, c_delim, v_soort_omschr);
fac.imp_getfield (p_line, c_delim, v_soort_btw_perc);
fac.imp_getfield (p_line, c_delim, v_soort_btw_oms);
--
v_rubriek_code := TRIM(UPPER(v_rubriek_code));
v_rubriek_omschr := TRIM(UPPER(v_rubriek_omschr));
v_groep_code := TRIM(UPPER(v_groep_code));
v_groep_omschr := TRIM(UPPER(v_groep_omschr));
v_soort_code := TRIM(UPPER(v_soort_code));
v_soort_omschr := TRIM(UPPER(v_soort_omschr));
v_soort_btw_perc := TRIM(UPPER(v_soort_btw_perc));
v_soort_btw_oms := TRIM(UPPER(v_soort_btw_oms));
--
IF ( v_rubriek_code = 'RUBRIEK_CODE'
AND v_rubriek_omschr = 'RUBRIEK_OMSCHRIJVING'
AND v_groep_code = 'GROEP_CODE'
AND v_groep_omschr = 'GROEP_OMSCHRIJVING'
AND v_soort_code = 'SOORT_CODE'
AND v_soort_omschr = 'SOORT_OMSCHRIJVING'
AND v_soort_btw_perc = 'BTW_PERCENTAGE'
AND v_soort_btw_oms = 'BTW_OMSCHRIJVING'
)
THEN
s_valid_header := 1;
END IF;
p_valid := s_valid_header;
END; --imp_header
PROCEDURE imp_rubriek( p_line IN OUT VARCHAR2
, p_rubriek_code OUT VARCHAR2)
IS
v_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
v_rubriek_omschr VARCHAR2 (256); --002 RUBRIEK_OMSCHRIJVING
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
s_subproject_code VARCHAR2 (256); --:deelprojectnummer (project)
v_count_rubriek NUMBER (3);
BEGIN
fac.imp_getfield (p_line, c_delim, v_rubriek_code);
fac.imp_getfield (p_line, c_delim, v_rubriek_omschr);
--
p_rubriek_code := NULL;
v_rubriek_code := TRIM(v_rubriek_code);
IF (v_rubriek_code IS NOT NULL) THEN
s_project_nummer := '0';
s_subproject_code := '0';
--
SELECT COUNT(*)
INTO v_count_rubriek
FROM twyn_imp_kostenrubriek
WHERE bgt_project_code = s_subproject_code
AND bgt_kostenrubriek_code = v_rubriek_code;
--
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_code
, TRIM(v_rubriek_omschr)
);
p_rubriek_code := v_rubriek_code;
END IF;
END IF;
END; --imp_rubriek
PROCEDURE imp_groep( p_line IN OUT VARCHAR2
, p_groep_code OUT VARCHAR2)
IS
v_groep_code VARCHAR2 (256); --003 GROEP_CODE
v_groep_omschr VARCHAR2 (256); --004 GROEP_OMSCHRIJVING
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
s_subproject_code VARCHAR2 (256); --:deelprojectnummer (project)
s_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
v_count_groep NUMBER (3);
BEGIN
fac.imp_getfield (p_line, c_delim, v_groep_code);
fac.imp_getfield (p_line, c_delim, v_groep_omschr);
--
p_groep_code := NULL;
v_groep_code := TRIM(v_groep_code);
IF (v_groep_code IS NOT NULL) THEN
s_project_nummer := '0';
s_subproject_code := '0';
fac.imp_getfield_nr(v_searchline, c_delim, 1, s_rubriek_code);
--
SELECT COUNT(*)
INTO v_count_groep
FROM twyn_imp_kostensoortgrp
WHERE bgt_project_code = s_subproject_code
AND bgt_kostenrubriek_code = TRIM(s_rubriek_code)
AND prs_kostensoortgrp_altcode = v_groep_code;
--
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
, TRIM(s_rubriek_code)
, v_groep_code
, TRIM(v_groep_omschr)
);
p_groep_code := v_groep_code;
END IF;
END IF;
END; -- imp_groep
PROCEDURE imp_soort( p_line IN OUT VARCHAR2
, p_soort_code OUT VARCHAR2)
IS
v_soort_code VARCHAR2 (256); --005 SOORT_CODE
v_soort_omschr VARCHAR2 (256); --006 SOORT_OMSCHRIJVING
v_soort_perc VARCHAR2 (256); --007 BTW_PERCENTAGE
v_soort_perc_oms VARCHAR2 (256); --008 BTW_OMSCHRIJVING
s_project_nummer VARCHAR2 (256); --:projectnummer (discipline)
s_subproject_code VARCHAR2 (256); --:code subproject (project)
s_rubriek_code VARCHAR2 (256); --001 RUBRIEK_CODE
s_groep_code VARCHAR2 (256); --003 GROEP_CODE
v_count_soort NUMBER (3);
BEGIN
fac.imp_getfield (p_line, c_delim, v_soort_code);
fac.imp_getfield (p_line, c_delim, v_soort_omschr);
fac.imp_getfield (p_line, c_delim, v_soort_perc);
fac.imp_getfield (p_line, c_delim, v_soort_perc_oms);
--
p_soort_code := NULL;
v_soort_code := TRIM(v_soort_code);
IF (v_soort_code IS NOT NULL) THEN
s_project_nummer := '0';
s_subproject_code := '0';
fac.imp_getfield_nr(v_searchline, c_delim, 1, s_rubriek_code);
fac.imp_getfield_nr(v_searchline, c_delim, 3, s_groep_code);
--
SELECT COUNT(*)
INTO v_count_soort
FROM twyn_imp_kostensoort
WHERE bgt_project_code = s_subproject_code
AND bgt_kostenrubriek_code = TRIM(s_rubriek_code)
AND prs_kostensoortgrp_altcode = TRIM(s_groep_code)
AND prs_kostensoort_oms = v_soort_code;
--
IF (v_count_soort = 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
, TRIM(s_rubriek_code)
, TRIM(s_groep_code)
, v_soort_code
, TRIM(v_soort_omschr)
, TRIM(v_soort_perc_oms)
, fac.safe_To_Integer(v_soort_perc)
);
END IF;
p_soort_code := v_soort_code;
END IF;
END; --imp_soort
BEGIN
-- Eerst opruiming
DELETE FROM twyn_imp_kostenrubriek;
DELETE FROM twyn_imp_kostensoortgrp;
DELETE FROM twyn_imp_kostensoort;
--
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
-- Controleren of het een geldige header is.
-- Ge hiermee door totdat er een geldige header gevonden is, of het einde van het bestand bereikt is.
v_searchline := v_newline;
imp_header(v_newline, header_is_valid);
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 := 'RUBRIEK';
imp_rubriek(v_newline, k_rubriek_code);
--
v_aanduiding := 'GROEP';
imp_groep(v_newline, k_groep_code);
--
v_aanduiding := 'SOORT';
imp_soort(v_newline, k_soort_code);
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;
--
IF (header_is_valid = 0) THEN
fac.imp_writelog (p_import_key,
'E',
'Importbestand {0} bevat geen geldige header',
'Inlezen default projectinrichting niet gelukt!');
END IF;
--
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 default projectinrichting afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE twyn_update_projectcsv ( p_import_key IN NUMBER
, p_project_key IN NUMBER)
IS
g_errormsg VARCHAR2 (1000);
g_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
g_aanduiding VARCHAR2 (200);
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_rubriek( p_import_key IN NUMBER
, p_project_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_count_i NUMBER(3) := 0;
l_rubriek_key NUMBER(10);
BEGIN
g_errormsg := NULL;
FOR l_rec IN c_rubriek
LOOP
g_errormsg := 'Fout bij toevoegen rubriek ' || l_rec.bgt_kostenrubriek_code;
BEGIN
SELECT r.bgt_kostenrubriek_key
INTO l_rubriek_key
FROM bgt_kostenrubriek r
WHERE r.bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code
AND r.bgt_project_key = p_project_key;
--
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_project_key
, bgt_kostenrubriek_code
, bgt_kostenrubriek_oms
)
VALUES
( p_project_key
, l_rec.bgt_kostenrubriek_code
, l_rec.bgt_kostenrubriek_oms
)
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_i:= l_count_i + 1;
END;
END LOOP;
fac.imp_writelog ( p_import_key, 'S', 'Rubriek: aantal regels toegevoegd: ' || TO_CHAR(l_count_i), NULL);
COMMIT;
END; -- update_rubriek
PROCEDURE update_groep( p_import_key IN NUMBER
, p_project_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
WHERE r.bgt_kostenrubriek_code = l_rubriek_code
AND r.bgt_project_key = p_project_key;
--
l_groep_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_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
, p_project_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.prs_kostensoortgrp_altcode;
g_errormsg := 'Fout bij opvragen groep ' || l_groep_code;
SELECT prs_kostensoortgrp_key
INTO l_groep_key
FROM bgt_kostenrubriek r
, prs_kostensoortgrp g
WHERE r.bgt_kostenrubriek_key = g.bgt_kostenrubriek_key
AND r.bgt_kostenrubriek_code = l_rec.bgt_kostenrubriek_code
AND g.prs_kostensoortgrp_altcode = l_groep_code
AND r.bgt_project_key = p_project_key;
--
l_soort_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_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
BEGIN
update_rubriek(p_import_key, p_project_key);
update_groep(p_import_key, p_project_key);
update_soort(p_import_key, p_project_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 default projectinrichting {0} afgebroken!');
COMMIT;
END;
/
--=============================================================================
-- RAPPORTAGES
-------------------------------------------------------------------------------
-- Via het menu/Rapportages kunnen rapporten worden gemaakt.
-- Graag een beetje uniforme (vriendelijke) naamgeving aanhouden voor de kolommen
-- omdat deze in de stylesheet driftig worden gebruikt
--
--o CONT_ALF Overzicht contractanten op alfabetische volgorde
--o CONT_RUB Overzicht contracten per rubriek
--o CON_FACT Overzicht (contracten en) facturen per contractant
--o CON_ACC Overzicht [contracten en] facturen per account @moet nog opdrachttotalen
--o CON_ACC1 Overzicht contracten per account
--o BREG_RES Overzicht reserve
--o BREG_BTW Overzicht BTW
--o BREG_TOT Totaaloverzicht budgetrapportage (meerdere subprojecten)
--o BREG_TOT2 Totaaloverzicht budgetrapportage (1 subproject)
--o BREG_RUB Overzicht rubrieken (1 subproject)
--o BREG_RUB2 Overzicht rubrieken (meerdere subprojecten) is hetzelfde met andere view
--o FACT_MND Overzicht facturen per maand op adviesdatum
--<2D> FACTCORU Overzicht contracten en facturen per rubriek
--o FDATFACT Overzicht facturen per maand op factuurdatum
--<2D> BET_ADV Betalingsadvies d.d. dd-mm-jjjj
--o BMUT_NUM Overzicht budgetmutaties op volgnummer
--o MMW_CONT Overzicht Meer- en minderwerk per contractant
--o MMWINVCO Overzicht meer- en minderwerk facturen per contractant
--
-- Ten behoeve van de header zijn de volgende gegevens gewenst in al deze views
-- opdrachtgever p.bgt_disc_params_opdrachtgever
-- project p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
-- subproject bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
-- CONT_ALF
CREATE OR REPLACE FORCE VIEW twyn_v_bedrijf
AS
SELECT p.bgt_disc_params_opdrachtgever
opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
subproject,
b.prs_leverancier_nr
leveranciercode,
b.prs_bedrijf_naam
naam,
b.prs_bedrijf_post_adres
adres,
b.prs_bedrijf_post_postcode
postcode,
b.prs_bedrijf_post_plaats
plaats,
b.prs_bedrijf_telefoon
telefoon,
b.prs_bedrijf_email
email
FROM ins_tab_discipline d,
bgt_disc_params p,
bgt_project bp,
bgt_kostenrubriek br,
prs_kostensoortgrp pkg,
prs_kostensoort ks,
mld_opdr o,
prs_bedrijf b
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.prs_kostensoort_key = ks.prs_kostensoort_key
AND ks.prs_kostensoortgrp_key = pkg.prs_kostensoortgrp_key
AND pkg.bgt_kostenrubriek_key = br.bgt_kostenrubriek_key
AND br.bgt_project_key = bp.bgt_project_key
AND d.ins_discipline_key = p.bgt_ins_discipline_key
AND d.ins_discipline_module = 'BGT'
AND d.ins_discipline_verwijder IS NULL
AND d.ins_discipline_key = bp.ins_discipline_key
ORDER BY prs_bedrijf_naam;
/*
{
"report": {
"id": 101,
"name": "CONT_ALF",
"description": "Contractanten op alfabetische volgorde",
"viewname": "twyn_v_bedrijf",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-15T18:02:08Z",
"graph_options": null,
"columns": [
{
"id": 423,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 421,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 422,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 432,
"name": "leveranciercode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Leveranciercode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 426,
"name": "naam",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Naam",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 427,
"name": "adres",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Adres",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 428,
"name": "postcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Postcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 429,
"name": "plaats",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Plaats",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 430,
"name": "telefoon",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Telefoon",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 431,
"name": "email",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 100,
"caption": "Email",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
-- CONT_RUB
-- Voor ieder rubriek/groep/onderdeel de som van de opdrachten en facturen
-- Opletten: in principe is iedere opdracht uniek en laat je alle individuele opdrachten zien
-- behalve voor MMW-opdrachten, die worden per mld_opdr_nr getotaaliseerd weergegeven
-- Daarom gebruiken we hier de MIN en MAX functies, om de MMW-opdrachten bij elkaar te tellen
-- Die andere view twyn_v_contract laat ook de mmw-opdrachten.
CREATE OR REPLACE FORCE VIEW twyn_v_contract1
AS
SELECT p.bgt_disc_params_opdrachtgever
opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
subproject,
br.bgt_kostenrubriek_code
rubriekcode,
br.bgt_kostenrubriek_oms
rubriek,
pkg.prs_kostensoortgrp_altcode
groepcode,
pkg.prs_kostensoortgrp_oms
groep,
ks.prs_kostensoort_altcode
onderdeelcode,
ks.prs_kostensoort_oms
onderdeel,
b.prs_leverancier_nr,
o.mld_opdr_ordernr,
MAX (o.mld_opdr_meerwerk)
mld_opdr_meerwerk,
MAX (o.mld_opdr_id)
kenmerk,
MAX (o.mld_opdr_omschrijving)
mld_opdr_omschrijving,
kp.prs_kostenplaats_nr
accountcode,
kp.prs_kostenplaats_omschrijving
account,
MIN (o.mld_opdr_datumbegin)
datum,
TO_CHAR (MIN (o.mld_opdr_datumbegin), 'DD-MM-YYYY')
printdatum,
SUM (o.mld_opdr_kosten)
kosten,
SUM (o.mld_opdr_kosten_btw)
btw,
SUM (bgt.getgefactureerd (o.mld_opdr_key, 0))
facturen
FROM ins_tab_discipline d,
bgt_disc_params p,
bgt_project bp,
bgt_kostenrubriek br,
prs_kostensoortgrp pkg,
prs_kostensoort ks,
prs_kostenplaats kp,
mld_opdr o,
prs_bedrijf b
WHERE o.prs_kostensoort_key = ks.prs_kostensoort_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND ks.prs_kostensoortgrp_key = pkg.prs_kostensoortgrp_key
AND pkg.bgt_kostenrubriek_key = br.bgt_kostenrubriek_key
AND br.bgt_project_key = bp.bgt_project_key
AND bp.ins_discipline_key = p.bgt_ins_discipline_key
AND p.bgt_ins_discipline_key = d.ins_discipline_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY p.bgt_disc_params_opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving,
bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving,
d.ins_discipline_omschrijving,
p.bgt_disc_params_code,
p.bgt_disc_params_opdrachtgever,
bp.bgt_project_omschrijving,
br.bgt_kostenrubriek_code,
br.bgt_kostenrubriek_oms,
pkg.prs_kostensoortgrp_altcode,
pkg.prs_kostensoortgrp_oms,
ks.prs_kostensoort_altcode,
ks.prs_kostensoort_oms,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
b.prs_leverancier_nr,
o.mld_opdr_ordernr
ORDER BY br.bgt_kostenrubriek_code,
pkg.prs_kostensoortgrp_altcode,
ks.prs_kostensoort_altcode,
b.prs_leverancier_nr,
o.mld_opdr_ordernr;
/*
{
"report": {
"id": 102,
"name": "CONT_RUB",
"description": "Contracten per rubriek",
"viewname": "twyn_v_contract1",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-15T18:21:27Z",
"graph_options": null,
"columns": [
{
"id": 433,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 434,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 435,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 299,
"name": "bgt_kostenrubriek_code",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Bgt Kostenrubriek Code",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 300,
"name": "bgt_kostenrubriek_oms",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Bgt Kostenrubriek Oms",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 301,
"name": "prs_kostensoortgrp_altcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Prs Kostensoortgrp Altcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 302,
"name": "prs_kostensoortgrp_oms",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Prs Kostensoortgrp Oms",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 303,
"name": "prs_kostensoort_altcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Prs Kostensoort Altcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 304,
"name": "prs_kostensoort_oms",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 100,
"caption": "Prs Kostensoort Oms",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 305,
"name": "prs_leverancier_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 110,
"caption": "Prs Leverancier Nr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 306,
"name": "mld_opdr_ordernr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 120,
"caption": "Mld Opdr Ordernr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 307,
"name": "kenmerk",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 130,
"caption": "Kenmerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 308,
"name": "datum",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 140,
"caption": "Datum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 309,
"name": "printdatum",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 150,
"caption": "Printdatum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 310,
"name": "kosten",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 160,
"caption": "Kosten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 311,
"name": "btw",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 170,
"caption": "Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 312,
"name": "facturen",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 180,
"caption": "Facturen",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
-- CON_FACT
-- CON_ACC
-- FACTCORU
CREATE OR REPLACE FORCE VIEW twyn_v_contr_fact_bedrijf
AS
SELECT p.bgt_disc_params_opdrachtgever
opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
bgt_project.bgt_project_code
|| ' '
|| bgt_project.bgt_project_omschrijving
subproject,
bgt_kostenrubriek_oms
rubriek,
bgt_kostenrubriek_code
rubriekcode,
prs_kostensoortgrp_oms
groep,
prs_kostensoort.prs_kostensoort_oms
onderdeel,
prs_kostensoort.prs_kostensoort_opmerking
onderdeelcode,
prs_bedrijf.prs_bedrijf_naam,
prs_bedrijf.prs_leverancier_nr,
mld_opdr.mld_opdr_id
kenmerk,
mld_opdr.mld_opdr_ordernr,
mld_opdr.mld_opdr_bedrijfopdr_volgnr,
kp.prs_kostenplaats_nr
accountcode,
kp.prs_kostenplaats_omschrijving
account,
mld_opdr.mld_opdr_omschrijving,
mld_opdr.mld_opdr_datumbegin,
TO_CHAR (mld_opdr.mld_opdr_datumbegin, 'DD-MM-YYYY')
mld_opdr_datumbegin_p,
mld_opdr.mld_opdr_kosten,
mld_opdr.mld_opdr_kosten_btw,
mld_opdr.mld_opdr_meerwerk,
fin_factuur.fin_factuur_datum,
fin_factuur.fin_factuur_nr,
fin_factuur.fin_factuur_opmerking,
fin_factuur.fin_factuur_totaal,
fin_factuur.fin_factuur_totaal_btw,
fin_factuur.fin_factuur_advies,
TO_CHAR (fin_factuur.fin_factuur_datum, 'DD-MM-YYYY')
fin_factuur_datum_p,
TO_CHAR (fin_factuur.fin_factuur_advies, 'DD-MM-YYYY')
fin_factuur_advies_p
FROM ins_tab_discipline d,
bgt_disc_params p,
fin_factuur,
mld_opdr,
prs_bedrijf,
prs_kostensoort,
prs_kostensoortgrp,
bgt_kostenrubriek,
prs_kostenplaats kp,
bgt_project
WHERE fin_factuur.mld_opdr_key(+) = mld_opdr.mld_opdr_key
AND mld_opdr.prs_kostensoort_key =
prs_kostensoort.prs_kostensoort_key
AND mld_opdr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND prs_bedrijf.prs_bedrijf_key = mld_opdr.mld_uitvoerende_keys
AND prs_kostensoort.prs_kostensoortgrp_key =
prs_kostensoortgrp.prs_kostensoortgrp_key
AND prs_kostensoortgrp.bgt_kostenrubriek_key =
bgt_kostenrubriek.bgt_kostenrubriek_key
AND bgt_kostenrubriek.bgt_project_key =
bgt_project.bgt_project_key
AND bgt_project.ins_discipline_key = p.bgt_ins_discipline_key
AND p.bgt_ins_discipline_key = d.ins_discipline_key
ORDER BY mld_opdr_ordernr,
mld_opdr_bedrijfopdr_volgnr,
mld_opdr_id,
fin_factuur_datum;
/*
{
"report": {
"id": 103,
"name": "CON_FACT",
"description": "Contracten en facturen per contractant",
"viewname": "twyn_v_contr_fact_bedrijf",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-15T18:27:09Z",
"graph_options": null,
"columns": [
{
"id": 436,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 361,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 362,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 363,
"name": "rubriek",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Rubriek",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 364,
"name": "groep",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Groep",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 365,
"name": "onderdeel",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Onderdeel",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 366,
"name": "onderdeelcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Onderdeelcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 380,
"name": "prs_bedrijf_naam",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Prs Bedrijf Naam",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 381,
"name": "prs_leverancier_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Contactant",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 382,
"name": "kenmerk",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Kenmerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 324,
"name": "mld_opdr_ordernr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 120,
"caption": "Mld Opdr Ordernr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 368,
"name": "account",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 120,
"caption": "Account",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 369,
"name": "mld_opdr_datumbegin_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 150,
"caption": "Mld Opdr Datumbegin P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 345,
"name": "mld_opdr_bedrijfopdr_volgnr",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 160,
"caption": "Mld Opdr Bedrijfopdr Volgnr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 370,
"name": "fin_factuur_datum",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 190,
"caption": "Fin Factuur Datum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 348,
"name": "mld_opdr_omschrijving",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 190,
"caption": "Mld Opdr Omschrijving",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 349,
"name": "mld_opdr_datumbegin",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 200,
"caption": "Mld Opdr Datumbegin",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 371,
"name": "fin_factuur_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 200,
"caption": "Fin Factuur Nr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 372,
"name": "fin_factuur_opmerking",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 210,
"caption": "Fin Factuur Opmerking",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 350,
"name": "mld_opdr_kosten",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 210,
"caption": "Mld Opdr Kosten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 373,
"name": "fin_factuur_totaal",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 220,
"caption": "Fin Factuur Totaal",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 351,
"name": "mld_opdr_kosten_btw",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 220,
"caption": "Mld Opdr Kosten Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 374,
"name": "fin_factuur_totaal_btw",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 230,
"caption": "Fin Factuur Totaal Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 375,
"name": "fin_factuur_advies",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 240,
"caption": "Fin Factuur Advies",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 376,
"name": "fin_factuur_datum_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 250,
"caption": "Fin Factuur Datum P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 377,
"name": "fin_factuur_advies_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 260,
"caption": "Fin Factuur Advies P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 360,
"name": "mld_opdr_meerwerk",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 310,
"caption": "Mld Opdr Meerwerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
/*
{
"report": {
"id": 123,
"name": "CON_ACC",
"description": "Overzicht (contracten en) facturen per account",
"viewname": "twyn_v_contr_fact_bedrijf",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-16T14:25:05Z",
"graph_options": null,
"columns": [
{
"id": 523,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 524,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 525,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 526,
"name": "rubriek",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Rubriek",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 527,
"name": "groep",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Groep",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 528,
"name": "onderdeel",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Onderdeel",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 529,
"name": "onderdeelcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Onderdeelcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 530,
"name": "prs_bedrijf_naam",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Prs Bedrijf Naam",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 531,
"name": "prs_leverancier_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Prs Leverancier Nr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 532,
"name": "kenmerk",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 100,
"caption": "Kenmerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 533,
"name": "mld_opdr_ordernr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 110,
"caption": "Mld Opdr Ordernr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 534,
"name": "mld_opdr_bedrijfopdr_volgnr",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 120,
"caption": "Mld Opdr Bedrijfopdr Volgnr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 535,
"name": "account",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 130,
"caption": "Account",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 550,
"name": "accountcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 130,
"caption": "Accountcode",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 536,
"name": "mld_opdr_omschrijving",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 140,
"caption": "Mld Opdr Omschrijving",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 537,
"name": "mld_opdr_datumbegin",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 150,
"caption": "Mld Opdr Datumbegin",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 538,
"name": "mld_opdr_datumbegin_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 160,
"caption": "Mld Opdr Datumbegin P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 539,
"name": "mld_opdr_kosten",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 170,
"caption": "Mld Opdr Kosten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 540,
"name": "mld_opdr_kosten_btw",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 180,
"caption": "Mld Opdr Kosten Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 541,
"name": "mld_opdr_meerwerk",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 190,
"caption": "Mld Opdr Meerwerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 542,
"name": "fin_factuur_datum",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 200,
"caption": "Fin Factuur Datum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 543,
"name": "fin_factuur_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 210,
"caption": "Fin Factuur Nr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 544,
"name": "fin_factuur_opmerking",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 220,
"caption": "Fin Factuur Opmerking",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 545,
"name": "fin_factuur_totaal",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 230,
"caption": "Fin Factuur Totaal",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 546,
"name": "fin_factuur_totaal_btw",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 240,
"caption": "Fin Factuur Totaal Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 547,
"name": "fin_factuur_advies",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 250,
"caption": "Fin Factuur Advies",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 548,
"name": "fin_factuur_datum_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 260,
"caption": "Fin Factuur Datum P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 549,
"name": "fin_factuur_advies_p",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 270,
"caption": "Fin Factuur Advies P",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
-- CON_ACC1
CREATE OR REPLACE FORCE VIEW twyn_v_contract
AS
SELECT p.bgt_disc_params_opdrachtgever
opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
subproject,
br.bgt_kostenrubriek_code
rubriekcode,
br.bgt_kostenrubriek_oms
rubriek,
pkg.prs_kostensoortgrp_altcode
groepcode,
pkg.prs_kostensoortgrp_oms
groep,
ks.prs_kostensoort_altcode
onderdeelcode,
ks.prs_kostensoort_oms
onderdeel,
b.prs_leverancier_nr
prs_leverancier_nr,
o.mld_opdr_ordernr
mld_opdr_ordernr,
o.mld_opdr_id
kenmerk,
o.mld_opdr_omschrijving
mld_opdr_omschrijving,
kp.prs_kostenplaats_nr
accountcode,
kp.prs_kostenplaats_omschrijving
account,
o.mld_opdr_datumbegin
datum,
TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY')
printdatum,
o.mld_opdr_meerwerk,
o.mld_opdr_kosten
mld_opdr_kosten,
o.mld_opdr_kosten_btw
mld_opdr_kosten_btw,
SUM (bgt.getgefactureerd (o.mld_opdr_key, 0))
fin_factuur_totaal
FROM ins_tab_discipline d,
bgt_disc_params p,
bgt_project bp,
bgt_kostenrubriek br,
prs_kostensoortgrp pkg,
prs_kostensoort ks,
prs_kostenplaats kp,
mld_opdr o,
prs_bedrijf b
WHERE o.prs_kostensoort_key = ks.prs_kostensoort_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND ks.prs_kostensoortgrp_key = pkg.prs_kostensoortgrp_key
AND pkg.bgt_kostenrubriek_key = br.bgt_kostenrubriek_key
AND br.bgt_project_key = bp.bgt_project_key
AND bp.ins_discipline_key = p.bgt_ins_discipline_key
AND p.bgt_ins_discipline_key = d.ins_discipline_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY p.bgt_disc_params_opdrachtgever,
p.bgt_disc_params_code,
d.ins_discipline_omschrijving,
bp.bgt_project_code,
bp.bgt_project_omschrijving,
d.ins_discipline_omschrijving,
p.bgt_disc_params_code,
p.bgt_disc_params_opdrachtgever,
bp.bgt_project_omschrijving,
br.bgt_kostenrubriek_code,
br.bgt_kostenrubriek_oms,
pkg.prs_kostensoortgrp_altcode,
pkg.prs_kostensoortgrp_oms,
ks.prs_kostensoort_altcode,
ks.prs_kostensoort_oms,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
b.prs_leverancier_nr,
o.mld_opdr_ordernr,
o.mld_opdr_id,
o.mld_opdr_omschrijving,
o.mld_opdr_meerwerk,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
o.mld_opdr_datumbegin,
o.mld_opdr_kosten,
o.mld_opdr_kosten_btw
ORDER BY kp.prs_kostenplaats_nr, b.prs_leverancier_nr, o.mld_opdr_ordernr;
/*
{
"report": {
"id": 121,
"name": "CON_ACC1",
"description": "Contracten per account",
"viewname": "twyn_v_contract",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-16T11:20:30Z",
"graph_options": null,
"columns": [
{
"id": 468,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 469,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 470,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 471,
"name": "rubriekcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Rubriekcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 472,
"name": "rubriek",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Rubriek",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 473,
"name": "groepcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Groepcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 474,
"name": "groep",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Groep",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 475,
"name": "onderdeelcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Onderdeelcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 476,
"name": "onderdeel",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Onderdeel",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 494,
"name": "prs_leverancier_nr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 100,
"caption": "Prs Leverancier Nr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 491,
"name": "mld_opdr_ordernr",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 110,
"caption": "Mld Opdr Ordernr",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 479,
"name": "kenmerk",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 120,
"caption": "Kenmerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 490,
"name": "mld_opdr_omschrijving",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 130,
"caption": "Mld Opdr Omschrijving",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 481,
"name": "accountcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 140,
"caption": "Accountcode",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 482,
"name": "account",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 150,
"caption": "Account",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 483,
"name": "datum",
"datatype": {
"id": "date",
"name": "Datum"
},
"sequence": 160,
"caption": "Datum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 484,
"name": "printdatum",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 170,
"caption": "Printdatum",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 488,
"name": "mld_opdr_kosten",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 180,
"caption": "Mld Opdr Kosten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 493,
"name": "mld_opdr_meerwerk",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 180,
"caption": "Mld Opdr Meerwerk",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 489,
"name": "mld_opdr_kosten_btw",
"datatype": {
"id": "float",
"name": "Float"
},
"sequence": 190,
"caption": "Mld Opdr Kosten Btw",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 492,
"name": "fin_factuur_totaal",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 200,
"caption": "Fin Factuur Totaal",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
-- BREG_RUB
-- e.a.?
CREATE OR REPLACE FORCE VIEW twyn_v_rubriek
AS
SELECT p.bgt_disc_params_opdrachtgever
opdrachtgever,
p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
subproject,
br.bgt_kostenrubriek_code
rubriekcode,
br.bgt_kostenrubriek_oms
rubriek,
pkg.prs_kostensoortgrp_altcode
groepcode,
pkg.prs_kostensoortgrp_oms
groep,
ks.prs_kostensoort_altcode
onderdeelcode,
ks.prs_kostensoort_oms
onderdeel,
bud.bgt_budget_bedrag
budget,
bud.bgt_budget_key,
COALESCE ( (SELECT SUM (COALESCE (bgt_budget_bedrag_naar, 0))
FROM bgt_budgetmutatie bm
WHERE bm.bgt_budget_key_naar = bud.bgt_budget_key)
+ (SELECT SUM (COALESCE (bgt_budget_bedrag_van, 0))
FROM bgt_budgetmutatie bm
WHERE bm.bgt_budget_key_van = bud.bgt_budget_key),
0)
mutaties,
COALESCE (SUM (o.mld_opdr_kosten), 0)
contracten,
COALESCE (SUM (bgt.getgefactureerd (o.mld_opdr_key, 0)), 0)
facturen
FROM ins_tab_discipline d,
bgt_disc_params p,
bgt_project bp,
bgt_kostenrubriek br,
prs_kostensoortgrp pkg,
prs_kostensoort ks,
mld_opdr o,
bgt_budget bud
WHERE o.prs_kostensoort_key(+) = ks.prs_kostensoort_key
AND bud.prs_kostensoort_key = ks.prs_kostensoort_key
AND ks.prs_kostensoortgrp_key = pkg.prs_kostensoortgrp_key
AND pkg.bgt_kostenrubriek_key = br.bgt_kostenrubriek_key
AND br.bgt_project_key = bp.bgt_project_key
AND bp.ins_discipline_key = p.bgt_ins_discipline_key
AND p.bgt_ins_discipline_key = d.ins_discipline_key
GROUP BY p.bgt_disc_params_opdrachtgever,
p.bgt_disc_params_code,
d.ins_discipline_omschrijving,
bp.bgt_project_code,
bp.bgt_project_omschrijving,
d.ins_discipline_omschrijving,
p.bgt_disc_params_code,
p.bgt_disc_params_opdrachtgever,
bp.bgt_project_omschrijving,
br.bgt_kostenrubriek_code,
br.bgt_kostenrubriek_oms,
pkg.prs_kostensoortgrp_altcode,
pkg.prs_kostensoortgrp_oms,
ks.prs_kostensoort_altcode,
ks.prs_kostensoort_oms,
bud.bgt_budget_key,
bud.bgt_budget_bedrag
ORDER BY 2,
3,
br.bgt_kostenrubriek_code,
pkg.prs_kostensoortgrp_altcode,
ks.prs_kostensoort_altcode;
/*
{
"report": {
"id": 124,
"name": "BREG_RUB",
"description": "Overzicht rubrieken",
"viewname": "twyn_v_rubriek",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-16T17:48:19Z",
"graph_options": null,
"columns": [
{
"id": 551,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 552,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 553,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 564,
"name": "rubriekcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Rubriekcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 555,
"name": "rubriek",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Rubriek",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 556,
"name": "groepcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Groepcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 557,
"name": "groep",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Groep",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 558,
"name": "onderdeelcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Onderdeelcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 559,
"name": "onderdeel",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Onderdeel",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 560,
"name": "budget",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 100,
"caption": "Budget",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 567,
"name": "bgt_budget_key",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 110,
"caption": "Bgt Budget Key",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 561,
"name": "mutaties",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 110,
"caption": "Mutaties",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 562,
"name": "contracten",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 120,
"caption": "Contracten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 563,
"name": "facturen",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 130,
"caption": "Facturen",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
-- BREG_RUB2
-- Dit is de op project/onderdeelcode gegroepeerde versie van die hiervoor
-- Check of we die onderdeelcode (prs_kostensoort_altcode) ook uiteindelijk echt gebruiken,
-- die hebben we wel nodig hier
--
CREATE OR REPLACE FORCE VIEW twyn_v_rubriek_project
(
opdrachtgever,
project,
subproject,
rubriekcode,
rubriek,
groepcode,
groep,
onderdeelcode,
onderdeel,
budget,
mutaties,
contracten,
facturen
)
AS
SELECT opdrachtgever,
project,
'*',
rubriekcode,
rubriek,
groepcode,
groep,
onderdeelcode,
MIN (onderdeel)
|| DECODE (MIN (onderdeel),
MAX (onderdeel), '',
'/' || MAX (onderdeel)),
SUM (budget),
SUM (mutaties),
SUM (contracten),
SUM (facturen)
FROM twyn_v_rubriek
GROUP BY opdrachtgever,
project,
rubriekcode,
rubriek,
groepcode,
groep,
onderdeelcode
ORDER BY 2, onderdeelcode;
/*
{
"report": {
"id": 141,
"name": "BREG_RUB2",
"description": "Overzicht rubrieken (alle deelprojecten)",
"viewname": "twyn_v_rubriek_project",
"authorization": {
"id": 91,
"name": "Beheer:Budgetten (WEB_BGTUSE)"
},
"condition": {
"id": 0,
"name": "EN"
},
"group": null,
"styling": {
"id": 1,
"name": "Gestyled"
},
"urllink": null,
"autorefresh": null,
"count": {
"id": 0,
"name": "Nee"
},
"ratio": {
"id": 0,
"name": "Nee"
},
"pivot": {
"id": 0,
"name": "Nee"
},
"graph": {
"id": 0,
"name": "Nee"
},
"graph_type": {
"id": 0,
"name": ""
},
"lastrefresh": "2017-08-17T15:54:07Z",
"graph_options": null,
"columns": [
{
"id": 581,
"name": "opdrachtgever",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 10,
"caption": "Opdrachtgever",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 582,
"name": "project",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 20,
"caption": "Project",
"filter": {
"id": "A",
"name": "Automatisch"
},
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 583,
"name": "subproject",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 30,
"caption": "Subproject",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 584,
"name": "rubriekcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 40,
"caption": "Rubriekcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 585,
"name": "rubriek",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 50,
"caption": "Rubriek",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 586,
"name": "groepcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 60,
"caption": "Groepcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 587,
"name": "groep",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 70,
"caption": "Groep",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 588,
"name": "onderdeelcode",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 80,
"caption": "Onderdeelcode",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 589,
"name": "onderdeel",
"datatype": {
"id": "varchar",
"name": "Tekst"
},
"sequence": 90,
"caption": "Onderdeel",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 590,
"name": "budget",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 100,
"caption": "Budget",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 591,
"name": "mutaties",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 110,
"caption": "Mutaties",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 593,
"name": "contracten",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 120,
"caption": "Contracten",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
},
{
"id": 594,
"name": "facturen",
"datatype": {
"id": "number",
"name": "Getal"
},
"sequence": 130,
"caption": "Facturen",
"filter": null,
"filterdefault": null,
"visible": {
"id": "V",
"name": "Zichtbaar"
},
"group": {
"id": "G",
"name": "N.v.t."
},
"expression": null
}
]
}
}
*/
--BMUT_NUM
CREATE OR REPLACE VIEW twyn_v_budgetmutaties
AS
SELECT bdp.bgt_disc_params_opdrachtgever
opdrachtgever,
bdp.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project,
p.bgt_project_code || ' ' || p.bgt_project_omschrijving
subproject,
bgt_budgetmutatie.bgt_budgetmutatie_datum,
TO_CHAR (bgt_budgetmutatie.bgt_budgetmutatie_datum, 'DD-MM-YYYY')
mutatie_datum_p,
bgt_budgetmutatie.bgt_budgetmutatie_omschrijving
omschrijving,
(SELECT bgt_budget_naam
FROM (SELECT b.bgt_budget_key,
CASE
WHEN b.prs_kostensoort_key IS NOT NULL
THEN
s.prs_kostensoort_oms
ELSE
CASE
WHEN b.prs_kostensoortgrp_key
IS NOT NULL
THEN
g.prs_kostensoortgrp_oms
ELSE
CASE
WHEN b.bgt_kostenrubriek_key
IS NOT NULL
THEN
r.bgt_kostenrubriek_oms
ELSE
'Reserve'
END
END
END
bgt_budget_naam,
f.fin_btwtabelwaarde_perc
FROM bgt_budget b,
bgt_kostenrubriek r,
prs_kostensoortgrp g,
prs_kostensoort s,
fin_btwtabelwaarde f
WHERE b.bgt_kostenrubriek_key =
r.bgt_kostenrubriek_key(+)
AND b.prs_kostensoortgrp_key =
g.prs_kostensoortgrp_key(+)
AND b.prs_kostensoort_key =
s.prs_kostensoort_key(+)
AND s.fin_btwtabelwaarde_key =
f.fin_btwtabelwaarde_key(+)) xx
WHERE xx.bgt_budget_key = bgt_budgetmutatie.bgt_budget_key_van)
AS budget_van,
(SELECT bgt_budget_naam
FROM (SELECT b.bgt_budget_key,
CASE
WHEN b.prs_kostensoort_key IS NOT NULL
THEN
s.prs_kostensoort_oms
ELSE
CASE
WHEN b.prs_kostensoortgrp_key
IS NOT NULL
THEN
g.prs_kostensoortgrp_oms
ELSE
CASE
WHEN b.bgt_kostenrubriek_key
IS NOT NULL
THEN
r.bgt_kostenrubriek_oms
ELSE
'Reserve'
END
END
END
bgt_budget_naam,
f.fin_btwtabelwaarde_perc
FROM bgt_budget b,
bgt_kostenrubriek r,
prs_kostensoortgrp g,
prs_kostensoort s,
fin_btwtabelwaarde f
WHERE b.bgt_kostenrubriek_key =
r.bgt_kostenrubriek_key(+)
AND b.prs_kostensoortgrp_key =
g.prs_kostensoortgrp_key(+)
AND b.prs_kostensoort_key =
s.prs_kostensoort_key(+)
AND s.fin_btwtabelwaarde_key =
f.fin_btwtabelwaarde_key(+)) xx
WHERE xx.bgt_budget_key = bgt_budgetmutatie.bgt_budget_key_naar)
AS budget_naar,
bgt_budgetmutatie.bgt_budget_bedrag_naar
mutatie_bedrag,
bgt_budgetmutatie.bgt_budget_btwbedrag_naar
mutatie_bedrag_btw
FROM bgt_budgetmutatie,
bgt_budget b,
bgt_project p,
bgt_disc_params bdp,
ins_tab_discipline d
WHERE bgt_budgetmutatie.bgt_budget_key_van = b.bgt_budget_key
AND b.bgt_project_key = p.bgt_project_key
AND bdp.bgt_ins_discipline_key = d.ins_discipline_key
AND p.ins_discipline_key = d.ins_discipline_key
ORDER BY bgt_budgetmutatie_datum, budget_van;
-- BREG_TOT
CREATE OR REPLACE VIEW twyn_v_budgettotaal
AS
SELECT *
FROM ( SELECT bud.ins_discipline_key,
bud.bgt_project_key,
bud.bgt_kostenrubriek_key,
bud.opdrachtgever,
bud.project
project,
bud.subproject
subproject,
bud.sortcode,
bud.rubriek
rubriek,
bud.rcode
rubriekcode,
MAX (bud.budget_actueel)
budget_actueel,
MAX (bud.budget_actueel - bud.budget_mutatie)
budget_origineel,
MAX (bud.budget_mutatie)
budget_mutatie,
SUM (besteding.gecontracteerd)
gecontracteerd,
MAX (COALESCE (bud.budget_actueel, 0))
- SUM (COALESCE (besteding.gecontracteerd, 0))
tecontracteren,
SUM (besteding.gefactureerd)
gefactureerd,
SUM (besteding.tefactureren)
tefactureren,
MAX (bud.budget_btwactueel)
budget_btwactueel,
MAX (bud.budget_btwactueel - bud.budget_btwmutatie)
budget_btworigineel,
MAX (bud.budget_btwmutatie)
budget_btwmutatie,
SUM (besteding.gecontracteerdbtw)
gecontracteerdbtw,
MAX (COALESCE (bud.budget_btwactueel, 0))
- SUM (COALESCE (besteding.gecontracteerdbtw, 0))
tecontracterenbtw,
SUM (besteding.gefactureerdbtw)
gefactureerdbtw,
SUM (besteding.tefacturerenbtw)
tefacturerenbtw
FROM twyn_v_bgt_budget bud,
( SELECT opdr.ins_discipline_key,
opdr.bgt_project_key,
opdr.bgt_kostenrubriek_key,
opdr.prs_kostensoortgrp_key,
opdr.prs_kostensoort_key
prs_kostensoort_key,
SUM (opdr.gecontracteerd)
gecontracteerd,
SUM (opdr.gecontracteerdbtw)
gecontracteerdbtw,
SUM (fact.gefactureerd)
gefactureerd,
SUM (fact.gefactureerdbtw)
gefactureerdbtw,
SUM (COALESCE (opdr.gecontracteerd, 0))
- SUM (COALESCE (fact.gefactureerd, 0))
tefactureren,
SUM (COALESCE (opdr.gecontracteerdbtw, 0))
- SUM (COALESCE (fact.gefactureerdbtw, 0))
tefacturerenbtw
FROM twyn_v_bgt_opdracht opdr, twyn_v_bgt_factuur fact
WHERE opdr.prs_kostensoort_key(+) =
fact.prs_kostensoort_key
AND opdr.ins_discipline_key =
fact.ins_discipline_key
AND opdr.bgt_project_key = fact.bgt_project_key
GROUP BY opdr.ins_discipline_key,
opdr.bgt_project_key,
opdr.bgt_kostenrubriek_key,
opdr.prs_kostensoortgrp_key,
opdr.prs_kostensoort_key) besteding
WHERE bud.bgt_kostenrubriek_key =
besteding.bgt_kostenrubriek_key(+)
GROUP BY bud.ins_discipline_key,
bud.bgt_project_key,
bud.bgt_kostenrubriek_key,
bud.opdrachtgever,
bud.project,
bud.subproject,
bud.rubriek,
bud.rcode,
bud.sortcode,
bud.budget_actueel)
ORDER BY project,
subproject,
sortcode,
rubriek;
-- BREG_RES
CREATE OR REPLACE VIEW twyn_v_reserve
AS
SELECT bg.ins_discipline_key,
bg.bgt_project_key,
bg.bgt_kostenrubriek_key,
opdrachtgever,
project_oms
project,
subproject_oms
subproject,
rubriek_oms
rubriek,
DECODE (rubriek_code, 'R', 'A', 'B') || rubriek_code
sortcode,
rubriek_code
rubriekcode,
COALESCE (bedrag_actueel - bedrag_mutatie, 0)
budget_origineel,
COALESCE (bedrag_mutatie, 0)
budget_mutatie,
COALESCE (bedrag_actueel, 0)
budget_actueel,
COALESCE (gecontracteerd, 0)
gecontracteerd,
COALESCE (bedrag_actueel, 0) - COALESCE (gecontracteerd, 0)
tecontracteren,
COALESCE (gefactureerd, 0)
gefactureerd
FROM twyn_v_bgt_budgetgegevens bg,
( SELECT ins_discipline_key,
bgt_project_key,
bgt_kostenrubriek_key,
SUM (gecontracteerd) gecontracteerd
FROM twyn_v_bgt_opdracht
WHERE prs_kostensoort_key IS NULL
GROUP BY ins_discipline_key,
bgt_project_key,
bgt_kostenrubriek_key) bo,
( SELECT ins_discipline_key,
bgt_project_key,
bgt_kostenrubriek_key,
SUM (gefactureerd) gefactureerd
FROM twyn_v_bgt_factuur
WHERE prs_kostensoort_key IS NULL
GROUP BY ins_discipline_key,
bgt_project_key,
bgt_kostenrubriek_key) bf,
( SELECT rm.ins_discipline_key,
rm.bgt_project_key,
rm.rubriek_key_org,
rm.rubriek_key_des,
rm.rcode_org,
rm.rcode_des,
SUM (rm.bgt_budgetmutatie_bedrag) bedrag_mutatie,
SUM (rm.bgt_budgetmutatie_bedrag) bedrag_actueel
FROM twyn_v_bgt_rubriekmutatie rm
WHERE rm.rcode_org = 'R'
GROUP BY rm.ins_discipline_key,
rm.bgt_project_key,
rm.rubriek_key_org,
rm.rubriek_key_des,
rm.rcode_org,
rm.rcode_des
UNION
SELECT bb.ins_discipline_key,
bb.bgt_project_key,
bb.bgt_kostenrubriek_key
rubriek_key_org,
bb.bgt_kostenrubriek_key
rubriek_key_des,
br.bgt_kostenrubriek_code
rcode_org,
br.bgt_kostenrubriek_code
rcode_des,
0
bedrag_mutatie,
(bgt_budget_bedrag - bedrag_van - bedrag_naar)
bedrag_actueel
FROM twyn_v_bgt_budgetmutatie bm,
bgt_budget bb,
bgt_kostenrubriek br
WHERE bm.bgt_budget_key = bb.bgt_budget_key
AND bb.bgt_kostenrubriek_key = br.bgt_kostenrubriek_key
AND br.bgt_kostenrubriek_code = 'R') bud_mut
WHERE bg.bgt_kostenrubriek_key = bud_mut.rubriek_key_des(+)
AND bg.bgt_kostenrubriek_key = bo.bgt_kostenrubriek_key(+)
AND bg.bgt_kostenrubriek_key = bf.bgt_kostenrubriek_key(+)
AND bg.prs_kostensoort_key IS NULL
ORDER BY bg.bgt_project_key, rubriek_oms;
-- MMW_CONT
CREATE OR REPLACE VIEW twyn_v_meerminderwerk_opdr
AS
SELECT p.ins_discipline_key,
p.bgt_project_key,
p.bgt_kostenrubriek_key,
p.prs_kostensoortgrp_key,
p.prs_kostensoort_key,
b.prs_bedrijf_key,
p.opdrachtgever,
p.project,
p.subproject,
b.prs_leverancier_nr,
b.prs_bedrijf_naam,
p.scode
soortcode,
p.kostensoort,
m.mld_opdr_ordernr,
m.mld_opdr_bedrijfopdr_volgnr,
m.mld_opdr_omschrijving,
m.mld_opdr_id,
m.mld_opdr_datumbegin,
TO_CHAR (m.mld_opdr_datumbegin, 'dd-mm-yyyy')
mld_opdr_datumbegin_p,
m.mld_opdr_kosten,
m.mld_opdr_kosten_btw,
f.fin_factuur_totaal,
f.fin_factuur_totaal_btw,
c.mld_statusopdr_oms
FROM mld_opdr m,
prs_bedrijf b,
twyn_v_bgt_project p,
(SELECT fac_code2label_code
mld_statusopdr_key,
COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst)
mld_statusopdr_oms
FROM fac_locale_xsl fl, fac_code2label fs
WHERE fl.fac_locale_xsl_label = fac_code2label_label
AND fac_code2label_domein = 'opdracht'
AND fac_locale_xsl_lang = lcl.getuserlanguage ()) c,
( SELECT ff.mld_opdr_key,
SUM (ff.fin_factuur_totaal) fin_factuur_totaal,
SUM (ff.fin_factuur_totaal_btw) fin_factuur_totaal_btw
FROM fin_factuur ff
GROUP BY ff.mld_opdr_key) f
WHERE m.mld_uitvoerende_keys = b.prs_bedrijf_key
AND m.prs_kostensoort_key = p.prs_kostensoort_key
AND m.mld_opdr_meerwerk = 1
AND m.mld_statusopdr_key = c.mld_statusopdr_key
AND m.mld_opdr_key = f.mld_opdr_key(+)
ORDER BY b.prs_leverancier_nr,
p.scode,
m.mld_opdr_ordernr,
m.mld_opdr_bedrijfopdr_volgnr;
-- MMW_INVCO
CREATE OR REPLACE VIEW twyn_v_meerminderwerk_fact
AS
SELECT p.ins_discipline_key,
p.bgt_project_key,
p.bgt_kostenrubriek_key,
p.prs_kostensoortgrp_key,
p.prs_kostensoort_key,
b.prs_bedrijf_key,
f.fin_factuur_key,
p.opdrachtgever,
p.project,
p.subproject,
b.prs_leverancier_nr,
b.prs_bedrijf_naam,
p.scode
soortcode,
p.kostensoort,
m.mld_opdr_ordernr,
m.mld_opdr_bedrijfopdr_volgnr,
(SELECT CASE
WHEN MIN (x.mld_opdr_bedrijfopdr_volgnr) =
m.mld_opdr_bedrijfopdr_volgnr
THEN
1
ELSE
0
END
FROM mld_opdr x
WHERE x.mld_opdr_ordernr = m.mld_opdr_ordernr
AND x.mld_opdr_meerwerk = 1)
mld_opdr_mainorder,
m.mld_opdr_omschrijving,
m.mld_opdr_id,
m.mld_opdr_datumbegin,
TO_CHAR (m.mld_opdr_datumbegin, 'dd-mm-yyyy')
mld_opdr_datumbegin_p,
m.mld_opdr_kosten,
m.mld_opdr_kosten_btw,
f.fin_factuur_datum,
TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy')
fin_factuur_datum_p,
fin_factuur_nr,
fin_factuur_opmerking,
fin_factuur_totaal,
fin_factuur_totaal_btw,
fin_factuur_advies,
TO_CHAR (f.fin_factuur_advies, 'dd-mm-yyyy')
fin_factuur_advies_p,
c.mld_statusopdr_oms
FROM mld_opdr m,
prs_bedrijf b,
fin_factuur f,
twyn_v_bgt_project p,
(SELECT fac_code2label_code
mld_statusopdr_key,
COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst)
mld_statusopdr_oms
FROM fac_locale_xsl fl, fac_code2label fs
WHERE fl.fac_locale_xsl_label = fac_code2label_label
AND fac_code2label_domein = 'opdracht'
AND fac_locale_xsl_lang = lcl.getuserlanguage ()) c
WHERE m.mld_uitvoerende_keys = b.prs_bedrijf_key
AND m.prs_kostensoort_key = p.prs_kostensoort_key
AND m.mld_opdr_meerwerk = 1
AND m.mld_statusopdr_key = c.mld_statusopdr_key
AND m.mld_opdr_key = f.mld_opdr_key(+)
ORDER BY b.prs_leverancier_nr,
p.scode,
m.mld_opdr_ordernr,
m.mld_opdr_bedrijfopdr_volgnr;
--FACT_MND
--FDATFACT
CREATE OR REPLACE VIEW twyn_v_factuur_datum
AS
SELECT pr.ins_discipline_key,
pr.bgt_project_key,
dp.bgt_disc_params_opdrachtgever
opdrachtgever,
dp.bgt_disc_params_code
project_code,
dp.bgt_disc_params_code || ' ' || id.ins_discipline_omschrijving
project,
pr.bgt_project_omschrijving
subproject,
ks.prs_kostensoort_altcode
rubriekcode,
b.prs_leverancier_nr,
f.fin_factuur_datum,
COALESCE(f.fin_factuur_advies, f.fin_factuur_datum) fin_factuur_advies,
o.mld_opdr_ordernr,
f.fin_factuur_nr,
f.fin_factuur_opmerking,
f.fin_factuur_totaal fin_factuur_exc,
f.fin_factuur_totaal_btw fin_factuur_btw,
f.fin_factuur_totaal + f.fin_factuur_totaal_btw fin_factuur_inc,
TO_CHAR(f.fin_factuur_datum, 'dd-mm-yyyy') fin_factuur_datum_p,
TO_CHAR(f.fin_factuur_datum, 'yyyy') fin_factuur_datum_jaar,
TO_CHAR(f.fin_factuur_datum, 'mm') fin_factuur_datum_maand,
TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'dd-mm-yyyy') fin_factuur_advies_p,
TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'yyyy') fin_factuur_advies_jaar,
TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'mm') fin_factuur_advies_maand
FROM prs_bedrijf b,
fin_factuur f,
mld_opdr o,
prs_kostensoort ks,
prs_kostensoortgrp kg,
bgt_kostenrubriek kr,
bgt_project pr,
ins_tab_discipline id,
bgt_disc_params dp
WHERE f.mld_opdr_key(+) = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND ks.prs_kostensoort_key = o.prs_kostensoort_key(+)
AND kg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND pr.bgt_project_key = kr.bgt_project_key
AND id.ins_discipline_key = pr.ins_discipline_key
AND id.ins_discipline_key = dp.bgt_ins_discipline_key;
-- hulp views --
CREATE OR REPLACE VIEW twyn_v_bgt_budget
AS
SELECT pr.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
dp.bgt_disc_params_opdrachtgever
opdrachtgever,
dp.bgt_disc_params_code,
dp.bgt_disc_params_code || ' ' || id.ins_discipline_omschrijving
project,
bgt_project_omschrijving
subproject,
kr.bgt_kostenrubriek_oms
rubriek,
kr.bgt_kostenrubriek_code
rcode,
DECODE (kr.bgt_kostenrubriek_code, 'R', 'A', 'B')
|| kr.bgt_kostenrubriek_code
sortcode,
SUM (COALESCE (bud.bgt_budget_bedrag, 0))
budget_actueel,
SUM (COALESCE (mut.bedrag_naar, 0) + COALESCE (mut.bedrag_van, 0))
budget_mutatie,
SUM (COALESCE (bud.bgt_budget_btwbedrag, 0))
budget_btwactueel,
SUM (
COALESCE (mut.btwbedrag_naar, 0)
+ COALESCE (mut.btwbedrag_van, 0))
budget_btwmutatie
FROM bgt_kostenrubriek kr,
bgt_budget bud,
bgt_project pr,
ins_tab_discipline id,
bgt_disc_params dp,
twyn_v_bgt_budgetmutatie mut
WHERE bud.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
AND pr.bgt_project_key = kr.bgt_project_key
AND id.ins_discipline_key = pr.ins_discipline_key
AND id.ins_discipline_key = dp.bgt_ins_discipline_key
AND mut.bgt_budget_key(+) = bud.bgt_budget_key
GROUP BY pr.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
dp.bgt_disc_params_opdrachtgever,
dp.bgt_disc_params_code,
dp.bgt_disc_params_code || ' ' || id.ins_discipline_omschrijving,
pr.bgt_project_omschrijving,
kr.bgt_kostenrubriek_oms,
kr.bgt_kostenrubriek_code;
CREATE OR REPLACE view twyn_v_bgt_budgetgegevens
AS
SELECT b.bgt_budget_key,
b.ins_discipline_key,
b.bgt_project_key,
b.bgt_kostenrubriek_key,
b.prs_kostensoort_key,
dp.bgt_disc_params_opdrachtgever
opdrachtgever,
dp.bgt_disc_params_code
project_code,
dp.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
project_oms,
p.bgt_project_omschrijving
subproject_oms,
r.bgt_kostenrubriek_oms
rubriek_oms,
r.bgt_kostenrubriek_code
rubriek_code,
s.prs_kostensoort_altcode
kostensoort_code,
b.bgt_budget_bedrag,
b.bgt_budget_btwbedrag
FROM bgt_budget b,
bgt_project p,
bgt_kostenrubriek r,
prs_kostensoort s,
bgt_disc_params dp,
ins_tab_discipline d
WHERE b.ins_discipline_key = d.ins_discipline_key
AND b.ins_discipline_key = dp.bgt_ins_discipline_key
AND b.bgt_project_key = p.bgt_project_key
AND b.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
AND b.prs_kostensoort_key = s.prs_kostensoort_key(+);
CREATE OR REPLACE VIEW twyn_v_bgt_budgetmutatie
SELECT mutatie.bgt_budget_key,
SUM (mutatie.bedrag_van) bedrag_van,
SUM (mutatie.bedrag_naar) bedrag_naar,
SUM (mutatie.btwbedrag_van) btwbedrag_van,
SUM (mutatie.btwbedrag_naar) btwbedrag_naar
FROM ( SELECT m1.bgt_budget_key_van
bgt_budget_key,
SUM (COALESCE (m1.bgt_budget_bedrag_van, 0))
bedrag_van,
SUM (COALESCE (m1.bgt_budget_btwbedrag_van, 0))
btwbedrag_van,
0
bedrag_naar,
0
btwbedrag_naar
FROM bgt_budgetmutatie m1
GROUP BY m1.bgt_budget_key_van
UNION
SELECT m2.bgt_budget_key_naar
bgt_budget_key,
0
bedrag_van,
0
btwbedrag_van,
SUM (COALESCE (m2.bgt_budget_bedrag_naar, 0))
bedrag_naar,
SUM (COALESCE (m2.bgt_budget_btwbedrag_naar, 0))
btwbedrag_naar
FROM bgt_budgetmutatie m2
GROUP BY m2.bgt_budget_key_naar) mutatie
GROUP BY mutatie.bgt_budget_key;
CREATE OR REPLACE VIEW twyn_v_bgt_factuur
AS
SELECT id.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
ksg.prs_kostensoortgrp_key,
ks.prs_kostensoort_key,
SUM (COALESCE (f.fin_factuur_totaal, 0)) gefactureerd,
SUM (COALESCE (f.fin_factuur_totaal_btw, 0)) gefactureerdbtw
FROM fin_factuur f,
mld_opdr o,
prs_kostensoort ks,
prs_kostensoortgrp ksg,
bgt_kostenrubriek kr,
bgt_project pr,
ins_tab_discipline id
WHERE f.mld_opdr_key(+) = o.mld_opdr_key
AND ks.prs_kostensoort_key = o.prs_kostensoort_key(+)
AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND pr.bgt_project_key = kr.bgt_project_key
AND id.ins_discipline_key = pr.ins_discipline_key
GROUP BY id.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
ksg.prs_kostensoortgrp_key,
ks.prs_kostensoort_key;
CREATE OR REPLACE VIEW twyn_v_bgt_opdracht
AS
SELECT id.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
ksg.prs_kostensoortgrp_key,
ks.prs_kostensoort_key,
SUM (COALESCE (o.mld_opdr_kosten, 0)) gecontracteerd,
SUM (COALESCE (o.mld_opdr_kosten_btw, 0)) gecontracteerdbtw
FROM mld_opdr o,
prs_kostensoort ks,
prs_kostensoortgrp ksg,
bgt_kostenrubriek kr,
bgt_project pr,
ins_tab_discipline id
WHERE ks.prs_kostensoort_key = o.prs_kostensoort_key(+)
AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND pr.bgt_project_key = kr.bgt_project_key
AND id.ins_discipline_key = pr.ins_discipline_key
GROUP BY id.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
ksg.prs_kostensoortgrp_key,
ks.prs_kostensoort_key;
CREATE OR REPLACE VIEW twyn_v_bgt_project
AS
SELECT pr.ins_discipline_key,
pr.bgt_project_key,
kr.bgt_kostenrubriek_key,
kg.prs_kostensoortgrp_key,
ks.prs_kostensoort_key,
dp.bgt_disc_params_opdrachtgever
opdrachtgever,
dp.bgt_disc_params_code
projectcode,
dp.bgt_disc_params_code || ' ' || id.ins_discipline_omschrijving
project,
pr.bgt_project_omschrijving
subproject,
kr.bgt_kostenrubriek_code
rcode,
kr.bgt_kostenrubriek_oms
rubriek,
kg.prs_kostensoortgrp_altcode
gcode,
kg.prs_kostensoortgrp_oms
kostengroep,
ks.prs_kostensoort_oms
kostensoort,
ks.prs_kostensoort_altcode
scode
FROM ins_tab_discipline id,
bgt_disc_params dp,
bgt_project pr,
bgt_kostenrubriek kr,
prs_kostensoortgrp kg,
prs_kostensoort ks
WHERE id.ins_discipline_key = dp.bgt_ins_discipline_key
AND id.ins_discipline_key = pr.ins_discipline_key
AND pr.bgt_project_key = kr.bgt_project_key(+)
AND kr.bgt_kostenrubriek_key = kg.bgt_kostenrubriek_key(+)
AND kg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key(+);
CREATE OR REPLACE VIEW twyn_v_bgt_rubriekmutatie
AS
SELECT bud_org.ins_discipline_key,
bud_org.bgt_project_key,
bud_org.bgt_kostenrubriek_key rubriek_key_org,
bud_org.rubriek_code rcode_org,
bud_des.bgt_kostenrubriek_key rubriek_key_des,
bud_des.rubriek_code rcode_des,
mut.bgt_budget_bedrag_van,
mut.bgt_budget_bedrag_naar,
mut.bgt_budgetmutatie_bedrag,
mut.bgt_budgetmutatie_omschrijving,
mut.bgt_budgetmutatie_datum
FROM twyn_v_bgt_budgetgegevens bud_org,
twyn_v_bgt_budgetgegevens bud_des,
(SELECT bgt_budgetmutatie_key,
bgt_budget_key_van bgt_budget_key_org,
bgt_budget_key_naar bgt_budget_key_des,
bgt_budget_bedrag_van,
bgt_budget_btwbedrag_van,
0 bgt_budget_bedrag_naar,
0 bgt_budget_btwbedrag_naar,
bgt_budget_bedrag_van bgt_budgetmutatie_bedrag,
bgt_budget_btwbedrag_van bgt_budgetmutatie_btwbedrag,
bgt_budgetmutatie_omschrijving,
bgt_budgetmutatie_datum
FROM bgt_budgetmutatie m1
UNION
SELECT bgt_budgetmutatie_key,
bgt_budget_key_naar bgt_budget_key_org,
bgt_budget_key_van bgt_budget_key_des,
0 bgt_budget_bedrag_van,
0 bgt_budget_btwbedrag_van,
bgt_budget_bedrag_naar,
bgt_budget_btwbedrag_naar,
bgt_budget_bedrag_naar bgt_budgetmutatie_bedrag,
bgt_budget_btwbedrag_naar bgt_budgetmutatie_btwbedrag,
bgt_budgetmutatie_omschrijving,
bgt_budgetmutatie_datum
FROM bgt_budgetmutatie m2) mut
WHERE mut.bgt_budget_key_org = bud_org.bgt_budget_key
AND mut.bgt_budget_key_des = bud_des.bgt_budget_key
AND bud_org.bgt_project_key = bud_des.bgt_project_key;
------ 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