From 44d5dda85be88c31949cd772b0a42e4c07c2d4fb Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Fri, 31 Aug 2018 10:35:39 +0000 Subject: [PATCH] TWYN#53903 Totaaloverzicht en Overzicht rubrieken deelproject 3 Stadhuis svn path=/Customer/trunk/; revision=39016 --- TWYN/twyn_pac.sql | 144 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/TWYN/twyn_pac.sql b/TWYN/twyn_pac.sql index ed8ce3652..f065627e5 100644 --- a/TWYN/twyn_pac.sql +++ b/TWYN/twyn_pac.sql @@ -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 ------ SET DEFINE OFF