TWYN#53903 Totaaloverzicht en Overzicht rubrieken deelproject 3 Stadhuis

svn path=/Customer/trunk/; revision=39016
This commit is contained in:
Erik Groener
2018-08-31 10:35:39 +00:00
parent 4148f90637
commit 44d5dda85b

View File

@@ -550,6 +550,150 @@ END;
-- --
-- --
-- --
CREATE OR REPLACE PACKAGE TWYN.twyn
AS
TYPE t_cursor IS REF CURSOR;
PROCEDURE twyn_v_budgettotaal ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2
);
END twyn;
/
CREATE OR REPLACE PACKAGE BODY TWYN.twyn
AS
PROCEDURE twyn_v_budgettotaal ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2
)
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_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 startdatum'
|| ' , ''' || p_datum_tot || ''' bgt_datum'
|| ' 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, ''AR'', 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 startdatum'
|| ' , ''' || p_datum_tot || ''' bgt_datum'
|| ' 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'
|| ' , startdatum'
|| ' , 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'
|| ' , startdatum'
|| ' , bgt_datum'
|| ' , bgt_kostenrubriek_key'
|| ' ORDER BY rcode';
OPEN p_cursor FOR 'SELECT * FROM '
|| '( SELECT * FROM (' || v_part_T || ')'
|| ')';
-- || p_where;
END;
END;
---
---
---
------ payload end ------ ------ payload end ------
SET DEFINE OFF SET DEFINE OFF