Files
Customer/TWYN/twyn_vie.sql
Erik Groener 2f73b1b23c TWYN#57971 rapporten inclusief btw
svn path=/Customer/trunk/; revision=42949
2019-06-13 09:38:22 +00:00

873 lines
35 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific views for the FACILITOR database
DEFINE thisfile = 'TWYN_VIE.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;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
--=============================================================================
-- RAPPORTAGES
-------------------------------------------------------------------------------
-- Via het menu/Rapportages kunnen rapporten worden gemaakt.
-- Graag een beetje uniforme (vriendelijke) naamgeving aanhouden voor de kolommen
-- omdat deze in de stylesheet driftig worden gebruikt
--
--o CONT_ALF Overzicht contractanten op alfabetische volgorde
--o CONT_RUB Overzicht contracten per rubriek
--o CON_FACT Overzicht (contracten en) facturen per contractant
--o CON_ACC Overzicht [contracten en] facturen per account @moet nog opdrachttotalen
--o CON_ACC1 Overzicht contracten per account
--o BREG_RES Overzicht reserve
--o BREG_BTW Overzicht BTW
--o BREG_TOT Totaaloverzicht budgetrapportage (meerdere subprojecten)
--o BREG_RUB Overzicht rubrieken (1 subproject)
--o FACT_MND Overzicht facturen per maand op adviesdatum
--• FACTCORU Overzicht contracten en facturen per rubriek
--o FDATFACT Overzicht facturen per maand op factuurdatum
--• BET_ADV Betalingsadvies d.d. dd-mm-jjjj
--o BMUT_NUM Overzicht budgetmutaties op volgnummer
--o MMW_CONT Overzicht Meer- en minderwerk per contractant
--o MMWINVCO Overzicht meer- en minderwerk facturen per contractant
--
-- Ten behoeve van de header zijn de volgende gegevens gewenst in al deze views
-- opdrachtgever p.bgt_disc_params_opdrachtgever
-- project p.bgt_disc_params_code || ' ' || d.ins_discipline_omschrijving
-- subproject bp.bgt_project_code || ' ' || bp.bgt_project_omschrijving
-- basis views
CREATE OR REPLACE VIEW twyn_v_bgt_projectdatum
AS
SELECT p.bgt_project_key
, TO_CHAR(MIN(LEAST( COALESCE(p.bgt_project_prijspeildatum, SYSDATE)
, COALESCE(b.bgt_budget_begin, SYSDATE)
, COALESCE(m.bgt_budgetmutatie_datum, SYSDATE)
, COALESCE(o.mld_opdr_datumbegin, SYSDATE)
, COALESCE(f.fin_factuur_datum, SYSDATE)
, COALESCE(f.fin_factuur_advies, SYSDATE)
)), 'dd-mm-yyyy') startdatum_p
FROM bgt_project p
, bgt_budget b
, (SELECT bgt_budget_key_naar bgt_budget_key
, bgt_budgetmutatie_datum
FROM bgt_budgetmutatie
UNION ALL
SELECT bgt_budget_key_van bgt_budget_key
, bgt_budgetmutatie_datum
FROM bgt_budgetmutatie
) m
, mld_opdr o
, fin_factuur f
WHERE b.bgt_project_key = p.bgt_project_key
AND b.bgt_budget_key = m.bgt_budget_key(+)
AND b.prs_kostensoort_key = o.prs_kostensoort_key(+)
AND o.mld_opdr_key = f.mld_opdr_key(+)
GROUP BY p.bgt_project_key;
CREATE OR REPLACE VIEW twyn_v_bgt_budgetmutatie
AS
SELECT mutatie.bgt_budget_key
, SUM (mutatie.bedrag_van) bedrag_van
, SUM (mutatie.bedrag_naar) bedrag_naar
, SUM (mutatie.btwbedrag_van) btwbedrag_van
, SUM (mutatie.btwbedrag_naar) btwbedrag_naar
FROM ( SELECT m1.bgt_budget_key_van bgt_budget_key
, SUM (COALESCE (m1.bgt_budget_bedrag_van, 0)) bedrag_van
, SUM (COALESCE (m1.bgt_budget_btwbedrag_van, 0)) btwbedrag_van
, 0 bedrag_naar
, 0 btwbedrag_naar
FROM bgt_budgetmutatie m1
GROUP BY m1.bgt_budget_key_van
UNION
SELECT m2.bgt_budget_key_naar bgt_budget_key
, 0 bedrag_van
, 0 btwbedrag_van
, SUM (COALESCE (m2.bgt_budget_bedrag_naar, 0)) bedrag_naar
, SUM (COALESCE (m2.bgt_budget_btwbedrag_naar, 0)) btwbedrag_naa
FROM bgt_budgetmutatie m2
GROUP BY m2.bgt_budget_key_naar
) mutatie
GROUP BY mutatie.bgt_budget_key;
CREATE OR REPLACE view twyn_v_bgt_budgetgegevens
AS
SELECT pr.ins_discipline_key
, pr.bgt_project_key
, pr.opdrachtgever
, pr.pcode
, pr.project
, pr.projectnaam
, pr.dcode
, pr.subproject
, pr.subprojectnaam
, pr.ins_discipline_verwijder
, pr.bgt_project_verwijder
, kr.bgt_kostenrubriek_key
, kr.bgt_kostenrubriek_code rcode
, kr.bgt_kostenrubriek_oms kostenrubriek
, ks.prs_kostensoort_key
, ks.prs_kostensoort_altcode scode
, ks.prs_kostensoort_oms kostensoort
, b.bgt_budget_key
, b.bgt_budget_bedrag
, b.bgt_budget_btwbedrag
FROM bgt_v_project_gegevens pr
, bgt_kostenrubriek kr
, prs_kostensoort ks
, bgt_budget b
WHERE b.bgt_project_key = pr.bgt_project_key
AND b.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key
AND b.prs_kostensoort_key = ks.prs_kostensoort_key(+);
-- BREG_TOT
-- 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 *
FROM bgt_v_project_full
WHERE ins_discipline_verwijder IS NULL
AND bgt_project_verwijder IS NULL;
-- 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 *
FROM bgt_v_project_full
WHERE ins_discipline_verwijder IS NULL
AND bgt_project_verwijder IS NULL;
-- BET_ADV
CREATE OR REPLACE VIEW twyn_v_betalingsadvies
AS
SELECT tp.opdrachtgever
, tp.pcode
, tp.project
, tp.dcode
, tp.subproject
, tp.rcode
, tp.kostenrubriek
, tp.gcode
, tp.kostengroep
, tp.scode
, tp.kostensoort
, f.fin_factuur_advies adviesdatum
, TO_CHAR (f.fin_factuur_advies, 'dd-mm-yyyy') adviesdatum_p
, f.fin_factuur_datum factuurdatum
, TO_CHAR (f.fin_factuur_datum, 'dd-mm-yyyy') factuurdatum_p
, f.fin_factuur_nr factuurnr
, b.prs_bedrijf_naam contractant
, f.fin_factuur_opmerking opmerking
, f.fin_factuur_totaal bedragexcl
, f.fin_factuur_totaal_btw bedragbtw
, f.fin_factuur_statuses_key factuurstatus
, CASE WHEN INSTR(f.fin_factuur_nr, '/') = 0
THEN f.fin_factuur_nr
ELSE SUBSTR(f.fin_factuur_nr, 1, INSTR(f.fin_factuur_nr, '/')-1 )
END factuurnummer
, CASE WHEN INSTR(f.fin_factuur_nr, '/') = 0
THEN '0'
ELSE SUBSTR(f.fin_factuur_nr, INSTR(f.fin_factuur_nr, '/')+1 )
END factuurvolgnr
FROM fin_factuur f
, mld_opdr o
, prs_bedrijf b
, bgt_v_project_full tp
WHERE o.mld_opdr_key = f.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
AND tp.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL
AND f.fin_factuur_bron = 0;
-- CONT_ALF
CREATE OR REPLACE VIEW twyn_v_bedrijf
AS
SELECT tp.opdrachtgever
, tp.pcode
, tp.project
, tp.dcode
, tp.subproject
, b.prs_leverancier_nr leveranciercode
, b.prs_bedrijf_naam naam
, b.prs_bedrijf_post_adres adres
, b.prs_bedrijf_post_postcode postcode
, b.prs_bedrijf_post_plaats plaats
, b.prs_bedrijf_telefoon telefoon
, b.prs_bedrijf_email email
FROM mld_opdr o
, prs_bedrijf b
, bgt_v_project_full tp
WHERE b.prs_bedrijf_key = o.mld_uitvoerende_keys
AND o.prs_kostensoort_key = tp.prs_kostensoort_key
AND tp.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL
ORDER BY prs_bedrijf_naam;
-- CONT_RUB
-- Voor ieder rubriek/groep/onderdeel de som van de opdrachten en facturen
-- Opletten: in principe is iedere opdracht uniek en laat je alle individuele opdrachten zien
-- behalve voor MMW-opdrachten, die worden per mld_opdr_nr getotaaliseerd weergegeven
-- Daarom gebruiken we hier de MIN en MAX functies, om de MMW-opdrachten bij elkaar te tellen
-- Die andere view twyn_v_contract laat ook de mmw-opdrachten.
CREATE OR REPLACE VIEW twyn_v_contract_rubriek
AS
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.kostencode
, tp.kostennaam
, o.mld_opdr_datumbegin datumfilter
, b.prs_leverancier_nr
, o.mld_opdr_ordernr
, COALESCE(o.mld_opdr_bedrijfopdr_volgnr, 0) mld_opdr_ordervolgnr
, MAX (o.mld_opdr_meerwerk) mld_opdr_meerwerk
, MAX (o.mld_opdr_id) kenmerk
, MAX (o.mld_opdr_omschrijving) mld_opdr_omschrijving
, kp.prs_kostenplaats_nr accountcode
, kp.prs_kostenplaats_omschrijving account
, MIN (o.mld_opdr_datumbegin) datum
, TO_CHAR (MIN (o.mld_opdr_datumbegin), 'DD-MM-YYYY') printdatum
, SUM (o.mld_opdr_kosten) kosten
, SUM (o.mld_opdr_kosten_btw) btw
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 0)) facturen
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 1)) facturen_btw
FROM bgt_v_project_full tp
, prs_kostenplaats kp
, mld_opdr o
, prs_bedrijf b
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.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL
GROUP BY tp.opdrachtgever
, tp.project
, tp.subproject
, tp.projectnaam
, tp.pcode
, tp.opdrachtgever
, tp.subprojectnaam
, tp.rcode
, tp.kostenrubriek
, tp.gcode
, tp.kostengroep
, tp.scode
, tp.kostensoort
, tp.dcode
, tp.kostencode
, tp.kostennaam
, kp.prs_kostenplaats_nr
, kp.prs_kostenplaats_omschrijving
, b.prs_leverancier_nr
, o.mld_opdr_ordernr
, o.mld_opdr_bedrijfopdr_volgnr
, o.mld_opdr_datumbegin
ORDER BY tp.rcode
, tp.gcode
, tp.scode
, b.prs_leverancier_nr
, TO_NUMBER(o.mld_opdr_ordernr)
, o.mld_opdr_bedrijfopdr_volgnr;
-- CON_ACC1
CREATE OR REPLACE VIEW twyn_v_contract
AS
SELECT tp.opdrachtgever
, tp.pcode
, tp.project
, tp.projectnaam
, tp.subproject
, tp.subprojectnaam
, tp.rcode
, tp.kostenrubriek
, tp.gcode
, tp.kostengroep
, tp.scode
, tp.kostensoort
, 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_datumbegin datumfilter
, TO_CHAR (o.mld_opdr_datumbegin, 'DD-MM-YYYY') printdatum
, o.mld_opdr_meerwerk
, o.mld_opdr_kosten
, o.mld_opdr_kosten_btw
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 0)) fin_factuur_totaal
, SUM (bgt.getgefactureerd (o.mld_opdr_key, 1)) fin_factuur_totaal_btw
FROM bgt_v_project_full tp
, prs_kostenplaats kp
, mld_opdr o
, prs_bedrijf b
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 tp.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL
GROUP BY tp.opdrachtgever
, tp.pcode
, tp.project
, tp.subproject
, tp.dcode
, tp.subprojectnaam
, tp.projectnaam
, tp.dcode
, tp.opdrachtgever
, tp.subprojectnaam
, tp.rcode
, tp.kostenrubriek
, tp.gcode
, tp.kostengroep
, tp.scode
, tp.kostensoort
, kp.prs_kostenplaats_nr
, kp.prs_kostenplaats_omschrijving
, b.prs_leverancier_nr
, o.mld_opdr_ordernr
, o.mld_opdr_bedrijfopdr_volgnr
, o.mld_opdr_id
, o.mld_opdr_omschrijving
, o.mld_opdr_meerwerk
, kp.prs_kostenplaats_nr
, kp.prs_kostenplaats_omschrijving
, o.mld_opdr_datumbegin
, o.mld_opdr_kosten
, o.mld_opdr_kosten_btw
ORDER BY kp.prs_kostenplaats_nr
, b.prs_leverancier_nr
, o.mld_opdr_ordernr
, o.mld_opdr_bedrijfopdr_volgnr;
--BMUT_NUM
CREATE OR REPLACE VIEW twyn_v_budgetmutaties
AS
SELECT gegevens.opdrachtgever
, gegevens.pcode
, gegevens.project
, gegevens.projectnaam
, gegevens.dcode
, gegevens.subproject
, gegevens.subprojectnaam
, gegevens.kostencode
, gegevens.kostennaam
, p.startdatum_p
, mutaties.bgt_budget_key
, mutaties.bgt_budget_isreserve
, mutaties.bgt_budgetmutatie_key
, mutaties.bgt_budgetmutatie_omschrijving mutatiereden
, mutaties.bgt_budgetmutatie_reserve reserve
, mutaties.bgt_budgetmutatie_datum mutatiedatum
, TO_CHAR (mutaties.bgt_budgetmutatie_datum, 'dd-mm-yyyy') mutatiedatum_p
, mutaties.bgt_mutatie_bedrag mutatiebedrag_exc
, mutaties.bgt_mutatie_btwbedrag mutatiebedrag_btw
, mutaties.bgt_mutatie_soort mutatiesoort
, mutaties.bgt_budgetmutatie_code mutatiecode
, mutaties.bgt_budgetmutatie_volgnr mutatievolgnr
FROM bgt_v_project_full gegevens
, twyn_v_bgt_projectdatum p
, (SELECT b.bgt_budget_key
, b.ins_discipline_key
, b.bgt_project_key
, b.bgt_kostenrubriek_key
, b.prs_kostensoortgrp_key
, b.prs_kostensoort_key
, b.prs_kostenplaatsgrp_key
, b.prs_kostenplaats_key
, b.bgt_budget_bedrag
, b.bgt_budget_btwbedrag
, b.bgt_budget_isreserve
, b.bgt_budget_begin
, b.bgt_budget_eind
, b.bgt_budget_aanmaak
, b.bgt_budget_vervaldatum
, m.bgt_budgetmutatie_key
, m.prs_perslid_key
, m.bgt_budgetmutatie_omschrijving
, m.bgt_budgetmutatie_reserve
, m.bgt_budgetmutatie_datum
, m.bgt_budget_bedrag_van bgt_mutatie_bedrag
, m.bgt_budget_btwbedrag_van bgt_mutatie_btwbedrag
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
, m.bgt_budgetmutatie_code
, m.bgt_budgetmutatie_volgnr
FROM bgt_budget b
, bgt_budgetmutatie m
WHERE b.bgt_budget_key = m.bgt_budget_key_van
UNION
SELECT b.bgt_budget_key
, b.ins_discipline_key
, b.bgt_project_key
, b.bgt_kostenrubriek_key
, b.prs_kostensoortgrp_key
, b.prs_kostensoort_key
, b.prs_kostenplaatsgrp_key
, b.prs_kostenplaats_key
, b.bgt_budget_bedrag
, b.bgt_budget_btwbedrag
, b.bgt_budget_isreserve
, b.bgt_budget_begin
, b.bgt_budget_eind
, b.bgt_budget_aanmaak
, b.bgt_budget_vervaldatum
, m.bgt_budgetmutatie_key
, m.prs_perslid_key
, m.bgt_budgetmutatie_omschrijving
, m.bgt_budgetmutatie_reserve
, m.bgt_budgetmutatie_datum
, m.bgt_budget_bedrag_naar bgt_mutatie_bedrag
, m.bgt_budget_btwbedrag_naar bgt_mutatie_btwbedrag
, BGT.getSoortMutatie (m.bgt_budgetmutatie_key) bgt_mutatie_soort
, m.bgt_budgetmutatie_code
, m.bgt_budgetmutatie_volgnr
FROM bgt_budget b
, bgt_budgetmutatie m
WHERE b.bgt_budget_key = m.bgt_budget_key_naar
) mutaties
WHERE ( ( mutaties.prs_kostensoort_key = gegevens.prs_kostensoort_key)
OR ( mutaties.bgt_kostenrubriek_key = gegevens.bgt_kostenrubriek_key
AND mutaties.prs_kostensoortgrp_key IS NULL
AND mutaties.prs_kostensoort_key IS NULL
)
)
AND gegevens.bgt_project_key = p.bgt_project_key
AND gegevens.ins_discipline_verwijder IS NULL
AND gegevens.bgt_project_verwijder IS NULL
AND ( mutaties.bgt_budgetmutatie_omschrijving NOT LIKE 'AO %'
AND mutaties.bgt_budgetmutatie_omschrijving NOT LIKE 'MW %'
)
AND (mutaties.bgt_budgetmutatie_code NOT IN ('A','W')
OR mutaties.bgt_budgetmutatie_code IS NULL
);
-- MMW_CONT
CREATE OR REPLACE VIEW twyn_v_meerminderwerk_opdr
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
, 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
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
ORDER BY b.prs_leverancier_nr
, p.scode
, m.mld_opdr_ordernr
, m.mld_opdr_bedrijfopdr_volgnr;
-- MMWINVCO
CREATE OR REPLACE VIEW twyn_v_meerminderwerk_fact
AS
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
, d.startdatum_p
, 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
, 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
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
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
, d.startdatum_p
, 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
, 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
, 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.bgt_project_key = d.bgt_project_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
--FDATFACT
CREATE OR REPLACE VIEW twyn_v_factuur_datum
AS
SELECT tp.ins_discipline_key
, tp.bgt_project_key
, tp.opdrachtgever
, tp.pcode
, tp.project
, tp.subproject
, tp.rcode
, tp.kostencode
, b.prs_leverancier_nr
, f.fin_factuur_datum factuur_datum
, COALESCE(f.fin_factuur_advies, f.fin_factuur_datum) advies_datum
, o.mld_opdr_ordernr contractnummer
, o.mld_opdr_bedrijfopdr_volgnr volgnummer
, f.fin_factuur_nr factuur_nr
, f.fin_factuur_opmerking factuur_opmerking
, f.fin_factuur_totaal factuur_exc
, f.fin_factuur_totaal_btw factuur_btw
, f.fin_factuur_totaal + f.fin_factuur_totaal_btw factuur_inc
, TO_CHAR(f.fin_factuur_datum, 'dd-mm-yyyy') factuur_datum_p
, TO_CHAR(f.fin_factuur_datum, 'yyyy') factuur_datum_jaar
, TO_CHAR(f.fin_factuur_datum, 'mm') factuur_datum_maand
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'dd-mm-yyyy') factuur_advies_p
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'yyyy') factuur_advies_jaar
, TO_CHAR(COALESCE(f.fin_factuur_advies, f.fin_factuur_datum), 'mm') factuur_advies_maand
FROM prs_bedrijf b
, fin_factuur f
, mld_opdr o
, bgt_v_project_full tp
WHERE f.mld_opdr_key(+) = o.mld_opdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key(+)
AND tp.prs_kostensoort_key = o.prs_kostensoort_key(+)
AND tp.ins_discipline_verwijder IS NULL
AND tp.bgt_project_verwijder IS NULL;
CREATE OR REPLACE FORCE VIEW twyn_v_rap_bgt_basis
(
discipline_key,
discipline_omschrijving,
project_key,
project,
subproject,
kostenrubriek_key,
kostenrubriek,
kostensoortgroep_key,
kostensoortgroep,
kostensoort_key,
kostensoort,
budget_key,
budget_bedrag,
gecontracteerd,
gefactureerd
)
AS
SELECT b.ins_discipline_key,
d.ins_discipline_omschrijving,
b.bgt_project_key,
b.project,
b.subproject,
b.bgt_kostenrubriek_key,
b.kostenrubriek,
(SELECT ksg.prs_kostensoortgrp_key
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key = b.prs_kostensoort_key)
AS ksg_key,
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key = b.prs_kostensoort_key)
AS ksg_oms,
b.prs_kostensoort_key,
b.kostensoort,
b.bgt_budget_key,
b.bgt_budget_bedrag,
(SELECT mld_opdr_kosten
FROM ( SELECT prs_kostensoort_key,
SUM (mld_opdr_kosten) AS mld_opdr_kosten
FROM mld_opdr
GROUP BY prs_kostensoort_key) mo
WHERE b.prs_kostensoort_key = mo.prs_kostensoort_key)
AS mld_opdr_kosten,
(SELECT fin_factuur_totaal
FROM ( SELECT prs_kostensoort_key,
SUM (fin_factuur_totaal) AS fin_factuur_totaal
FROM fin_factuur
GROUP BY prs_kostensoort_key) ff
WHERE b.prs_kostensoort_key = ff.prs_kostensoort_key)
AS gefactureerd
FROM twyn_v_bgt_budgetgegevens b, ins_tab_discipline d
WHERE d.ins_discipline_key = b.ins_discipline_key;
CREATE OR REPLACE FORCE VIEW twyn_v_rap_bgt_subproj
(
project,
subproject,
deel,
bedrag
)
AS
SELECT discipline_omschrijving,
subproject,
'Budget',
SUM (budget_bedrag) - SUM (gecontracteerd)
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject
UNION ALL
SELECT discipline_omschrijving,
subproject,
'Gecontracteerd',
SUM (gecontracteerd) - SUM (gefactureerd)
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject
UNION ALL
SELECT discipline_omschrijving,
subproject,
'Gefactureerd',
SUM (gefactureerd)
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject
ORDER BY discipline_omschrijving, subproject;
CREATE OR REPLACE FORCE VIEW twyn_v_rap_bgt_kostenrubriek
(
project,
subproject,
kostenrubriek,
deel,
bedrag
)
AS
SELECT discipline_omschrijving,
subproject,
kostenrubriek,
'Budget' AS deel,
SUM (budget_bedrag) - SUM (gecontracteerd) AS bedrag
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject, kostenrubriek
UNION ALL
SELECT discipline_omschrijving,
subproject,
kostenrubriek,
'Gecontracteerd' AS deel,
SUM (gecontracteerd) - SUM (gefactureerd) AS bedrag
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject, kostenrubriek
UNION ALL
SELECT discipline_omschrijving,
subproject,
kostenrubriek,
'Gefactureerd' AS deel,
SUM (gefactureerd) AS bedrag
FROM twyn_v_rap_bgt_basis
GROUP BY discipline_omschrijving, subproject, kostenrubriek
ORDER BY discipline_omschrijving, subproject, kostenrubriek;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile