From 0a2620cca30eb007fd8a9335c265bb9cfd6376f8 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Fri, 13 Jul 2018 10:44:59 +0000 Subject: [PATCH] TWYN#53972 Overzicht meer en minderwerk en overzicht meer en minderwerk facturen svn path=/Customer/trunk/; revision=38492 --- TWYN/twyn_vie.sql | 203 +++++++++++++++++++++++++++++++--------------- 1 file changed, 137 insertions(+), 66 deletions(-) diff --git a/TWYN/twyn_vie.sql b/TWYN/twyn_vie.sql index 48f47f1eb..959a18d8b 100644 --- a/TWYN/twyn_vie.sql +++ b/TWYN/twyn_vie.sql @@ -1045,72 +1045,143 @@ AS -- MMWINVCO CREATE OR REPLACE VIEW twyn_v_meerminderwerk_fact AS - 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 - , f.fin_factuur_key - , p.opdrachtgever - , p.pcode - , p.project - , p.subproject - , p.versienummer - , b.prs_leverancier_nr - , b.prs_bedrijf_naam - , p.scode - , p.kostensoort - , m.mld_opdr_ordernr - , m.mld_opdr_bedrijfopdr_volgnr - , (SELECT CASE WHEN MIN (x.mld_opdr_bedrijfopdr_volgnr) = m.mld_opdr_bedrijfopdr_volgnr - THEN 1 - ELSE 0 - END - FROM mld_opdr x - WHERE x.mld_opdr_ordernr = m.mld_opdr_ordernr - AND x.mld_opdr_meerwerk = 1 - ) mld_opdr_mainorder - , 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 - , m.mld_opdr_kosten_btw - , COALESCE(f.fin_factuur_datum, m.mld_opdr_datumbegin) fin_factuur_datum - , TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy') fin_factuur_datum_p - , fin_factuur_nr - , fin_factuur_opmerking - , fin_factuur_totaal - , fin_factuur_totaal_btw - , fin_factuur_advies - , TO_CHAR (f.fin_factuur_advies, 'dd-mm-yyyy') fin_factuur_advies_p - , c.mld_statusopdr_oms - , c.mld_statusopdr_key - FROM mld_opdr m - , prs_bedrijf b - , fin_factuur f - , bgt_v_project_full p - , (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 - 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.ins_discipline_verwijder IS NULL - AND p.bgt_project_verwijder IS NULL - ORDER BY b.prs_leverancier_nr - , p.scode - , m.mld_opdr_ordernr - , m.mld_opdr_bedrijfopdr_volgnr; + SELECT * + FROM ( 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 + , f.fin_factuur_key + , p.opdrachtgever + , p.pcode + , p.project + , p.subproject + , p.versienummer + , b.prs_leverancier_nr + , b.prs_bedrijf_naam + , p.scode + , p.kostensoort + , m.mld_opdr_ordernr + , m.mld_opdr_bedrijfopdr_volgnr + , (SELECT CASE WHEN MIN (x.mld_opdr_bedrijfopdr_volgnr) = m.mld_opdr_bedrijfopdr_volgnr + THEN 1 + ELSE 0 + END + FROM mld_opdr x + WHERE x.mld_opdr_ordernr = m.mld_opdr_ordernr + AND x.mld_opdr_meerwerk = 1 + ) mld_opdr_mainorder + , 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 + , m.mld_opdr_kosten_btw + , COALESCE(f.fin_factuur_datum, m.mld_opdr_datumbegin) fin_factuur_datum + , TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy') fin_factuur_datum_p + , fin_factuur_nr + , fin_factuur_opmerking + , fin_factuur_totaal + , fin_factuur_totaal_btw + , fin_factuur_advies + , TO_CHAR (f.fin_factuur_advies, 'dd-mm-yyyy') fin_factuur_advies_p + , c.mld_statusopdr_oms + , c.mld_statusopdr_key + , 'F' soort + FROM mld_opdr m + , prs_bedrijf b + , fin_factuur f + , bgt_v_project_full p + , (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 + 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.ins_discipline_verwijder IS NULL + AND p.bgt_project_verwijder IS NULL + UNION + 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 + , NULL fin_factuur_key + , p.opdrachtgever + , p.pcode + , p.project + , p.subproject + , p.versienummer + , b.prs_leverancier_nr + , b.prs_bedrijf_naam + , p.scode + , p.kostensoort + , m.mld_opdr_ordernr + , m.mld_opdr_bedrijfopdr_volgnr + , (SELECT CASE WHEN MIN (x.mld_opdr_bedrijfopdr_volgnr) = m.mld_opdr_bedrijfopdr_volgnr + THEN 1 + ELSE 0 + END + FROM mld_opdr x + WHERE x.mld_opdr_ordernr = m.mld_opdr_ordernr + AND x.mld_opdr_meerwerk = 1 + ) mld_opdr_mainorder + , 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 + , m.mld_opdr_kosten_btw + , COALESCE(f.fin_factuur_datum, m.mld_opdr_datumbegin) fin_factuur_datum + , TO_CHAR( COALESCE(f.fin_factuur_datum, m.mld_opdr_datumbegin), 'dd-mm-yyyy') fin_factuur_datum_p + , NULL fin_factuur_nr + , NULL fin_factuur_opmerking + , NULL fin_factuur_totaal + , NULL fin_factuur_totaal_btw + , NULL fin_factuur_advies + , NULL fin_factuur_advies_p + , c.mld_statusopdr_oms + , c.mld_statusopdr_key + , 'C' soort + FROM mld_opdr m + , prs_bedrijf b + , bgt_v_project_full p + , (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 + , MIN (ff.fin_factuur_datum) fin_factuur_datum + FROM fin_factuur ff + 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_key = f.mld_opdr_key(+) + AND m.mld_opdr_meerwerk = 1 + AND m.mld_statusopdr_key = c.mld_statusopdr_key + AND p.ins_discipline_verwijder IS NULL + AND p.bgt_project_verwijder IS NULL + ) + ORDER BY prs_leverancier_nr + , scode + , mld_opdr_ordernr + , mld_opdr_bedrijfopdr_volgnr; --FACT_MND