TWYN#57971 rapporten inclusief btw

svn path=/Customer/; revision=42950
This commit is contained in:
Erik Groener
2019-06-13 09:38:49 +00:00
parent 2f73b1b23c
commit 3385df6e3d

599
onces/TWYN/TWYN#57971.sql Normal file
View File

@@ -0,0 +1,599 @@
--
-- $Id$
--
-- Script bevat wijzigingen in views die noodzakelijk zijn voor de rapportages inclusief btw voor versie 2019.1
DEFINE thisfile = 'TWYN#57971.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 ------
--=============================================================================
-- RAPPORTAGES
-------------------------------------------------------------------------------
-- CONT_RUB
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
, COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr
, 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
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 1)) facturen_btw
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 o.mld_statusopdr_key <> 10 -- ter goedkeuring (=raming) hier niet in meenemen
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_bedrijfopdr_volgnr
, o.mld_opdr_datumbegin
ORDER BY tp.rcode
, tp.gcode
, tp.scode
, b.prs_leverancier_nr
, TO_NUMBER(o.mld_opdr_ordernr)
, o.mld_opdr_bedrijfopdr_volgnr;
-- 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
, COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr
, o.mld_opdr_id kenmerk
, o.mld_opdr_omschrijving
, COALESCE(kp.prs_kostenplaats_nr, ' ') accountcode
, COALESCE(kp.prs_kostenplaats_omschrijving, 'zonder account') 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
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 1)) fin_factuur_totaal_btw
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_bedrijfopdr_volgnr
, 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
, o.mld_opdr_bedrijfopdr_volgnr;
CREATE OR REPLACE PACKAGE twyn
AS
TYPE t_cursor IS REF CURSOR;
PROCEDURE twyn_v_detailoverzicht ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
PROCEDURE twyn_v_contract_rubriek ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
PROCEDURE twyn_v_contr_fact_bedrijf ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
PROCEDURE twyn_v_factuur_datum ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
END twyn;
/
CREATE OR REPLACE PACKAGE BODY twyn
AS
PROCEDURE twyn_v_detailoverzicht ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_part_A VARCHAR2(32767);
v_part_B VARCHAR2(32767);
v_part_W VARCHAR2(32767);
v_part_T VARCHAR2(32767);
v_part_L VARCHAR2(32767);
v_where VARCHAR2(32767);
BEGIN
v_datum_van := TO_DATE(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := TO_DATE(p_datum_tot, 'dd-mm-yyyy');
v_part_W := SUBSTR(p_where, INSTR(p_where, 'WHERE')+6);
v_where := CASE WHEN v_part_W IS NOT NULL THEN 'AND ' || v_part_W ELSE '' END;
v_part_A := 'SELECT f.*'
|| ' , 0 budget_origineel_exc'
|| ' , 0 budget_origineel_btw'
|| ' , 0 budget_actueel_exc'
|| ' , 0 budget_actueel_btw'
|| ' , 0 budget_reserve_exc'
|| ' , 0 budget_reserve_btw'
|| ' , 0 budget_mutatie_exc'
|| ' , 0 budget_mutatie_btw'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) gecontracteerd_exc'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 1, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) gecontracteerd_btw'
|| ' , BGT.getGefactureerd (o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) gefactureerd_exc'
|| ' , BGT.getGefactureerd (o.mld_opdr_key, 1, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) gefactureerd_btw'
|| ' , p.startdatum_p'
|| ' , ''' || p_datum_tot || ''' bgt_datum'
|| ' , o.mld_opdr_key'
|| ' FROM bgt_v_project_full f'
|| ' , bgt_budget b'
|| ' , twyn_v_bgt_projectdatum p'
|| ' , mld_opdr o'
|| ' WHERE ( f.prs_kostensoort_key = b.prs_kostensoort_key'
|| ' OR ( f.bgt_kostenrubriek_key = b.bgt_kostenrubriek_key'
|| ' AND b.prs_kostensoort_key IS NULL'
|| ' )'
|| ' )'
|| ' AND f.bgt_project_key = p.bgt_project_key'
|| ' AND f.prs_kostensoort_key = o.prs_kostensoort_key'
|| ' AND f.ins_discipline_verwijder IS NULL'
|| ' AND f.bgt_project_verwijder IS NULL'
|| ' '|| v_where;
v_part_B := 'SELECT f.*'
|| ' , BGT.getBudgetOpDatum(b.bgt_budget_key, 0, null) budget_origineel_exc'
|| ' , BGT.getBudgetOpDatum(b.bgt_budget_key, 1, null) budget_origineel_btw'
|| ' , BGT.getBudgetOpDatum(b.bgt_budget_key, 0, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_actueel_exc'
|| ' , BGT.getBudgetOpDatum(b.bgt_budget_key, 1, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_actueel_btw'
|| ' , BGT.getBudgetSoortMutatie(b.bgt_kostenrubriek_key, b.prs_kostensoortgrp_key, b.prs_kostensoort_key, 0, ''ARW'', to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_reserve_exc'
|| ' , BGT.getBudgetSoortMutatie(b.bgt_kostenrubriek_key, b.prs_kostensoortgrp_key, b.prs_kostensoort_key, 1, '''', to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_reserve_btw'
|| ' , BGT.getBudgetSoortMutatie(b.bgt_kostenrubriek_key, b.prs_kostensoortgrp_key, b.prs_kostensoort_key, 0, ''EM'', to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_mutatie_exc'
|| ' , BGT.getBudgetSoortMutatie(b.bgt_kostenrubriek_key, b.prs_kostensoortgrp_key, b.prs_kostensoort_key, 1, ''EM'', to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) budget_mutatie_btw'
|| ' , 0 gecontracteerd_exc'
|| ' , 0 gecontracteerd_btw'
|| ' , 0 gefactureerd_exc'
|| ' , 0 gefactureerd_btw'
|| ' , p.startdatum_p'
|| ' , ''' || p_datum_tot || ''' bgt_datum'
|| ' , null mld_opdr_key'
|| ' FROM bgt_v_project_full f'
|| ' , bgt_budget b'
|| ' , twyn_v_bgt_projectdatum p'
|| ' WHERE ( f.prs_kostensoort_key = b.prs_kostensoort_key'
|| ' OR ( f.bgt_kostenrubriek_key = b.bgt_kostenrubriek_key'
|| ' AND b.prs_kostensoort_key IS NULL'
|| ' )'
|| ' )'
|| ' AND f.bgt_project_key = p.bgt_project_key'
|| ' AND f.ins_discipline_verwijder IS NULL'
|| ' AND f.bgt_project_verwijder IS NULL'
|| ' '|| v_where;
v_part_T := 'SELECT opdrachtgever'
|| ' , pcode'
|| ' , project'
|| ' , projectnaam'
|| ' , dcode'
|| ' , subproject'
|| ' , subprojectnaam'
|| ' , rcode'
|| ' , kostenrubriek'
|| ' , gcode'
|| ' , kostengroep'
|| ' , scode'
|| ' , kostensoort'
|| ' , startdatum_p'
|| ' , bgt_datum'
|| ' , bgt_kostenrubriek_key'
|| ' , sum(budget_origineel_exc) org_bedrag_exc'
|| ' , sum(budget_origineel_btw) org_bedrag_btw'
|| ' , sum(budget_actueel_exc) bgt_bedrag_exc'
|| ' , sum(budget_actueel_btw) bgt_bedrag_btw'
|| ' , sum(budget_reserve_exc) res_bedrag_exc'
|| ' , sum(budget_reserve_btw) res_bedrag_btw'
|| ' , sum(budget_mutatie_exc) mut_bedrag_exc'
|| ' , sum(budget_mutatie_btw) mut_bedrag_btw'
|| ' , sum(gecontracteerd_exc) cnt_bedrag_exc'
|| ' , sum(gecontracteerd_btw) cnt_bedrag_btw'
|| ' , sum(gefactureerd_exc) fin_bedrag_exc'
|| ' , sum(gefactureerd_btw) fin_bedrag_btw'
|| ' FROM (' || v_part_A || ' UNION ' || v_part_B || ')'
|| ' GROUP BY opdrachtgever'
|| ' , pcode'
|| ' , project'
|| ' , projectnaam'
|| ' , dcode'
|| ' , subproject'
|| ' , subprojectnaam'
|| ' , rcode'
|| ' , kostenrubriek'
|| ' , gcode'
|| ' , kostengroep'
|| ' , scode'
|| ' , kostensoort'
|| ' , startdatum_p'
|| ' , bgt_datum'
|| ' , bgt_kostenrubriek_key'
|| ' ORDER BY rcode';
v_part_L := 'SELECT x.*'
|| ' , CASE WHEN scode IS NOT NULL'
|| ' AND org_bedrag_exc = 0'
|| ' AND org_bedrag_btw = 0'
|| ' AND bgt_bedrag_exc = 0'
|| ' AND bgt_bedrag_btw = 0'
|| ' AND res_bedrag_exc = 0'
|| ' AND res_bedrag_btw = 0'
|| ' AND mut_bedrag_exc = 0'
|| ' AND mut_bedrag_btw = 0'
|| ' AND cnt_bedrag_exc = 0'
|| ' AND cnt_bedrag_btw = 0'
|| ' AND fin_bedrag_exc = 0'
|| ' AND fin_bedrag_btw = 0'
|| ' THEN 1'
|| ' ELSE 0'
|| ' END is_leeg'
|| ' FROM (' || v_part_T || ') x';
OPEN p_cursor FOR 'SELECT * FROM '
|| '( SELECT * FROM (' || v_part_L || ')'
|| ')';
END;
PROCEDURE twyn_v_contract_rubriek ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2 -- eigenlijk: tot-en-met
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_part_W VARCHAR2(32767);
v_part_T VARCHAR2(32767);
v_where VARCHAR2(32767);
BEGIN
v_datum_van := TO_DATE(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := TO_DATE(p_datum_tot, 'dd-mm-yyyy');
v_part_W := SUBSTR(p_where, INSTR(p_where, 'WHERE')+6);
v_where := CASE WHEN v_part_W IS NOT NULL THEN 'AND ' || v_part_W ELSE '' END;
v_part_T := '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.kostencode'
|| ' , tp.kostennaam'
|| ' , b.prs_leverancier_nr'
|| ' , o.mld_opdr_ordernr'
|| ' , COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr'
|| ' , o.mld_opdr_meerwerk mld_opdr_meerwerk'
|| ' , o.mld_opdr_id kenmerk'
|| ' , o.mld_opdr_omschrijving mld_opdr_omschrijving'
|| ' , kp.prs_kostenplaats_nr accountcode'
|| ' , kp.prs_kostenplaats_omschrijving account'
|| ' , TO_CHAR (o.mld_opdr_datumbegin, ''DD-MM-YYYY'') datum_p'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) kosten'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 1, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) btw'
|| ' , BGT.getGefactureerd (o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) facturen'
|| ' , BGT.getGefactureerd (o.mld_opdr_key, 1, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) facturen_btw'
|| ' , p.startdatum_p'
|| ' FROM bgt_v_project_full tp'
|| ' , prs_kostenplaats kp'
|| ' , mld_opdr o'
|| ' , prs_bedrijf b'
|| ' , twyn_v_bgt_projectdatum p'
|| ' 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 o.mld_statusopdr_key <> 10' -- ter goedkeuring (=raming) hier niet in meenemen
|| ' AND tp.bgt_project_key = p.bgt_project_key'
|| ' AND tp.ins_discipline_verwijder IS NULL'
|| ' AND tp.bgt_project_verwijder IS NULL'
|| ' AND ( ( mld_opdr_datumbegin <= to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')'
|| ' AND COALESCE(BGT.getGefactureerd(o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')), 0) = 0'
|| ' )'
|| ' OR (COALESCE(BGT.getGefactureerd(o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')), 0) <> 0)'
|| ' )'
|| ' '|| v_where;
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
PROCEDURE twyn_v_contr_fact_bedrijf ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_part_D VARCHAR2(32767);
v_part_W VARCHAR2(32767);
v_part_T VARCHAR2(32767);
v_where VARCHAR2(32767);
BEGIN
v_datum_van := TO_DATE(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := TO_DATE(p_datum_tot, 'dd-mm-yyyy');
v_part_W := SUBSTR(p_where, INSTR(p_where, 'WHERE')+6);
v_where := CASE WHEN v_part_W IS NOT NULL
THEN 'AND ' || v_part_W
ELSE ''
END
|| CASE WHEN p_datum_van IS NOT NULL
THEN ' AND o.mld_opdr_datumbegin >= TO_DATE('''|| p_datum_van ||''', ''dd-mm-yyyy'')'
ELSE ''
END
|| CASE WHEN p_datum_tot IS NOT NULL
THEN ' AND o.mld_opdr_datumbegin <= TO_DATE('''|| p_datum_tot ||''', ''dd-mm-yyyy'')'
ELSE ''
END;
v_part_D := CASE WHEN p_datum_van IS NOT NULL
THEN ' AND fx.fin_factuur_advies >= TO_DATE('''|| p_datum_van ||''', ''dd-mm-yyyy'')'
ELSE ''
END
|| CASE WHEN p_datum_tot IS NOT NULL
THEN ' AND fx.fin_factuur_advies <= TO_DATE('''|| p_datum_tot ||''', ''dd-mm-yyyy'')'
END;
v_part_T := 'SELECT tp.opdrachtgever'
|| ' , tp.pcode'
|| ' , tp.project'
|| ' , tp.subproject'
|| ' , tp.rcode'
|| ' , tp.kostenrubriek'
|| ' , tp.kostengroep'
|| ' , tp.scode'
|| ' , tp.kostensoort'
|| ' , b.prs_bedrijf_naam'
|| ' , b.prs_leverancier_nr'
|| ' , o.mld_opdr_ordernr'
|| ' , COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr'
|| ' , o.mld_opdr_id kenmerk'
|| ' , o.mld_opdr_omschrijving'
|| ' , COALESCE(kp.prs_kostenplaats_nr, '' '') accountcode'
|| ' , COALESCE(kp.prs_kostenplaats_omschrijving, ''zonder account'') account'
|| ' , o.mld_opdr_kosten'
|| ' , o.mld_opdr_kosten_btw'
|| ' , o.mld_opdr_meerwerk'
|| ' , CASE WHEN fin_factuur_key IS NULL'
|| ' THEN 1'
|| ' WHEN (SELECT MIN(fc.fin_factuur_key)'
|| ' FROM fin_factuur fc'
|| ' WHERE fc.mld_opdr_key = f.mld_opdr_key) = f.fin_factuur_key'
|| ' THEN 1'
|| ' ELSE 0'
|| ' END contractwaarde'
|| ' , f.fin_factuur_nr'
|| ' , f.fin_factuur_opmerking'
|| ' , f.fin_factuur_totaal'
|| ' , f.fin_factuur_totaal_btw'
|| ' , o.mld_opdr_datumbegin contractdatum'
|| ' , 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'
|| ' , p.startdatum_p'
|| ' FROM (SELECT *'
|| ' FROM fin_factuur fx'
|| ' WHERE (1=1)'
|| ' '|| v_part_D
|| ' ) f'
|| ' , mld_opdr o'
|| ' , prs_bedrijf b'
|| ' , prs_kostenplaats kp'
|| ' , bgt_v_project_full tp'
|| ' , twyn_v_bgt_projectdatum p'
|| ' WHERE o.mld_opdr_key = f.mld_opdr_key(+)'
|| ' AND 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 o.mld_statusopdr_key <> 10'
|| ' AND tp.bgt_project_key = p.bgt_project_key'
|| ' AND tp.ins_discipline_verwijder IS NULL'
|| ' AND tp.bgt_project_verwijder IS NULL'
|| ' '|| v_where;
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
PROCEDURE twyn_v_factuur_datum ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
)
AS
-- Dit is een voorbereiding op #53761 Dashboard budgetbewaking
-- waarin ook een cumulatief factuurbedrag nodig is.
v_datum_van DATE;
v_datum_tot DATE;
v_part_W VARCHAR2(32767);
v_part_T VARCHAR2(32767);
v_where VARCHAR2(32767);
BEGIN
v_datum_van := TO_DATE(p_datum_van, 'dd-mm-yyyy');
v_datum_tot := TO_DATE(p_datum_tot, 'dd-mm-yyyy');
v_part_W := SUBSTR(p_where, INSTR(p_where, 'WHERE')+6);
v_where := CASE WHEN v_part_W IS NOT NULL
THEN 'AND ' || v_part_W
ELSE ''
END
|| CASE WHEN p_datum_van IS NOT NULL
THEN ' AND twyn_v_factuur_datum.factuur_datum >= TO_DATE('''|| p_datum_van ||''', ''dd-mm-yyyy'')'
ELSE ''
END
|| CASE WHEN p_datum_tot IS NOT NULL
THEN ' AND twyn_v_factuur_datum.factuur_datum <= TO_DATE('''|| p_datum_tot ||''', ''dd-mm-yyyy'')'
ELSE ''
END;
v_part_T := 'SELECT factuur_datum'
|| ' , factuur_inc'
|| ' , COALESCE( SUM(factuur_inc) OVER (ORDER BY factuur_datum), 0) cumulatief'
|| ' FROM (SELECT TO_CHAR(factuur_datum, ''YYYY-MM'') AS factuur_datum'
|| ' , SUM(factuur_inc) AS factuur_inc'
|| ' FROM twyn_v_factuur_datum'
|| ' WHERE 1=1'
|| ' '|| v_where
|| ' GROUP BY TO_CHAR(factuur_datum, ''YYYY-MM'') '
|| ' ORDER BY 1, 2'
|| ' )';
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile