TWYN#73524 Selectie in rapporten meer- en minderwerk obv adviesdatum

svn path=/Customer/trunk/; revision=57158
This commit is contained in:
Sander Schepers
2022-09-06 16:01:08 +00:00
parent 9349f54bdd
commit 1a4b39ecfb

View File

@@ -19,13 +19,20 @@ DEFINE thisfile = 'TWYN_PAC.SQL'
DEFINE dbuser = '^TWYN'
DEFINE custid = 'TWYN'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
@@ -485,9 +492,20 @@ AS
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
PROCEDURE twyn_v_meerminderwerk_fact ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
PROCEDURE twyn_v_meerminderwerk_opdr ( user_key IN NUMBER
, p_datum_van IN VARCHAR2
, p_datum_tot IN VARCHAR2
, p_cursor OUT t_cursor
, p_where IN VARCHAR2 DEFAULT NULL
);
END twyn;
/
CREATE OR REPLACE PACKAGE BODY twyn
AS
PROCEDURE twyn_v_detailoverzicht ( user_key IN NUMBER
@@ -866,9 +884,193 @@ AS
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
PROCEDURE twyn_v_meerminderwerk_fact (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2 -- eigenlijk: tot-en-met
,
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_part_W VARCHAR2 (32767);
v_part_D 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 fin_factuur_datum >= TO_DATE('''
|| p_datum_van
|| ''', ''dd-mm-yyyy'')'
|| ' AND (fin_factuur_advies >= TO_DATE('''
|| p_datum_van
|| ''', ''dd-mm-yyyy'') OR fin_factuur_advies IS NULL)'
ELSE
''
END
|| CASE
WHEN p_datum_tot IS NOT NULL
THEN
' AND fin_factuur_datum <= TO_DATE('''
|| p_datum_tot
|| ''', ''dd-mm-yyyy'')'
|| ' AND (fin_factuur_advies <= TO_DATE('''
|| p_datum_tot
|| ''', ''dd-mm-yyyy'') OR fin_factuur_advies IS NULL)'
END;
v_part_T :=
'SELECT * '
|| 'FROM twyn_v_meerminderwerk_fact'
|| ' WHERE 1=1'
|| ' '
|| v_part_D
|| ' '
|| v_where;
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
PROCEDURE twyn_v_meerminderwerk_opdr (
user_key IN NUMBER,
p_datum_van IN VARCHAR2,
p_datum_tot IN VARCHAR2, -- eigenlijk: tot-en-met
p_cursor OUT t_cursor,
p_where IN VARCHAR2 DEFAULT NULL)
AS
v_datum_van DATE;
v_datum_tot DATE;
v_part_W VARCHAR2 (32767);
v_part_D 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 ff.fin_factuur_datum >= TO_DATE('''
|| p_datum_van
|| ''', ''dd-mm-yyyy'')'
|| ' AND (ff.fin_factuur_advies >= TO_DATE('''
|| p_datum_van
|| ''', ''dd-mm-yyyy'') OR ff.fin_factuur_advies IS NULL)'
ELSE
''
END
|| CASE
WHEN p_datum_tot IS NOT NULL
THEN
' AND ff.fin_factuur_datum <= TO_DATE('''
|| p_datum_tot
|| ''', ''dd-mm-yyyy'')'
|| ' AND (ff.fin_factuur_advies <= TO_DATE('''
|| p_datum_tot
|| ''', ''dd-mm-yyyy'') OR ff.fin_factuur_advies IS NULL)'
END;
v_part_T :=
'SELECT p.ins_discipline_key, '
|| ' p.bgt_project_key, '
|| ' p.bgt_kostenrubriek_key, '
|| ' p.prs_kostensoortgrp_key, '
|| ' p.prs_kostensoort_key, '
|| ' b.prs_bedrijf_key, '
|| ' p.opdrachtgever, '
|| ' p.pcode, '
|| ' p.project, '
|| ' p.projectnaam, '
|| ' p.dcode, '
|| ' p.subproject, '
|| ' p.subprojectnaam, '
|| ' d.startdatum_p, '
|| ' b.prs_leverancier_nr, '
|| ' b.prs_bedrijf_naam, '
|| ' p.scode, '
|| ' p.kostensoort, '
|| ' p.kostencode, '
|| ' m.mld_opdr_ordernr, '
|| ' m.mld_opdr_bedrijfopdr_volgnr, '
|| ' m.mld_opdr_omschrijving, '
|| ' m.mld_opdr_id, '
|| ' m.mld_opdr_datumbegin, '
|| ' TO_CHAR (m.mld_opdr_datumbegin, ''dd-mm-yyyy'') '
|| ' mld_opdr_datumbegin_p, '
|| ' m.mld_opdr_kosten_refiat, '
|| ' CASE WHEN m.mld_statusopdr_key = 10 THEN m.mld_opdr_kosten END '
|| ' raming, '
|| ' CASE WHEN m.mld_statusopdr_key <> 10 THEN m.mld_opdr_kosten END '
|| ' gecontracteerd, '
|| ' m.mld_opdr_kosten_btw '
|| ' contract_btw, '
|| ' f.fin_factuur_totaal, '
|| ' f.fin_factuur_totaal_btw, '
|| ' c.mld_statusopdr_oms '
|| ' FROM mld_opdr m, '
|| ' prs_bedrijf b, '
|| ' bgt_v_project_full p, '
|| ' twyn_v_bgt_projectdatum d, '
|| ' (SELECT fac_code2label_code mld_statusopdr_key, '
|| ' COALESCE (fac_locale_xsl_cust, fac_locale_xsl_tekst) mld_statusopdr_oms '
|| ' FROM fac_locale_xsl fl, fac_code2label fs '
|| ' WHERE fl.fac_locale_xsl_label = fac_code2label_label '
|| ' AND fac_code2label_domein = ''opdracht'' '
|| ' AND fac_locale_xsl_lang = lcl.getuserlanguage ()) c, '
|| ' ( SELECT ff.mld_opdr_key, '
|| ' SUM (ff.fin_factuur_totaal) fin_factuur_totaal, '
|| ' SUM (ff.fin_factuur_totaal_btw) fin_factuur_totaal_btw '
|| ' FROM fin_factuur ff '
|| ' WHERE (1=1)'
|| ' '|| v_part_D
|| ' GROUP BY ff.mld_opdr_key) f '
|| ' WHERE m.mld_uitvoerende_keys = b.prs_bedrijf_key '
|| ' AND m.prs_kostensoort_key = p.prs_kostensoort_key '
|| ' AND m.mld_opdr_meerwerk = 1 '
|| ' AND m.mld_statusopdr_key = c.mld_statusopdr_key '
|| ' AND m.mld_opdr_key = f.mld_opdr_key(+) '
|| ' AND p.bgt_project_key = d.bgt_project_key '
|| ' AND p.ins_discipline_verwijder IS NULL '
|| ' AND p.bgt_project_verwijder IS NULL '
|| ' '
|| v_where
|| ' ORDER BY b.prs_leverancier_nr, '
|| ' p.scode, '
|| ' m.mld_opdr_ordernr, '
|| ' m.mld_opdr_bedrijfopdr_volgnr ';
OPEN p_cursor FOR 'SELECT * FROM (' || v_part_T || ')';
END;
END;
/
---
---
---