VLKC#36864 Fin. rapportages en CODA-export (bevriezen)

svn path=/Customer/trunk/; revision=32528
This commit is contained in:
Maarten van der Heide
2017-01-24 16:17:03 +00:00
parent 320090dfdd
commit 689804bd47

View File

@@ -768,8 +768,7 @@ EXCEPTION
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ') ';
fac.imp_writelog (p_import_key, 'E',
v_errormsg,
'Inleesproces personen afgebroken!');
v_errormsg, 'Inleesproces personen afgebroken!');
END vlkc_import_prs;
/
@@ -1984,6 +1983,391 @@ AS
AND rrr.res_ruimte_opstel_key = res_ruimte_geg.res_ruimte_opstel_key(+)
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+);
-- Zonder de B en R van BROC (in de R geeft 'vlkc_v_rap_cat_doorbelasting' inzicht)!
/* Formatted on 20-1-2017 10:15:45 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW vlkc_v_coda_actual
(
bedrijf_key,
factuur_key,
bes_opdr_key,
mld_opdr_key,
cnt_key,
--res_art_key,
--res_deel_key,
kostensoort, -- Van groep!
doorbelasten,
kostenplaats, -- Kostenplaats bij verplichting
kosten
)
AS -- Op basis van O-facturen!
SELECT b.prs_bedrijf_key bedrijf_key,
f.fin_factuur_key factuur_key,
NULL bes_opdr_key,
f.mld_opdr_key mld_opdr_key,
NULL cnt_key,
--NULL res_art_key,
--NULL res_deel_key,
COALESCE (ksgm.prs_kostensoortgrp_altcode,
ksgv.prs_kostensoortgrp_altcode,
NULL)
kostensoort,
COALESCE (ksm.prs_kostensoort_doorbelasten,
ksv.prs_kostensoort_doorbelasten,
0)
doorbelasten,
kp.prs_kostenplaats_nr,
SUM(DECODE (
ksm.prs_kostensoort_doorbelasten,
1,
DECODE (ksm.prs_kostensoort_btw,
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal),
DECODE (ksv.prs_kostensoort_btw,
1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
f.fin_factuur_totaal)))
kosten
FROM fin_factuur f,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
prs_kostensoort ksm,
prs_kostensoortgrp ksgm,
prs_kostensoort ksv,
prs_kostensoortgrp ksgv,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.fin_factuur_verwijder IS NULL
AND f.fin_factuur_statuses_key = 6 -- Akkoord
AND fac.gettrackingdate ('FINFOK', f.fin_factuur_key) < TRUNC (SYSDATE, 'mm')
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND ksm.prs_kostensoortgrp_key = ksgm.prs_kostensoortgrp_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND ksv.prs_kostensoortgrp_key = ksgv.prs_kostensoortgrp_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY b.prs_bedrijf_key,
f.fin_factuur_key,
NULL,
f.mld_opdr_key,
NULL,
--NULL,
--NULL,
COALESCE (ksgm.prs_kostensoortgrp_altcode,
ksgv.prs_kostensoortgrp_altcode,
NULL),
COALESCE (ksm.prs_kostensoort_doorbelasten,
ksv.prs_kostensoort_doorbelasten,
0),
kp.prs_kostenplaats_nr
-- UNION ALL -- Op basis van C-facturen -> Doen we niet!
-- SELECT c.cnt_prs_bedrijf_key bedrijf_key,
-- f.fin_factuur_key factuur_key,
-- NULL bes_opdr_key,
-- NULL mld_opdr_key,
-- f.cnt_contract_key cnt_key,
-- --NULL res_art_key,
-- --NULL res_deel_key,
-- COALESCE (ksgc.prs_kostensoortgrp_altcode,
-- ksgd.prs_kostensoortgrp_altcode,
-- NULL)
-- kostensoort,
-- COALESCE (ksc.prs_kostensoort_doorbelasten,
-- ksd.prs_kostensoort_doorbelasten,
-- 0)
-- doorbelasten,
-- kp.prs_kostenplaats_nr,
-- SUM(DECODE (
-- ksc.prs_kostensoort_doorbelasten,
-- 1,
-- DECODE (ksc.prs_kostensoort_btw,
-- 1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
-- f.fin_factuur_totaal),
-- DECODE (ksd.prs_kostensoort_btw,
-- 1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
-- f.fin_factuur_totaal)))
-- kosten
-- FROM fin_factuur f,
-- cnt_v_aanwezigcontract c,
-- prs_kostensoort ksc,
-- prs_kostensoortgrp ksgc,
-- ins_tab_discipline td,
-- prs_kostensoort ksd,
-- prs_kostensoortgrp ksgd,
-- prs_kostenplaats kp
-- WHERE f.fin_factuur_verwijder IS NULL
-- AND f.fin_factuur_statuses_key = 6 -- Akkoord
-- AND f.cnt_contract_key = c.cnt_contract_key
-- AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
-- AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
-- AND c.ins_discipline_key = td.ins_discipline_key
-- --AND td.ins_discipline_omschrijving LIKE 'CF%'
-- AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
-- AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
-- AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key
-- GROUP BY c.cnt_prs_bedrijf_key,
-- f.fin_factuur_key,
-- NULL,
-- NULL,
-- f.cnt_contract_key,
-- --NULL,
-- --NULL,
-- COALESCE (ksgc.prs_kostensoortgrp_altcode,
-- ksgd.prs_kostensoortgrp_altcode,
-- NULL),
-- COALESCE (ksc.prs_kostensoort_doorbelasten,
-- ksd.prs_kostensoort_doorbelasten,
-- 0),
-- kp.prs_kostenplaats_nr
UNION ALL -- Op basis van C-termijnen op vaste contracten (CF)!
SELECT c.cnt_prs_bedrijf_key bedrijf_key,
NULL factuur_key,
NULL bes_opdr_key,
NULL mld_opdr_key,
c.cnt_contract_key cnt_key,
--NULL res_art_key,
--NULL res_deel_key,
COALESCE (ksgc.prs_kostensoortgrp_altcode,
ksgd.prs_kostensoortgrp_altcode,
NULL)
kostensoort,
COALESCE (ksc.prs_kostensoort_doorbelasten,
ksd.prs_kostensoort_doorbelasten,
0)
doorbelasten,
kp.prs_kostenplaats_nr,
c.cnt_contract_termijnkosten kosten
FROM cnt_v_aanwezigcontract c,
prs_kostensoort ksc,
prs_kostensoortgrp ksgc,
ins_tab_discipline td,
prs_kostensoort ksd,
prs_kostensoortgrp ksgd,
prs_kostenplaats kp
WHERE TRUNC (c.cnt_contract_looptijd_van) < TRUNC (SYSDATE, 'mm') - 1
AND c.cnt_contract_looptijd_tot >= TRUNC (SYSDATE, 'mm') - 1
--AND c.cnt_contract_status = 0 -- NIET Gesloten
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
AND c.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_omschrijving LIKE 'CF%'
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key;
/* WEG!!!
-- Zonder de B en R van BROC (in de R geeft 'vlkc_v_rap_cat_doorbelasting' inzicht)!
CREATE OR REPLACE VIEW vlkc_v_rap_coda_frozen
(
fclt_f_exportdatum,
fclt_f_leverancier,
fclt_f_factuurnr,
fclt_f_status,
fclt_f_kostensoort,
fclt_f_kostenplaats,
broc_type,
facilitornr,
bedrag_incl,
bedrag_excl
)
AS -- O-facturen!
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd') exportdatum,
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
COALESCE (ksm.prs_kostensoort_upper, ksv.prs_kostensoort_upper), -- Incl. prs_kostensoort_refcode?
kp.prs_kostenplaats_nr afn_kpn,
'Opdracht' broc_type,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr,
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw) bedrag_incl,
SUM (f.fin_factuur_totaal) bedrag_excl
FROM fin_factuur f,
fin_factuur_statuses fs,
fac_tracking t,
mld_opdr o,
mld_melding m,
mld_stdmelding sm,
ins_tab_discipline td,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7 -- Verwerkt
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 145 -- FINVER
AND t.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
AND f.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd'),
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
COALESCE (ksm.prs_kostensoort_upper, ksv.prs_kostensoort_upper),
kp.prs_kostenplaats_nr,
'Opdracht',
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
UNION ALL -- C-facturen!
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd') exportdatum,
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
ks.prs_kostensoort_upper, -- Incl. prs_kostensoort_refcode?
kp.prs_kostenplaats_nr afn_kpn,
'Contract' broc_type,
c.cnt_contract_nummer_intern,
SUM (f.fin_factuur_totaal + f.fin_factuur_totaal_btw) bedrag_incl,
SUM (f.fin_factuur_totaal) bedrag_excl
FROM fin_factuur f,
fin_factuur_statuses fs,
fac_tracking t,
cnt_contract c,
ins_tab_discipline td,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_bedrijf b
WHERE f.fin_factuur_statuses_key = 7 -- Verwerkt
AND f.fin_factuur_statuses_key = fs.fin_factuur_statuses_key
AND f.fin_factuur_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 145 -- FINVER
AND t.fac_tracking_datum >
TRUNC (ADD_MONTHS (SYSDATE, -12), 'YYYY')
AND f.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = td.ins_discipline_key
AND td.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm-dd'),
b.prs_bedrijf_naam,
f.fin_factuur_nr,
fs.fin_factuur_statuses_omschr,
ks.prs_kostensoort_upper,
kp.prs_kostenplaats_nr,
'Contract',
c.cnt_contract_nummer_intern;
*/
/* Formatted on 20-1-2017 12:42:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE vlkc_select_coda (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- 1. Goedgekeurde facturen AV-en.
-- 2. Termijn/maandbedrag van lopende contracten bevriezen (in Eigen tabel).
--[3. Achterliggende opdrachten AV-en.]
-- Cursor loopt over een tijdelijke tabel met daarin opgebouwd alle regels
-- van de (te bevriezen) verantwoording van kosten gebaseerd op O-facturen
-- en C-termijnen.
CURSOR c1
IS
SELECT '[' || TO_CHAR (v.bedrijf_key) || '|' || TO_CHAR (v.factuur_key) || '|' || TO_CHAR (COALESCE (v.mld_opdr_key, v.cnt_key)) || '] '
aanduiding,
v.factuur_key,
v.mld_opdr_key,
v.cnt_key,
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie))
cnt_nr,
cp.plaats,
v.kosten
FROM vlkc_v_coda_actual v,
cnt_contract c,
(SELECT cnt_contract_key, COUNT ( * ) aant, MIN (pa.alg_plaatsaanduiding) plaats
FROM cnt_contract_plaats cp, alg_v_plaatsaanduiding_all pa
WHERE cp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys
AND cp.cnt_alg_plaats_code = pa.alg_onroerendgoed_type) cp
WHERE v.cnt_key = c.cnt_contract_key
AND c.cnt_contract_key = cp.cnt_contract_key(+);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200) := '';
v_holiday NUMBER;
v_line_count NUMBER;
v_amount_sum NUMBER (10, 2);
BEGIN
v_line_count := 0;
v_amount_sum := 0;
SELECT COUNT ( * )
INTO v_holiday
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
-- LET OP: CODA-export draait dagelijks na middernacht (begin van dag)
-- en de bedragen over de voorgaande maand worden maandelijks alleen in de
-- nacht na 2e werkdag van de maand doorgezet (= bevroren tbv. rapporten).
-- IF nacht na 2e werkdag van de maand (<28>n geen weekend <20>n geen vrije dag)!
-- count_work_days (d1,d2) bepaalt het #werkdagen van d1 tot d2 (als d1=d2,
-- dan return 0); daarom bepalen tov. laatste dag van vorige maand!
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 2
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND v_holiday = 0
THEN
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := rec.aanduiding;
IF rec.mld_opdr_key IS NOT NULL -- O-facturen
THEN
v_errormsg := 'Fout verwerken O-factuur';
UPDATE fin_factuur f
SET fin_factuur_statuses_key = 7 -- AV
WHERE f.fin_factuur_key = rec.factuur_key;
fac.trackaction ('FINVER',
rec.factuur_key,
NULL, -- Dus _FACILITOR!
NULL,
NULL);
ELSE -- C-termijnen op vaste contracten (CF)!
v_errormsg := 'Fout verwerken C-termijn';
INSERT INTO fac_usrdata (fac_usrtab_key,
fac_usrdata_code,
fac_usrdata_omschr,
fac_usrdata_aanmaak,
fac_usrdata_vervaldatum,
fac_usrdata_prijs)
VALUES (81, -- VasteKostenMnd
TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy-mm') || '/' || TO_CHAR (rec.cnt_key),
TO_CHAR (rec.cnt_nr) || '/' || TO_CHAR (rec.plaats),
SYSDATE,
NULL,
rec.kosten);
END IF;
COMMIT;
v_line_count := v_line_count + 1;
v_amount_sum := v_amount_sum + rec.kosten;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'CODA-export/#regels: ' || TO_CHAR (v_line_count), TO_CHAR (v_amount_sum));
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', v_aanduiding || v_errormsg, 'Proces CODA-export afgebroken!');
COMMIT;
END;
/
/* Formatted on 25-11-2016 15:36:24 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW vlkc_v_rap_coda_export
(
@@ -2107,10 +2491,9 @@ CREATE OR REPLACE VIEW vlkc_v_rap_coda_ordexp
factuurnummer
)
AS
SELECT TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm')
|| DECODE (TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm'),
TO_CHAR (SYSDATE, 'yyyy-mm'), '*',
'')
SELECT DECODE (f.fin_factuur_statuses_key,
7, TO_CHAR (fac.gettrackingdate ('FINVER', f.fin_factuur_key), 'yyyy-mm'),
TO_CHAR (fac.gettrackingdate ('FINFOK', f.fin_factuur_key), 'yyyy-mm') || '*')
periode, -- ToDo!
COALESCE (ksgm.prs_kostensoortgrp_altcode, ksgv.prs_kostensoortgrp_altcode, NULL) kostensoort,
kp.prs_kostenplaats_nr kostenplaats,
@@ -2144,7 +2527,7 @@ AS
WHERE 1 = 1
AND o.mld_typeopdr_key IN (5, 283) -- Werkopdracht/Offerteopdracht
AND o.mld_opdr_key = f.mld_opdr_key
AND f.fin_factuur_statuses_key = 6 -- Akkoord
AND f.fin_factuur_statuses_key IN (6, 7) -- Akkoord/Verwerkt
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
@@ -2171,27 +2554,23 @@ CREATE OR REPLACE VIEW vlkc_v_rap_coda_cntexp
factuurnummer
)
AS
SELECT TO_CHAR (SYSDATE, 'yyyy-mm') || '*' periode, -- ToDo!
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (ADD_MONTHS (fac.safe_to_date (SUBSTR (fac_usrdata_code, 1, 7), 'yyyy-mm'), 1), 'yyyy-mm')), '2017-01') maand
FROM fac_usrdata
WHERE fac_usrtab_key = 81)
SELECT SUBSTR (ud.fac_usrdata_code, 1, 7) periode, -- yyyy-mm
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
kp.prs_kostenplaats_nr kostenplaats,
'EUR' valuta,
'Vast' element4,
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-- -1, TO_NUMBER (NULL),
-- f.fin_factuur_totaal + f.fin_factuur_totaal_btw)
c.cnt_contract_termijnkosten bedrag_debet,
--DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-- -1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
-- TO_NUMBER (NULL))
ud.fac_usrdata_prijs bedrag_debet,
TO_NUMBER (NULL) bedrag_credit,
--COALESCE (ksgc.prs_kostensoortgrp_oms, ksgd.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
td.ins_discipline_omschrijving omschrijving,
'C' || c.cnt_contract_nummer_intern verplichtingnummer,
'C' || SUBSTR (ud.fac_usrdata_omschr, 1, INSTR (ud.fac_usrdata_omschr, '/') - 1) verplichtingnummer,
b.prs_bedrijf_naam leverancier,
--f.fin_factuur_nr factuurnummer
'N.v.t.' factuurnummer
FROM cnt_contract c,
--fin_factuur f,
FROM fac_usrdata ud,
cnt_contract c, -- Alles, want fac_usrdata "rules"!
prs_kostensoort ksc,
prs_kostensoortgrp ksgc,
ins_tab_discipline td,
@@ -2199,11 +2578,40 @@ AS
prs_kostensoortgrp ksgd,
prs_kostenplaats kp,
prs_bedrijf b
WHERE 1 = 1
--AND c.cnt_contract_looptijd_van < SYSDATE -- Altijd van eerste maand?
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Altijd tot eerste maand?
--AND c.cnt_contract_key = f.cnt_contract_key
--AND f.fin_factuur_statuses_key = 6 -- Akkoord
WHERE ud.fac_usrtab_key = 81 -- VasteKostenMnd
AND SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, '/') + 1) = TO_CHAR (c.cnt_contract_key)
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
AND c.ins_discipline_key = td.ins_discipline_key
--AND td.ins_discipline_omschrijving LIKE 'CF%'
AND td.prs_kostensoort_key = ksd.prs_kostensoort_key(+)
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
UNION ALL
SELECT lp.maand || '*' periode,
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
kp.prs_kostenplaats_nr kostenplaats,
'EUR' valuta,
'Vast' element4,
c.cnt_contract_termijnkosten bedrag_debet,
TO_NUMBER (NULL) bedrag_credit,
--COALESCE (ksgc.prs_kostensoortgrp_oms, ksgd.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
td.ins_discipline_omschrijving omschrijving,
'C' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) verplichtingnummer,
b.prs_bedrijf_naam leverancier,
'N.v.t.' factuurnummer
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c, -- Alleen aanwezige (CF-)contracten!
prs_kostensoort ksc,
prs_kostensoortgrp ksgc,
ins_tab_discipline td,
prs_kostensoort ksd,
prs_kostensoortgrp ksgd,
prs_kostenplaats kp,
prs_bedrijf b
WHERE TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '-01', 'yyyy-mm-dd'))
AND c.cnt_contract_looptijd_tot >= LAST_DAY (TO_DATE (lp.maand || '-01', 'yyyy-mm-dd'))
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
AND c.ins_discipline_key = td.ins_discipline_key
@@ -2233,13 +2641,23 @@ AS
kp.prs_kostenplaats_nr kostenplaats,
'EUR' element3,
DECODE (kp.prs_kostenplaats_nr, '2216', 'Variabel', 'Eindgebruiker') element4,
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-1, TO_NUMBER (NULL),
f.fin_factuur_totaal + f.fin_factuur_totaal_btw)
DECODE (f.fin_factuur_statuses_key,
NULL, -- Nog geen factuur ontvangen
DECODE (SIGN (o.mld_opdr_kosten),
-1, TO_NUMBER (NULL),
o.mld_opdr_kosten),
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-1, TO_NUMBER (NULL),
f.fin_factuur_totaal + f.fin_factuur_totaal_btw))
bedrag_debet,
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
TO_NUMBER (NULL))
DECODE (f.fin_factuur_statuses_key,
NULL, -- Nog geen factuur ontvangen
DECODE (SIGN (o.mld_opdr_kosten),
-1, o.mld_opdr_kosten,
TO_NUMBER (NULL)),
DECODE (SIGN (f.fin_factuur_totaal + f.fin_factuur_totaal_btw),
-1, f.fin_factuur_totaal + f.fin_factuur_totaal_btw,
TO_NUMBER (NULL)))
bedrag_credit,
--COALESCE (ksgm.prs_kostensoortgrp_oms, ksgv.prs_kostensoortgrp_oms, 'ONGEDEFINEERD')
sd.ins_srtdiscipline_prefix || '-' || sm.mld_stdmelding_omschrijving omschrijving,
@@ -2247,9 +2665,7 @@ AS
b.prs_bedrijf_naam leverancier,
f.fin_factuur_nr factuurnummer
FROM mld_opdr o,
(SELECT *
FROM fin_factuur
WHERE fin_factuur_statuses_key IN (2, 3)) f, -- Ingevoerd/Incompleet
fin_factuur f,
mld_melding m,
mld_stdmelding sm,
prs_kostensoort ksm,
@@ -2260,9 +2676,9 @@ AS
ins_srtdiscipline sd,
prs_kostenplaats kp,
prs_bedrijf b
WHERE 1 = 1
AND o.mld_typeopdr_key IN (5, 283) -- Werkopdracht/Offerteopdracht
WHERE o.mld_typeopdr_key IN (5, 283) -- Werkopdracht/Offerteopdracht
AND o.mld_opdr_key = f.mld_opdr_key(+)
AND COALESCE (f.fin_factuur_statuses_key, 3) IN (2, 3) -- Factuur Ingevoerd/Incompleet of nog niet ontvangen!
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
@@ -2287,8 +2703,8 @@ CREATE OR REPLACE VIEW vlkc_v_rap_cnt_verantw
kostenplaats -- 4 cijfers
)
AS
SELECT TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy') jaar, -- Altijd nieuwe versie per jaar?
c.cnt_contract_nummer_intern contractnummer,
SELECT TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy') jaar, -- Altijd nieuwe versie per jaar!
'C' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)) contractnummer,
b.prs_bedrijf_naam leverancier,
b.prs_leverancier_nr leveranciersnummer,
c.cnt_contract_kosten jaarbedrag, -- Is dat altijd jaarbedrag?
@@ -2299,7 +2715,7 @@ AS
SUM (COALESCE (ud.fac_usrdata_prijs, 0)) reeds_verantwoord,
COALESCE (ksgc.prs_kostensoortgrp_altcode, ksgd.prs_kostensoortgrp_altcode, NULL) kostensoort,
kp.prs_kostenplaats_nr kostenplaats
FROM cnt_contract c,
FROM cnt_contract c, -- Alle contracten/versies (incl. verwijderde?)
(SELECT *
FROM fin_factuur
WHERE fin_factuur_statuses_key IN (2, 6, 7)) f, -- Ingevoerd/Akkoord/Verwerkt
@@ -2310,11 +2726,10 @@ AS
prs_kostensoortgrp ksgd,
prs_kostenplaats kp,
prs_bedrijf b,
(SELECT *
(SELECT SUBSTR (fac_usrdata_code, INSTR (fac_usrdata_code, '/') + 1) cnt_usrdata_code, fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrtab_key = -1) ud
WHERE 1 = 1 -- Alle contracten!
AND c.cnt_contract_key = f.cnt_contract_key(+)
WHERE fac_usrtab_key = 81) ud -- VasteKostenMnd
WHERE c.cnt_contract_key = f.cnt_contract_key(+)
AND c.prs_kostensoort_key = ksc.prs_kostensoort_key(+)
AND ksc.prs_kostensoortgrp_key = ksgc.prs_kostensoortgrp_key(+)
AND c.ins_discipline_key = td.ins_discipline_key
@@ -2322,9 +2737,9 @@ AS
AND ksd.prs_kostensoortgrp_key = ksgd.prs_kostensoortgrp_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TO_CHAR (c.cnt_contract_key) = ud.fac_usrdata_omschr(+)
AND TO_CHAR (c.cnt_contract_key) = cnt_usrdata_code(+)
GROUP BY TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy'), -- Altijd nieuwe versie per jaar?
c.cnt_contract_nummer_intern,
'C' || c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || TO_CHAR (c.cnt_contract_versie)),
b.prs_bedrijf_naam,
b.prs_leverancier_nr,
c.cnt_contract_kosten, -- Is dat altijd jaarbedrag?