FSN#39055 BCS/2000 functionaliteit in FACILITOR - customization

svn path=/Database/trunk/; revision=34566
This commit is contained in:
Erik Groener
2017-07-07 11:16:59 +00:00
parent f498080962
commit 432751b821
4 changed files with 161 additions and 1 deletions

View File

@@ -3,7 +3,143 @@
* $Revision$
* $Id$
*/
CREATE OR REPLACE PACKAGE bgt
AS
FUNCTION getBudgetMutaties ( p_budget_key IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getBudgetOpDatum ( p_budget_key IN NUMBER
, p_datum DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getGefactureerd ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
FUNCTION getTefactureren ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER;
END bgt;
/
CREATE OR REPLACE PACKAGE BODY bgt
AS
FUNCTION getBudgetMutaties ( p_budget_key IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag_mut NUMBER;
BEGIN
v_bedrag_mut := 0;
BEGIN
SELECT COALESCE(SUM(mut.bedrag_van), 0)
INTO v_bedrag_mut
FROM (SELECT SUM(bgt_budget_bedrag_van) bedrag_van
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)
UNION
SELECT SUM(bgt_budget_bedrag_naar) bedrag_van
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)
) mut;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag_mut := 0;
END;
RETURN v_bedrag_mut;
END getBudgetMutaties;
FUNCTION getBudgetOpDatum ( p_budget_key IN NUMBER
, p_datum DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
v_mutatie NUMBER;
v_eindbedrag NUMBER;
BEGIN
v_bedrag := 0;
BEGIN
SELECT COALESCE(bgt_budget_bedrag, 0)
, BGT.getBudgetMutaties(bgt_budget_key, p_datum+1, NULL)
INTO v_eindbedrag
, v_mutatie
FROM bgt_budget
WHERE bgt_budget_key = p_budget_key;
v_bedrag := v_eindbedrag - v_mutatie;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := 0;
END;
RETURN v_bedrag;
END getBudgetOpDatum;
FUNCTION getGefactureerd ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
v_bedrag := 0;
BEGIN
SELECT CASE WHEN p_btw=0 THEN SUM(fin_factuur_totaal)
WHEN p_btw=1 THEN SUM(fin_factuur_totaal_btw)
WHEN p_btw=2 THEN SUM(fin_factuur_totaal) + SUM(fin_factuur_totaal_btw)
END facturen
INTO v_bedrag
FROM fin_factuur
WHERE ((p_datum_van IS NOT NULL AND fin_factuur_datum >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND fin_factuur_datum < p_datum_tot) OR p_datum_tot IS NULL)
AND mld_opdr_key = p_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := 0;
END;
RETURN v_bedrag;
END getGefactureerd;
FUNCTION getTefactureren ( p_mld_opdr_key IN NUMBER
, p_btw IN NUMBER
, p_datum_van DATE DEFAULT NULL
, p_datum_tot DATE DEFAULT NULL
) RETURN NUMBER
IS
v_bedrag NUMBER;
BEGIN
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
v_bedrag := 0;
BEGIN
SELECT CASE WHEN p_btw=0 THEN COALESCE(MAX(o.mld_opdr_kosten), 0) - SUM(f.fin_factuur_totaal)
WHEN p_btw=1 THEN COALESCE(MAX(o.mld_opdr_kosten_btw), 0) - SUM(f.fin_factuur_totaal_btw)
WHEN p_btw=2 THEN COALESCE(MAX(o.mld_opdr_kosten), 0) + COALESCE(MAX(o.mld_opdr_kosten_btw), 0) - SUM(f.fin_factuur_totaal) - SUM(f.fin_factuur_totaal_btw)
END tefactureren
INTO v_bedrag
FROM fin_factuur f
, mld_opdr o
WHERE o.mld_opdr_key = f.mld_opdr_key(+)
AND ((p_datum_van IS NOT NULL AND fin_factuur_datum >= p_datum_van) OR p_datum_van IS NULL)
AND ((p_datum_tot IS NOT NULL AND fin_factuur_datum < p_datum_tot) OR p_datum_tot IS NULL)
AND o.mld_opdr_key = p_mld_opdr_key;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_bedrag := 0;
END;
RETURN v_bedrag;
END getTefactureren;
END bgt;
/
REGISTERRUN('$Id$')

View File

@@ -42,7 +42,10 @@ CREATE_TABLE(bgt_project, 0)
bgt_project_aanmaak
DATE DEFAULT SYSDATE,
bgt_project_verwijder
DATE
DATE,
prs_kostenplaats_key
NUMBER (10)
CONSTRAINT bgt_r_prs_kostenplaats_key1 REFERENCES prs_kostenplaats (prs_kostenplaats_key)
);
ALTER TABLE prs_kostenplaatsgrp ADD bgt_project_key NUMBER(10) CONSTRAINT prs_r_bgt_project_key2 REFERENCES bgt_project (bgt_project_key);