4477 lines
191 KiB
SQL
4477 lines
191 KiB
SQL
--
|
||
-- $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_factuur_nr VARCHAR2 (256); --107 FANUMMER :factuurnummer
|
||
s_grootboek_nr VARCHAR2 (256); --121 GRB :grootboek nummer
|
||
s_grootboek_oms VARCHAR2 (256); --124 GRB_OMSCHR :grootboek omschrijving
|
||
s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline)
|
||
s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project)
|
||
s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek)
|
||
s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep)
|
||
s_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer (soort)
|
||
v_count_contract NUMBER(3);
|
||
BEGIN
|
||
fac.imp_getfield (p_line, c_delim, v_contract_nr);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_volgnr);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_meerminder);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_code);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_omschr);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_datum);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_bedrag_excl);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_074);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_075);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_076);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_077);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_bedrag_btw);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_079);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_080);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_bedrag_incl);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_082);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_083);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_084);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_085);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_086);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_kenmerk);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_088);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_089);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_090);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_091);
|
||
fac.imp_getfield (p_line, c_delim, v_contract_status);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_093);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_094);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_095);
|
||
fac.imp_getfield (p_line, c_delim, v_nn_096);
|
||
fac.imp_getfield (p_line, c_delim, v_is_contract);
|
||
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 107, s_factuur_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 121, s_grootboek_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 124, s_grootboek_oms);
|
||
|
||
p_contract_nr := fac.safe_To_Integer(v_contract_nr);
|
||
p_contract_volgnr := fac.safe_To_Integer(v_contract_volgnr);
|
||
IF ( fac.safe_To_Integer(v_is_contract) = 1
|
||
AND p_contract_nr > 0
|
||
AND fac.safe_To_Integer(s_grootboek_nr) IS NULL
|
||
AND fac.safe_To_Integer(s_factuur_nr) = 0
|
||
) THEN
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr);
|
||
|
||
SELECT COUNT(*)
|
||
INTO v_count_contract
|
||
FROM twyn_imp_contract
|
||
WHERE bgt_contract_nr = p_contract_nr
|
||
AND bgt_contract_volgnr = p_contract_volgnr;
|
||
|
||
IF (v_count_contract = 0) THEN
|
||
INSERT INTO twyn_imp_contract
|
||
( bgt_contract_nr
|
||
, bgt_contract_volgnr
|
||
, bgt_contract_meerminder
|
||
, bgt_bedrijf_code
|
||
, bgt_contract_omschr
|
||
, bgt_contract_datum
|
||
, bgt_contract_bedrag_excl
|
||
, bgt_contract_bedrag_btw
|
||
, bgt_contract_bedrag_incl
|
||
, bgt_contract_status
|
||
, bgt_contract_referentie
|
||
, bgt_discipline_code
|
||
, bgt_project_code
|
||
, bgt_kostenrubriek_code
|
||
, prs_kostensoortgrp_code
|
||
, prs_kostensoort_code
|
||
, prs_kostenplaats_nr
|
||
, prs_kostenplaats_oms
|
||
)
|
||
VALUES
|
||
( p_contract_nr
|
||
, p_contract_volgnr
|
||
, fac.safe_To_Integer(v_contract_meerminder)
|
||
, v_bedrijf_code
|
||
, v_contract_omschr
|
||
, fac.safe_to_date(v_contract_datum, 'dd-mm-yyyy')
|
||
, fac.safe_To_Number( REPLACE(v_contract_bedrag_excl, ',', '.') )
|
||
, fac.safe_To_Number( REPLACE(v_contract_bedrag_btw, ',', '.') )
|
||
, fac.safe_To_Number( REPLACE(v_contract_bedrag_incl, ',', '.') )
|
||
, fac.safe_To_Number(v_contract_status)
|
||
, v_contract_kenmerk
|
||
, s_project_nummer
|
||
, s_subproject_code
|
||
, s_rubriek_nr
|
||
, s_groep_nr
|
||
, s_onderdeel_nr
|
||
, fac.safe_To_Integer(s_grootboek_nr)
|
||
, s_grootboek_oms
|
||
);
|
||
END IF;
|
||
END IF;
|
||
END; --imp_contract
|
||
|
||
PROCEDURE imp_contractant( p_line IN OUT VARCHAR2
|
||
, p_bedrijf_code OUT VARCHAR2)
|
||
IS
|
||
v_bedrijf_code VARCHAR2 (256); --098 CNNUMMER
|
||
v_bedrijf_naam VARCHAR2 (256); --099 CNNAAM
|
||
v_bedrijf_adres VARCHAR2 (256); --100 CNADRES
|
||
v_bedrijf_postcode VARCHAR2 (256); --101 CNPOSTCODE
|
||
v_bedrijf_plaats VARCHAR2 (256); --102 CNPLAATS
|
||
v_bedrijf_contactpers VARCHAR2 (256); --103 CNCTCTPERS
|
||
v_bedrijf_telnr VARCHAR2 (256); --104 CNTELNR
|
||
v_bedrijf_faxnr VARCHAR2 (256); --105 CNFAXNR
|
||
v_bedrijf_debiteurnr VARCHAR2 (256); --106 CNDEBNR
|
||
v_count_bedrijf NUMBER (3);
|
||
BEGIN
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_code);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_naam);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_adres);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_postcode);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_plaats);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_contactpers);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_telnr);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_faxnr);
|
||
fac.imp_getfield (p_line, c_delim, v_bedrijf_debiteurnr);
|
||
--
|
||
p_bedrijf_code := NULL;
|
||
IF (v_bedrijf_code IS NOT NULL) THEN
|
||
SELECT COUNT(*)
|
||
INTO v_count_bedrijf
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_bedrijf_overig1 = v_bedrijf_code;
|
||
|
||
IF (v_count_bedrijf = 0) THEN
|
||
INSERT INTO fac_imp_ext_bedrijf
|
||
( prs_bedrijf_naam
|
||
, prs_bedrijf_bezoek_adres
|
||
, prs_bedrijf_bezoek_postcode
|
||
, prs_bedrijf_bezoek_plaats
|
||
, prs_bedrijf_telefoon
|
||
, prs_bedrijf_fax
|
||
, prs_bedrijf_contact_persoon
|
||
, prs_bedrijf_overig1
|
||
)
|
||
VALUES
|
||
( v_bedrijf_naam
|
||
, v_bedrijf_adres
|
||
, v_bedrijf_postcode
|
||
, v_bedrijf_plaats
|
||
, v_bedrijf_telnr
|
||
, v_bedrijf_faxnr
|
||
, v_bedrijf_contactpers
|
||
, v_bedrijf_code
|
||
);
|
||
ELSE
|
||
UPDATE (SELECT prs_bedrijf_bezoek_adres
|
||
, prs_bedrijf_bezoek_postcode
|
||
, prs_bedrijf_bezoek_plaats
|
||
, prs_bedrijf_telefoon
|
||
, prs_bedrijf_fax
|
||
, prs_bedrijf_contact_persoon
|
||
, prs_bedrijf_overig1
|
||
FROM fac_imp_ext_bedrijf
|
||
WHERE prs_bedrijf_overig1 = v_bedrijf_code
|
||
)
|
||
SET prs_bedrijf_bezoek_adres = COALESCE(v_bedrijf_adres, prs_bedrijf_bezoek_adres)
|
||
, prs_bedrijf_bezoek_postcode = COALESCE(v_bedrijf_postcode, prs_bedrijf_bezoek_postcode)
|
||
, prs_bedrijf_bezoek_plaats = COALESCE(v_bedrijf_plaats, prs_bedrijf_bezoek_plaats)
|
||
, prs_bedrijf_telefoon = COALESCE(v_bedrijf_telnr, prs_bedrijf_telefoon)
|
||
, prs_bedrijf_fax = COALESCE(v_bedrijf_faxnr, prs_bedrijf_fax)
|
||
, prs_bedrijf_contact_persoon = COALESCE(v_bedrijf_contactpers, prs_bedrijf_contact_persoon);
|
||
END IF;
|
||
p_bedrijf_code := v_bedrijf_code;
|
||
END IF;
|
||
END; --imp_contractant
|
||
|
||
PROCEDURE imp_factuur( p_line IN OUT VARCHAR2
|
||
, p_factuur_nr OUT NUMBER
|
||
, p_factuur_volgnr OUT NUMBER)
|
||
IS
|
||
v_factuur_nr VARCHAR2 (256); --107 FANUMMER
|
||
v_factuur_volgnr VARCHAR2 (256); --108 FASUBNUMME
|
||
v_factuur_refnr VARCHAR2 (256); --109 FACNTTNTNR
|
||
v_factuur_omschr VARCHAR2 (256); --110 FAOMSCHR
|
||
v_factuur_datum VARCHAR2 (256); --111 FADATUM
|
||
v_nn_112 VARCHAR2 (256); --112 FACOBEDRAG
|
||
v_nn_113 VARCHAR2 (256); --113 FACOEBEDRA
|
||
v_nn_114 VARCHAR2 (256); --114 FACOBEDRBT
|
||
v_factuur_bedrag_excl VARCHAR2 (256); --115 FABEDRAG
|
||
v_factuur_bedrag_btw VARCHAR2 (256); --116 FABEDRAGBT
|
||
v_nn_117 VARCHAR2 (256); --117 FABTWTARIE
|
||
v_factuur_bedrag_incl VARCHAR2 (256); --118 FAEBEDRAG
|
||
v_factuur_adviesdatum VARCHAR2 (256); --119 FAADVDAT
|
||
v_nn_120 VARCHAR2 (256); --120 FASTATUS
|
||
v_factuur_grootboek VARCHAR2 (256); --121 GRB
|
||
v_nn_122 VARCHAR2 (256); --122 GRB2
|
||
v_nn_123 VARCHAR2 (256); --123 GRBNummer
|
||
v_nn_124 VARCHAR2 (256); --124 GRB_OMSCHR
|
||
v_nn_125 VARCHAR2 (256); --125 FABTCODE
|
||
v_nn_126 VARCHAR2 (256); --126 FABTBTW
|
||
v_factuur_status VARCHAR2 (256); --127 FSSTATUS
|
||
v_nn_128 VARCHAR2 (256); --128 INNUMMER
|
||
v_nn_129 VARCHAR2 (256); --129 INNAAM
|
||
v_nn_130 VARCHAR2 (256); --130 INPERIODE
|
||
v_nn_131 VARCHAR2 (256); --131 INCIJFER
|
||
v_nn_132 VARCHAR2 (256); --132 RecordType
|
||
s_project_nummer VARCHAR2 (256); --003 PRNUMMER :projectnummer (discipline)
|
||
s_subproject_code VARCHAR2 (256); --014 SPNUMMER :code subproject (project)
|
||
s_rubriek_nr VARCHAR2 (256); --034 RUNUMMER :rubriek volgnummer (rubriek)
|
||
s_groep_nr VARCHAR2 (256); --036 GRNUMMER :groep volgnummer (groep)
|
||
s_onderdeel_nr VARCHAR2 (256); --038 ONNUMMER :onderdeel nummer (soort)
|
||
s_contract_nr VARCHAR2 (256); --067 CONUMMER
|
||
s_contract_volgnr VARCHAR2 (256); --068 COSUBNUMME
|
||
s_contract_kenmerk VARCHAR2 (256); --087 COKENMERK
|
||
BEGIN
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_volgnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_refnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_omschr);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_datum);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_112);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_113);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_114);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_excl);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_btw);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_117);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_bedrag_incl);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_adviesdatum);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_120);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_grootboek);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_122);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_123);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_124);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_125);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_126);
|
||
fac.imp_getfield (v_newline, c_delim, v_factuur_status);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_128);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_129);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_130);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_131);
|
||
fac.imp_getfield (v_newline, c_delim, v_nn_132);
|
||
|
||
p_factuur_nr := fac.safe_To_Integer(v_factuur_nr);
|
||
p_factuur_volgnr := fac.safe_To_Integer(v_factuur_volgnr);
|
||
IF (isDate(v_factuur_datum) = 1 AND p_factuur_nr > 0) THEN
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 3, s_project_nummer);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 14, s_subproject_code);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 34, s_rubriek_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 36, s_groep_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 38, s_onderdeel_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 67, s_contract_nr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 68, s_contract_volgnr);
|
||
fac.imp_getfield_nr(v_searchline, c_delim, 87, s_contract_kenmerk);
|
||
|
||
INSERT INTO twyn_imp_factuur
|
||
( bgt_factuur_nr
|
||
, bgt_factuur_volgnr
|
||
, bgt_factuur_refnr
|
||
, bgt_factuur_omschr
|
||
, bgt_factuur_datum
|
||
, bgt_factuur_bedrag_excl
|
||
, bgt_factuur_bedrag_btw
|
||
, bgt_factuur_bedrag_incl
|
||
, bgt_factuur_adviesdatum
|
||
, bgt_factuur_grootboek
|
||
, bgt_factuur_status
|
||
, bgt_contract_nr
|
||
, bgt_contract_volgnr
|
||
, bgt_contract_referentie
|
||
, bgt_discipline_code
|
||
, bgt_project_code
|
||
, bgt_kostenrubriek_code
|
||
, prs_kostensoortgrp_code
|
||
, prs_kostensoort_code
|
||
)
|
||
VALUES
|
||
( p_factuur_nr
|
||
, p_factuur_volgnr
|
||
, 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))
|
||
)
|
||
, bedr_mut_btw = (SELECT b.bedr_mut_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))
|
||
AND (b.bgt_nr = i.bgt_nr)
|
||
)
|
||
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.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
|
||
, min(t.bedr_mut_btw) bedrag_btw
|
||
FROM twyn_imp_budget t
|
||
, (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget
|
||
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_btw_naar bgt_budgetmutatie.bgt_budget_btwbedrag_naar%TYPE;
|
||
l_budget_van bgt_budgetmutatie.bgt_budget_key_van%TYPE;
|
||
l_budget_naar bgt_budgetmutatie.bgt_budget_key_naar%TYPE;
|
||
l_bedrag_min bgt_budgetmutatie.bgt_budget_bedrag_van%TYPE;
|
||
l_bedrag_max bgt_budgetmutatie.bgt_budget_bedrag_van%TYPE;
|
||
l_btw_van bgt_budgetmutatie.bgt_budget_btwbedrag_van%TYPE;
|
||
l_budgetmutatie_key bgt_budgetmutatie.bgt_budgetmutatie_key%TYPE;
|
||
l_budget_gegevens VARCHAR2(200);
|
||
l_count NUMBER(3);
|
||
l_aantal NUMBER(3);
|
||
|
||
PROCEDURE add_budget( p_import_key IN NUMBER
|
||
, p_mode IN VARCHAR2
|
||
, 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 ' || p_mode ||' '
|
||
||'[('|| NVL(TO_CHAR(a_kosten_keys.bgt_discipline_key), 'x') ||'='|| NVL(p_rec.bgt_discipline,'-') ||')'
|
||
||'.('|| NVL(TO_CHAR(a_kosten_keys.bgt_project_key), 'x') ||'='|| NVL(p_rec.bgt_project,'-') ||')'
|
||
||'.('|| NVL(TO_CHAR(a_kosten_keys.bgt_kostenrubriek_key), 'x') ||'='|| NVL(p_rec.bgt_kostenrubriek,'-') ||')'
|
||
||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoortgrp_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoortgrp,'-') ||')'
|
||
||'.('|| NVL(TO_CHAR(a_kosten_keys.prs_kostensoort_key), 'x') ||'='|| NVL(p_rec.bgt_kostensoort,'-') ||')'
|
||
||']';
|
||
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 OR bgt_kostenrubriek_key IS NULL)
|
||
AND (prs_kostensoortgrp_key = a_kosten_keys.prs_kostensoortgrp_key OR prs_kostensoortgrp_key IS NULL)
|
||
AND (prs_kostensoort_key = a_kosten_keys.prs_kostensoort_key OR prs_kostensoort_key IS NULL);
|
||
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
|
||
add_budget(p_import_key, 'budget', 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
|
||
IF (l_rec.bgt_budget_key IS NULL) THEN
|
||
add_budget(p_import_key, 'budgetpost', 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 '
|
||
|| '[('||l_rec.bgt_nr||';'||l_rec.key||')'
|
||
|| '.'|| NVL(l_rec.bgt_kostenrubriek, 'x')
|
||
|| '.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
|
||
|| '.'|| NVL(l_rec.bgt_kostensoort, 'x')
|
||
|| ']';
|
||
BEGIN
|
||
SELECT count(*)
|
||
INTO l_aantal
|
||
FROM twyn_imp_budget
|
||
WHERE bgt_nr = l_rec.bgt_nr;
|
||
--
|
||
IF (l_aantal > 1) THEN
|
||
-- Er zijn zowel van- als naar- budget regels.
|
||
SELECT x.bgt_budget_key
|
||
, min(x.bedrag)
|
||
, max(x.bedrag)
|
||
INTO l_budget_key
|
||
, l_bedrag_min
|
||
, l_bedrag_max
|
||
FROM (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget
|
||
UNION
|
||
SELECT bgt_nr, key, bgt_budget_key, bedr_mut_excl bedrag FROM twyn_imp_budget
|
||
UNION
|
||
SELECT bgt_nr, key, bgt_budget_key, bedr_res_mut_excl bedrag FROM twyn_imp_budget
|
||
) x
|
||
WHERE x.key <> l_rec.key
|
||
AND x.bgt_nr = l_rec.bgt_nr
|
||
AND x.bgt_nr IS NOT NULL
|
||
GROUP BY x.bgt_budget_key;
|
||
ELSE
|
||
-- Er is alleen een van- of naar- budget regel.
|
||
SELECT x.bgt_budget_key
|
||
, min(x.bedrag)
|
||
, max(x.bedrag)
|
||
INTO l_budget_key
|
||
, l_bedrag_min
|
||
, l_bedrag_max
|
||
FROM (SELECT bgt_nr, key, bgt_budget_key, bedr_mmw_excl bedrag FROM twyn_imp_budget
|
||
UNION
|
||
SELECT bgt_nr, key, bgt_budget_key, bedr_mut_excl bedrag FROM twyn_imp_budget
|
||
UNION
|
||
SELECT bgt_nr, key, bgt_budget_key, bedr_res_mut_excl bedrag FROM twyn_imp_budget
|
||
) x
|
||
WHERE x.key = l_rec.key
|
||
AND x.bgt_nr IS NOT NULL
|
||
GROUP BY x.bgt_budget_key;
|
||
END IF;
|
||
--
|
||
IF (l_bedrag_min < 0) THEN
|
||
l_btw_van := 0;
|
||
l_bedrag_van := l_bedrag_min;
|
||
l_budget_van := l_budget_key;
|
||
l_btw_naar := l_rec.bedrag_btw;
|
||
l_bedrag_naar := l_rec.bedrag_max;
|
||
l_budget_naar := l_rec.bgt_budget_key;
|
||
ELSE
|
||
l_btw_van := 0;
|
||
l_bedrag_van := l_rec.bedrag_min;
|
||
l_budget_van := l_rec.bgt_budget_key;
|
||
l_btw_naar := l_rec.bedrag_btw;
|
||
l_bedrag_naar := l_bedrag_max;
|
||
l_budget_naar := l_budget_key;
|
||
END IF;
|
||
--
|
||
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_btwbedrag_van
|
||
, bgt_budget_key_naar
|
||
, bgt_budget_bedrag_naar
|
||
, bgt_budget_btwbedrag_naar
|
||
)
|
||
VALUES
|
||
( l_rec.bgt_datum
|
||
, l_rec.bgt_nr ||' - '|| l_rec.bgt_oms
|
||
, g_perslid_key
|
||
, l_budget_van
|
||
, l_bedrag_van
|
||
, l_btw_van
|
||
, l_budget_naar
|
||
, l_bedrag_naar
|
||
, l_btw_naar
|
||
)
|
||
RETURNING bgt_budgetmutatie_key INTO l_budgetmutatie_key;
|
||
--
|
||
l_count := l_count + 1;
|
||
END;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
l_budget_gegevens:= 'Geen budgetmutatie voor '
|
||
|| '[('||l_rec.bgt_nr||';'||l_rec.key||')'
|
||
|| '.'|| NVL(l_rec.bgt_kostenrubriek, 'x')
|
||
|| '.'|| NVL(l_rec.bgt_kostensoortgrp, 'x')
|
||
|| '.'|| NVL(l_rec.bgt_kostensoort, 'x')
|
||
|| ']';
|
||
fac.imp_writelog ( p_import_key, 'I', l_budget_gegevens, NULL);
|
||
END;
|
||
END LOOP;
|
||
fac.imp_writelog ( p_import_key, 'S', 'Budgetmutaties: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
|
||
|
||
END;
|
||
|
||
PROCEDURE update_opdracht(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_opdracht
|
||
IS
|
||
SELECT bgt_contract_nr
|
||
, bgt_contract_volgnr
|
||
, bgt_contract_omschr
|
||
, bgt_contract_datum
|
||
, bgt_contract_bedrag_excl
|
||
, bgt_contract_bedrag_btw
|
||
, bgt_contract_meerminder
|
||
, bgt_contract_status
|
||
, bgt_contract_referentie
|
||
, bgt_bedrijf_code
|
||
, bgt_discipline_code
|
||
, bgt_project_code
|
||
, bgt_kostenrubriek_code
|
||
, prs_kostensoortgrp_code
|
||
, prs_kostensoort_code
|
||
, prs_kostenplaats_nr
|
||
, prs_kostenplaats_oms
|
||
FROM twyn_imp_contract;
|
||
|
||
a_kosten_keys KOSTEN_KEYS;
|
||
a_bedrijf_key prs_bedrijf.prs_bedrijf_key%TYPE;
|
||
a_kostenplaats_key prs_kostenplaats.prs_kostenplaats_key%TYPE;
|
||
a_kostenplaatsgrp_key prs_kostenplaatsgrp.prs_kostenplaatsgrp_key%TYPE;
|
||
l_count NUMBER (3) := 0;
|
||
BEGIN
|
||
g_errormsg := NULL;
|
||
FOR l_rec IN c_opdracht
|
||
LOOP
|
||
a_kosten_keys := get_kosten_keys( '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;
|
||
--
|
||
IF (l_rec.prs_kostenplaats_nr IS NOT NULL) THEN
|
||
BEGIN
|
||
SELECT prs_kostenplaats_key
|
||
INTO a_kostenplaats_key
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaats_upper = UPPER(TO_CHAR(l_rec.prs_kostenplaats_nr));
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
INSERT INTO prs_kostenplaats
|
||
( prs_kostenplaats_nr
|
||
, prs_kostenplaats_omschrijving
|
||
, prs_kostenplaats_upper
|
||
, prs_kostenplaats_module
|
||
, prs_kostenplaatsgrp_key
|
||
)
|
||
VALUES
|
||
( TO_CHAR(l_rec.prs_kostenplaats_nr)
|
||
, l_rec.prs_kostenplaats_oms
|
||
, UPPER(TO_CHAR(l_rec.prs_kostenplaats_nr))
|
||
, 'PRJ'
|
||
, a_kostenplaatsgrp_key
|
||
)
|
||
RETURNING prs_kostenplaats_key INTO a_kostenplaats_key;
|
||
END;
|
||
ELSE
|
||
a_kostenplaats_key := NULL;
|
||
END IF;
|
||
--
|
||
-- conversie contractstatus naar mld_statusopdr_key:
|
||
-- 10 Raming 10 Ter goedkeuring
|
||
-- 20 Te besluiten 3 Ter fiattering
|
||
-- 30 Accoord 8 Geaccepteerd
|
||
-- 40 Opgedragen 5 Toegekend
|
||
-- 50 vervallen 1 Afgewezen
|
||
-- overige codes: 2 Niet akkoord
|
||
INSERT INTO mld_opdr
|
||
( mld_opdr_id
|
||
, mld_opdr_ordernr
|
||
, mld_opdr_bedrijfopdr_volgnr
|
||
, mld_uitvoerende_keys
|
||
, mld_opdr_omschrijving
|
||
, mld_opdr_datumbegin
|
||
, mld_opdr_kosten
|
||
, mld_opdr_kosten_btw
|
||
, prs_kostensoort_key
|
||
, prs_perslid_key
|
||
, mld_typeopdr_key
|
||
, mld_opdr_module
|
||
, mld_statusopdr_key
|
||
, prs_kostenplaats_key
|
||
, mld_opdr_meerwerk
|
||
)
|
||
VALUES
|
||
( l_rec.bgt_contract_referentie
|
||
, l_rec.bgt_contract_nr
|
||
, l_rec.bgt_contract_volgnr
|
||
, a_bedrijf_key
|
||
, l_rec.bgt_contract_omschr
|
||
, l_rec.bgt_contract_datum
|
||
, l_rec.bgt_contract_bedrag_excl
|
||
, l_rec.bgt_contract_bedrag_btw
|
||
, a_kosten_keys.prs_kostensoort_key
|
||
, g_perslid_key
|
||
, 5
|
||
, 'MLD'
|
||
, DECODE(l_rec.bgt_contract_status, 10,10, 20,3, 30,8, 40,5, 50,1, 2)
|
||
, a_kostenplaats_key
|
||
, CASE WHEN l_rec.bgt_contract_meerminder = 0 THEN 0 ELSE 1 END
|
||
);
|
||
fac.imp_writelog ( p_import_key
|
||
, 'I'
|
||
, 'Contract [' || l_rec.bgt_contract_nr ||'/'|| l_rec.bgt_contract_volgnr || '] toegevoegd'
|
||
, NULL
|
||
);
|
||
l_count := l_count + 1;
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN
|
||
fac.imp_writelog ( p_import_key, 'W', 'Onbekend bedrijf [' || l_rec.bgt_bedrijf_code || ']', NULL);
|
||
END;
|
||
END LOOP;
|
||
fac.imp_writelog ( p_import_key, 'S', 'Contracten: aantal regels toegevoegd: ' || TO_CHAR(l_count), NULL);
|
||
COMMIT;
|
||
END; --update_opdracht
|
||
|
||
PROCEDURE update_factuur(p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_factuur
|
||
IS
|
||
SELECT bgt_factuur_nr
|
||
, bgt_factuur_volgnr
|
||
, bgt_factuur_refnr
|
||
, bgt_factuur_omschr
|
||
, bgt_factuur_datum
|
||
, bgt_factuur_bedrag_excl
|
||
, bgt_factuur_bedrag_btw
|
||
, bgt_factuur_bedrag_incl
|
||
, bgt_factuur_adviesdatum
|
||
, bgt_factuur_grootboek
|
||
, bgt_factuur_status
|
||
, bgt_contract_nr
|
||
, bgt_contract_volgnr
|
||
, bgt_discipline_code
|
||
, bgt_project_code
|
||
, bgt_kostenrubriek_code
|
||
, prs_kostensoortgrp_code
|
||
, prs_kostensoort_code
|
||
FROM twyn_imp_factuur;
|
||
|
||
l_opdr_key mld_opdr.mld_opdr_key%TYPE;
|
||
l_factuur_key fin_factuur.fin_factuur_key%TYPE;
|
||
l_btw_key fin_btwtabelwaarde.fin_btwtabelwaarde_key%TYPE;
|
||
l_refnr fin_factuur.fin_factuur_nr%TYPE;
|
||
l_kosten_keys KOSTEN_KEYS;
|
||
l_count_f NUMBER (10) := 0;
|
||
BEGIN
|
||
g_errormsg := NULL;
|
||
FOR l_rec in c_factuur
|
||
LOOP
|
||
BEGIN
|
||
l_kosten_keys := get_kosten_keys( 'factuur'
|
||
, l_rec.bgt_discipline_code
|
||
, l_rec.bgt_project_code
|
||
, l_rec.bgt_kostenrubriek_code
|
||
, l_rec.prs_kostensoortgrp_code
|
||
, l_rec.prs_kostensoort_code);
|
||
l_opdr_key := get_opdr_key( l_kosten_keys.prs_kostensoort_key
|
||
, l_rec.bgt_contract_nr
|
||
, l_rec.bgt_contract_volgnr);
|
||
--
|
||
g_errormsg := 'Fout bij toevoegen factuur['|| l_rec.bgt_contract_nr ||'/'|| l_rec.bgt_contract_volgnr ||']';
|
||
l_refnr := l_rec.bgt_factuur_refnr;
|
||
IF (l_refnr = '' OR l_refnr IS NULL) THEN
|
||
l_refnr := 'F_' || l_rec.bgt_factuur_nr ||'.'|| l_rec.bgt_factuur_volgnr;
|
||
END IF;
|
||
fac.imp_writelog ( p_import_key, 'I', 'Opdracht('||l_opdr_key||') '||l_kosten_keys.prs_kostensoort_key||','||l_rec.bgt_contract_nr||','||l_rec.bgt_contract_volgnr, NULL);
|
||
IF (l_opdr_key > -1) THEN
|
||
g_errormsg := 'Fout bij toevoegen factuur['|| l_rec.bgt_factuur_nr ||']';
|
||
--
|
||
INSERT INTO fin_factuur
|
||
( fin_factuur_nr
|
||
, fin_factuur_advies
|
||
, fin_factuur_datum
|
||
, fin_factuur_boekmaand
|
||
, fin_factuur_opmerking
|
||
, fin_factuur_totaal
|
||
, fin_factuur_totaal_btw
|
||
, mld_opdr_key
|
||
, prs_kostensoort_key
|
||
, fin_factuur_bron
|
||
, fin_factuur_statuses_key
|
||
)
|
||
VALUES
|
||
( l_refnr
|
||
, l_rec.bgt_factuur_adviesdatum
|
||
, l_rec.bgt_factuur_datum
|
||
, TO_CHAR(l_rec.bgt_factuur_datum, 'yyyy-mm')
|
||
, l_rec.bgt_factuur_omschr
|
||
, l_rec.bgt_factuur_bedrag_excl
|
||
, l_rec.bgt_factuur_bedrag_btw
|
||
, l_opdr_key
|
||
, l_kosten_keys.prs_kostensoort_key
|
||
, 1
|
||
, 6
|
||
)
|
||
RETURNING fin_factuur_key INTO l_factuur_key;
|
||
l_count_f := l_count_f + 1;
|
||
--
|
||
fac.imp_writelog ( p_import_key
|
||
, 'I'
|
||
, 'Factuur [' || l_rec.bgt_factuur_nr ||'/'|| l_rec.bgt_factuur_volgnr || '] toegevoegd'
|
||
, NULL
|
||
);
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
--
|
||
fac.imp_writelog ( p_import_key, 'S', 'Facturen: aantal regels toegevoegd: ' || TO_CHAR(l_count_f), NULL);
|
||
COMMIT;
|
||
END; --update_factuur
|
||
|
||
|
||
BEGIN
|
||
SELECT prs_perslid_key
|
||
INTO g_perslid_key
|
||
FROM fac_import
|
||
WHERE fac_import_key = p_import_key;
|
||
|
||
update_discipline(p_import_key);
|
||
update_project(p_import_key);
|
||
update_rubriek(p_import_key);
|
||
update_groep(p_import_key);
|
||
update_soort(p_import_key);
|
||
update_bedrijf(p_import_key);
|
||
update_budget(p_import_key);
|
||
update_opdracht(p_import_key);
|
||
update_factuur(p_import_key);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
g_errormsg :=
|
||
g_errormsg
|
||
|| ' ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
g_aanduiding || g_errormsg,
|
||
'Verwerken BCS conversie afgebroken!');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
|
||
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;
|
||
/
|
||
|
||
--
|
||
-- Eigen logfile voor BGT
|
||
--
|
||
CREATE OR REPLACE PROCEDURE twyn_log ( p_actie IN VARCHAR2
|
||
, p_level IN VARCHAR2
|
||
, p_msg IN VARCHAR2
|
||
, p_disc_key IN NUMBER DEFAULT NULL
|
||
, p_prj_key IN NUMBER DEFAULT NULL
|
||
, p_rub_key IN NUMBER DEFAULT NULL
|
||
, p_grp_key IN NUMBER DEFAULT NULL
|
||
, p_srt_key IN NUMBER DEFAULT NULL
|
||
, p_bgt_key IN NUMBER DEFAULT NULL
|
||
, p_mut_key IN NUMBER DEFAULT NULL
|
||
, p_opdr_key IN NUMBER DEFAULT NULL
|
||
, p_fact_key IN NUMBER DEFAULT NULL
|
||
, p_bedr_key IN NUMBER DEFAULT NULL
|
||
, p_kpls_key IN NUMBER DEFAULT NULL
|
||
, p_kgrp_key IN NUMBER DEFAULT NULL
|
||
)
|
||
AS
|
||
v_volgnr NUMBER(10);
|
||
BEGIN
|
||
SELECT COALESCE(MAX(volgnr), 0) + 1
|
||
INTO v_volgnr
|
||
FROM twyn_bgtlog;
|
||
--
|
||
INSERT INTO twyn_bgtlog VALUES
|
||
( v_volgnr
|
||
, p_actie
|
||
, p_level
|
||
, SYSDATE
|
||
, p_msg
|
||
, p_disc_key, p_prj_key, p_rub_key, p_grp_key, p_srt_key
|
||
, p_bgt_key, p_mut_key
|
||
, p_opdr_key, p_fact_key, p_bedr_key
|
||
, p_kpls_key, p_kgrp_key
|
||
);
|
||
-- COMMIT;
|
||
END twyn_log;
|
||
/
|
||
|
||
--
|
||
--
|
||
--
|
||
CREATE OR REPLACE PROCEDURE twyn_delete_deelproject ( p_deelproject_key IN NUMBER
|
||
, p_alleen_fin IN BOOLEAN DEFAULT FALSE
|
||
)
|
||
AS
|
||
-- Verwijder het deelproject met bgt_project_key = n.
|
||
-- Met parameter p_alleen_fin worden alleen de budget- en contractgegevens verwijderd.
|
||
-- Default is het hele deelproject verwijderen, dus ook koststenplaatsen, kosten- rubriek, soortgrp en soort.
|
||
v_delete_str VARCHAR2 (100) := 'DELETE prj=' || TO_CHAR(p_deelproject_key);
|
||
|
||
|
||
PROCEDURE log_info( p_code IN VARCHAR2 DEFAULT NULL
|
||
, p_msg IN VARCHAR2 DEFAULT NULL
|
||
, p_prj_key IN NUMBER DEFAULT NULL
|
||
, p_rub_key IN NUMBER DEFAULT NULL
|
||
, p_grp_key IN NUMBER DEFAULT NULL
|
||
, p_srt_key IN NUMBER DEFAULT NULL
|
||
, p_bgt_key IN NUMBER DEFAULT NULL
|
||
, p_mut_key IN NUMBER DEFAULT NULL
|
||
, p_opdr_key IN NUMBER DEFAULT NULL
|
||
, p_fact_key IN NUMBER DEFAULT NULL
|
||
, p_bedr_key IN NUMBER DEFAULT NULL
|
||
)
|
||
AS
|
||
v_ora_err_num NUMBER;
|
||
v_ora_err_msg VARCHAR2(200);
|
||
v_err_msg VARCHAR2(1000);
|
||
v_msg VARCHAR2(2000);
|
||
BEGIN
|
||
IF (p_code IN ('W', 'E')) THEN
|
||
v_ora_err_num := SQLCODE;
|
||
v_ora_err_msg := SUBSTR (SQLERRM, 1, 200);
|
||
v_msg := 'ORACLE (error ' || v_ora_err_num || '/' || v_ora_err_msg || ')';
|
||
IF (p_msg IS NOT NULL) THEN
|
||
v_msg := v_msg || ': ' || p_msg;
|
||
END IF;
|
||
ELSE
|
||
v_msg := p_msg;
|
||
END IF;
|
||
twyn_log (v_delete_str, p_code, v_msg, NULL, p_prj_key, p_rub_key, p_grp_key, p_srt_key, p_bgt_key, p_mut_key, p_opdr_key, p_fact_key, p_bedr_key);
|
||
END;
|
||
|
||
|
||
PROCEDURE delete_contracten(p_bgt_project_key IN NUMBER)
|
||
AS
|
||
CURSOR c_project_opdr
|
||
IS
|
||
SELECT s.prs_kostensoort_key
|
||
FROM bgt_project p
|
||
, bgt_kostenrubriek r
|
||
, prs_kostensoortgrp g
|
||
, prs_kostensoort s
|
||
WHERE 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 p.bgt_project_key = p_bgt_project_key;
|
||
|
||
CURSOR c_opdracht(p_kostensoort_key IN NUMBER)
|
||
IS
|
||
SELECT o.mld_uitvoerende_keys
|
||
, o.mld_opdr_key
|
||
FROM mld_opdr o
|
||
WHERE o.prs_kostensoort_key = p_kostensoort_key;
|
||
|
||
iprj NUMBER;
|
||
iopd NUMBER;
|
||
ibdr NUMBER;
|
||
|
||
PROCEDURE delete_prs_bedrijf( p_project_key IN NUMBER
|
||
, p_mld_opdr_key IN NUMBER
|
||
, p_bedrijf_key IN NUMBER
|
||
)
|
||
AS
|
||
i NUMBER;
|
||
xprj NUMBER;
|
||
opdr NUMBER;
|
||
bedr NUMBER;
|
||
v_aantal_projecten NUMBER;
|
||
v_aantal_opdrachten NUMBER;
|
||
BEGIN
|
||
xprj := p_project_key;
|
||
opdr := p_mld_opdr_key;
|
||
bedr := p_bedrijf_key;
|
||
SELECT COUNT(DISTINCT p.bgt_project_key) aantal_projecten
|
||
, COUNT(o.mld_opdr_key) aantal_opdrachten
|
||
INTO v_aantal_projecten
|
||
, v_aantal_opdrachten
|
||
FROM bgt_project p
|
||
, bgt_kostenrubriek r
|
||
, prs_kostensoortgrp g
|
||
, prs_kostensoort s
|
||
, mld_opdr o
|
||
WHERE 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 s.prs_kostensoort_key = o.prs_kostensoort_key
|
||
AND o.mld_uitvoerende_keys = p_bedrijf_key;
|
||
--
|
||
-- Om een bedrijf die alleen in het project gebruikt wordt te kunnen verwijderen
|
||
-- mogen er geen referenties meer bestaan.
|
||
BEGIN
|
||
UPDATE mld_opdr
|
||
SET mld_uitvoerende_keys = NULL
|
||
WHERE mld_opdr_key = p_mld_opdr_key;
|
||
--
|
||
IF (v_aantal_projecten = 1 AND v_aantal_opdrachten = 1) THEN
|
||
-- bedrijf wordt alleen in het huidige project
|
||
-- en in de huidige contract gebruikt, dus kan verwijderd worden.
|
||
DELETE
|
||
FROM prs_bedrijf
|
||
WHERE prs_bedrijf_key = p_bedrijf_key;
|
||
--
|
||
log_info('I', 'Bedrijf verwijderd'
|
||
, xprj, NULL, NULL, NULL, NULL, NULL, opdr, NULL, bedr
|
||
);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr, NULL, bedr);
|
||
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE delete_fin_factuur( p_project_key IN NUMBER
|
||
, p_mld_opdr_key IN NUMBER)
|
||
AS
|
||
i NUMBER;
|
||
xprj NUMBER;
|
||
opdr NUMBER;
|
||
BEGIN
|
||
xprj := p_project_key;
|
||
opdr := p_mld_opdr_key;
|
||
BEGIN
|
||
DELETE
|
||
FROM fin_factuur
|
||
WHERE mld_opdr_key = p_mld_opdr_key;
|
||
--
|
||
i := sql%rowcount;
|
||
log_info( 'I', 'Aantal facturen verwijderd: ' || TO_CHAR(i)
|
||
, xprj, NULL, NULL, NULL, NULL, NULL, opdr
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr);
|
||
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE delete_fin_factuur_onbekend(p_project_key IN NUMBER)
|
||
AS
|
||
i NUMBER;
|
||
BEGIN
|
||
-- Factuur verwijst naar een kostensoort binnen het te verwijderen project,
|
||
-- maar is niet via de mld_opdr verwijderd.
|
||
DELETE
|
||
FROM fin_factuur
|
||
WHERE prs_kostensoort_key IN
|
||
(SELECT s.prs_kostensoort_key
|
||
FROM prs_kostensoort s
|
||
, prs_kostensoortgrp g
|
||
, bgt_kostenrubriek r
|
||
WHERE s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||
AND g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||
AND r.bgt_project_key = p_project_key
|
||
);
|
||
--
|
||
i := sql%rowcount;
|
||
log_info( 'I', 'Aantal facturen alleen aan kostensoort gebonden verwijderd: ' || TO_CHAR(i)
|
||
, p_project_key
|
||
);
|
||
END;
|
||
|
||
PROCEDURE delete_mld_opdr( p_project_key IN NUMBER
|
||
, p_mld_opdr_key IN NUMBER)
|
||
AS
|
||
xprj NUMBER;
|
||
opdr NUMBER;
|
||
BEGIN
|
||
xprj := p_project_key;
|
||
opdr := p_mld_opdr_key;
|
||
BEGIN
|
||
DELETE
|
||
FROM mld_opdr
|
||
WHERE mld_opdr_key = p_mld_opdr_key;
|
||
--
|
||
log_info('I', 'Opdracht verwijderd'
|
||
, xprj, NULL, NULL, NULL, NULL, NULL, opdr
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, NULL, NULL, opdr);
|
||
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||
END;
|
||
END;
|
||
|
||
BEGIN -- delete_contracten
|
||
iprj := p_bgt_project_key;
|
||
log_info('I', 'Bedrijven, facturen en contracten:');
|
||
BEGIN
|
||
FOR l_prj IN c_project_opdr
|
||
LOOP
|
||
FOR l_opdr IN c_opdracht(l_prj.prs_kostensoort_key)
|
||
LOOP
|
||
iopd := l_opdr.mld_opdr_key;
|
||
ibdr := l_opdr.mld_uitvoerende_keys;
|
||
delete_prs_bedrijf (p_bgt_project_key, l_opdr.mld_opdr_key, l_opdr.mld_uitvoerende_keys);
|
||
delete_fin_factuur (p_bgt_project_key, l_opdr.mld_opdr_key);
|
||
delete_mld_opdr (p_bgt_project_key, l_opdr.mld_opdr_key);
|
||
END LOOP;
|
||
END LOOP;
|
||
delete_fin_factuur_onbekend(p_bgt_project_key);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, iprj, NULL, NULL, NULL, NULL, NULL, iopd, NULL, ibdr);
|
||
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||
END;
|
||
END; -- delete_contracten
|
||
|
||
|
||
PROCEDURE delete_budgetten(p_bgt_project_key IN NUMBER)
|
||
AS
|
||
CURSOR c_project_bud
|
||
IS
|
||
SELECT r.bgt_kostenrubriek_key
|
||
, g.prs_kostensoortgrp_key
|
||
, s.prs_kostensoort_key
|
||
FROM bgt_project p
|
||
, bgt_kostenrubriek r
|
||
, prs_kostensoortgrp g
|
||
, prs_kostensoort s
|
||
WHERE 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 p.bgt_project_key = p_bgt_project_key;
|
||
|
||
iprj NUMBER;
|
||
irub NUMBER;
|
||
igrp NUMBER;
|
||
isrt NUMBER;
|
||
v_budget_key NUMBER;
|
||
|
||
|
||
FUNCTION get_budget_key( p_prj_key IN NUMBER
|
||
, p_rub_key IN NUMBER
|
||
, p_grp_key IN NUMBER
|
||
, p_srt_key IN NUMBER
|
||
) RETURN NUMBER
|
||
AS
|
||
v_bgt_key NUMBER;
|
||
BEGIN
|
||
BEGIN
|
||
SELECT bgt_budget_key
|
||
INTO v_bgt_key
|
||
FROM bgt_budget
|
||
WHERE bgt_project_key = p_prj_key
|
||
AND ( (bgt_kostenrubriek_key = p_rub_key AND p_srt_key IS NULL AND p_grp_key IS NULL AND p_rub_key IS NOT NULL)
|
||
OR (prs_kostensoortgrp_key = p_grp_key AND p_srt_key IS NULL AND p_grp_key IS NOT NULL)
|
||
OR (prs_kostensoort_key = p_srt_key AND p_srt_key IS NOT NULL)
|
||
);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN v_bgt_key := -1;
|
||
END;
|
||
RETURN v_bgt_key;
|
||
END;
|
||
|
||
PROCEDURE delete_mutaties( p_project_key IN NUMBER
|
||
, p_budget_key IN NUMBER
|
||
)
|
||
AS
|
||
i NUMBER;
|
||
xprj NUMBER;
|
||
xbgt NUMBER;
|
||
BEGIN
|
||
xprj := p_project_key;
|
||
xbgt := p_budget_key;
|
||
BEGIN
|
||
DELETE
|
||
FROM bgt_budgetmutatie
|
||
WHERE bgt_budget_key_van = p_budget_key
|
||
OR bgt_budget_key_naar = p_budget_key;
|
||
--
|
||
i := sql%rowcount;
|
||
log_info('I', 'Aantal budgetmutaties verwijderd: ' || TO_CHAR(i)
|
||
, xprj, NULL, NULL, NULL, xbgt
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, xbgt);
|
||
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||
END;
|
||
END;
|
||
|
||
PROCEDURE delete_budget( p_project_key IN NUMBER
|
||
, p_budget_key IN NUMBER
|
||
)
|
||
AS
|
||
xprj NUMBER;
|
||
xbgt NUMBER;
|
||
BEGIN
|
||
xprj := p_project_key;
|
||
xbgt := p_budget_key;
|
||
BEGIN
|
||
DELETE
|
||
FROM bgt_budget
|
||
WHERE bgt_budget_key = p_budget_key;
|
||
--
|
||
log_info('I', 'Budget verwijderd'
|
||
, xprj, NULL, NULL, NULL, xbgt
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, xprj, NULL, NULL, NULL, xbgt);
|
||
-- xmsg, xprj, xrub, xgrp, xsrt, xbgt, xmut, opdr, fact, bedr
|
||
END;
|
||
END;
|
||
|
||
BEGIN -- delete_budgetten
|
||
log_info('I', 'Budgetmutaties en budgetten:');
|
||
FOR l_prj IN c_project_bud
|
||
LOOP
|
||
iprj := p_bgt_project_key;
|
||
irub := l_prj.bgt_kostenrubriek_key;
|
||
igrp := l_prj.prs_kostensoortgrp_key;
|
||
isrt := l_prj.prs_kostensoort_key;
|
||
BEGIN
|
||
v_budget_key := get_budget_key(iprj, irub, igrp, isrt);
|
||
IF (v_budget_key > -1) THEN
|
||
delete_mutaties(iprj, v_budget_key);
|
||
delete_budget (iprj, v_budget_key);
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, iprj, irub, igrp, isrt, v_budget_key);
|
||
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||
END;
|
||
END LOOP;
|
||
END; -- delete_budgetten
|
||
|
||
PROCEDURE delete_kostenplaatsen(p_bgt_project_key IN NUMBER)
|
||
AS
|
||
CURSOR c_kostenplaats(p_kpgrp_key In NUMBER)
|
||
IS
|
||
SELECT prs_kostenplaats_key
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaatsgrp_key = p_kpgrp_key;
|
||
|
||
iprj NUMBER;
|
||
iopd NUMBER;
|
||
ibdr NUMBER;
|
||
v_kpgrp_key NUMBER;
|
||
i NUMBER;
|
||
BEGIN -- delete_kostenplaatsen
|
||
iprj := p_bgt_project_key;
|
||
log_info('I', 'Kostenplaatsen en kostenplaatsgroep:');
|
||
-- Eerst even wat referenties verwijderen.
|
||
UPDATE bgt_project
|
||
SET prs_kostenplaats_key = NULL
|
||
WHERE bgt_project_key = p_bgt_project_key;
|
||
--
|
||
UPDATE prs_kostensoort
|
||
SET prs_kostenplaats_key = NULL
|
||
WHERE prs_kostensoort_key IN
|
||
(SELECT s.prs_kostensoort_key
|
||
FROM prs_kostensoort s
|
||
, prs_kostensoortgrp g
|
||
, bgt_kostenrubriek r
|
||
WHERE s.prs_kostensoortgrp_key = g.prs_kostensoortgrp_key
|
||
AND g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||
AND r.bgt_project_key = p_bgt_project_key
|
||
);
|
||
--
|
||
BEGIN
|
||
SELECT g.prs_kostenplaatsgrp_key
|
||
INTO v_kpgrp_key
|
||
FROM prs_kostenplaatsgrp g
|
||
WHERE g.bgt_project_key = p_bgt_project_key;
|
||
--
|
||
-- Foutieve verwijzingen verwijderen.
|
||
-- (vanuit een ander deelproject wordt naar een kostenplaats verwezen die hier verwijderd wordt.)
|
||
UPDATE mld_opdr
|
||
SET prs_kostenplaats_key = NULL
|
||
WHERE prs_kostenplaats_key IN
|
||
(SELECT kp.prs_kostenplaats_key
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaatsgrp_key = v_kpgrp_key
|
||
);
|
||
--
|
||
UPDATE bgt_budget
|
||
SET prs_kostenplaats_key = NULL
|
||
WHERE prs_kostenplaats_key IN
|
||
(SELECT kp.prs_kostenplaats_key
|
||
FROM prs_kostenplaats kp
|
||
WHERE kp.prs_kostenplaatsgrp_key = v_kpgrp_key
|
||
);
|
||
--
|
||
-- kostenplaatsen van dit project verwijderen
|
||
DELETE
|
||
FROM prs_kostenplaats
|
||
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key;
|
||
--
|
||
i := sql%rowcount;
|
||
log_info('I', 'Aantal kostenplaatsen verwijderd: ' || TO_CHAR(i)
|
||
, iprj
|
||
);
|
||
-- kostenplaatsgroep van dit project verwijderen
|
||
DELETE
|
||
FROM prs_kostenplaatsgrp
|
||
WHERE prs_kostenplaatsgrp_key = v_kpgrp_key;
|
||
log_info('I', 'Kostenplaatsgroep verwijderd: ' || TO_CHAR(v_kpgrp_key)
|
||
, iprj
|
||
);
|
||
EXCEPTION
|
||
WHEN NO_DATA_FOUND THEN log_info('I', 'Geen kostenplaatsgroep aanwezig.');
|
||
WHEN OTHERS THEN log_info('W', NULL, iprj, NULL, NULL, NULL, NULL);
|
||
-- xmsg, iprj, irub, igrp, isrt, ibgt, imut, iopd, ifac, ibdr
|
||
|
||
END;
|
||
END; -- delete_kostenplaatsen
|
||
|
||
PROCEDURE delete_deelproject(p_bgt_project_key IN NUMBER)
|
||
AS
|
||
i NUMBER;
|
||
BEGIN -- delete_deelproject
|
||
log_info('I', 'Kostensoort, kostensoortgroep, kostenrubriek en project:');
|
||
BEGIN
|
||
DELETE
|
||
FROM prs_kostensoort
|
||
WHERE prs_kostensoortgrp_key IN
|
||
(SELECT g.prs_kostensoortgrp_key
|
||
FROM bgt_kostenrubriek r
|
||
, prs_kostensoortgrp g
|
||
WHERE g.bgt_kostenrubriek_key = r.bgt_kostenrubriek_key
|
||
AND r.bgt_project_key = p_bgt_project_key
|
||
);
|
||
i := sql%rowcount;
|
||
log_info('I', 'Aantal kostensoorten verwijderd: ' || TO_CHAR(i));
|
||
--
|
||
DELETE
|
||
FROM prs_kostensoortgrp
|
||
WHERE bgt_kostenrubriek_key IN
|
||
(SELECT r.bgt_kostenrubriek_key
|
||
FROM bgt_kostenrubriek r
|
||
WHERE r.bgt_project_key = p_bgt_project_key
|
||
);
|
||
i := sql%rowcount;
|
||
log_info('I', 'Aantal kostensoortgroepen verwijderd: ' || TO_CHAR(i));
|
||
--
|
||
DELETE
|
||
FROM bgt_kostenrubriek
|
||
WHERE bgt_project_key = p_bgt_project_key;
|
||
i := sql%rowcount;
|
||
log_info('I', 'Aantal kostenrubrieken verwijderd: ' || TO_CHAR(i));
|
||
--
|
||
DELETE
|
||
FROM bgt_project
|
||
WHERE bgt_project_key = p_bgt_project_key;
|
||
--
|
||
log_info('I', 'Deelproject verwijderd', p_bgt_project_key);
|
||
EXCEPTION
|
||
WHEN OTHERS THEN log_info('W', NULL, p_bgt_project_key);
|
||
END;
|
||
END; -- delete_deelproject
|
||
|
||
BEGIN
|
||
log_info('I', 'START');
|
||
delete_contracten(p_deelproject_key);
|
||
delete_budgetten(p_deelproject_key);
|
||
IF (NOT p_alleen_fin) THEN
|
||
delete_kostenplaatsen(p_deelproject_key);
|
||
delete_deelproject(p_deelproject_key);
|
||
END IF;
|
||
log_info('I', 'EINDE');
|
||
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_RUB Overzicht rubrieken (1 subproject)
|
||
|
||
--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
|
||
|
||
|
||
-- basis views
|
||
|
||
CREATE OR REPLACE VIEW twyn_v_bgt_budgetmutatie
|
||
AS
|
||
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_naa
|
||
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_budgetsrtmutatie
|
||
AS
|
||
SELECT bm_1.bgt_budget_key_van bgt_budget_key
|
||
, bm_1.bgt_budgetmutatie_datum
|
||
, CASE WHEN INSTR('AR', BGT.GETSOORTMUTATIE(bm_1.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_1.bgt_budget_bedrag_van, 0)
|
||
ELSE 0
|
||
END res_bedrag_exc
|
||
, CASE WHEN INSTR('AR', BGT.GETSOORTMUTATIE(bm_1.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_1.bgt_budget_btwbedrag_van, 0)
|
||
ELSE 0
|
||
END res_bedrag_btw
|
||
, CASE WHEN INSTR('EM', BGT.GETSOORTMUTATIE(bm_1.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_1.bgt_budget_bedrag_van, 0)
|
||
ELSE 0
|
||
END mut_bedrag_exc
|
||
, CASE WHEN INSTR('EM', BGT.GETSOORTMUTATIE(bm_1.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_1.bgt_budget_btwbedrag_van, 0)
|
||
ELSE 0
|
||
END mut_bedrag_btw
|
||
FROM bgt_budgetmutatie bm_1
|
||
UNION
|
||
SELECT bm_2.bgt_budget_key_naar bgt_budget_key
|
||
, bm_2.bgt_budgetmutatie_datum
|
||
, CASE WHEN INSTR('AR', BGT.GETSOORTMUTATIE(bm_2.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_2.bgt_budget_bedrag_naar, 0)
|
||
ELSE 0
|
||
END res_bedrag_exc
|
||
, CASE WHEN INSTR('AR', BGT.GETSOORTMUTATIE(bm_2.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_2.bgt_budget_btwbedrag_naar, 0)
|
||
ELSE 0
|
||
END res_bedrag_btw
|
||
, CASE WHEN INSTR('EM', BGT.GETSOORTMUTATIE(bm_2.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_2.bgt_budget_bedrag_naar, 0)
|
||
ELSE 0
|
||
END mut_bedrag_exc
|
||
, CASE WHEN INSTR('EM', BGT.GETSOORTMUTATIE(bm_2.bgt_budgetmutatie_key)) > 0
|
||
THEN COALESCE(bm_2.bgt_budget_btwbedrag_naar, 0)
|
||
ELSE 0
|
||
END mut_bedrag_btw
|
||
FROM bgt_budgetmutatie bm_2;
|
||
|
||
|
||
|
||
CREATE OR REPLACE VIEW twyn_v_bgt_budget
|
||
AS
|
||
SELECT tp.ins_discipline_key
|
||
, tp.bgt_project_key
|
||
, tp.bgt_kostenrubriek_key
|
||
, tp.ins_discipline_verwijder
|
||
, tp.bgt_project_verwijder
|
||
, tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.dcode
|
||
, tp.subproject
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.versienummer
|
||
, DECODE (tp.rcode, 'R', 'A', 'B') || tp.rcode 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_budget bud
|
||
, twyn_v_bgt_budgetmutatie mut
|
||
, bgt_v_project_full tp
|
||
WHERE mut.bgt_budget_key(+) = bud.bgt_budget_key
|
||
AND bud.bgt_kostenrubriek_key = tp.bgt_kostenrubriek_key
|
||
AND tp.prs_kostensoortgrp_key IS NULL
|
||
AND tp.prs_kostensoort_key IS NULL
|
||
GROUP BY tp.ins_discipline_key
|
||
, tp.bgt_project_key
|
||
, tp.bgt_kostenrubriek_key
|
||
, tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.dcode
|
||
, tp.subproject
|
||
, tp.kostenrubriek
|
||
, tp.rcode
|
||
, tp.versienummer
|
||
, tp.ins_discipline_verwijder
|
||
, tp.bgt_project_verwijder;
|
||
|
||
|
||
CREATE OR REPLACE view twyn_v_bgt_budgetgegevens
|
||
AS
|
||
SELECT pr.ins_discipline_key
|
||
, pr.bgt_project_key
|
||
, pr.opdrachtgever
|
||
, pr.pcode
|
||
, pr.project
|
||
, pr.projectnaam
|
||
, pr.dcode
|
||
, pr.subproject
|
||
, pr.subprojectnaam
|
||
, pr.versienummer
|
||
, pr.ins_discipline_verwijder
|
||
, pr.bgt_project_verwijder
|
||
, kr.bgt_kostenrubriek_key
|
||
, kr.bgt_kostenrubriek_code rcode
|
||
, kr.bgt_kostenrubriek_oms kostenrubriek
|
||
, ks.prs_kostensoort_key
|
||
, ks.prs_kostensoort_altcode scode
|
||
, ks.prs_kostensoort_oms kostensoort
|
||
, b.bgt_budget_key
|
||
, b.bgt_budget_bedrag
|
||
, b.bgt_budget_btwbedrag
|
||
FROM bgt_v_project_gegevens pr
|
||
, bgt_kostenrubriek kr
|
||
, prs_kostensoort ks
|
||
, bgt_budget b
|
||
WHERE b.bgt_project_key = pr.bgt_project_key
|
||
AND b.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
|
||
AND b.prs_kostensoort_key = ks.prs_kostensoort_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.rcode rcode_org,
|
||
bud_des.bgt_kostenrubriek_key rubriek_key_des,
|
||
bud_des.rcode 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;
|
||
|
||
|
||
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;
|
||
|
||
|
||
-- BET_ADV
|
||
CREATE OR REPLACE VIEW twyn_v_betalingsadvies
|
||
AS
|
||
SELECT tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.dcode
|
||
, tp.subproject
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.gcode
|
||
, tp.kostengroep
|
||
, tp.scode
|
||
, tp.kostensoort
|
||
, tp.versienummer
|
||
, f.fin_factuur_advies adviesdatum
|
||
, TO_CHAR (f.fin_factuur_advies, 'dd-mm-yyyy') adviesdatum_p
|
||
, f.fin_factuur_datum factuurdatum
|
||
, TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy') factuurdatum_p
|
||
, f.fin_factuur_nr factuurnr
|
||
, b.prs_bedrijf_naam contractant
|
||
, f.fin_factuur_opmerking opmerking
|
||
, f.fin_factuur_totaal bedragexcl
|
||
, f.fin_factuur_totaal_btw bedragbtw
|
||
FROM fin_factuur f
|
||
, mld_opdr o
|
||
, prs_bedrijf b
|
||
, bgt_v_project_full tp
|
||
WHERE o.mld_opdr_key = f.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL
|
||
AND f.fin_factuur_bron = 0;
|
||
|
||
|
||
-- CONT_ALF
|
||
CREATE OR REPLACE VIEW twyn_v_bedrijf
|
||
AS
|
||
SELECT tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.dcode
|
||
, tp.subproject
|
||
, tp.versienummer
|
||
, 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 mld_opdr o
|
||
, prs_bedrijf b
|
||
, bgt_v_project_full tp
|
||
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
|
||
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL
|
||
ORDER BY prs_bedrijf_naam;
|
||
|
||
|
||
-- 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 VIEW twyn_v_contract_rubriek
|
||
AS
|
||
SELECT tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.projectnaam
|
||
, tp.dcode
|
||
, tp.subproject
|
||
, tp.subprojectnaam
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.gcode
|
||
, tp.kostengroep
|
||
, tp.scode
|
||
, tp.kostensoort
|
||
, tp.versienummer
|
||
, tp.kostencode
|
||
, tp.kostennaam
|
||
, o.mld_opdr_datumbegin datumfilter
|
||
, 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 bgt_v_project_full tp
|
||
, prs_kostenplaats kp
|
||
, mld_opdr o
|
||
, prs_bedrijf b
|
||
WHERE o.prs_kostensoort_key = tp.prs_kostensoort_key
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL
|
||
GROUP BY tp.opdrachtgever
|
||
, tp.project
|
||
, tp.subproject
|
||
, tp.projectnaam
|
||
, tp.pcode
|
||
, tp.opdrachtgever
|
||
, tp.subprojectnaam
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.gcode
|
||
, tp.kostengroep
|
||
, tp.scode
|
||
, tp.kostensoort
|
||
, tp.versienummer
|
||
, tp.dcode
|
||
, tp.kostencode
|
||
, tp.kostennaam
|
||
, kp.prs_kostenplaats_nr
|
||
, kp.prs_kostenplaats_omschrijving
|
||
, b.prs_leverancier_nr
|
||
, o.mld_opdr_ordernr
|
||
, o.mld_opdr_datumbegin
|
||
ORDER BY tp.rcode
|
||
, tp.gcode
|
||
, tp.scode
|
||
, b.prs_leverancier_nr
|
||
, TO_NUMBER(o.mld_opdr_ordernr);
|
||
|
||
|
||
-- CON_FACT
|
||
-- CON_ACC
|
||
-- FACTCORU
|
||
CREATE OR REPLACE VIEW twyn_v_contr_fact_bedrijf
|
||
AS
|
||
SELECT tp.opdrachtgever
|
||
, tp.project
|
||
, tp.pcode
|
||
, tp.subproject
|
||
, tp.kostenrubriek
|
||
, tp.rcode
|
||
, tp.kostengroep
|
||
, tp.kostensoort
|
||
, tp.scode
|
||
, tp.versienummer
|
||
, b.prs_bedrijf_naam
|
||
, b.prs_leverancier_nr
|
||
, o.mld_opdr_id kenmerk
|
||
, o.mld_opdr_ordernr
|
||
, o.mld_opdr_bedrijfopdr_volgnr
|
||
, kp.prs_kostenplaats_nr accountcode
|
||
, kp.prs_kostenplaats_omschrijving account
|
||
, o.mld_opdr_omschrijving
|
||
, o.mld_opdr_datumbegin contractdatum
|
||
, o.mld_opdr_kosten
|
||
, o.mld_opdr_kosten_btw
|
||
, o.mld_opdr_meerwerk
|
||
, NVL(fin_factuur_datum, o.mld_opdr_datumbegin) datumfilter
|
||
, f.fin_factuur_nr
|
||
, f.fin_factuur_opmerking
|
||
, f.fin_factuur_totaal
|
||
, f.fin_factuur_totaal_btw
|
||
, f.fin_factuur_datum factuurdatum
|
||
, f.fin_factuur_advies adviesdatum
|
||
, TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') contractdatum_p
|
||
, TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY') factuurdatum_p
|
||
, TO_CHAR (f.fin_factuur_advies, 'DD-MM-YYYY') adviesdatum_p
|
||
FROM fin_factuur f
|
||
, mld_opdr o
|
||
, prs_bedrijf b
|
||
, prs_kostenplaats kp
|
||
, bgt_v_project_full tp
|
||
WHERE f.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND b.prs_bedrijf_key = o.mld_uitvoerende_keys
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL
|
||
ORDER BY b.prs_leverancier_nr
|
||
, tp.scode
|
||
, o.mld_opdr_datumbegin
|
||
, o.mld_opdr_ordernr;
|
||
|
||
|
||
-- CON_ACC1
|
||
CREATE OR REPLACE VIEW twyn_v_contract
|
||
AS
|
||
SELECT tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.projectnaam
|
||
, tp.subproject
|
||
, tp.subprojectnaam
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.gcode
|
||
, tp.kostengroep
|
||
, tp.scode
|
||
, tp.kostensoort
|
||
, tp.versienummer
|
||
, b.prs_leverancier_nr
|
||
, o.mld_opdr_ordernr
|
||
, o.mld_opdr_id kenmerk
|
||
, o.mld_opdr_omschrijving
|
||
, kp.prs_kostenplaats_nr accountcode
|
||
, kp.prs_kostenplaats_omschrijving account
|
||
, o.mld_opdr_datumbegin datumfilter
|
||
, TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') printdatum
|
||
, o.mld_opdr_meerwerk
|
||
, o.mld_opdr_kosten
|
||
, o.mld_opdr_kosten_btw
|
||
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 0)) fin_factuur_totaal
|
||
FROM bgt_v_project_full tp
|
||
, prs_kostenplaats kp
|
||
, mld_opdr o
|
||
, prs_bedrijf b
|
||
WHERE o.prs_kostensoort_key = tp.prs_kostensoort_key
|
||
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL
|
||
GROUP BY tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.subproject
|
||
, tp.dcode
|
||
, tp.subprojectnaam
|
||
, tp.projectnaam
|
||
, tp.dcode
|
||
, tp.opdrachtgever
|
||
, tp.subprojectnaam
|
||
, tp.rcode
|
||
, tp.kostenrubriek
|
||
, tp.gcode
|
||
, tp.kostengroep
|
||
, tp.scode
|
||
, tp.kostensoort
|
||
, 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
|
||
, tp.versienummer
|
||
ORDER BY kp.prs_kostenplaats_nr
|
||
, b.prs_leverancier_nr
|
||
, o.mld_opdr_ordernr;
|
||
|
||
|
||
-- BREG_RUB
|
||
--
|
||
CREATE OR REPLACE VIEW twyn_v_budgetdetail
|
||
AS
|
||
SELECT opdrachtgever
|
||
, pcode
|
||
, project
|
||
, projectnaam
|
||
, dcode
|
||
, subproject
|
||
, subprojectnaam
|
||
, versienummer
|
||
, rcode
|
||
, kostenrubriek
|
||
, gcode
|
||
, kostengroep
|
||
, scode
|
||
, kostensoort
|
||
, financieel."BGT_KOSTENRUBRIEK_KEY"
|
||
, financieel."SOORT"
|
||
, financieel."BGT_BEDRAG_EXC"
|
||
, financieel."BGT_BEDRAG_BTW"
|
||
, financieel."RES_BEDRAG_EXC"
|
||
, financieel."RES_BEDRAG_BTW"
|
||
, financieel."MUT_BEDRAG_EXC"
|
||
, financieel."MUT_BEDRAG_BTW"
|
||
, financieel."BGT_DATUM"
|
||
, financieel."CNT_BEDRAG_EXC"
|
||
, financieel."CNT_BEDRAG_BTW"
|
||
, financieel."CNT_DATUM"
|
||
, financieel."FIN_BEDRAG_EXC"
|
||
, financieel."FIN_BEDRAG_BTW"
|
||
, financieel."FIN_DATUM"
|
||
, CASE
|
||
WHEN financieel.soort = 'F' THEN financieel.fin_datum
|
||
WHEN financieel.soort = 'C' THEN financieel.cnt_datum
|
||
WHEN financieel.soort = 'M' THEN financieel.bgt_datum
|
||
WHEN financieel.soort = 'B' THEN NULL
|
||
END all_datum
|
||
FROM bgt_v_project_full gegevens
|
||
, (SELECT bu.bgt_kostenrubriek_key
|
||
, bu.prs_kostensoortgrp_key
|
||
, bu.prs_kostensoort_key
|
||
, 'B' soort
|
||
, bu.bgt_budget_bedrag bgt_bedrag_exc
|
||
, bu.bgt_budget_btwbedrag bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_budget bu
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, bu.prs_kostensoortgrp_key
|
||
, bu.prs_kostensoort_key
|
||
, 'M' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, COALESCE (bm.res_bedrag_exc, 0) res_bedrag_exc
|
||
, COALESCE (bm.res_bedrag_btw, 0) res_bedrag_btw
|
||
, COALESCE (bm.mut_bedrag_exc, 0) mut_bedrag_exc
|
||
, COALESCE (bm.mut_bedrag_btw, 0) mut_bedrag_btw
|
||
, bm.bgt_budgetmutatie_datum bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_budget bu
|
||
, twyn_v_bgt_budgetsrtmutatie bm
|
||
WHERE bu.bgt_budget_key = bm.bgt_budget_key
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, bu.prs_kostensoortgrp_key
|
||
, bu.prs_kostensoort_key
|
||
, 'C' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, COALESCE (mo.mld_opdr_kosten, 0) cnt_bedrag_exc
|
||
, COALESCE (mo.mld_opdr_kosten_btw, 0) cnt_bedrag_btw
|
||
, mo.mld_opdr_datumbegin cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_budget bu
|
||
, mld_opdr mo
|
||
WHERE bu.prs_kostensoort_key = mo.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, bu.prs_kostensoortgrp_key
|
||
, bu.prs_kostensoort_key
|
||
, 'F' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, COALESCE (fa.fin_factuur_totaal, 0) fin_bedrag_exc
|
||
, COALESCE (fa.fin_factuur_totaal_btw, 0) fin_bedrag_btw
|
||
, fa.fin_factuur_datum fin_datum
|
||
FROM bgt_budget bu
|
||
, mld_opdr op
|
||
, fin_factuur fa
|
||
WHERE fa.mld_opdr_key = op.mld_opdr_key
|
||
AND bu.prs_kostensoort_key = op.prs_kostensoort_key)
|
||
financieel
|
||
WHERE gegevens.prs_kostensoort_key = financieel.prs_kostensoort_key
|
||
AND gegevens.ins_discipline_verwijder IS NULL
|
||
AND gegevens.bgt_project_verwijder IS NULL;
|
||
|
||
|
||
--BMUT_NUM
|
||
CREATE OR REPLACE VIEW twyn_v_budgetmutaties
|
||
AS
|
||
SELECT gegevens.opdrachtgever
|
||
, gegevens.pcode
|
||
, gegevens.project
|
||
, gegevens.projectnaam
|
||
, gegevens.dcode
|
||
, gegevens.subproject
|
||
, gegevens.subprojectnaam
|
||
, gegevens.kostencode
|
||
, gegevens.kostennaam
|
||
, gegevens.versienummer
|
||
, mutaties.bgt_budget_key
|
||
, mutaties.bgt_budget_isreserve
|
||
, mutaties.bgt_budgetmutatie_key
|
||
, mutaties.bgt_budgetmutatie_omschrijving mutatiereden
|
||
, mutaties.bgt_budgetmutatie_reserve reserve
|
||
, mutaties.bgt_budgetmutatie_datum mutatiedatum
|
||
, TO_CHAR (mutaties.bgt_budgetmutatie_datum, 'dd-mm-yyyy') mutatiedatum_p
|
||
, mutaties.bgt_mutatie_bedrag mutatiebedrag_exc
|
||
, mutaties.bgt_mutatie_btwbedrag mutatiebedrag_btw
|
||
, mutaties.bgt_mutatie_soort mutatiesoort
|
||
, mutaties.bgt_budgetmutatie_code mutatiecode
|
||
, mutaties.bgt_budgetmutatie_volgnr mutatievolgnr
|
||
FROM bgt_v_project_full gegevens
|
||
, (SELECT b.bgt_budget_key
|
||
, b.ins_discipline_key
|
||
, b.bgt_project_key
|
||
, b.bgt_kostenrubriek_key
|
||
, b.prs_kostensoortgrp_key
|
||
, b.prs_kostensoort_key
|
||
, b.prs_kostenplaatsgrp_key
|
||
, b.prs_kostenplaats_key
|
||
, b.bgt_budget_bedrag
|
||
, b.bgt_budget_btwbedrag
|
||
, b.bgt_budget_isreserve
|
||
, b.bgt_budget_begin
|
||
, b.bgt_budget_eind
|
||
, b.bgt_budget_aanmaak
|
||
, b.bgt_budget_vervaldatum
|
||
, m.bgt_budgetmutatie_key
|
||
, m.prs_perslid_key
|
||
, m.bgt_budgetmutatie_omschrijving
|
||
, m.bgt_budgetmutatie_reserve
|
||
, m.bgt_budgetmutatie_datum
|
||
, m.bgt_budget_bedrag_van bgt_mutatie_bedrag
|
||
, m.bgt_budget_btwbedrag_van bgt_mutatie_btwbedrag
|
||
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
|
||
, m.bgt_budgetmutatie_code
|
||
, m.bgt_budgetmutatie_volgnr
|
||
FROM bgt_budget b
|
||
, bgt_budgetmutatie m
|
||
WHERE b.bgt_budget_key = m.bgt_budget_key_van
|
||
UNION
|
||
SELECT b.bgt_budget_key
|
||
, b.ins_discipline_key
|
||
, b.bgt_project_key
|
||
, b.bgt_kostenrubriek_key
|
||
, b.prs_kostensoortgrp_key
|
||
, b.prs_kostensoort_key
|
||
, b.prs_kostenplaatsgrp_key
|
||
, b.prs_kostenplaats_key
|
||
, b.bgt_budget_bedrag
|
||
, b.bgt_budget_btwbedrag
|
||
, b.bgt_budget_isreserve
|
||
, b.bgt_budget_begin
|
||
, b.bgt_budget_eind
|
||
, b.bgt_budget_aanmaak
|
||
, b.bgt_budget_vervaldatum
|
||
, m.bgt_budgetmutatie_key
|
||
, m.prs_perslid_key
|
||
, m.bgt_budgetmutatie_omschrijving
|
||
, m.bgt_budgetmutatie_reserve
|
||
, m.bgt_budgetmutatie_datum
|
||
, m.bgt_budget_bedrag_naar bgt_mutatie_bedrag
|
||
, m.bgt_budget_btwbedrag_naar bgt_mutatie_btwbedrag
|
||
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
|
||
, m.bgt_budgetmutatie_code
|
||
, m.bgt_budgetmutatie_volgnr
|
||
FROM bgt_budget b
|
||
, bgt_budgetmutatie m
|
||
WHERE b.bgt_budget_key = m.bgt_budget_key_naar
|
||
) mutaties
|
||
WHERE ( ( mutaties.prs_kostensoort_key = gegevens.prs_kostensoort_key)
|
||
OR ( mutaties.bgt_kostenrubriek_key = gegevens.bgt_kostenrubriek_key
|
||
AND mutaties.prs_kostensoortgrp_key IS NULL
|
||
AND mutaties.prs_kostensoort_key IS NULL
|
||
)
|
||
)
|
||
AND gegevens.ins_discipline_verwijder IS NULL
|
||
AND gegevens.bgt_project_verwijder IS NULL
|
||
AND NOT ( mutaties.bgt_budgetmutatie_omschrijving LIKE 'AO %'
|
||
OR mutaties.bgt_budgetmutatie_omschrijving LIKE 'MW %'
|
||
);
|
||
|
||
|
||
-- BREG_TOT
|
||
-- BREG_RES
|
||
-- BREG_BTW
|
||
CREATE OR REPLACE VIEW twyn_v_budgettotaal
|
||
AS
|
||
SELECT opdrachtgever
|
||
, pcode
|
||
, project
|
||
, projectnaam
|
||
, dcode
|
||
, subproject
|
||
, subprojectnaam
|
||
, versienummer
|
||
, rcode
|
||
, kostenrubriek
|
||
, financieel.*
|
||
, CASE WHEN financieel.soort = 'F' then financieel.fin_datum
|
||
WHEN financieel.soort = 'C' then financieel.cnt_datum
|
||
WHEN financieel.soort = 'M' then financieel.bgt_datum
|
||
WHEN financieel.soort = 'B' then null
|
||
END all_datum
|
||
FROM bgt_v_project_full gegevens
|
||
, (
|
||
SELECT kr.bgt_kostenrubriek_key
|
||
, 'B' soort
|
||
, SUM(bu.bgt_budget_bedrag) bgt_bedrag_exc
|
||
, SUM(bu.bgt_budget_btwbedrag) bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_kostenrubriek kr
|
||
, bgt_budget bu
|
||
WHERE bu.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
|
||
GROUP BY kr.bgt_kostenrubriek_key
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, 'M' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, COALESCE(bm.res_bedrag_exc, 0) res_bedrag_exc
|
||
, COALESCE(bm.res_bedrag_btw, 0) res_bedrag_btw
|
||
, COALESCE(bm.mut_bedrag_exc, 0) mut_bedrag_exc
|
||
, COALESCE(bm.mut_bedrag_btw, 0) mut_bedrag_btw
|
||
, bm.bgt_budgetmutatie_datum bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_budget bu
|
||
, twyn_v_bgt_budgetsrtmutatie bm
|
||
WHERE bu.bgt_budget_key = bm.bgt_budget_key
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, 'C' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, COALESCE(mo.mld_opdr_kosten, 0) cnt_bedrag_exc
|
||
, COALESCE(mo.mld_opdr_kosten_btw, 0) cnt_bedrag_btw
|
||
, mo.mld_opdr_datumbegin cnt_datum
|
||
, 0 fin_bedrag_exc
|
||
, 0 fin_bedrag_btw
|
||
, NULL fin_datum
|
||
FROM bgt_budget bu
|
||
, mld_opdr mo
|
||
WHERE bu.prs_kostensoort_key = mo.prs_kostensoort_key(+)
|
||
UNION ALL
|
||
SELECT bu.bgt_kostenrubriek_key
|
||
, 'F' soort
|
||
, 0 bgt_bedrag_exc
|
||
, 0 bgt_bedrag_btw
|
||
, 0 res_bedrag_exc
|
||
, 0 res_bedrag_btw
|
||
, 0 mut_bedrag_exc
|
||
, 0 mut_bedrag_btw
|
||
, NULL bgt_datum
|
||
, 0 cnt_bedrag_exc
|
||
, 0 cnt_bedrag_btw
|
||
, NULL cnt_datum
|
||
, COALESCE(fa.fin_factuur_totaal, 0) fin_bedrag_exc
|
||
, COALESCE(fa.fin_factuur_totaal_btw, 0) fin_bedrag_btw
|
||
, fa.fin_factuur_datum fin_datum
|
||
FROM bgt_budget bu
|
||
, mld_opdr op
|
||
, fin_factuur fa
|
||
WHERE fa.mld_opdr_key = op.mld_opdr_key
|
||
AND bu.prs_kostensoort_key = op.prs_kostensoort_key
|
||
) financieel
|
||
WHERE gegevens.bgt_kostenrubriek_key = financieel.bgt_kostenrubriek_key
|
||
AND prs_kostensoortgrp_key IS NULL
|
||
AND prs_kostensoort_key IS NULL
|
||
AND ins_discipline_verwijder IS NULL
|
||
AND bgt_project_verwijder IS NULL;
|
||
|
||
|
||
-- 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.pcode
|
||
, p.project
|
||
, p.projectnaam
|
||
, p.dcode
|
||
, p.subproject
|
||
, p.subprojectnaam
|
||
, b.prs_leverancier_nr
|
||
, b.prs_bedrijf_naam
|
||
, p.scode
|
||
, p.kostensoort
|
||
, p.versienummer
|
||
, p.kostencode
|
||
, 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_refiat
|
||
, CASE WHEN m.mld_statusopdr_key=10 THEN m.mld_opdr_kosten END raming
|
||
, CASE WHEN m.mld_statusopdr_key<>10 THEN m.mld_opdr_kosten END gecontracteerd
|
||
, m.mld_opdr_kosten_btw contract_btw
|
||
, f.fin_factuur_totaal
|
||
, f.fin_factuur_totaal_btw
|
||
, c.mld_statusopdr_oms
|
||
FROM mld_opdr m
|
||
, prs_bedrijf b
|
||
, bgt_v_project_full 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(+)
|
||
AND p.ins_discipline_verwijder IS NULL
|
||
AND p.bgt_project_verwijder IS NULL
|
||
ORDER BY b.prs_leverancier_nr
|
||
, p.scode
|
||
, m.mld_opdr_ordernr
|
||
, m.mld_opdr_bedrijfopdr_volgnr;
|
||
|
||
|
||
-- MMWINVCO
|
||
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.pcode
|
||
, p.project
|
||
, p.subproject
|
||
, p.versienummer
|
||
, b.prs_leverancier_nr
|
||
, b.prs_bedrijf_naam
|
||
, p.scode
|
||
, 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
|
||
, bgt_v_project_full 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(+)
|
||
AND p.ins_discipline_verwijder IS NULL
|
||
AND p.bgt_project_verwijder IS NULL
|
||
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 tp.ins_discipline_key
|
||
, tp.bgt_project_key
|
||
, tp.opdrachtgever
|
||
, tp.pcode
|
||
, tp.project
|
||
, tp.subproject
|
||
, tp.rcode
|
||
, tp.kostencode
|
||
, tp.versienummer
|
||
, b.prs_leverancier_nr
|
||
, f.fin_factuur_datum factuur_datum
|
||
, COALESCE(f.fin_factuur_advies, f.fin_factuur_datum) advies_datum
|
||
, o.mld_opdr_ordernr contractnummer
|
||
, o.mld_opdr_bedrijfopdr_volgnr volgnummer
|
||
, f.fin_factuur_nr factuur_nr
|
||
, f.fin_factuur_opmerking factuur_opmerking
|
||
, f.fin_factuur_totaal factuur_exc
|
||
, f.fin_factuur_totaal_btw factuur_btw
|
||
, f.fin_factuur_totaal + f.fin_factuur_totaal_btw factuur_inc
|
||
, TO_CHAR(f.fin_factuur_datum, 'dd-mm-yyyy') factuur_datum_p
|
||
, TO_CHAR(f.fin_factuur_datum, 'yyyy') factuur_datum_jaar
|
||
, TO_CHAR(f.fin_factuur_datum, 'mm') factuur_datum_maand
|
||
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'dd-mm-yyyy') factuur_advies_p
|
||
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'yyyy') factuur_advies_jaar
|
||
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'mm') factuur_advies_maand
|
||
FROM prs_bedrijf b
|
||
, fin_factuur f
|
||
, mld_opdr o
|
||
, bgt_v_project_full tp
|
||
WHERE f.mld_opdr_key(+) = o.mld_opdr_key
|
||
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
|
||
AND tp.prs_kostensoort_key = o.prs_kostensoort_key(+)
|
||
AND tp.ins_discipline_verwijder IS NULL
|
||
AND tp.bgt_project_verwijder IS NULL;
|
||
|
||
|
||
|
||
------ 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
|