TWYN#54117 Fout in sortering rapporten

svn path=/Customer/trunk/; revision=39107
This commit is contained in:
Erik Groener
2018-09-11 06:41:54 +00:00
parent 00b8e3499e
commit adb7930211
2 changed files with 177 additions and 57 deletions

View File

@@ -560,6 +560,18 @@ AS
, p_cursor OUT t_cursor
, p_where IN VARCHAR2
);
PROCEDURE twyn_v_contract_rubriek ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2
);
PROCEDURE twyn_v_contr_fact_bedrijf ( 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;
/
@@ -698,6 +710,165 @@ AS
|| '( SELECT * FROM (' || v_part_T || ')'
|| ')';
END;
PROCEDURE twyn_v_contract_rubriek ( 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_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_T := 'SELECT tp.opdrachtgever'
|| ' , tp.pcode'
|| ' , tp.project'
|| ' , tp.projectnaam'
|| ' , tp.dcode'
|| ' , tp.subproject'
|| ' , tp.subprojectnaam'
|| ' , tp.rcode'
|| ' , tp.kostenrubriek'
|| ' , tp.gcode'
|| ' , tp.kostengroep'
|| ' , tp.scode'
|| ' , tp.kostensoort'
|| ' , tp.versienummer'
|| ' , tp.kostencode'
|| ' , tp.kostennaam'
|| ' , b.prs_leverancier_nr'
|| ' , o.mld_opdr_ordernr'
|| ' , COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr'
|| ' , o.mld_opdr_meerwerk mld_opdr_meerwerk'
|| ' , o.mld_opdr_id kenmerk'
|| ' , o.mld_opdr_omschrijving mld_opdr_omschrijving'
|| ' , kp.prs_kostenplaats_nr accountcode'
|| ' , kp.prs_kostenplaats_omschrijving account'
|| ' , TO_CHAR (o.mld_opdr_datumbegin, ''DD-MM-YYYY'') datum_p'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) kosten'
|| ' , BGT.getGecontracteerd(o.mld_opdr_key, 1, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) btw'
|| ' , BGT.getGefactureerd (o.mld_opdr_key, 0, null, to_date(''' || p_datum_tot || ''', ''dd-mm-yyyy'')) facturen'
|| ' , p.startdatum_p'
|| ' FROM bgt_v_project_full tp'
|| ' , prs_kostenplaats kp'
|| ' , mld_opdr o'
|| ' , prs_bedrijf b'
|| ' , twyn_v_bgt_projectdatum p'
|| ' WHERE o.prs_kostensoort_key = tp.prs_kostensoort_key'
|| ' AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)'
|| ' AND o.mld_uitvoerende_keys = b.prs_bedrijf_key'
|| ' AND o.mld_statusopdr_key <> 10' -- ter goedkeuring (=raming) hier niet in meenemen
|| ' AND tp.bgt_project_key = p.bgt_project_key'
|| ' AND tp.ins_discipline_verwijder IS NULL'
|| ' AND tp.bgt_project_verwijder IS NULL'
|| ' '|| v_where;
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
PROCEDURE twyn_v_contr_fact_bedrijf ( 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_D 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_D := CASE WHEN p_datum_van IS NOT NULL
THEN ' AND f.fin_factuur_advies >= TO_DATE('''|| p_datum_van ||''', ''dd-mm-yyyy'')'
|| ' AND o.mld_opdr_datumbegin >= TO_DATE('''|| p_datum_van ||''', ''dd-mm-yyyy'')'
ELSE ''
END
|| CASE WHEN p_datum_tot IS NOT NULL
THEN ' AND f.fin_factuur_advies < TO_DATE('''|| p_datum_tot ||''', ''dd-mm-yyyy'')'
|| ' AND o.mld_opdr_datumbegin < TO_DATE('''|| p_datum_tot ||''', ''dd-mm-yyyy'')'
ELSE ''
END;
v_part_T := 'SELECT tp.opdrachtgever'
|| ' , tp.pcode'
|| ' , tp.project'
|| ' , tp.subproject'
|| ' , tp.rcode'
|| ' , tp.kostenrubriek'
|| ' , tp.kostengroep'
|| ' , tp.scode'
|| ' , tp.kostensoort'
|| ' , tp.versienummer'
|| ' , b.prs_bedrijf_naam'
|| ' , b.prs_leverancier_nr'
|| ' , o.mld_opdr_ordernr'
|| ' , COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr'
|| ' , o.mld_opdr_id kenmerk'
|| ' , o.mld_opdr_omschrijving'
|| ' , COALESCE(kp.prs_kostenplaats_nr, '' '') accountcode'
|| ' , COALESCE(kp.prs_kostenplaats_omschrijving, ''zonder account'') account'
|| ' , o.mld_opdr_kosten'
|| ' , o.mld_opdr_kosten_btw'
|| ' , o.mld_opdr_meerwerk'
|| ' , CASE WHEN fin_factuur_key IS NULL'
|| ' THEN 1'
|| ' WHEN (SELECT MIN(fc.fin_factuur_key)'
|| ' FROM fin_factuur fc'
|| ' WHERE fc.mld_opdr_key = f.mld_opdr_key) = f.fin_factuur_key'
|| ' THEN 1'
|| ' ELSE 0'
|| ' END contractwaarde'
|| ' , f.fin_factuur_nr'
|| ' , f.fin_factuur_opmerking'
|| ' , f.fin_factuur_totaal'
|| ' , f.fin_factuur_totaal_btw'
|| ' , o.mld_opdr_datumbegin contractdatum'
|| ' , f.fin_factuur_datum factuurdatum'
|| ' , f.fin_factuur_advies adviesdatum'
|| ' , TO_CHAR (o.mld_opdr_datumbegin, ''DD-MM-YYYY'') contractdatum_p'
|| ' , TO_CHAR (f.fin_factuur_datum, ''DD-MM-YYYY'') factuurdatum_p'
|| ' , TO_CHAR (f.fin_factuur_advies, ''DD-MM-YYYY'') adviesdatum_p'
|| ' , p.startdatum_p'
|| ' FROM fin_factuur f'
|| ' , mld_opdr o'
|| ' , prs_bedrijf b'
|| ' , prs_kostenplaats kp'
|| ' , bgt_v_project_full tp'
|| ' , twyn_v_bgt_projectdatum p'
|| ' WHERE o.mld_opdr_key = f.mld_opdr_key(+)'
|| ' AND o.prs_kostensoort_key = tp.prs_kostensoort_key'
|| ' AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)'
|| ' AND o.mld_uitvoerende_keys = b.prs_bedrijf_key'
|| ' AND o.mld_statusopdr_key <> 10'
|| ' AND tp.bgt_project_key = p.bgt_project_key'
|| ' AND tp.ins_discipline_verwijder IS NULL'
|| ' AND tp.bgt_project_verwijder IS NULL'
|| ' '|| v_part_D
|| ' '|| v_where;
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
END;
---

View File

@@ -481,65 +481,13 @@ AS
-- CON_FACT
-- CON_ACC
-- FACTCORU
-- De werkelijke gegevens worden opgehaald in twyn.twyn_v_contr_fact_bedrijf
CREATE OR REPLACE VIEW twyn_v_contr_fact_bedrijf
AS
SELECT tp.opdrachtgever
, tp.pcode
, tp.project
, tp.subproject
, tp.rcode
, tp.kostenrubriek
, tp.kostengroep
, tp.scode
, tp.kostensoort
, tp.versienummer
, b.prs_bedrijf_naam
, b.prs_leverancier_nr
, o.mld_opdr_ordernr
, COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr
, o.mld_opdr_id kenmerk
, o.mld_opdr_omschrijving
, COALESCE(kp.prs_kostenplaats_nr, ' ') accountcode
, COALESCE(kp.prs_kostenplaats_omschrijving, 'zonder account') account
, NVL(fin_factuur_datum, o.mld_opdr_datumbegin) datumfilter
, o.mld_opdr_datumbegin contractdatum
, o.mld_opdr_kosten
, o.mld_opdr_kosten_btw
, o.mld_opdr_meerwerk
, CASE WHEN fin_factuur_key IS NULL
THEN 1
WHEN (SELECT MIN(fc.fin_factuur_key)
FROM fin_factuur fc
WHERE fc.mld_opdr_key = f.mld_opdr_key) = f.fin_factuur_key
THEN 1
ELSE 0
END contractwaarde
, f.fin_factuur_nr
, f.fin_factuur_opmerking
, f.fin_factuur_totaal
, f.fin_factuur_totaal_btw
, f.fin_factuur_datum factuurdatum
, f.fin_factuur_advies adviesdatum
, TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') contractdatum_p
, TO_CHAR (f.fin_factuur_datum, 'DD-MM-YYYY') factuurdatum_p
, TO_CHAR (f.fin_factuur_advies, 'DD-MM-YYYY') adviesdatum_p
FROM fin_factuur f
, mld_opdr o
, prs_bedrijf b
, prs_kostenplaats kp
, bgt_v_project_full tp
WHERE o.mld_opdr_key = f.mld_opdr_key(+)
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_statusopdr_key <> 10
AND tp.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL
ORDER BY b.prs_leverancier_nr
, tp.scode
, o.mld_opdr_datumbegin
, o.mld_opdr_ordernr
, o.mld_opdr_bedrijfopdr_volgnr;
SELECT *
FROM bgt_v_project_full
WHERE ins_discipline_verwijder IS NULL
AND bgt_project_verwijder IS NULL;
-- CON_ACC1
@@ -720,6 +668,7 @@ AS
-- BREG_RES
-- BREG_BTW
-- BREG_RUB
-- De werkelijke gegevens worden opgehaald in twyn.twyn_v_detailoverzicht
CREATE OR REPLACE VIEW twyn_v_detailoverzicht
AS
SELECT *