TWYN#52401 Rapport meer- en minderwerk MMW_CONT
svn path=/Database/trunk/; revision=37319
This commit is contained in:
115
BGT/BGT_PAC.SRC
115
BGT/BGT_PAC.SRC
@@ -27,11 +27,23 @@ AS
|
||||
) RETURN NUMBER;
|
||||
FUNCTION getSoortMutatie ( p_mutatie_key IN NUMBER
|
||||
) RETURN VARCHAR2;
|
||||
FUNCTION getGecontracteerd( p_kostensoort_key IN NUMBER
|
||||
FUNCTION getContractwaarde( p_srtkey IN VARCHAR2
|
||||
, p_key IN NUMBER
|
||||
, p_btw IN NUMBER
|
||||
, p_status NUMBER DEFAULT 3
|
||||
, p_datum_van DATE DEFAULT NULL
|
||||
, p_datum_tot DATE DEFAULT NULL
|
||||
) RETURN NUMBER;
|
||||
FUNCTION getRaming ( 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 getGecontracteerd ( 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 getGefactureerdSoort( p_kostensoort_key IN NUMBER
|
||||
, p_btw IN NUMBER
|
||||
) RETURN NUMBER;
|
||||
@@ -299,7 +311,53 @@ AS
|
||||
RETURN v_soort_mutatie;
|
||||
END getSoortMutatie;
|
||||
|
||||
FUNCTION getGecontracteerd( p_kostensoort_key IN NUMBER
|
||||
FUNCTION getContractwaarde( p_srtkey IN VARCHAR2
|
||||
, p_key IN NUMBER
|
||||
, p_btw IN NUMBER
|
||||
, p_status NUMBER DEFAULT 3
|
||||
, p_datum_van DATE DEFAULT NULL
|
||||
, p_datum_tot DATE DEFAULT NULL
|
||||
) RETURN NUMBER
|
||||
IS
|
||||
v_bedrag NUMBER;
|
||||
BEGIN
|
||||
-- p_srtkey: SRT=prs_kostensoort_key, OPDR=mld_opdr_key.
|
||||
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
||||
-- p_status: 1=raming, 2=gecontracteerd, 3=alles.
|
||||
BEGIN
|
||||
SELECT CASE WHEN p_btw=0 THEN SUM(COALESCE(mld_opdr_kosten, 0))
|
||||
WHEN p_btw=1 THEN SUM(COALESCE(mld_opdr_kosten_btw, 0))
|
||||
WHEN p_btw=2 THEN SUM(COALESCE(mld_opdr_kosten, 0)) + SUM(COALESCE(mld_opdr_kosten_btw, 0))
|
||||
END contracten
|
||||
INTO v_bedrag
|
||||
FROM mld_opdr
|
||||
WHERE p_key = DECODE(p_srtkey, 'SRT', prs_kostensoort_key, 'OPDR', mld_opdr_key)
|
||||
AND ( (p_status = 1 AND mld_statusopdr_key = 10)
|
||||
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);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_bedrag := NULL;
|
||||
END;
|
||||
RETURN v_bedrag;
|
||||
END getContractwaarde;
|
||||
|
||||
FUNCTION getRaming( 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
|
||||
v_bedrag := BGT.getContractwaarde('OPDR', p_mld_opdr_key, p_btw, 1, p_datum_van, p_datum_tot);
|
||||
RETURN v_bedrag;
|
||||
END getRaming;
|
||||
|
||||
FUNCTION getGecontracteerd( p_mld_opdr_key IN NUMBER
|
||||
, p_btw IN NUMBER
|
||||
, p_datum_van DATE DEFAULT NULL
|
||||
, p_datum_tot DATE DEFAULT NULL
|
||||
@@ -307,21 +365,7 @@ AS
|
||||
IS
|
||||
v_bedrag NUMBER;
|
||||
BEGIN
|
||||
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
||||
BEGIN
|
||||
SELECT CASE WHEN p_btw=0 THEN SUM(mld_opdr_kosten)
|
||||
WHEN p_btw=1 THEN SUM(mld_opdr_kosten_btw)
|
||||
WHEN p_btw=2 THEN SUM(mld_opdr_kosten) + SUM(mld_opdr_kosten_btw)
|
||||
END contracten
|
||||
INTO v_bedrag
|
||||
FROM mld_opdr
|
||||
WHERE prs_kostensoort_key = p_kostensoort_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);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
v_bedrag := NULL;
|
||||
END;
|
||||
v_bedrag := BGT.getContractwaarde('OPDR', p_mld_opdr_key, p_btw, 2, p_datum_van, p_datum_tot);
|
||||
RETURN v_bedrag;
|
||||
END getGecontracteerd;
|
||||
|
||||
@@ -354,9 +398,9 @@ AS
|
||||
-- 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)
|
||||
SELECT CASE WHEN p_btw=0 THEN SUM(COALESCE(fin_factuur_totaal, 0))
|
||||
WHEN p_btw=1 THEN SUM(COALESCE(fin_factuur_totaal_btw, 0))
|
||||
WHEN p_btw=2 THEN SUM(COALESCE(fin_factuur_totaal, 0)) + SUM(COALESCE(fin_factuur_totaal_btw, 0))
|
||||
END facturen
|
||||
INTO v_bedrag
|
||||
FROM fin_factuur
|
||||
@@ -376,27 +420,24 @@ AS
|
||||
, p_datum_tot DATE DEFAULT NULL
|
||||
) RETURN NUMBER
|
||||
IS
|
||||
v_bedrag NUMBER;
|
||||
v_statusopdr NUMBER;
|
||||
v_cont NUMBER;
|
||||
v_fact NUMBER;
|
||||
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(COALESCE(f.fin_factuur_totaal, 0))
|
||||
WHEN p_btw=1 THEN COALESCE(MAX(o.mld_opdr_kosten_btw), 0) - SUM(COALESCE(f.fin_factuur_totaal_btw, 0))
|
||||
WHEN p_btw=2 THEN COALESCE(MAX(o.mld_opdr_kosten), 0) + MAX(COALESCE(o.mld_opdr_kosten_btw, 0))
|
||||
- SUM(COALESCE(f.fin_factuur_totaal, 0))
|
||||
- SUM(COALESCE(f.fin_factuur_totaal_btw, 0))
|
||||
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;
|
||||
SELECT NVL(mld_statusopdr_key, 0)
|
||||
INTO v_statusopdr
|
||||
FROM mld_opdr
|
||||
WHERE mld_opdr_key = p_mld_opdr_key;
|
||||
--
|
||||
IF (v_statusopdr <> 10) THEN
|
||||
v_cont := getGecontracteerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
|
||||
v_fact := getGefactureerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
|
||||
v_bedrag := COALESCE(v_cont, 0) - COALESCE(v_fact, 0);
|
||||
END IF;
|
||||
END;
|
||||
RETURN v_bedrag;
|
||||
END getTefactureren;
|
||||
|
||||
Reference in New Issue
Block a user