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;
|
) RETURN NUMBER;
|
||||||
FUNCTION getSoortMutatie ( p_mutatie_key IN NUMBER
|
FUNCTION getSoortMutatie ( p_mutatie_key IN NUMBER
|
||||||
) RETURN VARCHAR2;
|
) RETURN VARCHAR2;
|
||||||
FUNCTION getGecontracteerd( p_kostensoort_key IN NUMBER
|
FUNCTION getContractwaarde( p_srtkey IN VARCHAR2
|
||||||
|
, p_key IN NUMBER
|
||||||
, p_btw IN NUMBER
|
, p_btw IN NUMBER
|
||||||
|
, p_status NUMBER DEFAULT 3
|
||||||
, p_datum_van DATE DEFAULT NULL
|
, p_datum_van DATE DEFAULT NULL
|
||||||
, p_datum_tot DATE DEFAULT NULL
|
, p_datum_tot DATE DEFAULT NULL
|
||||||
) RETURN NUMBER;
|
) 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
|
FUNCTION getGefactureerdSoort( p_kostensoort_key IN NUMBER
|
||||||
, p_btw IN NUMBER
|
, p_btw IN NUMBER
|
||||||
) RETURN NUMBER;
|
) RETURN NUMBER;
|
||||||
@@ -299,7 +311,53 @@ AS
|
|||||||
RETURN v_soort_mutatie;
|
RETURN v_soort_mutatie;
|
||||||
END getSoortMutatie;
|
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_btw IN NUMBER
|
||||||
, p_datum_van DATE DEFAULT NULL
|
, p_datum_van DATE DEFAULT NULL
|
||||||
, p_datum_tot DATE DEFAULT NULL
|
, p_datum_tot DATE DEFAULT NULL
|
||||||
@@ -307,21 +365,7 @@ AS
|
|||||||
IS
|
IS
|
||||||
v_bedrag NUMBER;
|
v_bedrag NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
v_bedrag := BGT.getContractwaarde('OPDR', p_mld_opdr_key, p_btw, 2, p_datum_van, p_datum_tot);
|
||||||
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;
|
|
||||||
RETURN v_bedrag;
|
RETURN v_bedrag;
|
||||||
END getGecontracteerd;
|
END getGecontracteerd;
|
||||||
|
|
||||||
@@ -354,9 +398,9 @@ AS
|
|||||||
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
||||||
v_bedrag := 0;
|
v_bedrag := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT CASE WHEN p_btw=0 THEN SUM(fin_factuur_totaal)
|
SELECT CASE WHEN p_btw=0 THEN SUM(COALESCE(fin_factuur_totaal, 0))
|
||||||
WHEN p_btw=1 THEN SUM(fin_factuur_totaal_btw)
|
WHEN p_btw=1 THEN SUM(COALESCE(fin_factuur_totaal_btw, 0))
|
||||||
WHEN p_btw=2 THEN SUM(fin_factuur_totaal) + SUM(fin_factuur_totaal_btw)
|
WHEN p_btw=2 THEN SUM(COALESCE(fin_factuur_totaal, 0)) + SUM(COALESCE(fin_factuur_totaal_btw, 0))
|
||||||
END facturen
|
END facturen
|
||||||
INTO v_bedrag
|
INTO v_bedrag
|
||||||
FROM fin_factuur
|
FROM fin_factuur
|
||||||
@@ -376,27 +420,24 @@ AS
|
|||||||
, p_datum_tot DATE DEFAULT NULL
|
, p_datum_tot DATE DEFAULT NULL
|
||||||
) RETURN NUMBER
|
) RETURN NUMBER
|
||||||
IS
|
IS
|
||||||
v_bedrag NUMBER;
|
v_statusopdr NUMBER;
|
||||||
|
v_cont NUMBER;
|
||||||
|
v_fact NUMBER;
|
||||||
|
v_bedrag NUMBER;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
-- p_btw: 0=excl.btw, 1=btw, 2=incl.btw.
|
||||||
v_bedrag := 0;
|
v_bedrag := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT CASE WHEN p_btw=0 THEN COALESCE(MAX(o.mld_opdr_kosten), 0) - SUM(COALESCE(f.fin_factuur_totaal, 0))
|
SELECT NVL(mld_statusopdr_key, 0)
|
||||||
WHEN p_btw=1 THEN COALESCE(MAX(o.mld_opdr_kosten_btw), 0) - SUM(COALESCE(f.fin_factuur_totaal_btw, 0))
|
INTO v_statusopdr
|
||||||
WHEN p_btw=2 THEN COALESCE(MAX(o.mld_opdr_kosten), 0) + MAX(COALESCE(o.mld_opdr_kosten_btw, 0))
|
FROM mld_opdr
|
||||||
- SUM(COALESCE(f.fin_factuur_totaal, 0))
|
WHERE mld_opdr_key = p_mld_opdr_key;
|
||||||
- SUM(COALESCE(f.fin_factuur_totaal_btw, 0))
|
--
|
||||||
END tefactureren
|
IF (v_statusopdr <> 10) THEN
|
||||||
INTO v_bedrag
|
v_cont := getGecontracteerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
|
||||||
FROM fin_factuur f
|
v_fact := getGefactureerd(p_mld_opdr_key, p_btw, p_datum_van, p_datum_tot);
|
||||||
, mld_opdr o
|
v_bedrag := COALESCE(v_cont, 0) - COALESCE(v_fact, 0);
|
||||||
WHERE o.mld_opdr_key = f.mld_opdr_key(+)
|
END IF;
|
||||||
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;
|
END;
|
||||||
RETURN v_bedrag;
|
RETURN v_bedrag;
|
||||||
END getTefactureren;
|
END getTefactureren;
|
||||||
|
|||||||
Reference in New Issue
Block a user