TWYN#73524 Selectie in rapporten meer- en minderwerk obv adviesdatum
svn path=/Customer/trunk/; revision=57158
This commit is contained in:
@@ -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;
|
||||
/
|
||||
|
||||
---
|
||||
---
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user