TWYN#55604 Verschil in cijfers meer en minderwerk

svn path=/Database/branches/DB35/; revision=40191
This commit is contained in:
Erik Groener
2018-12-12 10:09:28 +00:00
parent 153a57e25d
commit 0c31fcbf5e

View File

@@ -71,7 +71,7 @@ AS
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
BEGIN
SELECT SUM(bedrag_mutatie)
SELECT COALESCE(SUM(bedrag_mutatie), 0)
INTO v_bedrag_mut
FROM (SELECT bgt_budgetmutatie_key
, bgt_budget_key_van budget_key
@@ -111,23 +111,23 @@ AS
BEGIN
SELECT COALESCE(SUM(mut.bedrag_mutaties), 0)
INTO v_bedrag_mut
FROM (SELECT CASE WHEN p_btw=0 THEN SUM(bgt_budget_bedrag_van)
WHEN p_btw=1 THEN SUM(bgt_budget_btwbedrag_van)
WHEN p_btw=2 THEN SUM(bgt_budget_bedrag_van) + SUM(bgt_budget_btwbedrag_van)
FROM (SELECT CASE WHEN p_btw=0 THEN COALESCE(SUM(bgt_budget_bedrag_van), 0)
WHEN p_btw=1 THEN COALESCE(SUM(bgt_budget_btwbedrag_van), 0)
WHEN p_btw=2 THEN COALESCE(SUM(bgt_budget_bedrag_van), 0) + COALESCE(SUM(bgt_budget_btwbedrag_van), 0)
END bedrag_mutaties
FROM bgt_budgetmutatie
WHERE bgt_budget_key_van = p_budget_key
AND ((p_datum_van IS NOT NULL AND bgt_budgetmutatie_datum >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND bgt_budgetmutatie_datum <= p_datum_tot) OR p_datum_tot IS NULL)
AND ((p_datum_van IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) <= p_datum_tot) OR p_datum_tot IS NULL)
UNION
SELECT CASE WHEN p_btw=0 THEN SUM(bgt_budget_bedrag_naar)
WHEN p_btw=1 THEN SUM(bgt_budget_btwbedrag_naar)
WHEN p_btw=2 THEN SUM(bgt_budget_bedrag_naar) + SUM(bgt_budget_btwbedrag_naar)
SELECT CASE WHEN p_btw=0 THEN COALESCE(SUM(bgt_budget_bedrag_naar), 0)
WHEN p_btw=1 THEN COALESCE(SUM(bgt_budget_btwbedrag_naar), 0)
WHEN p_btw=2 THEN COALESCE(SUM(bgt_budget_bedrag_naar), 0) + COALESCE(SUM(bgt_budget_btwbedrag_naar), 0)
END bedrag_mutaties
FROM bgt_budgetmutatie
WHERE bgt_budget_key_naar = p_budget_key
AND ((p_datum_van IS NOT NULL AND bgt_budgetmutatie_datum >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND bgt_budgetmutatie_datum <= p_datum_tot) OR p_datum_tot IS NULL)
AND ((p_datum_van IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(bgt_budgetmutatie_datum) <= p_datum_tot) OR p_datum_tot IS NULL)
) mut;
EXCEPTION
WHEN NO_DATA_FOUND THEN
@@ -151,9 +151,9 @@ AS
WHEN p_btw=1 THEN COALESCE(bgt_budget_btwbedrag, 0)
WHEN p_btw=2 THEN COALESCE(bgt_budget_bedrag, 0) + COALESCE(bgt_budget_btwbedrag, 0)
END huidig_budget
, CASE WHEN p_btw=0 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum, NULL)
WHEN p_btw=1 THEN BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum, NULL)
WHEN p_btw=2 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum, NULL) + BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum, NULL)
, CASE WHEN p_btw=0 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum+1, NULL)
WHEN p_btw=1 THEN BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum+1, NULL)
WHEN p_btw=2 THEN BGT.getBudgetMutaties(bgt_budget_key, 0, p_datum+1, NULL) + BGT.getBudgetMutaties(bgt_budget_key, 1, p_datum+1, NULL)
END mutaties
INTO v_huidig_budget
, v_mutatie
@@ -180,7 +180,7 @@ AS
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
BEGIN
SELECT SUM(bgt_mutatie_bedrag) bgt_mutatie_bedrag
SELECT COALESCE(SUM(bgt_mutatie_bedrag), 0) bgt_mutatie_bedrag
INTO v_bedrag
FROM ( SELECT b.bgt_kostenrubriek_key
, b.prs_kostensoortgrp_key
@@ -218,7 +218,7 @@ AS
OR (p_kostenrubriek_key IS NULL AND p_kostensoortgrp_key IS NOT NULL AND p_kostensoort_key IS NULL AND prs_kostensoortgrp_key = p_kostensoortgrp_key AND prs_kostensoort_key IS NULL)
OR (p_kostenrubriek_key IS NULL AND p_kostensoortgrp_key IS NULL AND p_kostensoort_key IS NOT NULL AND prs_kostensoort_key = p_kostensoort_key)
)
AND (bgt_budgetmutatie_datum < p_datum OR p_datum IS NULL);
AND (TRUNC(bgt_budgetmutatie_datum) <= p_datum OR p_datum IS NULL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := NULL;
@@ -233,6 +233,7 @@ AS
v_budget_naar bgt_budgetmutatie.bgt_budget_key_naar%TYPE;
v_mutatie_omschrijving bgt_budgetmutatie.bgt_budgetmutatie_omschrijving%TYPE;
v_mutatie_reserve bgt_budgetmutatie.bgt_budgetmutatie_reserve%TYPE;
v_mutatie_code bgt_budgetmutatie.bgt_budgetmutatie_code%TYPE;
v_mutatie_level_van VARCHAR2(1);
v_mutatie_level_naar VARCHAR2(1);
v_soort_mutatie VARCHAR2(1);
@@ -243,6 +244,7 @@ AS
, m.bgt_budget_key_naar
, m.bgt_budgetmutatie_omschrijving
, m.bgt_budgetmutatie_reserve
, m.bgt_budgetmutatie_code
, CASE WHEN bv.prs_kostensoort_key IS NOT NULL
THEN 'S'
ELSE CASE WHEN bv.prs_kostensoortgrp_key IS NOT NULL
@@ -268,6 +270,7 @@ AS
, v_budget_naar
, v_mutatie_omschrijving
, v_mutatie_reserve
, v_mutatie_code
, v_mutatie_level_van
, v_mutatie_level_naar
, v_budget_isreserve
@@ -281,12 +284,17 @@ AS
-- Mutatie van-naar reserve (tussen algemeenreserve en kostensoort of kostenrubriek en kostensoort)
-- (Is dus allebei tussen kostenrubriek en kostensoort).
-- Maak nog onderscheid tussen automatische overboeking A (correctie van budget tgv meer gecontracteerd dan budget)
-- en een gewone mutatie van/naar reserve.
-- overboeking wegens meer-minderwerk W
-- en een gewone mutatie van/naar reserve.
IF ( (v_mutatie_level_van = 'R')
OR (v_mutatie_level_naar = 'R')
) THEN
IF (v_mutatie_reserve = 1) THEN -- 'AO Automatische overboeking'
v_soort_mutatie := 'A';
IF (v_mutatie_code = 'W') THEN
v_soort_mutatie := 'W';
ELSE
v_soort_mutatie := 'A';
END IF;
ELSE
v_soort_mutatie := 'R';
END IF;
@@ -337,8 +345,8 @@ AS
OR (p_status = 2 AND mld_statusopdr_key <> 10)
OR (p_status = 3 AND mld_statusopdr_key = mld_statusopdr_key)
)
AND ((p_datum_van IS NOT NULL AND mld_opdr_datumbegin >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND mld_opdr_datumbegin <= p_datum_tot) OR p_datum_tot IS NULL);
AND ((p_datum_van IS NOT NULL AND TRUNC(mld_opdr_datumbegin) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(mld_opdr_datumbegin) <= p_datum_tot) OR p_datum_tot IS NULL);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := NULL;
@@ -405,8 +413,8 @@ AS
END facturen
INTO v_bedrag
FROM fin_factuur
WHERE ((p_datum_van IS NOT NULL AND fin_factuur_advies >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND fin_factuur_advies <= p_datum_tot) OR p_datum_tot IS NULL)
WHERE ((p_datum_van IS NOT NULL AND TRUNC(fin_factuur_advies) >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND TRUNC(fin_factuur_advies) <= p_datum_tot) OR p_datum_tot IS NULL)
AND mld_opdr_key = p_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN