Files
Customer/BLCC/blcc2.sql
Maarten van der Heide b295073665 BLCC#90972 Drietal rapportages met oppervlakten per gebouw/classificatie tbv. settlement
svn path=/Customer/trunk/; revision=70936
2025-11-13 18:08:09 +00:00

24000 lines
1.5 MiB
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for BLCC.
DEFINE thisfile = 'BLCC2.SQL'
DEFINE dbuser = '^BLCC'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
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 ------
-- BLCC#71247: Rapport tbv. CSU!
CREATE OR REPLACE VIEW blcc_v_rap_schoonmaakv2
(
maand,
alg_ruimte_key,
locatiecode,
gebouwcode,
gebouwnaam,
verdiepingcode,
ruimtenummer,
ruimtefunctie,
ruimteomschrijving,
nvo_m2,
nvo_getekend,
tarief_basic,
tarief_premium,
tarief_excellent,
tariefniveau,
nvo_prijs_jaar, -- Toegepaste prijs
nvo_prijs_maand, -- Toegepaste prijs
vloertype
)
AS
SELECT x.sch_maand,
x.alg_ruimte_key,
x.locatiecode,
x.gebouwcode,
g.alg_gebouw_naam,
x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving,
x.nvo,
x.nvo_getekend,
x.basic_tarief,
x.premium_tarief,
x.excellent_tarief,
x.sch_tariefniveau,
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0), 2)),
ROUND (COALESCE (x.premium_tarief, 0), 2)),
ROUND (COALESCE (x.excellent_tarief, 0), 2))
nvo_prijs_jaar,
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief, 0) / 12, 2))
nvo_prijs_maand,
vloertype.waarde
FROM blcc_alg_freeze x, alg_ruimte r, alg_verdieping v, alg_gebouw g,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype
WHERE x.sch_tariefniveau IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+)
UNION ALL -- Lopende maand op 1e volgende maand doorgezet naar ProQuro!
SELECT TO_CHAR (SYSDATE, 'yyyy-mm') || '*', -- Negeer SCH_MAAND uit BLCC_V_ALG_ACTUAL!
x.alg_ruimte_key,
x.locatiecode,
x.gebouwcode,
g.alg_gebouw_naam,
x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving,
x.nvo,
x.nvo_getekend,
x.basic_tarief,
x.premium_tarief,
x.excellent_tarief,
x.sch_tariefniveau,
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0), 2)),
ROUND (COALESCE (x.premium_tarief, 0), 2)),
ROUND (COALESCE (x.excellent_tarief, 0), 2))
nvo_prijs_jaar,
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief, 0) / 12, 2))
nvo_prijs_maand,
vloertype.waarde
FROM blcc_v_alg_actual x, alg_ruimte r, alg_verdieping v, alg_gebouw g,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype
WHERE x.sch_tariefniveau IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+);
-- BLCC#787600: Rapport tbv. Vebego!
CREATE OR REPLACE VIEW blcc_v_rap_sch_vebego
(
maand,
alg_ruimte_key,
locatiecode,
gebouwcode,
gebouwnaam,
verdiepingcode,
ruimtenummer,
ruimtefunctie,
ruimteomschrijving,
nvo_m2,
nvo_getekend,
tarief_basic,
tarief_premium,
tarief_excellent,
tarief_excellent_plus,
tariefniveau,
nvo_prijs_jaar, -- Toegepaste prijs
nvo_prijs_maand, -- Toegepaste prijs
vloertype
)
AS
SELECT x.sch_maand,
x.alg_ruimte_key,
x.locatiecode,
x.gebouwcode,
g.alg_gebouw_naam,
x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving,
x.nvo,
x.nvo_getekend,
x.basic_tarief2,
x.premium_tarief2,
x.excellent_tarief2,
x.excelplus_tarief2,
x.sch_tariefniveau2,
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0), 2)),
ROUND (COALESCE (x.premium_tarief2, 0), 2)),
ROUND (COALESCE (x.excellent_tarief2, 0), 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0), 2))
nvo_prijs_jaar,
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0) / 12, 2))
nvo_prijs_maand,
vloertype.waarde
FROM blcc_alg_freeze x, alg_ruimte r, alg_verdieping v, alg_gebouw g,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype
WHERE x.sch_tariefniveau2 IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+)
UNION ALL -- Lopende maand op 1e volgende maand doorgezet naar ProQuro!
SELECT TO_CHAR (SYSDATE, 'yyyy-mm') || '*', -- Negeer SCH_MAAND uit BLCC_V_ALG_ACTUAL!
x.alg_ruimte_key,
x.locatiecode,
x.gebouwcode,
g.alg_gebouw_naam,
x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving,
x.nvo,
x.nvo_getekend,
x.basic_tarief2,
x.premium_tarief2,
x.excellent_tarief2,
x.excelplus_tarief2,
x.sch_tariefniveau2,
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0), 2)),
ROUND (COALESCE (x.premium_tarief2, 0), 2)),
ROUND (COALESCE (x.excellent_tarief2, 0), 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0), 2))
nvo_prijs_jaar,
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0) / 12, 2))
nvo_prijs_maand,
vloertype.waarde
FROM blcc_v_alg_actual x, alg_ruimte r, alg_verdieping v, alg_gebouw g,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype
WHERE x.sch_tariefniveau2 IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+);
/*
SELECT DISTINCT -- Alle maanden in voorgaande jaar t/m voorgaande maand!
TO_CHAR (p.mnd, 'yyyy-mm') maand,
r.alg_ruimte_key,
l.alg_locatie_code,
g.alg_gebouw_code,
g.alg_gebouw_naam,
v.alg_verdieping_code,
r.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
r.alg_ruimte_omschrijving,
fac.safe_to_number (nvo.waarde) nvo_m2,
cont.cad_imp_contour_opp nvo_getekend,
fac.safe_to_number (basic.waarde) tarief_basic,
fac.safe_to_number (premium.waarde) tarief_premium,
fac.safe_to_number (excellent.waarde) tarief_excellent,
DECODE (c.ins_discipline_key, 2981, 'Basic', 2501, 'Premium', 2982, 'Excellent', NULL) tariefniveau,
DECODE (c.ins_discipline_key,
2981, ROUND (fac.safe_to_number (basic.waarde), 2),
2501, ROUND (fac.safe_to_number (premium.waarde), 2),
2982, ROUND (fac.safe_to_number (excellent.waarde), 2),
TO_NUMBER (NULL)) nvo_prijs_jaar,
DECODE (c.ins_discipline_key,
2981, ROUND (fac.safe_to_number (basic.waarde) / 12, 2),
2501, ROUND (fac.safe_to_number (premium.waarde) / 12, 2),
2982, ROUND (fac.safe_to_number (excellent.waarde) / 12, 2),
TO_NUMBER (NULL)) nvo_prijs_maand,
vloertype.waarde,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
mc.cnt_contract_key,
DECODE (mc.cnt_contract_nummer_intern, NULL, NULL, mc.cnt_contract_nummer_intern || '.' || COALESCE (mc.cnt_contract_versie, '0')) mantelcontractnr,
p.mnd datum_po,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
b.prs_bedrijf_naam contractant,
lhkotc.waarde lhkotc_class
FROM cnt_v_aanwezigcontract c,
( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 24) mnd
FROM DUAL
WHERE ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 24) >= TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 24) >= fac.safe_to_date ('01-03-2022', 'dd-mm-yyyy') -- Begindatum van contract met CSU!
CONNECT BY LEVEL <= 23) p,
cnt_discipline cd,
prs_bedrijf b,
cnt_v_aanwezigcontract mc,
cnt_contract_plaats cp,
alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_srtruimte sr,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1460 -- NVO
AND alg_onrgoed_niveau = 'R') nvo,
cad_tekening tek,
cad_imp_contour cont,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1540 -- Schoonmaaktarief Basic
AND alg_onrgoed_niveau = 'R') basic,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1541 -- Schoonmaaktarief Premium
AND alg_onrgoed_niveau = 'R') premium,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1542 -- Schoonmaaktarief Excellent
AND alg_onrgoed_niveau = 'R') excellent,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc
WHERE c.ins_discipline_key IN (2981, 2501, 2982) -- Soft Services Cleaning Basic/Premium/Excellent
AND c.cnt_contract_status IN (0, 1) -- Definitief of inmiddels Gesloten!
AND p.mnd > fac.safe_to_date ('01-03-2022', 'dd-mm-yyyy')
AND p.mnd >= TRUNC (c.cnt_contract_looptijd_van)
AND p.mnd < TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = nvo.alg_onrgoed_key(+)
AND r.alg_verdieping_key = tek.alg_verdieping_key(+)
AND r.alg_ruimte_nr = cont.cad_imp_contour_nr(+)
AND cont.cad_tekening_key = tek.cad_tekening_key(+)
AND r.alg_ruimte_key = basic.alg_onrgoed_key(+)
AND r.alg_ruimte_key = premium.alg_onrgoed_key(+)
AND r.alg_ruimte_key = excellent.alg_onrgoed_key(+)
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+)
AND r.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
UNION ALL -- Lopende maand op 1e volgende maand doorgezet naar ProQuro!
SELECT DISTINCT
TO_CHAR (SYSDATE, 'yyyy-mm') maand,
r.alg_ruimte_key,
l.alg_locatie_code,
g.alg_gebouw_code,
g.alg_gebouw_naam,
v.alg_verdieping_code,
r.alg_ruimte_nr,
--DECODE (sr.prs_verhuurbaar, NULL, 'Nee', 'Ja') verhuurbaar,
sr.alg_srtruimte_omschrijving,
r.alg_ruimte_omschrijving,
fac.safe_to_number (nvo.waarde) nvo_m2,
cont.cad_imp_contour_opp nvo_getekend,
fac.safe_to_number (basic.waarde) tarief_basic,
fac.safe_to_number (premium.waarde) tarief_premium,
fac.safe_to_number (excellent.waarde) tarief_excellent,
DECODE (c.ins_discipline_key, 2981, 'Basic', 2501, 'Premium', 2982, 'Excellent', NULL) tariefniveau,
DECODE (c.ins_discipline_key,
2981, ROUND (fac.safe_to_number (basic.waarde), 2),
2501, ROUND (fac.safe_to_number (premium.waarde), 2),
2982, ROUND (fac.safe_to_number (excellent.waarde), 2),
TO_NUMBER (NULL)) nvo_prijs_jaar,
DECODE (c.ins_discipline_key,
2981, ROUND (fac.safe_to_number (basic.waarde) / 12, 2),
2501, ROUND (fac.safe_to_number (premium.waarde) / 12, 2),
2982, ROUND (fac.safe_to_number (excellent.waarde) / 12, 2),
TO_NUMBER (NULL)) nvo_prijs_maand,
vloertype.waarde,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
mc.cnt_contract_key,
DECODE (mc.cnt_contract_nummer_intern, NULL, NULL, mc.cnt_contract_nummer_intern || '.' || COALESCE (mc.cnt_contract_versie, '0')) mantelcontractnr,
TRUNC (ADD_MONTHS (SYSDATE, 1), 'mm') datum_po,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
b.prs_bedrijf_naam contractant,
lhkotc.waarde lhkotc_class
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_bedrijf b,
cnt_v_aanwezigcontract mc,
cnt_contract_plaats cp,
alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_srtruimte sr,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1460 -- NVO
AND alg_onrgoed_niveau = 'R') nvo,
cad_tekening tek,
cad_imp_contour cont,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1540 -- Schoonmaaktarief Basic
AND alg_onrgoed_niveau = 'R') basic,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1541 -- Schoonmaaktarief Premium
AND alg_onrgoed_niveau = 'R') premium,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1542 -- Schoonmaaktarief Excellent
AND alg_onrgoed_niveau = 'R') excellent,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc
WHERE c.ins_discipline_key IN (2981, 2501, 2982) -- Soft Services Cleaning Basic/Premium/Excellent
AND c.cnt_contract_status = 0 -- Definitief
AND SYSDATE >= TRUNC (c.cnt_contract_looptijd_van)
AND SYSDATE < TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_contract_mantel_key = mc.cnt_contract_key(+)
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = nvo.alg_onrgoed_key(+)
AND r.alg_verdieping_key = tek.alg_verdieping_key(+)
AND r.alg_ruimte_nr = cont.cad_imp_contour_nr(+)
AND cont.cad_tekening_key = tek.cad_tekening_key(+)
AND r.alg_ruimte_key = basic.alg_onrgoed_key(+)
AND r.alg_ruimte_key = premium.alg_onrgoed_key(+)
AND r.alg_ruimte_key = excellent.alg_onrgoed_key(+)
AND r.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+);
*/
CREATE OR REPLACE PROCEDURE blcc_add_xml_row (p_bestand IN VARCHAR2,
p_regel IN VARCHAR2)
AS
v_index NUMBER;
BEGIN
SELECT COALESCE (MAX (fac_rapport_volgnr), 0) + 1
INTO v_index
FROM fac_rapport
WHERE fac_rapport_node = p_bestand;
INSERT INTO fac_rapport (fac_rapport_node,
fac_rapport_volgnr,
fac_rapport_regel)
VALUES (p_bestand, v_index, p_regel);
END;
/
CREATE OR REPLACE PROCEDURE blcc_add_xml_element (p_bestand IN VARCHAR2,
p_tag IN VARCHAR2,
p_value IN VARCHAR2)
AS
BEGIN
blcc_add_xml_row (
p_bestand,
'<'
|| p_tag
|| '>'
|| xml.char_to_html (p_value)
|| '</'
|| p_tag
|| '>');
END;
/
CREATE OR REPLACE VIEW blcc_v_export_proquro (result, result_order)
AS
SELECT fac_rapport_regel, fac_rapport_volgnr
FROM fac_rapport
WHERE fac_rapport_node = 'PROQURO';
CREATE OR REPLACE PROCEDURE blcc_select_proquro (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Markeren te exporteren opdracht-verplichtingen (via ordernr)!
-- BLCC#55646: Per 2019-05 deprecated, want markeren gebeurt door Verwerken
-- opdrachten via BLCC.freezeopdrachten()!
--CURSOR c1
--IS
-- SELECT '[' || TO_CHAR (o.mld_melding_key) || '|' || TO_CHAR (o.mld_opdr_key) || '] '
-- aanduiding,
-- o.mld_opdr_key
-- FROM mld_opdr o
-- WHERE o.mld_typeopdr_key != 103 -- Geen RFQs
-- AND o.mld_statusopdr_key = 9 -- Afgerond
-- AND o.mld_opdr_ordernr IS NULL -- Geen ordernr, dus bijwerken
-- ORDER BY 1;
-- Wegschrijven te exporteren verplichting-regels (= factuur naar ProQuro).
-- BLCC#38809: SCC uitsluiten (alleen regels als volgnr 1000 t/m 2999)!
-- Per oktober-doorbelasting alleen nog maar catalogi meenemen die zijn
-- gekoppeld aan een bedrijf (voor de locatie CAMPUS).
-- BLCC#52390: Per februari catering-verplichtingen niet meer exporteren!
-- BLCC#55646: Per 2019-06 Verwerkte ipv. Afgeronde opdrachten exporteren
-- en markeren als doorgezet naar ProQuro!
-- BLCC#59950: Per 2020-01 doorzetten termijnbedragen volgens factuurschema
-- igv. Planned Maintenance (en per 2021-01 nog meer contract-
-- soorten met een facturatieschema)!
-- BLCC#64393: Per 01-02-2021 doorzetten totaal NVO-oppervlakten x Prijs in
-- scope van Soft Services Cleaning contracten (over voorgaande
-- maand)!
-- BLCC#69716: Per 17-12-2021 voortaan ook negatieve bedragen exporteren!
-- BLCC#84992: DEPRECATED per 8-11-2024 (bij overgang naar Dynamics)!
CURSOR c3
IS
SELECT o.mld_opdr_key,
NULL cnt_contract_key,
SUBSTR (sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|| DECODE (ko.mld_opdr_key, NULL, '', ' (' || ko.mld_kenmerkopdr_waarde || ')'), 1, 50)
externalid, -- BLCC#58880: Andere vulling voor ExternalId!
p.prs_perslid_nr, -- AdministrationExternalId
SUBSTR (kp.prs_kostenplaats_nr, 1, 5)
costcentre, -- CostcentreExternalId
b.prs_leverancier_nr,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || ';;'
omschrijving, -- BLCC#58442: Andere vulling voor <ProductName>!
o.mld_opdr_kosten price,
TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd')
deliverydate, -- BLCC#59254: ORDVER (ipv. ORDAFM)
COALESCE (kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
costtype, -- CostTypeExternalId
DECODE (aog.alg_gebouw_code,
NULL, 'C-0000-000-00',
'122-001N', 'C-0122-001-01',
'122-00TW', 'C-0122-000-00',
'122-03B', 'C-0122-003-01', -- Weg?
'122-32A', 'C-0122-032-01', -- Weg?
'122-093A', 'C-0122-093-01', -- BLCC#81581
'122-093B', 'C-0122-093-02', -- BLCC#81581
'122-093C', 'C-0122-093-03', -- BLCC#81581
'122-093D', 'C-0122-093-04', -- BLCC#81581
'122-093E', 'C-0122-093-05', -- BLCC#81581
'122-094A', 'C-0122-094-01', -- BLCC#81581
'122-094B', 'C-0122-094-02', -- BLCC#81581
'122-094C', 'C-0122-094-03', -- BLCC#81581
'124-037Itter', 'C-0122-037-00', -- Weg?
'122-042GH', 'C-0122-042-01', -- BLCC#61795
'122-059-1', 'C-0122-059-01', -- BLCC#76251/BLCC#81581?
'122-059-2', 'C-0122-059-02', -- BLCC#76251/BLCC#81581?
'121-220A', 'C-0121-220-01', -- BLCC#76251
'C-0' || aog.alg_gebouw_code || '-00')
costproject, -- CostProjectExternalId
NULL cnt_factuurschema_key
FROM mld_opdr o,
mld_melding m,
alg_v_allonrgoed_gegevens aog,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort kso,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_bedrijf b,
prs_perslid p,
(SELECT mld_opdr_key, mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr
WHERE mld_kenmerk_key = 222) ko -- Refnr. leverancier (op WO)
WHERE o.mld_typeopdr_key IN (101, 2741) -- WO en WO na offerte
AND o.mld_statusopdr_key = 7 -- Verwerkt
AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') >= '2019-06-01' -- Per 2019-06 nieuwe werkwijze!
AND o.mld_opdr_ordernr IS NULL -- Nog niet doorgezet ProQuro!
AND NOT EXISTS -- Nog niet doorgezet ProQuro!
(SELECT 1
FROM mld_v_aanwezigkenmerkopdr
WHERE mld_kenmerk_key = 581
AND mld_opdr_key = o.mld_opdr_key)
AND o.mld_opdr_kosten <> 0
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_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
AND p.prs_perslid_key(+) = 101
AND o.mld_opdr_key = ko.mld_opdr_key(+)
UNION ALL -- BLCC#59950: Doorzetten contracten volgens factuurschema!
SELECT NULL mld_opdr_key,
c.cnt_contract_key,
--SUBSTR (TRIM (c.cnt_contract_omschrijving), 1, 40) || ' [' || TO_CHAR (SYSDATE, 'yyyy-mm') || ']'
SUBSTR ('C' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || ' [' || TO_CHAR (SYSDATE, 'yyyy-mm') || '] ' || TRIM (c.cnt_contract_omschrijving), 1, 50)
externalid, -- BLCC#62560: Andere vulling voor ExternalId!
p.prs_perslid_nr, -- AdministrationExternalId
--kp.prs_kostenplaats_nr costcentre, -- CostcentreExternalId
TRIM(SUBSTR (kp.prs_kostenplaats_nr, 1, INSTR (kp.prs_kostenplaats_nr || '-', '-') - 1))
costcentre, -- CostcentreExternalId (tot het streepje)
b.prs_leverancier_nr,
';C' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || ';'
omschrijving,
fs.cnt_factuurschema_bedrag price,
TO_CHAR (LAST_DAY (SYSDATE), 'yyyy-mm-dd') deliverydate,
ks.prs_kostensoort_oms costtype, -- CostTypeExternalId
'C-0000-000-00' costproject, -- CostProjectExternalId
fs.cnt_factuurschema_key
FROM cnt_v_aanwezigcontract c,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_bedrijf b,
cnt_factuurschema fs,
prs_perslid p
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Evt. termijn doorzetten op 1e dag van de boekmaand!
--AND c.ins_discipline_key = 0 -- Voor alle contractsoorten met een facturatieschema!
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde door te zetten maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin door te zetten maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.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
AND c.cnt_contract_key = fs.cnt_contract_key
AND fs.cnt_factuurschema_boekmaand = TO_CHAR (SYSDATE, 'yyyy-mm')
AND p.prs_perslid_key(+) = 101
UNION ALL -- BLCC#64393: Doorzetten Soft Services Cleaning contracten!
SELECT NULL mld_opdr_key,
NULL cnt_contract_key,
SUBSTR ('[' || x.sch_maand || '] Soft Services Cleaning', 1, 50)
externalid,
p.prs_perslid_nr, -- AdministrationExternalId
TRIM (SUBSTR (kp.prs_kostenplaats_nr, 1, INSTR (kp.prs_kostenplaats_nr || '-', '-') - 1))
costcentre, -- CostcentreExternalId (tot het streepje)
b.prs_leverancier_nr,
SUBSTR ('[' || x.sch_maand || '] Soft Services Cleaning', 1, 50)
omschrijving, -- ProductName dezelfde vulling als ExternalId
SUM (DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief, 0) / 12, 2)))
price,
TO_CHAR (SYSDATE, 'yyyy-mm-dd') deliverydate,
ks.prs_kostensoort_oms costtype, -- CostTypeExternalId
'C-0000-000-00' costproject, -- CostProjectExternalId
NULL cnt_factuurschema_key
FROM blcc_alg_freeze x,
cnt_contract mc,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_bedrijf b,
prs_perslid p
WHERE TO_CHAR (SYSDATE, 'dd') = '01' -- Evt. termijn doorzetten op 1e dag van de boekmaand!
AND x.sch_maand = TO_CHAR (TRUNC (SYSDATE, 'mm') - 1, 'yyyy-mm') -- Voorgaande maand!
AND x.sch_contract IS NOT NULL
AND fac.safe_to_number (SUBSTR (x.sch_mantel, 1, INSTR (x.sch_mantel, '=') - 1)) = mc.cnt_contract_key(+)
--AND mc.cnt_contract_status = 0 -- Definitief
AND mc.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND mc.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND mc.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND p.prs_perslid_key(+) = 101
GROUP BY NULL,
NULL,
SUBSTR ('[' || x.sch_maand || '] Soft Services Cleaning', 1, 50),
p.prs_perslid_nr,
kp.prs_kostenplaats_nr,
b.prs_leverancier_nr,
SUBSTR ('[' || x.sch_maand || '] Soft Services Cleaning', 1, 50),
TO_CHAR (LAST_DAY (SYSDATE), 'yyyy-mm-dd'),
ks.prs_kostensoort_oms,
'C-0000-000-00',
NULL
ORDER BY 1, 2, 9;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_bestand VARCHAR2 (12);
freeze_datum DATE;
v_order_count NUMBER;
v_amount_sum NUMBER (10, 2);
BEGIN
v_bestand := SUBSTR (p_applname, 1, 12);
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
DELETE FROM fac_rapport
WHERE fac_rapport_node = v_bestand;
END;
/
-- BLCC#53426: Kosten voortaan splitsen naar BTW (VH/VL)!
CREATE OR REPLACE VIEW blcc_v_rap_cat_frozenplus
(
fclt_x_verwerkt,
fclt_f_debiteur,
fclt_f_organisatie,
locatie,
ruimte,
datum,
tijd,
resnr,
activiteit,
omschrijving,
artikelnr,
artikelomschrijving,
aantal,
stuksprijs,
kosten,
btw,
fclt_f_besteller,
costcenter,
hide_f_kostenplaats
)
AS
SELECT TO_CHAR (x.res_rsv_artikel_verwerkt, 'dd-mm-yyyy'), -- Verwerkt
COALESCE (x.prs_afdeling_naam, '???') deb_nr,
x.prs_afdeling_omschrijving deb_oms,
DECODE (x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr)
afleveradres,
COALESCE (rr.res_ruimte_omschrijving, rg.alg_ruimte_omschrijving) ruimte,
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
x.res_activiteit_omschrijving activiteit,
x.res_rsv_ruimte_omschrijving omschrijving,
x.res_artikel_nr,
x.res_artikel_omschrijving,
x.res_rsv_artikel_aantal,
ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
stuksprijs,
x.res_rsv_artikel_aantal * ROUND ((x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal), 5)
regeltotaal,
x.btw,
x.prs_perslid_naam_full,
(SELECT MAX (kw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND rk.res_srtkenmerk_key = 1)
costcenter,
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
FROM (SELECT rra.res_rsv_artikel_verwerkt,
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key)
res_ruimte_key,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key)
alg_ruimte_key,
rra.res_rsv_artikel_levering,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
act.res_activiteit_omschrijving,
rrr.res_rsv_ruimte_omschrijving,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.res_rsv_artikel_aantal,
rra.res_rsv_artikel_prijs,
rra.res_artikel_prijs,
rra.btw,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
pf.prs_perslid_naam_full,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
res_activiteit act,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20151001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NOT NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats k
WHERE rrr.res_activiteit_key = act.res_activiteit_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
LEFT JOIN res_ruimte rr
ON x.res_ruimte_key = rr.res_ruimte_key
LEFT JOIN alg_v_ruimte_gegevens_all rg
ON x.alg_ruimte_key = rg.alg_ruimte_key
UNION ALL
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') || '*', -- Lopend
COALESCE (x.prs_afdeling_naam, '???') deb_nr,
x.prs_afdeling_omschrijving deb_oms,
DECODE (x.alg_ruimte_key, NULL, 'Onbekend', rg.alg_gebouw_upper || '-' || rg.alg_verdieping_code || '-' || rg.alg_ruimte_nr)
afleveradres,
COALESCE (rr.res_ruimte_nr, rg.alg_ruimte_omschrijving) ruimte,
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr resnr,
x.res_activiteit_omschrijving activiteit,
x.res_rsv_ruimte_omschrijving omschrijving,
x.res_artikel_nr,
x.res_artikel_omschrijving,
x.res_rsv_artikel_aantal,
ROUND (COALESCE (x.res_rsv_artikel_prijs / x.res_rsv_artikel_aantal, x.res_artikel_prijs), 5)
stuksprijs,
ROUND (COALESCE (x.res_rsv_artikel_prijs, x.res_rsv_artikel_aantal * x.res_artikel_prijs), 5)
regeltotaal,
x.btw,
x.prs_perslid_naam_full,
(SELECT MAX (kw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND rk.res_srtkenmerk_key = 1)
costcenter,
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving
FROM (SELECT rra.res_rsv_artikel_verwerkt,
COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key)
res_ruimte_key,
COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key)
alg_ruimte_key,
rra.res_rsv_artikel_levering,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
act.res_activiteit_omschrijving,
rrr.res_rsv_ruimte_omschrijving,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.res_rsv_artikel_aantal,
rra.res_rsv_artikel_prijs,
rra.res_artikel_prijs,
rra.btw,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
pf.prs_perslid_naam_full,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving
FROM res_rsv_ruimte rrr,
res_activiteit act,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key != 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key != 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
rra.res_rsv_artikel_levering,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key != 6
AND rra.res_rsv_artikel_levering > TO_DATE ('20170901', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < SYSDATE
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats k
WHERE rrr.res_activiteit_key = act.res_activiteit_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
LEFT JOIN res_ruimte rr
ON x.res_ruimte_key = rr.res_ruimte_key
LEFT JOIN alg_v_ruimte_gegevens_all rg
ON x.alg_ruimte_key = rg.alg_ruimte_key;
-- BLCC#61135: Uitbreiden met oa. alle verbruik!
CREATE OR REPLACE VIEW blcc_v_rap_cat_frozen
(
levermaand,
leverdatum,
fclt_f_exportjob,
fclt_f_bedrijf,
afleveradres,
fclt_f_afleverdatum,
tijdstip,
bestelnummer,
fclt_f_artikelnummer,
artikelomschrijving,
interne_artikelprijs,
aantal,
kosten,
btw_laag_oud,
btw_hoog_oud,
btw_laag,
btw_hoog,
fclt_f_besteller,
costcenter,
afdeling,
fclt_3d_afdeling_key,
dirty
)
AS
SELECT TO_CHAR (x.res_rsv_artikel_levering, 'yyyy-mm') levermaand,
x.res_rsv_artikel_levering,
TO_CHAR (x.res_rsv_artikel_verwerkt, 'yyyy-mm-dd') verwerkt,
COALESCE (x.prs_bedrijf_naam, '???') bedrijf,
DECODE (
x.alg_ruimte_key,
NULL, 'Onbekend',
rg.alg_locatie_code
|| '-'
|| rg.alg_gebouw_upper
|| '-'
|| rg.alg_verdieping_code
|| '-'
|| rg.alg_ruimte_nr
|| ' ('
|| rg.alg_ruimte_omschrijving
|| ')')
afleveradres,
TO_CHAR (x.res_rsv_artikel_levering, 'dd-mm-yyyy') datum,
TO_CHAR (x.res_rsv_artikel_levering, 'hh24:mi') tijd,
x.res_reservering_key || '/' || x.res_rsv_ruimte_volgnr bestelnr,
x.res_artikel_nr,
x.res_artikel_omschrijving,
ROUND ((x.regeltotaal / x.res_rsv_artikel_aantal), 5) interneprijs,
x.res_rsv_artikel_aantal,
ROUND (x.regeltotaal, 5) regeltotaal,
x.btw_laag_oud,
x.btw_hoog_oud,
x.btw_laag,
x.btw_hoog,
x.prs_perslid_naam_full,
(SELECT MAX (kw.res_kenmerkreservering_waarde)
FROM res_kenmerkwaarde kw, res_kenmerk rk
WHERE kw.res_rsv_ruimte_key = x.res_rsv_ruimte_key
AND kw.res_kenmerkwaarde_verwijder IS NULL
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND rk.res_srtkenmerk_key = 1)
costcenter,
x.prs_kostenplaats_nr || '-' || x.prs_kostenplaats_omschrijving afd,
COALESCE (x.prs_afdeling_key, -1) afdeling_key,
DECODE (x.res_rsv_ruimte_dirtlevel + x.res_rsv_artikel_dirtlevel, 0, 'Nee', 'Ja') dirty
FROM (SELECT COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) alg_ruimte_key,
rrr.res_rsv_ruimte_key,
rrr.res_reservering_key,
rrr.res_rsv_ruimte_volgnr,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_verwerkt,
b.prs_bedrijf_naam,
a.prs_afdeling_key,
rra.res_artikel_nr,
rra.res_artikel_omschrijving,
rra.regeltotaal,
rra.res_rsv_artikel_aantal,
rra.btw_laag_oud,
rra.btw_hoog_oud,
rra.btw_laag,
rra.btw_hoog,
pf.prs_perslid_naam_full,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
rrr.res_rsv_ruimte_dirtlevel,
rra.res_rsv_artikel_dirtlevel
FROM res_rsv_ruimte rrr,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) regeltotaal,
rra.res_rsv_artikel_aantal,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
21, TO_NUMBER (NULL),
ROUND ((rra.res_rsv_artikel_prijs / 100) * 6, 5)) btw_laag_oud,
DECODE (
rra.res_rsv_artikel_btw,
NULL, TO_NUMBER (NULL),
6, TO_NUMBER (NULL),
ROUND ((rra.res_rsv_artikel_prijs / 100) * 21, 5)) btw_hoog_oud,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, TO_NUMBER (NULL),
21, TO_NUMBER (NULL),
ROUND ((COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) / 100) * rra.res_rsv_artikel_btw, 5)) btw_laag,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, TO_NUMBER (NULL),
21, ROUND ((COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) / 100) * rra.res_rsv_artikel_btw, 5),
TO_NUMBER (NULL)) btw_hoog,
ra.res_discipline_key,
rra.res_rsv_artikel_dirtlevel
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE 1 = 1 --rra.res_status_bo_key = 6
--AND rra.res_rsv_artikel_verwerkt > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') AND TRUNC (SYSDATE + 1)
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_nr,
ra.res_artikel_omschrijving,
COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) regeltotaal,
rra.res_rsv_artikel_aantal,
DECODE (
rra.res_rsv_artikel_btw,
21, TO_NUMBER (NULL),
ROUND ((0.75 * rra.res_rsv_artikel_prijs / 100) * 6, 5)) btw_laag_oud,
DECODE (
rra.res_rsv_artikel_btw,
6, TO_NUMBER (NULL),
ROUND ((0.25 * rra.res_rsv_artikel_prijs / 100) * 21, 5)) btw_hoog_oud,
CASE
WHEN rra.res_rsv_artikel_levering < TO_DATE ('20190101', 'yyyymmdd')
THEN
ROUND ((0.75 * COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) / 100) * 6, 5)
ELSE
ROUND ((0.75 * COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) / 100) * 9, 5)
END
btw_laag,
ROUND ((0.25 * COALESCE (rra.res_rsv_artikel_prijs, rra.res_rsv_artikel_aantal * ra.res_artikel_prijs) / 100) * 21, 5)
btw_hoog,
ra.res_discipline_key,
rra.res_rsv_artikel_dirtlevel
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE 1 = 1 --rra.res_status_bo_key = 6
--AND rra.res_rsv_artikel_verwerkt > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND rra.res_rsv_artikel_levering BETWEEN TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy') AND TRUNC (SYSDATE + 1)
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline td,
res_disc_params dp,
prs_bedrijf b,
prs_afdeling a,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_v_perslid_fullnames_all pf,
prs_kostenplaats k
WHERE rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key(+)
AND b.prs_overeenkomst_nr = a.prs_afdeling_naam(+)
--AND a.prs_afdeling_parentkey IS NULL
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)) x
LEFT JOIN
alg_v_ruimte_gegevens_all rg
ON x.alg_ruimte_key = rg.alg_ruimte_key;
-- BLCC#52390: Per februari catering-doorbelasting splitsen naar BTW (VH/VL)!
-- BLCC#53262: Per ADDD-facturatie deprecated en tzt. verwijderen, toch!?
CREATE OR REPLACE VIEW blcc_v_rap_tf_frozen
(
fclt_x_maand,
fclt_x_debiteur,
factuurtype,
debiteur,
nummer,
factuurdatum,
vervaldatum,
kop,
voet,
valuta,
aantal,
artikel,
subartikel,
omschrijving,
artikelprijs_excl,
artikelprijs_incl,
btw,
grootboek,
vrij_tekstveld_1,
vrij_tekstveld_2,
vrij_tekstveld_3
)
AS
SELECT TO_CHAR (TRUNC (t.fac_tracking_datum, 'mm') - 1, 'yyyy-mm'),
a.prs_afdeling_omschrijving debiteur_oms,
'FACTUUR',
a.prs_afdeling_naam,
NULL,
TO_CHAR (t.fac_tracking_datum, 'dd-mm-yyyy'),
NULL,
NULL,
NULL,
'EUR',
1,
0, -- Eenmalig artikel
NULL,
sd.ins_srtdiscipline_prefix
|| TO_CHAR (o.mld_melding_key)
|| '/'
|| TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
|| ' ['
|| td.ins_discipline_omschrijving
|| '/'
|| sm.mld_stdmelding_omschrijving
|| ']'
|| DECODE (km.mld_kenmerkmelding_waarde,
NULL, '',
' (=' || km.mld_kenmerkmelding_waarde || ')'),
ROUND (o.mld_opdr_kosten * 1.065, 2), -- Management fee 6,5%
NULL,
'VH',
COALESCE (ksm.prs_kostensoort_refcode,
ksv.prs_kostensoort_refcode),
km.mld_kenmerkmelding_waarde,
NULL,
NULL
FROM mld_opdr o,
fac_tracking t,
mld_melding m,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager
prs_perslid p,
prs_afdeling a,
alg_v_allonrgoed_gegevens og,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_bedrijf b
WHERE o.mld_opdr_ordernr IS NOT NULL -- Zou zo moeten zijn!
AND o.mld_statusopdr_key = 7 -- Zou zo moeten zijn!
AND o.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 66 -- ORDVER
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_key = km.mld_melding_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
--AND kp.prs_kostenplaats_upper LIKE '50900%'
AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900'
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
UNION ALL -- "Normale" catering gegroepeerd per debiteur/kostensoort!
SELECT TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
debiteur_oms,
'FACTUUR',
debiteur,
NULL,
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
NULL,
NULL,
NULL,
'EUR',
1,
0, -- Eenmalig artikel
NULL,
'Cateringkosten '
|| TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm')
|| '/'
|| btw,
SUM (verw_prijs),
NULL,
btw,
prs_kostensoort_refcode,
NULL,
NULL,
NULL
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resid,
a.prs_afdeling_naam debiteur,
a.prs_afdeling_omschrijving debiteur_oms,
ks.prs_kostensoort_refcode,
--LTRIM (rra.res_artikel_omschrijving) || ' (' || COALESCE (rra.res_artikel_eenheid, '') || ')' res_voorziening,
rra.res_rsv_artikel_verwerkt resver,
rra.res_rsv_artikel_prijs verw_prijs,
--rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_afdeling a,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt < TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
prs_kostensoort ks
WHERE rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
--AND ks.prs_kostensoort_doorbelasten(+) = 1
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND ( rra.res_rsv_artikel_verwerkt < TO_DATE ('20171001', 'yyyymmdd')
OR ( rrr.res_activiteit_key != 130
AND rra.res_rsv_artikel_verwerkt > TO_DATE ('20171001', 'yyyymmdd'))))
GROUP BY TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
debiteur_oms,
debiteur,
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
'Cateringkosten '
|| TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm')
|| '/'
|| btw,
btw,
prs_kostensoort_refcode
UNION ALL -- Ruimte+Catering gegroepeerd per evenement/debiteur/kostensoort
SELECT TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
debiteur_oms,
'FACTUUR',
debiteur,
NULL,
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
NULL,
NULL,
NULL,
'EUR',
1,
0, -- Eenmalig artikel
NULL,
'Evenementkosten '
|| res_id
|| ' - '
|| res_voorziening
|| '/'
|| btw,
SUM (verw_prijs),
NULL,
--'VH',
btw,
prs_kostensoort_refcode,
MIN (res_kenmerkreservering_waarde),
NULL,
NULL
FROM (SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
a.prs_afdeling_naam debiteur,
a.prs_afdeling_omschrijving debiteur_oms,
ks.prs_kostensoort_refcode,
'Ruimte ' || rr.res_ruimte_nr res_voorziening,
fac.gettrackingdate ('RESVER', rrr.res_rsv_ruimte_key) resver,
COALESCE (rrr.res_rsv_ruimte_prijs, 0) - COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs,
'VH' btw, -- Hard 21%
kw.res_kenmerkreservering_waarde
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_afdeling a,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
res_ruimte rr,
res_discipline rd,
prs_kostensoort ks,
(SELECT kw.res_rsv_ruimte_key,
kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE rrr.res_activiteit_key = 130 -- Evenement
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_status_bo_key = 6 -- AV
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rr.res_discipline_key = rd.ins_discipline_key
--AND ks.prs_kostensoort_doorbelasten(+) = 1
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
UNION ALL
SELECT rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resid,
a.prs_afdeling_naam debiteur,
a.prs_afdeling_omschrijving debiteur_oms,
ks.prs_kostensoort_refcode,
rd.ins_discipline_omschrijving res_voorziening,
rra.res_rsv_artikel_verwerkt resver,
rra.res_rsv_artikel_prijs verw_prijs,
rra.btw,
kw.res_kenmerkreservering_waarde
FROM res_rsv_ruimte rrr,
prs_perslid p,
prs_afdeling a,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key,
MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt < TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
rra.res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--ra.res_artikel_prijs,
DECODE (
COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_verwerkt,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
--rra.res_rsv_artikel_aantal,
--0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_status_bo_key = 6 -- AV
AND rra.res_rsv_artikel_verwerkt >= TO_DATE ('20180301', 'yyyymmdd')
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
prs_kostensoort ks,
(SELECT kw.res_rsv_ruimte_key,
kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE rrr.res_activiteit_key = 130 -- Evenement
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
--AND ks.prs_kostensoort_doorbelasten(+) = 1
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
AND rra.res_rsv_artikel_verwerkt > TO_DATE ('20171001', 'yyyymmdd'))
GROUP BY TO_CHAR (TRUNC (resver, 'mm') - 1, 'yyyy-mm'),
debiteur_oms,
debiteur,
TO_CHAR (TRUNC (resver, 'mm') - 1, 'dd-mm-yyyy'),
'Evenementkosten '
|| res_id
|| ' - '
|| res_voorziening
|| '/'
|| btw,
btw,
prs_kostensoort_refcode;
-- *** ADDD-export ***
CREATE OR REPLACE VIEW blcc_v_addd_correctie
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'01' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 761) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 762 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 763) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 764 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 765) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'02' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 801) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 802 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 803) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 804 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 805) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'03' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 806) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 807 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 808) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 809 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 810) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'04' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 811) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 812 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 813) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 814 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 815) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'05' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 816) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 817 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 818) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 819 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 820) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'06' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 821) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 822 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 823) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 824 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 825) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'07' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 826) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 827 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 828) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 829 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 830) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'08' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 831) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 832 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 833) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 834 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 835) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'09' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 836) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 837 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 838) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 839 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 840) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
'10' sortering,
TRIM (ro.waarde) regel,
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
NULL regel_oms, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
--m.mld_melding_key refkey, -- Niet overnemen van te corrigeren factuur (die vele V+E kan bundelen)?
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
btwnr.prs_kenmerklink_waarde btw_nr, -- Niet overnemen van te corrigeren factuur?
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin, -- Overnemen van te corrigeren factuur!
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde, -- Overnemen van te corrigeren factuur!
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Correctiemelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 841) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 842 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 843) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 844 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 845) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) = '3' -- vf.fin_verkoopfactuur_xmlnode = 'reservering/opdracht/melding'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
;
CREATE OR REPLACE VIEW blcc_v_addd_losverkoop
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'01' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 961) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 962 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 963) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 964 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 965) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'02' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 966) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 967 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 968) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 969 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 970) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'03' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 971) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 972 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 973) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 974 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 975) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'04' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1021) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1022 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1023) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1024 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1025) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'05' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1026) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1027 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1028) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1029 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1030) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'06' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1031) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1032 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1033) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1034 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1035) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'07' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1036) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1037 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1038) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1039 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1040) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'08' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1041) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1042 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1043) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1044 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1045) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'09' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1046) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1047 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1048) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1049 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1050) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-')) po_nr, -- Optioneel
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0')) contract_id, -- Optioneel
'10' sortering,
TRIM (ro.waarde) regel,
'LV' || TO_CHAR (m.mld_melding_key) regel_id,
NULL regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
--'melding' xmlnode,
--m.mld_melding_key refkey,
DECODE (m2c.cnt_contract_key, NULL, 'melding', 'contract') xmlnode,
DECODE (m2c.cnt_contract_key, NULL, m.mld_melding_key, m2c.cnt_contract_key) refkey,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --x.contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto losverkoopbedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW losverkoopbedrag
DECODE (factent.fac_usrdata_code, 'CRF', 1, 0) crf, -- CV=0 en CRF=1
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek_oms,
m.mld_melding_key mld_melding_key, -- Losverkoopmelding-key
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT mld_melding_key, c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c,
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1051) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1052 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1053) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1054 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1055) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND b.prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
;
-- BLCC#53262: Facturatie additionele diensten!
CREATE OR REPLACE VIEW blcc_v_addd_actual
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')) po_nr,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contract_id,
'1' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening sortering,
'Crossing campus (banqueting)' regel,
'V' || x.res_id regel_id,
TO_CHAR (x.aantal) || 'x ' || x.res_voorziening regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'reservering' xmlnode,
x.res_rsv_ruimte_key refkey,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.debiteur_nr) debiteur_nr,
x.btw_nr,
NULL contactpersoon, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw, 'VL', 'L', 'H') fin_btwtabelwaarde_code,
DECODE (x.btw, 'VL', 'Laag', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21) fin_btwtabelwaarde_perc, -- Bah!
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
SUM (ROUND (DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 0.06, 0.09), 0.21) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
0 crf, -- CV=0 en CRF=1
x.prs_kostensoort_refcode grtboekrek,
x.prs_kostensoort_refcode grtboekrek_oms,
TO_NUMBER (NULL) mld_melding_key,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM (SELECT rrr.res_rsv_ruimte_key, -- Catering-regels
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
ks.prs_kostensoort_refcode,
0 volgnr,
rra.res_rsv_artikel_aantal aantal,
LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
c.cnt_contract_nummer,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.ins_discipline_key,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_v_afdeling_boom ab,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE rrr.res_activiteit_key != 130 -- Anders dan Evenement
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1841
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE) -- Tot-datum > begin huidige maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
--AND kp.prs_kostenplaats_key = 4321 -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902!
--AND DECODE (ks.prs_kostensoort_refcode, '8132', rrr.prs_kostenplaats_key, 4321) = kp.prs_kostenplaats_key(+) -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902! BLCC#77765:Behalve als kostensoort=8132, dan 50900!
AND DECODE (ks.prs_kostensoort_refcode, '8132', 521, 4321) = kp.prs_kostenplaats_key(+) -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902! BLCC#77765:Behalve als kostensoort=8132, dan 50900!
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x
GROUP BY '*CONCEPT*',
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')),
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0'),
'1' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening,
'Crossing campus (banqueting)',
'V' || x.res_id,
TO_CHAR (x.aantal) || 'x ' || x.res_voorziening,
TO_CHAR (SYSDATE, 'dd-mm-yyyy'), TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy'),
'reservering',
x.res_rsv_ruimte_key,
x.prs_bedrijf_key, x.prs_bedrijf_naam, TRIM (x.debiteur_nr),
x.btw_nr,
NULL, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw, 'VL', 'L', 'H'),
DECODE (x.btw, 'VL', 'Laag', 'Hoog'),
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21),
TO_NUMBER (NULL),
TO_CHAR (SYSDATE, 'yyyymm'),
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy'),
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy'),
x.prs_kostensoort_refcode,
x.prs_kostensoort_refcode,
TO_NUMBER (NULL),
NULL, TO_NUMBER (NULL), NULL
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')) po_nr,
NULL contract_id,
'2' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening sortering,
DECODE (x.res_activiteit_key, 130, 'Event ' || x.res_id, 'Vergadering ' || x.res_id) regel,
DECODE (x.res_activiteit_key, 130, 'E' || x.res_id, 'V' || x.res_id) regel,
DECODE (x.volgnr, 0, x.res_voorziening || ' [' || TO_CHAR (ROUND (x.aantal, 2)) || ' uur]', 2, TO_CHAR (x.aantal) || 'x ' || x.res_voorziening, x.res_voorziening) regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'reservering' xmlnode,
x.res_rsv_ruimte_key refkey,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.debiteur_nr) debiteur_nr,
x.btw_nr,
NULL contactpersoon, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw, 'VL', 'L', 'H') fin_btwtabelwaarde_code,
DECODE (x.btw, 'VL', 'Laag', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21) fin_btwtabelwaarde_perc, -- Bah!
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
TO_CHAR (SYSDATE, 'yyyymm') maand,
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
SUM (ROUND (DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 0.06, 0.09), 0.21) * COALESCE (verw_prijs, prijs, 0), 2)) mndbtw, -- BTW bedrag
0 crf, -- CV=0 en CRF=1
x.prs_kostensoort_refcode grtboekrek,
x.prs_kostensoort_refcode grtboekrek_oms,
TO_NUMBER (NULL) mld_melding_key,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM (SELECT rrr.res_rsv_ruimte_key, -- Ruimte-regel
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
ks.prs_kostensoort_refcode,
0 volgnr,
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24 aantal, -- Duur in uren
rr.res_ruimte_nr || ' [' || TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') || ']' res_voorziening,
rrr.res_rsv_ruimte_van reslev,
rrr.res_rsv_ruimte_prijs verw_prijs,
res.getruimteprijs (rrr.res_rsv_ruimte_key) prijs,
'VH' btw, -- Hard 21%
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
res_ruimte rr,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_van > TO_DATE ('20221001', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE)
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rr.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
UNION ALL -- Korting-regel
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
ks.prs_kostensoort_refcode,
1 volgnr,
1 aantal,
'Korting' || ' [' || TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') || ']' res_voorziening,
rrr.res_rsv_ruimte_van reslev,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) prijs,
'VH' btw, -- Hard 21%
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
res_ruimte rr,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_van > TO_DATE ('20221001', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < TRUNC (SYSDATE)
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND COALESCE (rrr.res_rsv_ruimte_korting, 0) != 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND COALESCE (rar1.res_ruimte_key, rar2.res_ruimte_key) = rr.res_ruimte_key
AND rr.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
UNION ALL -- Catering-regels
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
ks.prs_kostensoort_refcode,
2 volgnr,
rra.res_rsv_artikel_aantal aantal,
LTRIM (rra.res_artikel_omschrijving) || ' [' || TO_CHAR (res_rsv_artikel_levering, 'dd-mm-yyyy') || ']' res_voorziening,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
h.prs_bedrijf_key,
h.prs_bedrijf_naam,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
btwnr.prs_kenmerklink_waarde btw_nr,
cp.contactpersoon,
pf.prs_perslid_naam_full,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
kw.res_kenmerkreservering_waarde
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key,
ra.res_artikel_omschrijving,
ra.res_artikel_eenheid
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE)
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
prs_kostensoort ks,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
--AND kp.prs_kostenplaats_key = 4321 -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902!
--AND DECODE (ks.prs_kostensoort_refcode, '8132', rrr.prs_kostenplaats_key, 4321) = kp.prs_kostenplaats_key(+) -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902! BLCC#77765:Behalve als kostensoort=8132, dan 50900!
AND DECODE (ks.prs_kostensoort_refcode, '8132', 521, 4321) = kp.prs_kostenplaats_key(+) -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902! BLCC#77765:Behalve als kostensoort=8132, dan 50900!
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x
GROUP BY '*CONCEPT*',
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')),
NULL,
'2' || TO_CHAR (x.reslev, 'yyyymmdd') || SUBSTR ('0000' || TO_CHAR (res_rsv_ruimte_key), -7) || TO_CHAR (volgnr) || x.prs_kostensoort_refcode || x.res_voorziening,
DECODE (x.res_activiteit_key, 130, 'Event ' || x.res_id, 'Vergadering ' || x.res_id),
DECODE (x.res_activiteit_key, 130, 'E' || x.res_id, 'V' || x.res_id),
DECODE (x.volgnr, 0, x.res_voorziening || ' [' || TO_CHAR (ROUND (x.aantal, 2)) || ' uur]', 2, TO_CHAR (x.aantal) || 'x ' || x.res_voorziening, x.res_voorziening),
TO_CHAR (SYSDATE, 'dd-mm-yyyy'), TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy'),
'reservering',
x.res_rsv_ruimte_key,
x.prs_bedrijf_key, x.prs_bedrijf_naam, TRIM (x.debiteur_nr),
x.btw_nr,
NULL, --x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.prs_perslid_naam_full,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
DECODE (x.btw, 'VL', 'L', 'H'),
DECODE (x.btw, 'VL', 'Laag', 'Hoog'),
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', 6, 9), 21),
TO_NUMBER (NULL),
TO_CHAR (SYSDATE, 'yyyymm'),
TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy'),
TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy'),
x.prs_kostensoort_refcode,
x.prs_kostensoort_refcode,
TO_NUMBER (NULL),
NULL, TO_NUMBER (NULL), NULL
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (COALESCE (ko.mld_kenmerkopdr_waarde, km.mld_kenmerkmelding_waarde, c.cnt_contract_nummer, '-')) po_nr,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contract_id,
'3' || SUBSTR ('0000' || TO_CHAR (o.mld_melding_key), -7) || '/' || SUBSTR ('00' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr), -3) sortering,
'Klantwens ' || sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) regel,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) regel_id,
--td.ins_discipline_omschrijving || '/' || sm.mld_stdmelding_omschrijving regel_oms,
DECODE (m.mld_melding_onderwerp, NULL, '', 'Subject: ' || TRIM (m.mld_melding_onderwerp) || CHR (13) || CHR (10)) || 'Description: ' || COALESCE (TO_CHAR(SUBSTR (TRIM (m.mld_melding_omschrijving), 1, 2000)), '-')
regel_oms,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'opdracht' xmlnode,
o.mld_opdr_key refkey,
h.prs_bedrijf_key, h.prs_bedrijf_naam prs_debiteur_naam, TRIM (h.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
NULL contactpersoon, --cp.contactpersoon,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_adres, h.prs_bedrijf_post_adres) adres,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_postcode, h.prs_bedrijf_post_postcode) postcode,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_plaats, h.prs_bedrijf_post_plaats) plaats,
DECODE (h.prs_bedrijf_post_adres, NULL, h.prs_bedrijf_bezoek_land, h.prs_bedrijf_post_land) land,
pf.prs_perslid_naam_full aanvrager,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
--TO_CHAR (SYSDATE, 'yyyymm') maand,
--TO_CHAR (TRUNC (SYSDATE, 'mm'), 'dd-mm-yyyy') mndbegin,
--TO_CHAR (LAST_DAY (SYSDATE), 'dd-mm-yyyy') mndeinde,
TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyymm') maand,
TO_CHAR (TRUNC (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'mm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (fac.gettrackingdate ('ORDVER', o.mld_opdr_key)), 'dd-mm-yyyy') mndeinde,
ROUND (COALESCE (o.mld_opdr_kosten, 0), 2) mndnet, -- Netto bedrag
ROUND (0.21 * COALESCE (o.mld_opdr_kosten, 0), 2) mndbtw, -- BTW bedrag
0 crf, -- CV=0 en CRF=1
'816100' grtboekrek, -- In overleg met Roger hard-coded!
'816100' grtboekrek_oms, -- In overleg met Roger hard-coded!
TO_NUMBER (NULL) mld_melding_key,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding
FROM mld_opdr o,
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 281) ko, -- Refnr. aanvrager
mld_melding m,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager
prs_perslid p,
prs_v_afdeling_boom ab,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
( SELECT prs_bedrijf_key, MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) contactpersoon
FROM prs_contactpersoon
WHERE prs_contactpersoon_verwijder IS NULL AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen
GROUP BY prs_bedrijf_key) cp,
prs_v_perslid_fullnames_all pf,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
prs_kostensoort kso,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key = 7 -- Verwerkt
AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') >= '2019-06-01' -- Per 2019-06 nieuwe werkwijze!
--AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') <= TO_CHAR (TRUNC (SYSDATE, 'iw') + 3, 'yyyy-mm-dd') -- Doorgezet ProQuro/wekelijks van woensdag op donderdag
--AND TO_CHAR (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'yyyy-mm-dd') <= TO_CHAR (SYSDATE, 'yyyy-mm-dd') -- Doorgezet ProQuro/wekelijks op 1e, 8e, 15e, 22e
AND NOT EXISTS -- Nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_xmlnode = 'opdracht' AND fin_verkoopfactuur_refkey = o.mld_opdr_key)
AND COALESCE (o.mld_opdr_kosten, 0) != 0
AND o.mld_opdr_key = ko.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_key = km.mld_melding_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1842
--AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TRUNC (SYSDATE, 'mm')) -- Van-datum < einde te factureren maand
--AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TRUNC (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'mm')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND h.prs_bedrijf_key = btwnr.prs_link_key(+)
AND h.prs_bedrijf_key = cp.prs_bedrijf_key(+)
AND p.prs_perslid_key = pf.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900'
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
AND o.prs_kostensoort_key = kso.prs_kostensoort_key(+)
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
UNION ALL -- Correctiemeldingen
SELECT x.fin_verkoopfactuur_id, x.po_nr, x.contract_id,
x.sortering, x.regel, x.regel_id, x.regel_oms,
x.factuurdatum, x.vervaldatum,
x.xmlnode, x.refkey,
x.prs_bedrijf_key, x.prs_debiteur_naam, x.debiteur_nr, x.btw_nr, x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
x.fin_btwtabelwaarde_code, x.fin_btwtabelwaarde_oms, x.fin_btwtabelwaarde_perc, x.fin_btwtabelwaarde_verlegd,
x.maand, x.mndbegin, x.mndeinde,
x.mndnet, x.mndbtw,
x.crf, -- CV=0 en CRF=1
x.grtboekrek, x.grtboekrek_oms,
x.mld_melding_key, -- Correctiemelding-key
x.alg_onroerendgoed_type,
x.alg_onroerendgoed_keys,
x.alg_plaatsaanduiding
FROM blcc_v_addd_correctie x
WHERE EXISTS (SELECT 1 FROM mld_melding WHERE mld_melding_status = 4 AND mld_melding_key = x.mld_melding_key) -- BLCC#88300: Geaccepteerd!
UNION ALL -- Losverkoopmeldingen
SELECT x.fin_verkoopfactuur_id, x.po_nr, x.contract_id,
x.sortering, x.regel, x.regel_id, x.regel_oms,
x.factuurdatum, x.vervaldatum,
x.xmlnode, x.refkey,
x.prs_bedrijf_key, x.prs_debiteur_naam, x.debiteur_nr, x.btw_nr, x.contactpersoon,
x.adres, x.postcode, x.plaats, x.land,
x.aanvrager,
x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms,
x.fin_btwtabelwaarde_code, x.fin_btwtabelwaarde_oms, x.fin_btwtabelwaarde_perc, x.fin_btwtabelwaarde_verlegd,
x.maand, x.mndbegin, x.mndeinde,
x.mndnet, x.mndbtw,
x.crf, -- CV=0 en CRF=1
x.grtboekrek, x.grtboekrek_oms,
x.mld_melding_key, -- Losverkoopmelding-key
x.alg_onroerendgoed_type,
x.alg_onroerendgoed_keys,
x.alg_plaatsaanduiding
FROM blcc_v_addd_losverkoop x
WHERE EXISTS (SELECT 1 FROM mld_melding WHERE mld_melding_status = 4 AND mld_melding_key = x.mld_melding_key) -- BLCC#87674: Geaccepteerd!
;
CREATE OR REPLACE VIEW blcc_v_addd_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
vf.fin_verkoopfactuur_c1 po_nr,
vf.fin_verkoopfactuur_c2 contract_id,
vf.fin_verkoopfactuur_c3 sortering,
SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '=') - 1) regel,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '=') + 1) regel_id,
vf.fin_verkoopfactuur_c8 regel_oms,
TO_CHAR (vf.fin_verkoopfactuur_datum, 'dd-mm-yyyy') factuurdatum, TO_CHAR (vf.fin_verkoopfactuur_d1, 'dd-mm-yyyy') vervaldatum,
vf.fin_verkoopfactuur_xmlnode xmlnode,
vf.fin_verkoopfactuur_refkey refkey,
vf.prs_bedrijf_key, vf.prs_debiteur_naam,
COALESCE (b.prs_overeenkomst_nr, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1)) debiteur_nr,
SUBSTR (vf.fin_verkoopfactuur_c7, INSTR (vf.fin_verkoopfactuur_c7, '=') + 1) btw_nr,
--vf.fin_verkoopfactuur_c4 contactpersoon,
'-' contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, -- Niet historisch bewaard!
vf.fin_verkoopfactuur_c5 aanvrager,
vf.prs_kostenplaats_key, vf.prs_kostenplaats_nr, vf.prs_kostenplaats_omschrijving, vf.prs_kostenplaatsgrp_oms,
vf.fin_btwtabelwaarde_code,
vf.fin_btwtabelwaarde_oms,
vf.fin_btwtabelwaarde_perc,
vf.fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto bedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW bedrag
vf.fin_verkoopfactuur_n3 crf,
vf.prs_kostensoort_refcode grtboekrek,
vf.prs_kostensoort_oms grtboekrek_oms,
vf.fin_verkoopfactuur_n1 mld_melding_key,
SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1) alg_onroerendgoed_type,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c6, 2, INSTR (vf.fin_verkoopfactuur_c6, '=') - 2)) alg_onroerendgoed_keys,
SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1) alg_plaatsaanduiding
FROM fin_verkoopfactuur vf, prs_bedrijf b
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) IN ('3', '4')
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY vf.prs_bedrijf_key, 1, 2, 3, 4;
-- *** FACT-export ***
-- BLCC#80679: Lease Agreement Prijsopgave
CREATE OR REPLACE VIEW BLCC_V_RAP_TARIEFLIJST
AS
SELECT fac_usrdata_aanmaak aanmaakdatum,
fac_usrdata_omschr waarde,
fac_usrdata_omschr2 omschrijving,
fac_usrdata_code code,
fac_usrdata_volgnr volgnummer,
fac_usrdata_prijs prijs,
fac_usrdata_vervaldatum vervaldatum
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 581 -- Tarieflijst Div.
;
CREATE OR REPLACE VIEW BLCC_V_FACT_ACTUAL3761 -- Lease Agreement Prijsopgave
AS
WITH contractpltsm2 AS (SELECT ccp.cnt_contract_key,
rg.alg_gebouw_key,
rg.alg_verdieping_key,
rg.alg_gebouw_upper || '.' || rg.alg_verdieping_code alg_verdieping_id,
'R' alg_onrgoed_type,
rg.alg_ruimte_key alg_onrgoed_key,
rg.alg_ruimte_nr,
ud.fac_usrdata_code srtopp,
rg.alg_ruimte_bruto_vloeropp nvo, -- NVO (= vaste veld)
--rg.alg_ruimte_opp_alt1 vvo_nen2580, -- VVO (= vaste veld)
--fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde) vvo_overeenkomst, -- VVO Overeenkomst (= kenmerkveld)
fac.safe_to_number (opp.alg_onrgoedkenmerk_waarde) opp -- VVO NEN2580 Brink (= kenmerkveld)
FROM cnt_v_aanwezigcontract_plaats ccp,
alg_v_ruimte_gegevens rg,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1100) ok, -- LHKOTC Classificatie
fac_usrdata ud,
--(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1720) vvo, -- VVO Overeenkomst
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 2521) opp -- VVO NEN2580 Brink (m2)
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = rg.alg_ruimte_key
AND rg.alg_ruimte_key = ok.alg_onrgoed_key(+)
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)
--AND rg.alg_ruimte_key = vvo.alg_onrgoed_key(+)
AND rg.alg_ruimte_key = opp.alg_onrgoed_key(+))
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Rent' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
cpm.alg_onrgoed_type alg_onroerendgoed_type,
cpm.alg_onrgoed_key alg_onroerendgoed_keys,
cpm.alg_ruimte_nr alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--'8100' grtboekrek, -- Hardcoded?
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
DECODE (cpm.srtopp,
'L', 'Lab',
'H', 'Hall',
'K', 'Office',
'O', 'Other',
'T', 'Terrain',
'C', 'Collective',
'Undefined') srtopp_oms,
cpm.nvo,
cpm.alg_verdieping_key,
cpm.alg_verdieping_id,
r.ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN (SELECT cnt_contract_key, alg_gebouw_key, alg_verdieping_key, alg_verdieping_id, alg_onrgoed_type, alg_onrgoed_key, alg_ruimte_nr, srtopp, nvo, opp
FROM contractpltsm2) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ltar
ON cpm.alg_gebouw_key = ltar.alg_onrgoed_key
AND ltar.alg_kenmerk_key = 1180 -- Standaardtarief Rent L
AND ltar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk htar
ON cpm.alg_gebouw_key = htar.alg_onrgoed_key
AND htar.alg_kenmerk_key = 1181 -- Standaardtarief Rent H
AND htar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ktar
ON cpm.alg_gebouw_key = ktar.alg_onrgoed_key
AND ktar.alg_kenmerk_key = 1182 -- Standaardtarief Rent K
AND ktar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk otar
ON cpm.alg_gebouw_key = otar.alg_onrgoed_key
AND otar.alg_kenmerk_key = 1183 -- Standaardtarief Rent O
AND otar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ttar
ON cpm.alg_gebouw_key = ttar.alg_onrgoed_key
AND ttar.alg_kenmerk_key = 1184 -- Standaardtarief Rent T
AND ttar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ctar
ON cpm.alg_gebouw_key = ctar.alg_onrgoed_key
AND ctar.alg_kenmerk_key = 1241 -- Standaardtarief Rent C
AND ctar.alg_onrgoed_niveau = 'G'
LEFT JOIN ( SELECT ccp.cnt_contract_key, aog.alg_verdieping_key,
LISTAGG (DISTINCT ccp.cnt_alg_plaats_key, ',' ON OVERFLOW TRUNCATE) WITHIN GROUP (ORDER BY ccp.cnt_alg_plaats_key)
ruimtelijst
FROM cnt_v_aanwezigcontract_plaats ccp, alg_v_onroerendgoed aog
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
GROUP BY ccp.cnt_contract_key, aog.alg_verdieping_key) r
ON x.cnt_contract_key = r.cnt_contract_key
AND cpm.alg_verdieping_key = r.alg_verdieping_key
UNION ALL -- Advance Payment Property Tax
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'04' sortering,
'Advance Payment Property Tax' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--NULL fin_btwtabelwaarde_code,
--NULL fin_btwtabelwaarde_oms,
--99 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
--'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- --'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--0 mndbtw, -- BTW maandbedrag
--'8300' grtboekrek, -- Hardcoded?
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'C') -- LHKOC, geen T!
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk tar
ON cpm.alg_gebouw_key = tar.alg_onrgoed_key
AND tar.alg_kenmerk_key = 2280 -- OZB tarief (alle letters)
AND tar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract toepassen
ON x.cnt_contract_key = toepassen.cnt_contract_key
AND toepassen.cnt_kenmerkcontract_verwijder IS NULL
AND toepassen.cnt_kenmerk_key = 1243 -- Prijsopgave OZB toepassen
WHERE COALESCE (cpm.opp, 0) != 0 AND toepassen.cnt_kenmerkcontract_waarde = '1'
UNION ALL -- Advance Payment Collective Services
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'05' sortering,
'Advance Payment Collective Services' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
--'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- --'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- --'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--NULL grtboekrek, -- Hardcoded?
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'T') -- LHKOT, geen C!
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ltar
ON cpm.alg_gebouw_key = ltar.alg_onrgoed_key
AND ltar.alg_kenmerk_key = 2262 -- Voorschot Collective Services L
AND ltar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk htar
ON cpm.alg_gebouw_key = htar.alg_onrgoed_key
AND htar.alg_kenmerk_key = 2240 -- Voorschot Collective Services H
AND htar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ktar
ON cpm.alg_gebouw_key = ktar.alg_onrgoed_key
AND ktar.alg_kenmerk_key = 2263 -- Voorschot Collective Services K
AND ktar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk otar
ON cpm.alg_gebouw_key = otar.alg_onrgoed_key
AND otar.alg_kenmerk_key = 2260 -- Voorschot Collective Services O
AND otar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ttar
ON cpm.alg_gebouw_key = ttar.alg_onrgoed_key
AND ttar.alg_kenmerk_key = 2261 -- Voorschot Collective Services T
AND ttar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract toepassen
ON x.cnt_contract_key = toepassen.cnt_contract_key
AND toepassen.cnt_kenmerkcontract_verwijder IS NULL
AND toepassen.cnt_kenmerk_key = 1244 -- Prijsopgave CS toepassen
WHERE COALESCE (cpm.opp, 0) != 0 AND toepassen.cnt_kenmerkcontract_waarde = '1'
UNION ALL -- Advance Payment Utilities
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'07' sortering,
'Advance Payment Utilities' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--'8103' grtboekrek, -- Hardcoded?
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'T', 'C') -- LHKOTC
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ltar
ON cpm.alg_gebouw_key = ltar.alg_onrgoed_key
AND ltar.alg_kenmerk_key = 1210 -- Voorschot Utilities L Standaard
AND ltar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk htar
ON cpm.alg_gebouw_key = htar.alg_onrgoed_key
AND htar.alg_kenmerk_key = 1211 -- Voorschot Utilities H Standaard
AND htar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ktar
ON cpm.alg_gebouw_key = ktar.alg_onrgoed_key
AND ktar.alg_kenmerk_key = 1212 -- Voorschot Utilities K Standaard
AND ktar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk otar
ON cpm.alg_gebouw_key = otar.alg_onrgoed_key
AND otar.alg_kenmerk_key = 1213 -- Voorschot Utilities O Standaard
AND otar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ttar
ON cpm.alg_gebouw_key = ttar.alg_onrgoed_key
AND ttar.alg_kenmerk_key = 1214 -- Voorschot Utilities T Standaard
AND ttar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ctar
ON cpm.alg_gebouw_key = ctar.alg_onrgoed_key
AND ctar.alg_kenmerk_key = -1 -- Voorschot Utilities C Standaard/TODO:Weg???
AND ctar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract toepassen
ON x.cnt_contract_key = toepassen.cnt_contract_key
AND toepassen.cnt_kenmerkcontract_verwijder IS NULL
AND toepassen.cnt_kenmerk_key = 1245 -- Prijsopgave Utilities toepassen
WHERE COALESCE (cpm.opp, 0) != 0 AND toepassen.cnt_kenmerkcontract_waarde = '1'
UNION ALL -- Advance Payment Utilities
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'08' sortering,
'Advance Payment Utilities' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- DECODE (cpm.srtopp,
-- 'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
-- 'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
-- 'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
-- 'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
-- 'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
-- 'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
-- 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--'8103' grtboekrek, -- Hardcoded?
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'T', 'C') -- LHKOTC
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ltar
ON cpm.alg_gebouw_key = ltar.alg_onrgoed_key
AND ltar.alg_kenmerk_key = 2360 -- Voorschot Utilities L Specials
AND ltar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk htar
ON cpm.alg_gebouw_key = htar.alg_onrgoed_key
AND htar.alg_kenmerk_key = 2361 -- Voorschot Utilities H Specials
AND htar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ktar
ON cpm.alg_gebouw_key = ktar.alg_onrgoed_key
AND ktar.alg_kenmerk_key = 2362 -- Voorschot Utilities K Specials
AND ktar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk otar
ON cpm.alg_gebouw_key = otar.alg_onrgoed_key
AND otar.alg_kenmerk_key = 2363 -- Voorschot Utilities O Specials
AND otar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ttar
ON cpm.alg_gebouw_key = ttar.alg_onrgoed_key
AND ttar.alg_kenmerk_key = 2364 -- Voorschot Utilities T Specials
AND ttar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ctar
ON cpm.alg_gebouw_key = ctar.alg_onrgoed_key
AND ctar.alg_kenmerk_key = -1 -- Voorschot Utilities C Specials/TODO:Weg???
AND ctar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract toepassen
ON x.cnt_contract_key = toepassen.cnt_contract_key
AND toepassen.cnt_kenmerkcontract_verwijder IS NULL
AND toepassen.cnt_kenmerk_key = 1245 -- Prijsopgave Utilities toepassen
WHERE COALESCE (cpm.opp, 0) != 0 AND toepassen.cnt_kenmerkcontract_waarde = '1'
UNION ALL -- SLA Managed Connectivity
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'09' sortering,
'Managed Connectivity' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
COALESCE (cpm.opp, 0) aantal, -- Aantal m2
COALESCE (fac.safe_to_number (jbw1.fac_usrdata_prijs), 0) bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- COALESCE (fac.safe_to_number (jbw1.fac_usrdata_prijs), 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- COALESCE (fac.safe_to_number (jbw1.fac_usrdata_prijs), 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--NULL grtboekrek,
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'T', 'C') -- LHKOTC
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN fac_v_aanwezigusrdata jbw1
ON jbw1.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw1.fac_usrdata_key = 2061 -- Managed Connectivity 025Mbit - tarief per VVO m^2
LEFT JOIN cnt_kenmerkcontract toepassen
ON x.cnt_contract_key = toepassen.cnt_contract_key
AND toepassen.cnt_kenmerkcontract_verwijder IS NULL
AND toepassen.cnt_kenmerk_key = 1246 -- Prijsopgave MC toepassen
WHERE COALESCE (cpm.opp, 0) != 0 AND toepassen.cnt_kenmerkcontract_waarde = '1'
UNION ALL -- Parking/Public Amenities
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (aantal.cnt_kenmerk_key,
1241, '10', -- #Med. Parking
1242, '11', -- #Med. Public Amenities
-1, '12', -- #Med. Dedicated Parking
'99')
sortering,
DECODE (aantal.cnt_kenmerk_key,
1241, 'Parking', -- #Med. Parking
1242, 'Public Amenities', -- #Med. Public Amenities
-1, 'Dedicated Parking', -- #Med. Dedicated Parking
'X')
regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
--NULL btw_nr,
x.adres, x.postcode, x.plaats, x.land,
--TO_NUMBER (NULL) prs_kostenplaats_key, NULL prs_kostenplaats_nr, NULL prs_kostenplaats_omschrijving, NULL prs_kostenplaatsgrp_oms,
--'H' fin_btwtabelwaarde_code,
--'Hoog' fin_btwtabelwaarde_oms,
--21 fin_btwtabelwaarde_perc,
--TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal, -- Aantal
DECODE (aantal.cnt_kenmerk_key,
1241, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
1242, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
-1, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0)
bedrag, -- Jaarbedrag (per eenheid)
--NULL crf, -- CCCV=0 en CRF=1
--NULL factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- COALESCE (fac.safe_to_number (jbw1.fac_usrdata_prijs), 0) *
-- 1/12, 2)
-- mndnet, -- Netto maandbedrag
--ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
-- COALESCE (cpm.opp, 0) *
-- COALESCE (fac.safe_to_number (jbw1.fac_usrdata_prijs), 0) *
-- 0.21 *
-- 1/12, 2)
-- mndbtw, -- BTW maandbedrag
--NULL grtboekrek,
--TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
--NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
cpm.srtopp,
NULL srtopp_oms,
TO_NUMBER (NULL) nvo,
NULL alg_verdieping_key,
NULL alg_verdieping_id,
NULL ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
TO_CHAR (SYSDATE, 'yyyymm') maand,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3761 -- Lease Agreement Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'T', 'C') -- LHKOTC
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key IN (1241, 1242, -1) -- #Med. Parking|#Med. Public Amenities|#Med. Dedicated Parking
LEFT JOIN fac_v_aanwezigusrdata jbw5
ON jbw5.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw5.fac_usrdata_key = 904 -- Parking
LEFT JOIN fac_v_aanwezigusrdata jbw6
ON jbw6.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw6.fac_usrdata_key = 905 -- Public Amenities
LEFT JOIN fac_v_aanwezigusrdata jbw7
ON jbw7.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw7.fac_usrdata_key = 2241 -- Dedicated Parking
WHERE COALESCE (cpm.opp, 0) != 0 AND COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) != 0
;
-- BLCC#85254: Ruimtegegevens per LA/LA CRF/LA Prijsopgave-contract (actueel
-- of toekomstig ongeacht contractstatus).
CREATE OR REPLACE VIEW BLCC_V_RAP_LEASED_PROPERTY
AS
WITH contractpltsm2 AS (SELECT ccp.cnt_contract_key,
rg.alg_gebouw_key,
rg.alg_verdieping_key,
rg.alg_gebouw_upper alg_gebouw_code,
rg.alg_gebouw_upper || '.' || rg.alg_verdieping_code alg_verdieping_id,
'R' alg_onrgoed_type,
rg.alg_ruimte_key alg_onrgoed_key,
rg.alg_ruimte_nr,
rg.alg_ruimte_omschrijving,
ud.fac_usrdata_code srtopp,
COALESCE (rg.alg_ruimte_bruto_vloeropp, 0) nvo, -- NVO (= vaste veld)
COALESCE (rg.alg_ruimte_opp_alt1, 0) opp, -- VVO (= vaste veld)
COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0) vvo -- VVO Overeenkomst (= kenmerkveld)
FROM cnt_v_aanwezigcontract_plaats ccp,
alg_v_ruimte_gegevens rg,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1100) ok, -- LHKOTC Classificatie
fac_usrdata ud,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1720) vvo -- VVO Overeenkomst
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = rg.alg_ruimte_key
AND rg.alg_ruimte_key = ok.alg_onrgoed_key(+)
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)
AND rg.alg_ruimte_key = vvo.alg_onrgoed_key(+))
SELECT TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
--TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
x.cnt_contract_opmerking,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
x.adres, x.postcode, x.plaats, x.land,
cpm.alg_onrgoed_type alg_onroerendgoed_type,
cpm.alg_onrgoed_key alg_onroerendgoed_keys,
cpm.alg_ruimte_nr alg_plaatsaanduiding,
cpm.alg_ruimte_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief')
contractstatus,
cpm.srtopp,
DECODE (cpm.srtopp,
'L', 'Lab',
'H', 'Hall',
'K', 'Office',
'O', 'Other',
'T', 'Terrain',
'C', 'Collective',
--'N', 'Collective room, tenant specific', -- Niet meer gebruikt?
'A', 'Collective room, building specific',
'V', 'Collective room, floor specific',
'Undefined')
srtopp_oms,
cpm.nvo,
cpm.opp,
cpm.vvo,
cpm.alg_verdieping_key,
cpm.alg_gebouw_code,
perceelnr.alg_onrgoedkenmerk_waarde perceelnr,
cpm.alg_verdieping_id,
r.ruimtelijst
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document, c.cnt_contract_opmerking,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
c.cnt_contract_status
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key IN (2122, 2123, 3761) -- LA/LA CRF/LA Prijsopgave
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin huidige maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN (SELECT cnt_contract_key, alg_gebouw_key, alg_gebouw_code, alg_verdieping_key, alg_verdieping_id, alg_onrgoed_type, alg_onrgoed_key, alg_ruimte_nr, alg_ruimte_omschrijving, srtopp, nvo, opp, vvo
FROM contractpltsm2) cpm
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk perceelnr
ON cpm.alg_gebouw_key = perceelnr.alg_onrgoed_key
AND perceelnr.alg_kenmerk_key = 1880 -- Kadastraal Perceelnr.
LEFT JOIN ( SELECT ccp.cnt_contract_key, aog.alg_verdieping_key,
LISTAGG (DISTINCT ccp.cnt_alg_plaats_key, ',' ON OVERFLOW TRUNCATE) WITHIN GROUP (ORDER BY ccp.cnt_alg_plaats_key)
ruimtelijst
FROM cnt_v_aanwezigcontract_plaats ccp, alg_v_onroerendgoed aog
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
GROUP BY ccp.cnt_contract_key, aog.alg_verdieping_key) r
ON x.cnt_contract_key = r.cnt_contract_key
AND cpm.alg_verdieping_key = r.alg_verdieping_key;
-- DEPRECATED per FACTv2!
-- TODO:Hoe lang deze (view op) historisch FACTV1-gegevens nog bewaren?
CREATE OR REPLACE VIEW blcc_v_fact_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/') - 1)) po_nr,
SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1) cnt_contract_nummer,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 3) sortering,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 5) regel,
TO_CHAR (vf.fin_verkoopfactuur_datum, 'dd-mm-yyyy') factuurdatum, TO_CHAR (vf.fin_verkoopfactuur_d1, 'dd-mm-yyyy') vervaldatum,
vf.fin_verkoopfactuur_refkey cnt_contract_key,
c.cnt_contract_nummer_intern, -- Niet historisch bewaard!
c.cnt_contract_versie, -- Niet historisch bewaard!
c.cnt_contract_looptijd_tot lv, -- Niet historisch bewaard!
vf.fin_verkoopfactuur_n1 cnt_contract_korting, -- Korting %
vf.prs_bedrijf_key, vf.prs_debiteur_naam,
SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
SUBSTR (vf.fin_verkoopfactuur_c7, INSTR (vf.fin_verkoopfactuur_c7, '=') + 1) btw_nr,
--vf.fin_verkoopfactuur_c8 contactpersoon,
'-' contactpersoon,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, -- Niet historisch bewaard!
vf.prs_kostenplaats_key, vf.prs_kostenplaats_nr, vf.prs_kostenplaats_omschrijving, vf.prs_kostenplaatsgrp_oms,
--vf.prs_kostensoort_oms, vf.prs_kostensoort_opmerking, vf.prs_kostensoort_refcode, vf.prs_kostensoortgrp_oms,
vf.fin_btwtabelwaarde_code,
vf.fin_btwtabelwaarde_oms,
vf.fin_btwtabelwaarde_perc,
vf.fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c1, 1, INSTR (vf.fin_verkoopfactuur_c1, 'x') - 1)) l_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)!
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c2, 1, INSTR (vf.fin_verkoopfactuur_c2, 'x') - 1)) h_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)!
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c3, 1, INSTR (vf.fin_verkoopfactuur_c3, 'x') - 1)) k_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)!
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c4, 1, INSTR (vf.fin_verkoopfactuur_c4, 'x') - 1)) o_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)!
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c5, 1, INSTR (vf.fin_verkoopfactuur_c5, 'x') - 1)) t_tarief, -- Jaartarief (eerste 3 factuurrondes gebruikt als maandtarief)!
SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1) alg_onroerendgoed_type,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c6, 2, INSTR (vf.fin_verkoopfactuur_c6, '=') - 1)) alg_onroerendgoed_keys,
SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1) alg_plaatsaanduiding,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c1, INSTR (vf.fin_verkoopfactuur_c1, 'x') + 1)) l_opp,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c2, INSTR (vf.fin_verkoopfactuur_c2, 'x') + 1)) h_opp,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c3, INSTR (vf.fin_verkoopfactuur_c3, 'x') + 1)) k_opp,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c4, INSTR (vf.fin_verkoopfactuur_c4, 'x') + 1)) o_opp,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c5, INSTR (vf.fin_verkoopfactuur_c5, 'x') + 1)) t_opp,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto maandbedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW maandbedrag
vf.prs_kostensoort_oms grtboekrek,
vf.fin_verkoopfactuur_n2 mld_melding_key,
vf.fin_verkoopfactuur_c8 mld_melding_omschrijving
FROM fin_verkoopfactuur vf,
cnt_contract c,
--cnt_discipline cd,
--prs_kostensoort ks,
prs_bedrijf b
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- Of andere conditie?
AND vf.fin_verkoopfactuur_datum < TO_DATE ('11112019', 'ddmmyyyy') -- FACTV1!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key = cd.ins_discipline_key
--AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY vf.prs_bedrijf_key, 1, 2, 3, 4, SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1), SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1);
-- BSSC#57460: Facturatie verhuur 2.0 (M2 en meer)/View per contractsoort!
/*
CREATE OR REPLACE VIEW blcc_v_fact_actual2121 -- Lease Option/Verwijderd met BLCC#81600 (en nooit gebruikt)
*/
CREATE OR REPLACE VIEW blcc_v_fact_actual2122 -- Lease Agreement
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur),
contractpltsm2 AS (SELECT ccp.cnt_contract_key,
aog.alg_gebouw_key,
aog.alg_onroerendgoed_keys alg_onrgoed_key,
fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde) opp,
ud.fac_usrdata_code srtopp
FROM cnt_v_aanwezigcontract_plaats ccp,
alg_v_onroerendgoed aog,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1100) ok, -- LHKOTC Classificatie
fac_usrdata ud,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1720) vvo -- VVO Overeenkomst
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
AND aog.alg_onroerendgoed_keys = ok.alg_onrgoed_key(+)
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)
AND aog.alg_onroerendgoed_keys = vvo.alg_onrgoed_key(+))
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Rent' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
DECODE (btwop.cnt_kenmerkcontract_waarde, '1', 'VRIJ', 'H') fin_btwtabelwaarde_code,
DECODE (btwop.cnt_kenmerkcontract_waarde, '1', 'Vrijgesteld', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (btwop.cnt_kenmerkcontract_waarde, '1', 99, 21) fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
pa.alg_onroerendgoed_type,
pa.alg_onroerendgoed_keys,
COALESCE (pa.alg_plaatsaanduiding, 'Correctie') || '#' || cpm.srtopp alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
DECODE (btwop.cnt_kenmerkcontract_waarde, '1', 0, 0.21) *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (cpm.alg_gebouw_key,
43, '170200', -- BLCC#83336+BLCC#89660: 43=122-170
'811001')
grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract btwop
ON x.cnt_contract_key = btwop.cnt_contract_key
AND btwop.cnt_kenmerkcontract_verwijder IS NULL
AND btwop.cnt_kenmerk_key = 546 -- BTW optie
LEFT JOIN (SELECT cnt_contract_key, alg_gebouw_key, alg_onrgoed_key, srtopp, opp
FROM contractpltsm2 -- Inclusief correcties!
UNION ALL -- Extra korting-regel (op -1 en 'X')!
SELECT cnt_contract_key, -1 alg_gebouw_key, -1 alg_onrgoed_key, 'X' srtopp, fac.safe_to_number (cnt_kenmerkcontract_waarde) opp
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 669) cpm -- Rent Rebate
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_plaatsaanduiding_all pa
ON cpm.alg_onrgoed_key = pa.alg_onroerendgoed_keys
LEFT JOIN cnt_kenmerkcontract ltar
ON x.cnt_contract_key = ltar.cnt_contract_key
AND ltar.cnt_kenmerkcontract_verwijder IS NULL
AND ltar.cnt_kenmerk_key = 573 -- L-Tarief
LEFT JOIN cnt_kenmerkcontract htar
ON x.cnt_contract_key = htar.cnt_contract_key
AND htar.cnt_kenmerkcontract_verwijder IS NULL
AND htar.cnt_kenmerk_key = 567 -- H-Tarief
LEFT JOIN cnt_kenmerkcontract ktar
ON x.cnt_contract_key = ktar.cnt_contract_key
AND ktar.cnt_kenmerkcontract_verwijder IS NULL
AND ktar.cnt_kenmerk_key = 570 -- K-Tarief
LEFT JOIN cnt_kenmerkcontract otar
ON x.cnt_contract_key = otar.cnt_contract_key
AND otar.cnt_kenmerkcontract_verwijder IS NULL
AND otar.cnt_kenmerk_key = 576 -- O-Tarief
LEFT JOIN cnt_kenmerkcontract ttar
ON x.cnt_contract_key = ttar.cnt_contract_key
AND ttar.cnt_kenmerkcontract_verwijder IS NULL
AND ttar.cnt_kenmerk_key = 579 -- T-Tarief
LEFT JOIN cnt_kenmerkcontract ctar
ON x.cnt_contract_key = ctar.cnt_contract_key
AND ctar.cnt_kenmerkcontract_verwijder IS NULL
AND ctar.cnt_kenmerk_key = -1 -- C-Tarief
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50400' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
UNION ALL -- CFF alleen als niet '0', tot Aanpassingsdatum en nooit BTW!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'02' sortering,
'CFF-Subsidy' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
-1 aantal,
fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) *
1/12, 2) * -1
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag;TODO:Dit is fout, maar ging in oude werkwijze altijd al zo, dus fout voorlopig niet verbeteren!
'811006' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract subsidie
ON x.cnt_contract_key = subsidie.cnt_contract_key
AND subsidie.cnt_kenmerkcontract_verwijder IS NULL
AND subsidie.cnt_kenmerk_key = 556 -- CFF-Subsidy
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key = 480 -- Aanpassingsdatum
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50400' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) != 0
AND fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') > TO_DATE (x.maand || '01', 'yyyymmdd')
UNION ALL -- FES alleen als vinkje gezet en tot Aanpassingsdatum !
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'03' sortering,
'FES-Subsidy' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
DECODE (cpm.srtopp, 'X', -1, -1 * COALESCE (cpm.opp, 0)) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, -1 * COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'811001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K') --TODO:Later/BLCC#81122:srtopp IN ('L', 'H', 'K', 'O')
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp
UNION ALL -- Extra korting-regel (op -1 en 'X')!
SELECT cnt_contract_key, -1 alg_gebouw_key, 'X' srtopp, fac.safe_to_number (cnt_kenmerkcontract_waarde) opp
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 701) cpm -- Absolute korting FES
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ltar
ON cpm.alg_gebouw_key = ltar.alg_onrgoed_key
AND ltar.alg_kenmerk_key = 1220 -- FES subsidie L
AND ltar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk htar
ON cpm.alg_gebouw_key = htar.alg_onrgoed_key
AND htar.alg_kenmerk_key = 1221 -- FES subsidie H
AND htar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ktar
ON cpm.alg_gebouw_key = ktar.alg_onrgoed_key
AND ktar.alg_kenmerk_key = 1222 -- FES subsidie K
AND ktar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk otar
ON cpm.alg_gebouw_key = otar.alg_onrgoed_key
AND otar.alg_kenmerk_key = 1223 -- FES subsidie O
AND otar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ttar
ON cpm.alg_gebouw_key = ttar.alg_onrgoed_key
AND ttar.alg_kenmerk_key = 1224 -- FES subsidie T
AND ttar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ctar
ON cpm.alg_gebouw_key = ctar.alg_onrgoed_key
AND ctar.alg_kenmerk_key = 1245 -- FES subsidie C
AND ctar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract fes
ON x.cnt_contract_key = fes.cnt_contract_key
AND fes.cnt_kenmerkcontract_verwijder IS NULL
AND fes.cnt_kenmerk_key = 606 -- FES-Subsidy (vinkje)
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key = 482 -- Aanpassingsdatum
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50400' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE fes.cnt_kenmerkcontract_waarde IS NOT NULL
AND fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') > TO_DATE (x.maand || '01', 'yyyymmdd')
AND COALESCE (cpm.opp, 0) != 0
UNION ALL -- Advance Payment Property Tax
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'04' sortering,
'Advance Payment Property Tax' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, cpm.srtopp alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'813001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'C')
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp
UNION ALL -- Extra korting-regel (op -1 en 'X')!
SELECT cnt_contract_key, -1 alg_gebouw_key, 'X' srtopp, fac.safe_to_number (cnt_kenmerkcontract_waarde) opp
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 506) cpm -- Absolute korting Property Tax
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk tar
ON cpm.alg_gebouw_key = tar.alg_onrgoed_key
AND tar.alg_kenmerk_key = 2280 -- OZB tarief (alle letters)
AND tar.alg_onrgoed_niveau = 'G'
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50600' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (cpm.opp, 0) != 0
UNION ALL -- Advance Payment Collective Services
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'05' sortering,
'Advance Payment Collective Services' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
COALESCE (cpm.jbw, 0) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, cpm.srt alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (cpm.jbw, 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (cpm.jbw, 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'813000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN (SELECT cnt_contract_key, 'X' srt, fac.safe_to_number (cnt_kenmerkcontract_waarde) jbw -- PLUS:Voorschot CS Campusgebonden (jaarbedrag) (= 'X')!
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 1001 -- Voorschot CS Campusgebonden (jaarbedrag)
UNION ALL
SELECT cnt_contract_key, 'Y' srt, fac.safe_to_number (cnt_kenmerkcontract_waarde) jbw -- PLUS:Voorschot CS Gebouwgebonden (jaarbedrag) (= 'Y')!
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 1002 -- Voorschot CS Gebouwgebonden (jaarbedrag)
UNION ALL
SELECT cnt_contract_key, 'Z' srt, fac.safe_to_number (cnt_kenmerkcontract_waarde) jbw -- PLUS:Voorschot CS Huurderspecifiek (jaarbedrag) (= 'Z')!
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 842) cpm -- Voorschot CS Huurderspecifiek (jaarbedrag)
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON DECODE (cpm.srt, 'Z', '50901', '50600') = kp.prs_kostenplaats_nr -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (cpm.jbw, 0) != 0
UNION ALL -- Advance Payment Utilities
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'07' sortering,
'Advance Payment Utilities' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'812000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract apu
ON x.cnt_contract_key = apu.cnt_contract_key
AND apu.cnt_kenmerkcontract_verwijder IS NULL
AND apu.cnt_kenmerk_key = 981 -- Advance Payment Utilities
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50500' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Parking/Public Amenities/Dedicated Parking
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (aantal.cnt_kenmerk_key,
470, '08', -- #Med. Parking
472, '09', -- #Med. Public Amenities
1341, '10', -- #Med. Dedicated Parking
'99')
sortering,
DECODE (aantal.cnt_kenmerk_key,
470, 'Parking', -- #Med. Parking
472, 'Public Amenities', -- #Med. Public Amenities
1341, 'Dedicated Parking', -- #Med. Dedicated Parking
'X')
regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal, -- Aantal
DECODE (aantal.cnt_kenmerk_key,
470, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
472, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1341, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) *
DECODE (aantal.cnt_kenmerk_key,
470, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
472, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1341, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) *
DECODE (aantal.cnt_kenmerk_key,
470, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
472, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1341, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (aantal.cnt_kenmerk_key,
470, '811003', -- #Med. Parking
472, '811004', -- #Med. Public Amenities
1341, '811008', -- #Med. Dedicated Parking
'999999')
grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key IN (470, 472, 1341) -- #Med. Parking|#Med. Public Amenities|#Med. Dedicated Parking
LEFT JOIN fac_v_aanwezigusrdata jbw5
ON jbw5.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw5.fac_usrdata_key = 904 -- Parking
LEFT JOIN fac_v_aanwezigusrdata jbw6
ON jbw6.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw6.fac_usrdata_key = 905 -- Public Amenities
LEFT JOIN fac_v_aanwezigusrdata jbw7
ON jbw7.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw7.fac_usrdata_key = 2241 -- Dedicated Parking
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50400' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Surcharge Service Costs/2GV/3GV
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
630, '13', -- 2GV
628, '14', -- 3GV
'99')
sortering,
DECODE (jbw.cnt_kenmerk_key,
630, '2GV', -- 2GV
628, '3GV', -- 3GV
'X')
regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'811002' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (630, 628) -- 2GV/3GV
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND jbw.cnt_kenmerk_key = DECODE (tot.cnt_kenmerk_key, 598, 630, 628)
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key IN (598, 600) -- Einddatum 2GV/3GV
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50400' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0
AND COALESCE (fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), ADD_MONTHS (SYSDATE, 3)) > TO_DATE (x.maand || '01', 'yyyymmdd')
UNION ALL -- Advance Payment SLA Facility Services
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'15' sortering,
--'SLA Facility Services' regel,
'Advance Payment SLA Facility Services' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'816310' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2122 -- Lease Agreement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (1041, 1061) -- SLA Facility Services/SLA Tenant-specific Services
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON DECODE (jbw.cnt_kenmerk_key, 1041, '50903', '50904') = kp.prs_kostenplaats_nr -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 612 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0;
CREATE OR REPLACE VIEW blcc_v_fact_actual2123 -- Lease Agreement CRF
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur),
contractpltsm2 AS (SELECT ccp.cnt_contract_key,
aog.alg_gebouw_key,
aog.alg_onroerendgoed_keys alg_onrgoed_key,
fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde) opp,
ud.fac_usrdata_code srtopp
FROM cnt_v_aanwezigcontract_plaats ccp,
alg_v_onroerendgoed aog,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1100) ok, -- LHKOTC Classificatie
fac_usrdata ud,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1720) vvo -- VVO Overeenkomst
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
AND aog.alg_onroerendgoed_keys = ok.alg_onrgoed_key(+)
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)
AND aog.alg_onroerendgoed_keys = vvo.alg_onrgoed_key(+))
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Rent' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
pa.alg_onroerendgoed_type,
pa.alg_onroerendgoed_keys,
COALESCE (pa.alg_plaatsaanduiding, 'Correctie') || '#' || cpm.srtopp alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde), 0),
'H', COALESCE (fac.safe_to_number (htar.cnt_kenmerkcontract_waarde), 0),
'K', COALESCE (fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde), 0),
'O', COALESCE (fac.safe_to_number (otar.cnt_kenmerkcontract_waarde), 0),
'T', COALESCE (fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde), 0),
'C', COALESCE (fac.safe_to_number (ctar.cnt_kenmerkcontract_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'811001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN (SELECT cnt_contract_key, alg_gebouw_key, alg_onrgoed_key, srtopp, opp
FROM contractpltsm2 -- Inclusief correcties!
UNION ALL -- Extra korting-regel (op -1 en 'X')!
SELECT cnt_contract_key, -1 alg_gebouw_key, -1 alg_onrgoed_key, 'X' srtopp, fac.safe_to_number (cnt_kenmerkcontract_waarde) opp
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 668) cpm -- Rent Rebate
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_plaatsaanduiding_all pa
ON cpm.alg_onrgoed_key = pa.alg_onroerendgoed_keys
LEFT JOIN cnt_kenmerkcontract ltar
ON x.cnt_contract_key = ltar.cnt_contract_key
AND ltar.cnt_kenmerkcontract_verwijder IS NULL
AND ltar.cnt_kenmerk_key = 572 -- L-Tarief
LEFT JOIN cnt_kenmerkcontract htar
ON x.cnt_contract_key = htar.cnt_contract_key
AND htar.cnt_kenmerkcontract_verwijder IS NULL
AND htar.cnt_kenmerk_key = 566 -- H-Tarief
LEFT JOIN cnt_kenmerkcontract ktar
ON x.cnt_contract_key = ktar.cnt_contract_key
AND ktar.cnt_kenmerkcontract_verwijder IS NULL
AND ktar.cnt_kenmerk_key = 569 -- K-Tarief
LEFT JOIN cnt_kenmerkcontract otar
ON x.cnt_contract_key = otar.cnt_contract_key
AND otar.cnt_kenmerkcontract_verwijder IS NULL
AND otar.cnt_kenmerk_key = 575 -- O-Tarief
LEFT JOIN cnt_kenmerkcontract ttar
ON x.cnt_contract_key = ttar.cnt_contract_key
AND ttar.cnt_kenmerkcontract_verwijder IS NULL
AND ttar.cnt_kenmerk_key = 578 -- T-Tarief
LEFT JOIN cnt_kenmerkcontract ctar
ON x.cnt_contract_key = ctar.cnt_contract_key
AND ctar.cnt_kenmerkcontract_verwijder IS NULL
AND ctar.cnt_kenmerk_key = -1 -- C-Tarief
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
UNION ALL -- CFF alleen als niet '0', tot Aanpassingsdatum en nooit BTW!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'02' sortering,
'CFF-Subsidy' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
-1 aantal,
fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) *
1/12, 2) * -1
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'811006' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract subsidie
ON x.cnt_contract_key = subsidie.cnt_contract_key
AND subsidie.cnt_kenmerkcontract_verwijder IS NULL
AND subsidie.cnt_kenmerk_key = 761 -- CFF-Subsidy
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key = 762 -- Aanpassingsdatum
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) != 0
AND fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') > TO_DATE (x.maand || '01', 'yyyymmdd')
UNION ALL -- Advance Payment Property Tax
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'03' sortering,
'Advance Payment Property Tax' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) aantal, -- Aantal m2
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, cpm.srtopp alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
DECODE (cpm.srtopp, 'X', -1, COALESCE (cpm.opp, 0)) *
DECODE (cpm.srtopp,
'L', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'H', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'K', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'O', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'T', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'C', COALESCE (fac.safe_to_number (tar.alg_onrgoedkenmerk_waarde), 0),
'X', COALESCE (cpm.opp, 0), -- Absolute jaarkorting
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'813001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN ( SELECT cnt_contract_key, alg_gebouw_key, srtopp, SUM (opp) opp
FROM contractpltsm2
WHERE srtopp IN ('L', 'H', 'K', 'O', 'C')
GROUP BY cnt_contract_key, alg_gebouw_key, srtopp
UNION ALL -- Extra korting-regel (op -1 en 'X')!
SELECT cnt_contract_key, -1 alg_gebouw_key, 'X' srtopp, fac.safe_to_number (cnt_kenmerkcontract_waarde) opp
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 801) cpm -- BLCC#61264: Absolute korting Property Tax
ON x.cnt_contract_key = cpm.cnt_contract_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk tar
ON cpm.alg_gebouw_key = tar.alg_onrgoed_key
AND tar.alg_kenmerk_key = 2280 -- OZB tarief (alle letters)
AND tar.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (cpm.opp, 0) != 0
UNION ALL -- Advance Payment Collective Services
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'04' sortering,
'Advance Payment Collective Services' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
COALESCE (fac.safe_to_number (apcs.cnt_kenmerkcontract_waarde), 0) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apcs.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apcs.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'813000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract apcs
ON x.cnt_contract_key = apcs.cnt_contract_key
AND apcs.cnt_kenmerkcontract_verwijder IS NULL
AND apcs.cnt_kenmerk_key = 515 -- Advance Payment Collective Services
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (apcs.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Advance Payment Utilities
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'05' sortering,
'Advance Payment Utilities' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) bedrag, -- Jaarbedrag
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'812000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract apu
ON x.cnt_contract_key = apu.cnt_contract_key
AND apu.cnt_kenmerkcontract_verwijder IS NULL
AND apu.cnt_kenmerk_key = 525 -- Advance Payment Utilities
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (apu.cnt_kenmerkcontract_waarde), 0) != 0
UNION ALL -- Parking/Public Amenities/Dedicated Parking
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (aantal.cnt_kenmerk_key,
469, '08', -- #Med. Parking
474, '09', -- #Med. Public Amenities
1361, '10', -- #Med. Dedicated Parking
'99')
sortering,
DECODE (aantal.cnt_kenmerk_key,
469, 'Parking', -- #Med. Parking
474, 'Public Amenities', -- #Med. Public Amenities
1361, 'Dedicated Parking', -- #Med. Dedicated Parking
'X')
regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) aantal, -- Aantal
DECODE (aantal.cnt_kenmerk_key,
469, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
474, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1361, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0)
bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) *
DECODE (aantal.cnt_kenmerk_key,
469, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
474, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1361, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) *
DECODE (aantal.cnt_kenmerk_key,
469, COALESCE (jbw5.fac_usrdata_prijs, 0), -- #Med. Parking
474, COALESCE (jbw6.fac_usrdata_prijs, 0), -- #Med. Public Amenities
1361, COALESCE (jbw7.fac_usrdata_prijs, 0), -- #Med. Dedicated Parking
0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
DECODE (aantal.cnt_kenmerk_key,
469, '811003', -- #Med. Parking
474, '811004', -- #Med. Public Amenities
1361, '811008', -- #Med. Dedicated Parking
'999999')
grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2123 -- Lease Agreement CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key IN (469, 474, 1361) -- #Med. Parking|#Med. Public Amenities|#Med. Dedicated Parking
LEFT JOIN fac_v_aanwezigusrdata jbw5
ON jbw5.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw5.fac_usrdata_key = 904 -- Parking
LEFT JOIN fac_v_aanwezigusrdata jbw6
ON jbw6.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw6.fac_usrdata_key = 905 -- Public Amenities
LEFT JOIN fac_v_aanwezigusrdata jbw7
ON jbw7.fac_usrtab_key = 581 -- Tarieflijst Div.
AND jbw7.fac_usrdata_key = 2241 -- Dedicated Parking
LEFT JOIN cnt_kenmerkcontract kostenplaats
ON x.cnt_contract_key = kostenplaats.cnt_contract_key
AND kostenplaats.cnt_kenmerkcontract_verwijder IS NULL
AND kostenplaats.cnt_kenmerk_key = 632 -- Kostenplaats
LEFT JOIN fac_v_aanwezigusrdata kp_ud
ON fac.safe_to_number (kostenplaats.cnt_kenmerkcontract_waarde) = kp_ud.fac_usrdata_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON TRIM (kp_ud.fac_usrdata_code) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 608 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde), 0) != 0;
CREATE OR REPLACE VIEW blcc_v_fact_actual2124 -- Lease Agreement Facilities
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Rent Facilities' regel, -- Rent Facilities
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
'816101' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2124 -- Lease Agreement Facilities
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 662 -- Jaarbedrag (Rent Facilities)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2141 -- User Agreement Loft
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Fee Shared Office Startup Loft' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
pxq.p aantal, -- Aantal
pxq.q bedrag, -- Jaarbedrag (per eenheid) of Absolute jaarkorting
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
(COALESCE (pxq.p, 0) * COALESCE (pxq.q, 0)) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
(COALESCE (pxq.p, 0) * COALESCE (pxq.q, 0)) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
'811005' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2141 -- User Agreement Loft
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN (SELECT cnt_contract_key,
fac.safe_to_number (cnt_kenmerkcontract_waarde) p,
(SELECT fac_usrdata_prijs
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = 581
AND fac_usrdata_key = 1981) q -- Fee Shared Office Startup Loft 100% uit Tarieflijst Div.
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 484 -- Aantal afgenomen werkplekken
UNION ALL -- Extra korting-regel!
SELECT cnt_contract_key,
-1 p,
fac.safe_to_number (cnt_kenmerkcontract_waarde) q
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key = 667) pxq -- Rent Rebate
ON x.cnt_contract_key = pxq.cnt_contract_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50420' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 610 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
UNION ALL -- Alleen als niet '0', tot 'Aanpassingsdatum' en nooit BTW!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'03' sortering,
'CFF-Subsidy' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) *
1/12, 2) * -1
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'811006' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2141 -- User Agreement Loft
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract subsidie
ON x.cnt_contract_key = subsidie.cnt_contract_key
AND subsidie.cnt_kenmerkcontract_verwijder IS NULL
AND subsidie.cnt_kenmerk_key = 555 -- CFF-Subsidy
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key = 479 -- Aanpassingsdatum
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50420' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 610 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE COALESCE (fac.safe_to_number (subsidie.cnt_kenmerkcontract_waarde), 0) != 0
AND fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') > TO_DATE (x.maand || '01', 'yyyymmdd')
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'04' sortering,
'FES-Subsidy' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
NULL fin_btwtabelwaarde_code,
NULL fin_btwtabelwaarde_oms,
99 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * 7 aantal, -- Aantal afgenomen werkplekken * 7
fac.safe_to_number (jbw.alg_onrgoedkenmerk_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * 7, 0) *
COALESCE (fac.safe_to_number (jbw.alg_onrgoedkenmerk_waarde), 0) *
1/12, 2) * -1
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'811005' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2141 -- User Agreement Loft
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract aantal
ON x.cnt_contract_key = aantal.cnt_contract_key
AND aantal.cnt_kenmerkcontract_verwijder IS NULL
AND aantal.cnt_kenmerk_key = 484 -- Aantal afgenomen werkplekken
LEFT JOIN alg_v_aanwezigonrgoedkenmerk jbw
ON jbw.alg_onrgoed_key = 5 -- 122-004 Aula + Startup Loft
AND jbw.alg_kenmerk_key = 1222 -- FES subsidie K voor gebouw 4 (met key=5?)
AND jbw.alg_onrgoed_niveau = 'G'
LEFT JOIN cnt_kenmerkcontract fes
ON x.cnt_contract_key = fes.cnt_contract_key
AND fes.cnt_kenmerkcontract_verwijder IS NULL
AND fes.cnt_kenmerk_key = 605 -- FES-Subsidy (vinkje)
LEFT JOIN cnt_kenmerkcontract tot
ON x.cnt_contract_key = tot.cnt_contract_key
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key = 594 -- Aanpassings/Einddatum
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '50420' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 610 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE fes.cnt_kenmerkcontract_waarde IS NOT NULL
AND fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') > TO_DATE (x.maand || '01', 'yyyymmdd')
;
/*
CREATE OR REPLACE VIEW blcc_v_fact_actual2142 -- User Agreement Workshop/Verwijderd met BLCC#81600 (en nooit gebruikt)
*/
CREATE OR REPLACE VIEW blcc_v_fact_actual2161 -- Landlease CV - CRF
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Rent Landlease' regel, -- Rent Landlease
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
'811001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2161 -- Landlease CV - CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 665 -- Jaarbedrag (Rent Landlease)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2181 -- SLA Brightlands CRF - CV
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
663, '01',
664, '02',
'03') sortering, -- 671
DECODE (jbw.cnt_kenmerk_key,
663, 'Rent Expedition space',
664, 'Rent Infra',
'Rent Utilities') regel, -- 671
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
DECODE (jbw.cnt_kenmerk_key, 671, 'H', 'H') fin_btwtabelwaarde_code,
DECODE (jbw.cnt_kenmerk_key, 671, 'Hoog', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (jbw.cnt_kenmerk_key, 671, 21, 21) fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
DECODE (jbw.cnt_kenmerk_key, 671, 0.21, 0.21) *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
'811001' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2181 -- SLA Brightlands CRF - CV
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (663, 664, 671) -- Jaarbedragen (Rent Expedition space+Rent Infra+Rent Utilities)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2182 -- SLA Brightlands CV - CRF
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
512, '01',
'02') sortering, -- 524
DECODE (jbw.cnt_kenmerk_key,
512, 'Advance Payment Collective Services',
'Advance Payment Utilities') regel, -- 524
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
DECODE (jbw.cnt_kenmerk_key, 512, 'H', 'H') fin_btwtabelwaarde_code,
DECODE (jbw.cnt_kenmerk_key, 512, 'Hoog', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (jbw.cnt_kenmerk_key, 512, 21, 21) fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
DECODE (jbw.cnt_kenmerk_key, 512, 0.21, 0.21) *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
DECODE (jbw.cnt_kenmerk_key,
512, '813000',
'812000') grtboekrek, -- 524
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2182 -- SLA Brightlands CV - CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (512, 524) -- Jaarbedragen (Advance Payment Collective Services+Advance Payment Utilities)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2183 -- SLA CGZ Variabel
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
522, '01',
516, '02',
517, '03',
519, '04',
520, '05',
523, '06',
521, '07',
'08') sortering, -- 518
DECODE (jbw.cnt_kenmerk_key,
522, 'Advance Payment Propeen Usage',
516, 'Advance Payment Heptaan Usage',
517, 'Advance Payment Hexaan Usage',
519, 'Advance Payment Isododecaan Usage',
520, 'Advance Payment Etheen Usage',
523, 'Advance Payment Tolueen Usage',
521, 'Advance Payment Nbutaan Usage',
'Advance Payment Isobutaan Usage') regel, -- 518
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1, 2) -- NIET * 1/12, maar * 1!
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1, 2) -- NIET * 1/12, maar * 1!
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
DECODE (jbw.cnt_kenmerk_key,
522, '821001',
516, '821002',
517, '821003',
519, '821004',
520, '821005',
523, '821006',
521, '821007',
'821008') grtboekrek, -- 518
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2183 -- SLA CGZ Variabel
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (522, 516, 517, 519, 520, 523, 521, 518) -- MAANDbedragen (Advance Payment Propaan+Heptaan+Hexaan+Isododecaan+Itheen+Tolueen+Nbutaan+Isobutaan Usage)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2184 -- SLA CGZ Vast
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Monthly Fee CGZ' regel, -- Monthly Fee CGZ
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
jbw.som_kenmerkcontract_waarde bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (jbw.som_kenmerkcontract_waarde, 0) *
1, 2) -- NIET * 1/12, maar * 1!
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (jbw.som_kenmerkcontract_waarde, 0) *
0.21 *
1, 2) -- NIET * 1/12, maar * 1!
mndbtw, -- BTW maandbedrag
'821000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2184 -- SLA CGZ Vast
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN ( SELECT cnt_contract_key,
SUM (fac.safe_to_number (cnt_kenmerkcontract_waarde)) som_kenmerkcontract_waarde
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (638, 592, 625) -- MAANDbedragen (Monthly Fee+Depreciation + ROI Extension+Insurance CGZ)
GROUP BY cnt_contract_key) jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON kp.prs_kostenplaats_nr = '61000' -- Hardcoded?
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2185 -- SLA Managed Connectivity
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Managed Connectivity' regel, -- Managed Connectivity
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
'815000' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2185 -- SLA Managed Connectivity
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 637 -- Jaarbedrag (Managed Connectivity)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 1182 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2186 -- SLA Multi-Purpose Pilot Plant
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
535, '01',
962, '02',
'03') sortering, -- 961
DECODE (jbw.cnt_kenmerk_key,
535, 'Rent',
962, 'Advance Payment Utilities',
'Advance Payment Collective Services') regel, -- 961
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
DECODE (jbw.cnt_kenmerk_key, 962, 'H', 'H') fin_btwtabelwaarde_code,
DECODE (jbw.cnt_kenmerk_key, 962, 'Hoog', 'Hoog') fin_btwtabelwaarde_oms,
DECODE (jbw.cnt_kenmerk_key, 962, 21, 21) fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
DECODE (jbw.cnt_kenmerk_key, 962, 0.21, 0.21) *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
DECODE (jbw.cnt_kenmerk_key,
535, '811001',
962, '812000',
'813000') grtboekrek, -- 961
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2186 -- SLA Multi-Purpose Pilot Plant
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (535, 962, 961) -- Jaarbedragen (Rent+Advance Payment Utilities+Advance Payment Collective Services)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2187 -- SLA Operational Center
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
DECODE (jbw.cnt_kenmerk_key,
641, '01',
565, '01',
624, '01',
618, '03',
529, '04',
'02') sortering, -- 674, 635, 636, 511
DECODE (jbw.cnt_kenmerk_key,
641, 'Fee Services Property Officer',
565, 'Fee Services Property Officer',
624, 'Fee Services Property Officer',
618, 'Fee Cleaning lab rooms',
529, 'Fee Waste',
'Fee Gases') regel, -- 674, 635, 636, 511
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
DECODE (factuur.cnt_kenmerkcontract_waarde, NULL, 0, 1) factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
DECODE (jbw.cnt_kenmerk_key,
641, '814001',
565, '814001',
624, '814001',
618, '814002',
529, '814003',
'814004') grtboekrek, -- 674, 635, 636, 511
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2187 -- SLA Operational Center
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key IN (641, 565, 624, 618, 529, 674, 635, 636, 511) -- Jaarbedragen
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN cnt_kenmerkcontract factuur
ON x.cnt_contract_key = factuur.cnt_contract_key
AND factuur.cnt_kenmerkcontract_verwijder IS NULL
AND factuur.cnt_kenmerk_key = 1181 -- Factuur versturen
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2261 -- SLA Steam Facility
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Fixed fee steam facility' regel, -- Fixed fee steam facility
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Jaarbedrag (per eenheid)
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
1/12, 2)
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) *
0.21 *
1/12, 2)
mndbtw, -- BTW maandbedrag
--SUBSTR (jbk.cnt_kenmerk_hint, INSTR (jbk.cnt_kenmerk_hint, ';') + 1) grtboekrek,
'812020' grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2261 -- SLA Steam Facility
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract jbw
ON x.cnt_contract_key = jbw.cnt_contract_key
AND jbw.cnt_kenmerkcontract_verwijder IS NULL
AND jbw.cnt_kenmerk_key = 781 -- Jaarbedrag (Fixed fee steam facility)
LEFT JOIN cnt_kenmerk jbk
ON jbw.cnt_kenmerk_key = jbk.cnt_kenmerk_key
AND jbk.cnt_kenmerk_verwijder IS NULL
--LEFT JOIN prs_v_aanwezigkostenplaats kp
-- ON kp.prs_kostenplaats_nr = 'xxxxx' -- Hardcoded?
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON SUBSTR (jbk.cnt_kenmerk_hint, 1, INSTR (jbk.cnt_kenmerk_hint, ';') - 1) = kp.prs_kostenplaats_nr
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2381 -- SLA Generiek CV
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
ro.cnt_kenmerkcontract_waarde regel, -- Regelomschrijving
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw_ud.fac_usrdata_code fin_btwtabelwaarde_code,
btw_ud.fac_usrdata_omschr fin_btwtabelwaarde_oms,
btw_ud.fac_usrdata_prijs fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde) bedrag, -- MAANDbedrag
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde), 0) *
1, 2) -- NIET * 1/12, maar * 1!
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde), 0) *
btw_ud.fac_usrdata_prijs *
1, 2) -- NIET * 1/12, maar * 1!
mndbtw, -- BTW maandbedrag
ks.prs_kostensoort_oms grtboekrek,
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status,
c.prs_kostenplaats_key,
c.prs_kostensoort_key
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2381 -- SLA Generiek CV
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract mbw
ON x.cnt_contract_key = mbw.cnt_contract_key
AND mbw.cnt_kenmerkcontract_verwijder IS NULL
AND mbw.cnt_kenmerk_key = 821 -- MAANDbedrag
LEFT JOIN cnt_kenmerkcontract btw
ON x.cnt_contract_key = btw.cnt_contract_key
AND btw.cnt_kenmerkcontract_verwijder IS NULL
AND btw.cnt_kenmerk_key = 822 -- BTW code
LEFT JOIN fac_v_aanwezigusrdata btw_ud
ON fac.safe_to_number (btw.cnt_kenmerkcontract_waarde) = btw_ud.fac_usrdata_key
AND btw_ud.fac_usrtab_key = 641 -- BTW tabel
LEFT JOIN cnt_kenmerkcontract ro
ON x.cnt_contract_key = ro.cnt_contract_key
AND ro.cnt_kenmerkcontract_verwijder IS NULL
AND ro.cnt_kenmerk_key = 823 -- Regelomschrijving
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON x.prs_kostenplaats_key = kp.prs_kostenplaats_key
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
LEFT JOIN prs_kostensoort ks
ON x.prs_kostensoort_key = ks.prs_kostensoort_key
;
CREATE OR REPLACE VIEW blcc_v_fact_actual2382 -- SLA Generiek CRF
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201905') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
ro.cnt_kenmerkcontract_waarde regel, -- Regelomschrijving
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw_ud.fac_usrdata_code fin_btwtabelwaarde_code,
btw_ud.fac_usrdata_omschr fin_btwtabelwaarde_oms,
btw_ud.fac_usrdata_prijs fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde) bedrag, -- MAANDbedrag
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde), 0) *
1, 2) -- NIET * 1/12, maar * 1!
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (fac.safe_to_number (mbw.cnt_kenmerkcontract_waarde), 0) *
btw_ud.fac_usrdata_prijs *
1, 2) -- NIET * 1/12, maar * 1!
mndbtw, -- BTW maandbedrag
ks.prs_kostensoort_oms grtboekrek,
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status,
c.prs_kostenplaats_key,
c.prs_kostensoort_key
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 2382 -- SLA Generiek CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN cnt_kenmerkcontract mbw
ON x.cnt_contract_key = mbw.cnt_contract_key
AND mbw.cnt_kenmerkcontract_verwijder IS NULL
AND mbw.cnt_kenmerk_key = 824 -- MAANDbedrag
LEFT JOIN cnt_kenmerkcontract btw
ON x.cnt_contract_key = btw.cnt_contract_key
AND btw.cnt_kenmerkcontract_verwijder IS NULL
AND btw.cnt_kenmerk_key = 825 -- BTW code
LEFT JOIN fac_v_aanwezigusrdata btw_ud
ON fac.safe_to_number (btw.cnt_kenmerkcontract_waarde) = btw_ud.fac_usrdata_key
AND btw_ud.fac_usrtab_key = 641 -- BTW tabel
LEFT JOIN cnt_kenmerkcontract ro
ON x.cnt_contract_key = ro.cnt_contract_key
AND ro.cnt_kenmerkcontract_verwijder IS NULL
AND ro.cnt_kenmerk_key = 826 -- Regelomschrijving
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON x.prs_kostenplaats_key = kp.prs_kostenplaats_key
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
LEFT JOIN prs_kostensoort ks
ON x.prs_kostensoort_key = ks.prs_kostensoort_key
;
CREATE OR REPLACE VIEW blcc_v_fact_actual3161 -- Research abonnement
AS
WITH lopendeperiode AS (SELECT COALESCE (MAX (fin_verkoopfactuur_maand), '202302') maand -- Huidige maand!
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum > TO_DATE ('11112019', 'ddmmyyyy') -- FACTV2!
AND fin_verkoopfactuur_n2 IS NOT NULL) -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (x.cnt_contract_nummer) po_nr, -- Yourref
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') ourref, -- Ourref
TRIM (x.cnt_contract_document) omschrijving, -- Contract scope
'01' sortering,
'Monthly Fee Analytical Services' regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
x.cnt_contract_key, x.cnt_contract_nummer_intern, x.cnt_contract_versie, x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
x.adres, x.postcode, x.plaats, x.land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
x.maand,
TO_CHAR (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
TO_CHAR (GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin,
TO_CHAR (LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1 mndbez, -- Bezet
1 aantal,
x.cnt_contract_termijnkosten bedrag, -- MAANDbedrag
DECODE (UPPER (factent.fac_usrdata_omschr), 'CRF', 1, 0) crf, -- CCCV=0 en CRF=1
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (x.cnt_contract_termijnkosten, 0) *
1, 2) -- NIET * 1/12, maar * 1!
mndnet, -- Netto maandbedrag
ROUND (((LEAST (TRUNC (x.lt), LAST_DAY (TO_DATE (x.maand, 'yyyymm'))) - GREATEST (TRUNC (x.lv), TO_DATE (x.maand, 'yyyymm')) + 1) / (LAST_DAY (TO_DATE (x.maand, 'yyyymm')) - TO_DATE (x.maand, 'yyyymm') + 1)) *
COALESCE (x.cnt_contract_termijnkosten, 0) *
0.21 *
1, 2) -- NIET * 1/12, maar * 1!
mndbtw, -- BTW maandbedrag
ks.prs_kostensoort_oms grtboekrek,
TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key
NULL mld_melding_omschrijving,
x.cnt_contract_status,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM (SELECT c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern, c.cnt_contract_versie,
c.cnt_contract_nummer,
c.cnt_contract_omschrijving, c.cnt_contract_document,
c.cnt_contract_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
c.cnt_contract_termijnkosten, -- MAANDbedrag
b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
lp.maand,
c.cnt_contract_status,
c.prs_kostenplaats_key,
c.prs_kostensoort_key
FROM lopendeperiode lp, cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 3161 -- Research abonnement
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TO_DATE (lp.maand || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN prs_kenmerklink btwnr
ON x.prs_bedrijf_key = btwnr.prs_link_key
AND btwnr.prs_kenmerklink_verwijder IS NULL
AND btwnr.prs_kenmerk_key = 1100 -- BTW-nummer (NL)
LEFT JOIN prs_v_aanwezigkostenplaats kp
ON x.prs_kostenplaats_key = kp.prs_kostenplaats_key
LEFT JOIN prs_kostenplaatsgrp kpg
ON kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key
LEFT JOIN fac_v_aanwezigusrdata factent
ON x.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
LEFT JOIN prs_kostensoort ks
ON x.prs_kostensoort_key = ks.prs_kostensoort_key
;
CREATE OR REPLACE VIEW blcc_v_fact_correctie
AS
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'01' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 761) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 762 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 763) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 764 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 765) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'02' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 801) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 802 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 803) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 804 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 805) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'03' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 806) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 807 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 808) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 809 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 810) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'04' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 811) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 812 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 813) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 814 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 815) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'05' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 816) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 817 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 818) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 819 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 820) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'06' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 821) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 822 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 823) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 824 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 825) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'07' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 826) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 827 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 828) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 829 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 830) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'08' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 831) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 832 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 833) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 834 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 835) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'09' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 836) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 837 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 838) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 839 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 840) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
UNION ALL
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
'10' sortering,
TRIM (ro.waarde) regel,
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
btwnr.prs_kenmerklink_waarde btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land,
kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms,
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
vf.fin_verkoopfactuur_n3 crf, -- CCCV=0 en CRF=1
1 factuur,
DECODE (aog.alg_gebouw_key, NULL, NULL, 'G') alg_onroerendgoed_type, aog.alg_gebouw_key alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
ROUND (fac.safe_to_number (cb.waarde), 2) mndnet, -- Netto correctiebedrag
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2) mndbtw, -- BTW correctiebedrag
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek,
m.mld_melding_key, -- Correctiemelding-key
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM mld_melding m,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b,
(SELECT prs_link_key, prs_kenmerklink_waarde
FROM prs_kenmerklink
WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1100) btwnr, -- BTW-nummer (NL)
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 841) cb, -- Correctiebedrag
(SELECT km.mld_melding_key, ud.fac_usrdata_code code, ud.fac_usrdata_omschr oms, ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 842 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 843) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km, blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 844 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 845) ks, -- Kostensoort
alg_v_allonroerendgoed aog
WHERE m.mld_stdmelding_key = 1301 -- Financi<63>le correctie
AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+)
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
;
CREATE OR REPLACE VIEW blcc_v_factv2_actual
AS
SELECT * FROM blcc_v_fact_actual2122 -- Lease Agreement
UNION ALL
SELECT * FROM blcc_v_fact_actual2123 -- Lease Agreement CRF
UNION ALL
SELECT * FROM blcc_v_fact_actual2124 -- Lease Agreement Facilities
UNION ALL
SELECT * FROM blcc_v_fact_actual2141 -- User Agreement Loft
UNION ALL
SELECT * FROM blcc_v_fact_actual2161 -- Landlease CV - CRF
UNION ALL
SELECT * FROM blcc_v_fact_actual2181 -- SLA Brightlands CRF - CV
UNION ALL
SELECT * FROM blcc_v_fact_actual2182 -- SLA Brightlands CV - CRF
UNION ALL
SELECT * FROM blcc_v_fact_actual2183 -- SLA CGZ Variabel
UNION ALL
SELECT * FROM blcc_v_fact_actual2184 -- SLA CGZ Vast
UNION ALL
SELECT * FROM blcc_v_fact_actual2185 -- SLA Managed Connectivity
UNION ALL
SELECT * FROM blcc_v_fact_actual2186 -- SLA Multi-Purpose Pilot Plant
UNION ALL
SELECT * FROM blcc_v_fact_actual2187 -- SLA Operational Center
UNION ALL
SELECT * FROM blcc_v_fact_actual2261 -- SLA Steam Facility
UNION ALL
SELECT * FROM blcc_v_fact_actual2381 -- SLA Generiek CV
UNION ALL
SELECT * FROM blcc_v_fact_actual2382 -- SLA Generiek CRF
UNION ALL
SELECT * FROM blcc_v_fact_actual3161 -- Research abonnement
UNION ALL
SELECT x.*
FROM blcc_v_fact_correctie x
WHERE EXISTS (SELECT 1 FROM mld_melding WHERE mld_melding_status = 4 AND mld_melding_key = x.mld_melding_key) -- BLCC#88300: Geaccepteerd!
;
CREATE OR REPLACE VIEW blcc_v_factv2_frozen
AS
SELECT vf.fin_verkoopfactuur_id,
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr,
--vf.fin_verkoopfactuur_c1 ourref, -- Ourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref,
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 2, 2) sortering,
SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) + 4) regel,
TO_CHAR (vf.fin_verkoopfactuur_datum, 'dd-mm-yyyy') factuurdatum, TO_CHAR (vf.fin_verkoopfactuur_d1, 'dd-mm-yyyy') vervaldatum,
vf.fin_verkoopfactuur_refkey cnt_contract_key,
c.cnt_contract_nummer_intern, -- Niet historisch bewaard!
c.cnt_contract_versie, -- Niet historisch bewaard!
c.cnt_contract_looptijd_tot lv, -- Niet historisch bewaard!
vf.prs_bedrijf_key, vf.prs_debiteur_naam,
SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
SUBSTR (vf.fin_verkoopfactuur_c7, INSTR (vf.fin_verkoopfactuur_c7, '=') + 1) btw_nr,
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_adres, b.prs_bedrijf_post_adres) adres, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_postcode, b.prs_bedrijf_post_postcode) postcode, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_plaats, b.prs_bedrijf_post_plaats) plaats, -- Niet historisch bewaard!
DECODE (b.prs_bedrijf_post_adres, NULL, b.prs_bedrijf_bezoek_land, b.prs_bedrijf_post_land) land, -- Niet historisch bewaard!
vf.prs_kostenplaats_key, vf.prs_kostenplaats_nr, vf.prs_kostenplaats_omschrijving, vf.prs_kostenplaatsgrp_oms,
--vf.prs_kostensoort_oms, vf.prs_kostensoort_opmerking, vf.prs_kostensoort_refcode, vf.prs_kostensoortgrp_oms,
vf.fin_btwtabelwaarde_code,
vf.fin_btwtabelwaarde_oms,
vf.fin_btwtabelwaarde_perc,
vf.fin_btwtabelwaarde_verlegd,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d2, 'dd-mm-yyyy') mndbegin,
TO_CHAR (vf.fin_verkoopfactuur_d3, 'dd-mm-yyyy') mndeinde,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
vf.fin_verkoopfactuur_n1 aantal,
vf.fin_verkoopfactuur_n2 bedrag,
vf.fin_verkoopfactuur_n3 crf,
vf.fin_verkoopfactuur_n4 factuur,
SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1) alg_onroerendgoed_type,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c6, 2, INSTR (vf.fin_verkoopfactuur_c6, '=') - 2)) alg_onroerendgoed_keys,
SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1) alg_plaatsaanduiding,
vf.fin_verkoopfactuur_bedrag mndnet, -- Netto maandbedrag
vf.fin_verkoopfactuur_btw mndbtw, -- BTW maandbedrag
vf.prs_kostensoort_oms grtboekrek,
vf.fin_verkoopfactuur_n5 mld_melding_key, -- Was n2!
vf.fin_verkoopfactuur_c8 mld_melding_omschrijving,
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
FROM fin_verkoopfactuur vf,
cnt_contract c,
prs_bedrijf b
WHERE vf.fin_verkoopfactuur_datum > TO_DATE ('11112019', 'ddmmyyyy') -- FACTV2!
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND vf.fin_verkoopfactuur_n4 = 1 -- Nulfacturen skippen!
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
ORDER BY vf.prs_bedrijf_key, vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_refkey, SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1), SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1);
-- DEPRECATED per FACTv2!
-- TODO:Hoe lang deze (view op) historisch FACTV1-gegevens nog bewaren?
CREATE OR REPLACE VIEW blcc_v_rap_export_fact
(
hide_f_sortering,
fclt_x_maand,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
--factuurdatum,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM ( SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
v.debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet + v.mndbtw) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
'Total' omschrijving, -- Hard op 'Total'
NULL btwcode -- Hard op NULL
FROM blcc_v_fact_frozen v
WHERE v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || '0000',
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
'1300',
v.debiteur_nr,
NULL,
'debit',
'Total',
NULL
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
v.grtboekrek,
kp.prs_kostenplaats_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
SUBSTR (v.regel, 1, 40) omschrijving,
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN') btwcode
FROM blcc_v_fact_frozen v, cnt_contract c, prs_kostenplaats kp
WHERE v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.cnt_contract_key = c.cnt_contract_key
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
v.grtboekrek,
kp.prs_kostenplaats_nr,
NULL,
'credit',
SUBSTR (v.regel, 1, 40),
DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN')
ORDER BY 1);
-- BLCC#57460: FACT(v2)-export (per 2020 gesplitst naar 2 exports: CV en CRF)!
-- BLCC#61572: TWINFIELD-CSVs (3x) tgv. ADDD- en FACT(v2)-export samengevoegd
-- en per 5 maart 2020: 1x TF_CV-bestand + 1x TF_CRF-bestand!
-- BLCC#67308: Nieuwe 'BTW verlegd'-smaak VBUIEU_VERL (naast VBINEU_VERL)!
-- BLCC#69530: Wijzigen periode volgens factuurdatum voor FACT(v2)-export!
-- BLCC#84992: DEPRECATED per 8-11-2024 (bij overgang naar Dynamics)!
CREATE OR REPLACE VIEW blcc_v_rap_export_tf_cv
(
hide_f_sortering,
fclt_x_maand,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
mldver,
sync_id
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
--factuurdatum,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
CASE
WHEN antedateren = 1
THEN TO_CHAR (fac.safe_to_date (factuurdatum, 'dd-mm-yyyy') + 1, 'yyyymmdd') -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie!
ELSE SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
END
sync_id -- BLCC#62974: Unieke identificatie!
FROM ( -- *** ADDD ***
SELECT fin_verkoopfactuur_id || '0000' || debiteur_nr sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
netsum bedrag, -- Totaalbedrag incl. BTW per factuur!
'debit' debitcredit,
TRIM (DECODE (mld_melding_key, NULL, DECODE (aant, 1, regel_id, ''), DECODE (SUBSTR (regel_id, 1, 2), 'LV', DECODE (contract_id, NULL, regel_id, regel_id || ' C' || contract_id), 'CORR' || regel_id)) || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
mld_melding_key,
DECODE (mld_melding_key, NULL, 1, 0) antedateren -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum,
SUM (ROUND (DECODE (v.fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) * netsum, 2)) netsum, -- Totaalbedrag incl. BTW per factuur!
SUM (aant) aant,
MIN (v.regel_id) regel_id,
MIN (v.contract_id) contract_id,
MIN (v.mld_melding_key) mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code,
SUM (v.mndnet) netsum, -- Totaalbedrag excl. BTW gegroepeerd per factuur/BTW-tarief tbv. juiste afronding!
COUNT (DISTINCT v.regel_id) aant,
MIN (v.regel_id) regel_id,
MIN (v.contract_id) contract_id,
MIN (v.mld_melding_key) mld_melding_key
FROM (SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum,
v.fin_btwtabelwaarde_code,
v.mndnet,
v.regel_id,
v.contract_id,
v.mld_melding_key
FROM blcc_v_addd_frozen v
WHERE (v.mld_melding_key IS NULL -- Reguliere facturatie!
OR NOT EXISTS -- Correctie/losverkoop tegen CV!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey))
AND COALESCE (v.crf, 0) = 0
--AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
UNION ALL -- Handling fee (=6,5% over totaal tegen 21%) toevoegen als regel!
SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum,
'H' fin_btwtabelwaarde_code,
ROUND (0.065 * mndnet, 2) mndnet,
NULL regel_id,
contract_id,
NULL mld_melding_key
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, contract_id, crf,
SUM (mndnet) mndnet
FROM blcc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Handling fee alleen bij reguliere facturatie!
--AND COALESCE (crf, 0) = 0
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, contract_id, crf)) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum)
UNION ALL
SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
MIN (DECODE (v.mld_melding_key, NULL, 1, 0)) antedateren -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
FROM blcc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl -- BTW verlegd "smaak"
WHERE (v.mld_melding_key IS NULL -- Reguliere facturatie!
OR NOT EXISTS -- Correctie/losverkoop tegen CV!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey))
AND COALESCE (v.crf, 0) = 0
AND v.prs_bedrijf_key = kl.prs_link_key(+)
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), grtboekrek),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
NULL,
'credit',
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN')
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN')
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || '8136' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'8136', -- Handling fee
rel_kpl, -- Op 50900 of - sinds BLCC#69994 - 50902
NULL prj_activa, -- Hard op NULL
ROUND (0.065 * netsum, 2) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
DECODE (aant, 1, regel_id || ' Handling fee', 'Handling fee') omschrijving,
'VH' btwcode,
NULL mld_melding_key,
1 antedateren
FROM ( SELECT fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, DECODE (prs_kostenplaats_nr, '50902', '50902', '50900') rel_kpl,
SUM (mndnet) netsum,
COUNT (DISTINCT regel_id) aant,
MIN (regel_id) regel_id
FROM blcc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Handling fee alleen bij reguliere facturatie!
--AND COALESCE (crf, 0) = 0
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, debiteur_nr, factuurdatum, maand, vervaldatum, DECODE (prs_kostenplaats_nr, '50902', '50902', '50900'))
UNION ALL -- *** FACT ***
SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
MIN (SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2)) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
v.debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (ROUND (v.mndnet * v.btw, 2)) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
--'Total' omschrijving, -- Hard op 'Total'
--'C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total' omschrijving,
TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren
FROM ( SELECT fin_verkoopfactuur_id,
cnt_contract_nummer_intern, -- Altijd 1 contract per factuur!
cnt_contract_versie,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) btw,
SUM (mndnet) mndnet, -- Totaalbedrag per grtboekrek/fin_btwtabelwaarde_code
MIN (mld_melding_key) mld_melding_key,
MIN (mld_melding_omschrijving) mld_melding_omschrijving -- Te corrigeren factuur!
FROM blcc_v_factv2_frozen
WHERE crf = 0
AND SUBSTR (fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND factuur = 1 -- Nulfacturen skippen!
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id,
cnt_contract_nummer_intern,
cnt_contract_versie,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1)) v
GROUP BY v.fin_verkoopfactuur_id || '0000',
'VRK',
'EUR',
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
--SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
'1300',
v.debiteur_nr,
NULL,
'debit',
--'C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total',
TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total'),
NULL,
0
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
MIN (SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2)) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
v.grtboekrek,
--v.prs_kostenplaats_nr rel_kpl,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
--SUBSTR ('C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel, 1, 40) omschrijving,
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren
FROM blcc_v_factv2_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl -- BTW verlegd "smaak"
WHERE v.crf = 0
AND SUBSTR (v.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND v.factuur = 1 -- Nulfacturen skippen!
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
'VRK',
'EUR',
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
--SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
v.grtboekrek,
--v.prs_kostenplaats_nr,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
NULL,
'credit',
--SUBSTR ('C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel, 1, 40),
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
0
ORDER BY 1);
CREATE OR REPLACE VIEW blcc_v_export_tf_cv
(
result,
result_order
)
AS -- View bevat alleen inhoud op bepaalde dagen (10e werkdag of op 1e, 8e, 15, 22e) of als er vandaag correcties/losverkopen zijn Verwerkt!
SELECT 'code'
|| ';valuta'
|| ';factuurdatum'
|| ';periode'
|| ';factuurnummer'
|| ';vervaldatum'
|| ';nummer'
|| ';grtboekrek'
|| ';rel/kpl'
|| ';prj/activa'
|| ';bedrag'
|| ';debitcredit'
|| ';omschrijving'
|| ';btwcode',
0
FROM DUAL
WHERE EXISTS (SELECT 1
FROM blcc_v_rap_export_tf_cv
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd'))
UNION ALL
SELECT code
|| ';'
|| valuta
|| ';'
|| factuurdatum
|| ';'
|| periode
|| ';'
|| factuurnummer
|| ';'
|| vervaldatum
|| ';'
|| nummer
|| ';'
|| grtboekrek
|| ';'
|| rel_kpl
|| ';'
|| prj_activa
|| ';'
|| bedrag
|| ';'
|| debitcredit
|| ';'
|| omschrijving
|| ';'
|| btwcode,
ROWNUM
FROM blcc_v_rap_export_tf_cv
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd')
ORDER BY 2;
CREATE OR REPLACE VIEW blcc_v_rap_export_tf_crf
(
hide_f_sortering,
fclt_x_maand,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
mldver,
sync_id
)
AS
SELECT ROWNUM,
REPLACE (periode, '/', '-') periode,
code,
valuta,
--factuurdatum,
REPLACE (factuurdatum, '-', '/') factuurdatum,
periode,
factuurnummer,
--vervaldatum,
REPLACE (vervaldatum, '-', '/') vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
CASE
WHEN antedateren = 1
THEN TO_CHAR (fac.safe_to_date (factuurdatum, 'dd-mm-yyyy') + 1, 'yyyymmdd') -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie!
ELSE SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
END
sync_id -- BLCC#62974: Unieke identificatie!
FROM ( -- *** ADDD ***
SELECT fin_verkoopfactuur_id || '0000' || debiteur_nr sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2) periode,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
netsum bedrag, -- Totaalbedrag incl. BTW per factuur!
'debit' debitcredit,
TRIM (DECODE (mld_melding_key, NULL, DECODE (aant, 1, regel_id, ''), DECODE (SUBSTR (regel_id, 1, 2), 'LV', DECODE (contract_id, NULL, regel_id, regel_id || ' C' || contract_id), 'CORR' || regel_id)) || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
mld_melding_key,
DECODE (mld_melding_key, NULL, 1, 0) antedateren -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum,
SUM (ROUND (DECODE (v.fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) * netsum, 2)) netsum, -- Totaalbedrag incl. BTW per factuur!
SUM (aant) aant,
MIN (v.regel_id) regel_id,
MIN (v.contract_id) contract_id,
MIN (v.mld_melding_key) mld_melding_key
FROM ( SELECT v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code,
SUM (v.mndnet) netsum, -- Totaalbedrag excl. BTW gegroepeerd per factuur/BTW-tarief tbv. juiste afronding!
COUNT (DISTINCT v.regel_id) aant,
MIN (v.regel_id) regel_id,
MIN (v.contract_id) contract_id,
MIN (v.mld_melding_key) mld_melding_key
FROM blcc_v_addd_frozen v
WHERE EXISTS -- Correctie/losverkoop tegen CRF!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey)
OR crf = 1
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum, v.fin_btwtabelwaarde_code) v
GROUP BY v.fin_verkoopfactuur_id, v.debiteur_nr, v.factuurdatum, v.maand, v.vervaldatum)
UNION ALL
SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (maand, 1, 4) || '/' || SUBSTR (maand, -2) periode,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
MIN (DECODE (v.mld_melding_key, NULL, 1, 0)) antedateren -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
FROM blcc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl -- BTW verlegd "smaak"
WHERE (EXISTS -- Correctie/losverkoop tegen CRF!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey)
OR v.crf = 1)
AND v.prs_bedrijf_key = kl.prs_link_key(+)
--AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
'VRK',
'EUR',
v.factuurdatum,
SUBSTR (v.factuurdatum, 7, 4) || '/' || SUBSTR (v.factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
NULL,
'credit',
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN')
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN')
UNION ALL -- *** FACT ***
SELECT v.fin_verkoopfactuur_id || '0000' sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
MIN (SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2)) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
'1300' grtboekrek, -- Hard op '1300'
v.debiteur_nr rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (ROUND (v.mndnet * v.btw, 2)) bedrag, -- Totaalbedrag incl. BTW gegroepeerd over andere kolommen!
'debit' debitcredit,
--'Total' omschrijving, -- Hard op 'Total'
--'C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total' omschrijving,
TRIM (DECODE (v.mld_melding_key, NULL, '', 'CORR' || v.mld_melding_omschrijving) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total') omschrijving,
NULL btwcode, -- Hard op NULL
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren
FROM ( SELECT fin_verkoopfactuur_id,
cnt_contract_nummer_intern, -- Altijd 1 contract per factuur!
cnt_contract_versie,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1) btw,
SUM (mndnet) mndnet, -- Totaalbedrag per grtboekrek/fin_btwtabelwaarde_code
MIN (mld_melding_key) mld_melding_key,
MIN (mld_melding_omschrijving) mld_melding_omschrijving -- Te corrigeren factuur!
FROM blcc_v_factv2_frozen
WHERE crf = 1
AND SUBSTR (fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND factuur = 1 -- Nulfacturen skippen!
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id,
cnt_contract_nummer_intern,
cnt_contract_versie,
factuurdatum,
maand,
vervaldatum,
debiteur_nr,
DECODE (fin_btwtabelwaarde_code, 'H', 1.21, 'L', 1.09, 1)) v
GROUP BY v.fin_verkoopfactuur_id || '0000',
'VRK',
'EUR',
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
--SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
'1300',
v.debiteur_nr,
NULL,
'debit',
--'C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total',
TRIM (DECODE (v.mld_melding_key, NULL, '', 'CORR' || v.mld_melding_omschrijving) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' Total'),
NULL,
0
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
'VRK' code, -- Hard op 'VRK'
'EUR' valuta, -- Hard op 'EUR'
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2) periode,
MIN (SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2)) periode,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.vervaldatum,
'1' nummer, -- Hard op '1'
v.grtboekrek,
--v.prs_kostenplaats_nr rel_kpl,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
NULL prj_activa, -- Hard op NULL
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
'credit' debitcredit, -- TODO:Altijd 'credit' (ook negatieve bedragen)???
--SUBSTR ('C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel, 1, 40) omschrijving,
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', 'CORR' || v.mld_melding_omschrijving) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren
FROM blcc_v_factv2_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl -- BTW verlegd "smaak"
WHERE v.crf = 1
AND SUBSTR (fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND factuur = 1 -- Nulfacturen skippen!
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
'VRK',
'EUR',
v.factuurdatum,
--SUBSTR (v.maand, 1, 4) || '/' || SUBSTR (v.maand, -2),
--SUBSTR (factuurdatum, 7, 4) || '/' || SUBSTR (factuurdatum, 4, 2),
v.fin_verkoopfactuur_id,
v.vervaldatum,
'1',
v.grtboekrek,
--v.prs_kostenplaats_nr,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
NULL,
'credit',
--SUBSTR ('C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel, 1, 40),
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', 'CORR' || v.mld_melding_omschrijving) || ' C' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', DECODE (kl.prs_kenmerklink_waarde, '1322', 'VBUIEU_VERL', 'VBINEU_VERL'), NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
0
ORDER BY 1);
CREATE OR REPLACE VIEW blcc_v_export_tf_crf
(
result,
result_order
)
AS -- View bevat alleen inhoud op bepaalde dagen (10e werkdag of op 1e, 8e, 15, 22e) of als er vandaag correcties/losverkopen zijn Verwerkt!
SELECT 'code'
|| ';valuta'
|| ';factuurdatum'
|| ';periode'
|| ';factuurnummer'
|| ';vervaldatum'
|| ';nummer'
|| ';grtboekrek'
|| ';rel/kpl'
|| ';prj/activa'
|| ';bedrag'
|| ';debitcredit'
|| ';omschrijving'
|| ';btwcode',
0
FROM DUAL
WHERE EXISTS (SELECT 1
FROM blcc_v_rap_export_tf_crf
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd'))
UNION ALL
SELECT code
|| ';'
|| valuta
|| ';'
|| factuurdatum
|| ';'
|| periode
|| ';'
|| factuurnummer
|| ';'
|| vervaldatum
|| ';'
|| nummer
|| ';'
|| grtboekrek
|| ';'
|| rel_kpl
|| ';'
|| prj_activa
|| ';'
|| bedrag
|| ';'
|| debitcredit
|| ';'
|| omschrijving
|| ';'
|| btwcode,
ROWNUM
FROM blcc_v_rap_export_tf_crf
WHERE sync_id = TO_CHAR (SYSDATE, 'yyyymmdd')
ORDER BY 2;
CREATE OR REPLACE VIEW BLCC_V_RAP_EXPREG_CV
(
hide_f_sortering,
factuurdatum,
factuurnummer,
mainaccount, -- Was grtboekrek
costcenter, -- Was rel_kpl
bedrag,
omschrijving,
taxitemgroup, -- Was btwcode
mldver,
sync_id,
companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
)
AS
SELECT ROWNUM,
SUBSTR (factuurdatum, 7, 4) || '-' || SUBSTR (factuurdatum, 4, 2) || '-' || SUBSTR (factuurdatum, 1, 2) factuurdatum,
factuurnummer,
grtboekrek,
rel_kpl,
bedrag,
omschrijving,
btwcode,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
CASE
WHEN antedateren = 1
THEN TO_CHAR (fac.safe_to_date (factuurdatum, 'dd-mm-yyyy') + 1, 'yyyymmdd') -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie!
ELSE SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
END
sync_id, -- BLCC#62974: Unieke identificatie!
'CCCV' companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
FROM ( SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || v.grtboekrek sortering,
v.factuurdatum,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
MIN (DECODE (v.mld_melding_key, NULL, 1, 0)) antedateren, -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
v.debiteur_nr custaccount,
DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3)) building,
--DECODE (v.contract_id, NULL, NULL, SUBSTR (v.contract_id, 1, INSTR (v.contract_id, '.') - 1)) contract,
v.contract_id,
'ADDD' stroom,
v.po_nr
FROM blcc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl, -- BTW verlegd "smaak"
alg_v_allonrgoed_gegevens aog
WHERE (v.mld_melding_key IS NULL -- Reguliere facturatie!
OR NOT EXISTS -- Correctie/losverkoop tegen CV!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey))
AND COALESCE (v.crf, 0) = 0
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND v.maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || v.grtboekrek,
v.factuurdatum,
v.fin_verkoopfactuur_id,
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S'),
v.debiteur_nr,
DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3)),
--DECODE (v.contract_id, NULL, NULL, SUBSTR (v.contract_id, 1, INSTR (v.contract_id, '.') - 1)),
v.contract_id,
'ADDD',
v.po_nr
UNION ALL
SELECT fin_verkoopfactuur_id || debiteur_nr || '816199' sortering,
factuurdatum,
fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
'816199', -- Handling fee
rel_kpl, -- Op 50900 of - sinds BLCC#69994 - 50902
ROUND (0.065 * netsum, 2) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
DECODE (aant, 1, regel_id || ' Handling fee', 'Handling fee') omschrijving,
'03S' btwcode,
NULL mld_melding_key,
1 antedateren,
debiteur_nr custaccount,
NULL building,
--NULL contract,
NULL contract_id,
'ADDD' stroom,
po_nr
FROM ( SELECT fin_verkoopfactuur_id, po_nr, debiteur_nr, factuurdatum, maand, vervaldatum, DECODE (prs_kostenplaats_nr, '50902', '50902', '50900') rel_kpl,
SUM (mndnet) netsum,
COUNT (DISTINCT regel_id) aant,
MIN (regel_id) regel_id
FROM blcc_v_addd_frozen
WHERE mld_melding_key IS NULL -- Handling fee alleen bij reguliere facturatie!
--AND COALESCE (crf, 0) = 0
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
GROUP BY fin_verkoopfactuur_id, po_nr, debiteur_nr, factuurdatum, maand, vervaldatum, DECODE (prs_kostenplaats_nr, '50902', '50902', '50900'))
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
v.factuurdatum,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren,
v.debiteur_nr custaccount,
MIN (DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3))) building,
--DECODE (v.cnt_contract_nummer_intern, NULL, NULL, v.cnt_contract_nummer_intern) contract,
v.cnt_contract_nummer_intern || '.' || v.cnt_contract_versie contract_id,
'FACT' stroom,
v.po_nr
FROM blcc_v_factv2_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl, -- BTW verlegd "smaak"
(SELECT cnt_contract_key, MIN (cnt_alg_plaats_key) cnt_alg_plaats_key FROM cnt_contract_plaats GROUP BY cnt_contract_key) cp,
alg_v_allonrgoed_gegevens aog
WHERE v.crf = 0
AND SUBSTR (v.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND v.factuur = 1 -- Nulfacturen skippen!
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND fac.safe_to_date (v.factuurdatum, 'dd-mm-yyyy') >= fac.safe_to_date ('01-11-2024', 'dd-mm-yyyy')
AND v.cnt_contract_key = cp.cnt_contract_key(+)
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys(+)
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
v.factuurdatum,
v.fin_verkoopfactuur_id,
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S'),
0,
v.debiteur_nr,
--DECODE (v.cnt_contract_nummer_intern, NULL, NULL, v.cnt_contract_nummer_intern),
v.cnt_contract_nummer_intern || '.' || v.cnt_contract_versie,
'FACT',
v.po_nr
ORDER BY 1);
CREATE OR REPLACE VIEW BLCC_V_RAP_EXPREG_CRF
(
hide_f_sortering,
factuurdatum,
factuurnummer,
mainaccount, -- Was grtboekrek
costcenter, -- Was rel_kpl
bedrag,
omschrijving,
taxitemgroup, -- Was btwcode
mldver,
sync_id,
companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
)
AS
SELECT ROWNUM,
SUBSTR (factuurdatum, 7, 4) || '-' || SUBSTR (factuurdatum, 4, 2) || '-' || SUBSTR (factuurdatum, 1, 2) factuurdatum,
factuurnummer,
grtboekrek,
rel_kpl,
bedrag,
omschrijving,
btwcode,
fac.gettrackingdate ('MLDVER', mld_melding_key) mldver,
CASE
WHEN antedateren = 1
THEN TO_CHAR (fac.safe_to_date (factuurdatum, 'dd-mm-yyyy') + 1, 'yyyymmdd') -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie!
ELSE SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) -- Sync_id = factuurdatum!
END
sync_id, -- BLCC#62974: Unieke identificatie!
'CRF' companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
FROM ( SELECT v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek) sortering,
v.factuurdatum,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
MIN (DECODE (v.mld_melding_key, NULL, 1, 0)) antedateren, -- Sync_id terug-antedateren igv. reguliere ADDD-facturatie
v.debiteur_nr custaccount,
DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3)) building,
--DECODE (v.contract_id, NULL, NULL, SUBSTR (v.contract_id, 1, INSTR (v.contract_id, '.') - 1)) contract,
v.contract_id,
'ADDD' stroom,
v.po_nr
FROM blcc_v_addd_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl, -- BTW verlegd "smaak"
alg_v_allonrgoed_gegevens aog
WHERE (EXISTS -- Correctie/losverkoop tegen CRF!
(SELECT 1
FROM cnt_v_aanwezigcontract c, fac_v_aanwezigusrdata factent
WHERE c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
AND UPPER (factent.fac_usrdata_omschr) = 'CRF'
AND v.xmlnode = 'contract'
AND c.cnt_contract_key = v.refkey)
OR v.crf = 1)
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
AND v.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
GROUP BY v.fin_verkoopfactuur_id || v.debiteur_nr || DECODE (v.grtboekrek, '812x', DECODE (v.fin_btwtabelwaarde_code, 'H', '8120', '8121'), v.grtboekrek),
v.factuurdatum,
v.fin_verkoopfactuur_id,
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
SUBSTR (DECODE (v.mld_melding_key, NULL, v.regel_id, DECODE (SUBSTR (v.regel_id, 1, 2), 'LV', DECODE (v.contract_id, NULL, v.regel_id, v.regel_id || ' C' || v.contract_id), 'CORR' || v.regel_id) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S'),
v.debiteur_nr,
DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3)),
--DECODE (v.contract_id, NULL, NULL, SUBSTR (v.contract_id, 1, INSTR (v.contract_id, '.') - 1)),
v.contract_id,
'ADDD',
v.po_nr
UNION ALL
SELECT v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???') sortering,
v.factuurdatum,
v.fin_verkoopfactuur_id factuurnummer, -- Boekstuknummer
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr) rel_kpl,
SUM (v.mndnet) bedrag, -- Totaalbedrag excl. BTW gegroepeerd over andere kolommen!
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' ' || v.regel), 1, 40) omschrijving,
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN') btwcode,
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S') btwcode,
MIN (v.mld_melding_key) mld_melding_key,
0 antedateren,
v.debiteur_nr custaccount,
MIN (DECODE (aog.alg_onroerendgoed_keys, NULL, NULL, SUBSTR (aog.alg_plaatsaanduiding, 5, 3))) building,
--DECODE (v.cnt_contract_nummer_intern, NULL, NULL, v.cnt_contract_nummer_intern) contract,
v.cnt_contract_nummer_intern || '.' || v.cnt_contract_versie contract_id,
'FACT' stroom,
v.po_nr
FROM blcc_v_factv2_frozen v,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1160) kl, -- BTW verlegd "smaak"
(SELECT cnt_contract_key, MIN (cnt_alg_plaats_key) cnt_alg_plaats_key FROM cnt_contract_plaats GROUP BY cnt_contract_key) cp,
alg_v_allonrgoed_gegevens aog
WHERE v.crf = 1
AND SUBSTR (v.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND v.factuur = 1 -- Nulfacturen skippen!
AND v.prs_bedrijf_key = kl.prs_link_key(+)
AND fac.safe_to_date (v.factuurdatum, 'dd-mm-yyyy') >= fac.safe_to_date ('01-11-2024', 'dd-mm-yyyy')
AND v.cnt_contract_key = cp.cnt_contract_key(+)
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys(+)
GROUP BY v.fin_verkoopfactuur_id || COALESCE (v.grtboekrek, '???'),
v.factuurdatum,
v.fin_verkoopfactuur_id,
v.grtboekrek,
DECODE (SUBSTR (v.prs_kostenplaats_nr, 1, 5), '50900', '50900', v.prs_kostenplaats_nr),
SUBSTR (TRIM (DECODE (v.mld_melding_key, NULL, '', DECODE (v.factuurdatum, '17-12-2019', '', 'CORR' || v.mld_melding_omschrijving)) || ' ' || v.regel), 1, 40),
--DECODE (v.fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL9', 'V', 'V', NULL, 'LEEG', 'LEEG', 'LEEG', 'VRIJ', 'VRIJ', 'VN'),
DECODE (v.fin_btwtabelwaarde_code, 'H', '03S', 'L', '01S', NULL, NULL, '00S'),
0,
v.debiteur_nr,
--DECODE (v.cnt_contract_nummer_intern, NULL, NULL, v.cnt_contract_nummer_intern),
v.cnt_contract_nummer_intern || '.' || v.cnt_contract_versie,
'FACT',
v.po_nr
ORDER BY 1);
CREATE OR REPLACE VIEW BLCC_V_RAP_EXP_DYNAMICS
(
hide_f_sortering,
factuurdatum,
--factuurnummer,
extra_key, -- Moet zo heten!
mainaccount,
costcenter,
bedrag,
omschrijving,
taxitemgroup,
mldver,
sync_id,
companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
)
AS
SELECT hide_f_sortering,
factuurdatum,
fac.safe_to_number (factuurnummer) factuurnummer,
mainaccount,
costcenter,
bedrag,
omschrijving,
taxitemgroup,
mldver,
sync_id,
companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
FROM blcc_v_rap_expreg_cv
UNION ALL
SELECT hide_f_sortering,
factuurdatum,
fac.safe_to_number (factuurnummer) factuurnummer,
mainaccount,
costcenter,
bedrag,
omschrijving,
taxitemgroup,
mldver,
sync_id,
companyid,
custaccount,
building,
--contract,
contract_id,
stroom,
po_nr
FROM blcc_v_rap_expreg_crf;
CREATE OR REPLACE PROCEDURE blcc_select_addd (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Factureer/bevries RES-kosten maandelijks (de nacht na 10e werkdag van de
-- maand) en Klantwens-kosten op vaste dagen (1e, 8e, 15e + 22e).
-- NB. Ooit gebeurde alles maandelijks en voor ADDD-export zijn correctie-
-- meldingen nooit geintroduceerd.
-- BLCC#74973: RES-kosten op vaste dagen, nl. 8e + 22e.
CURSOR c1a -- RES-kosten
IS
SELECT '[' || v.regel_id || '|' || v.prs_debiteur_naam || '] ' aanduiding,
v.*
FROM blcc_v_addd_actual v
WHERE v.xmlnode = 'reservering'
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering;
-- BLCC#58906: Klantwens-kosten op vaste dagen, nl. 1e, 8e, 15e + 22e!
CURSOR c1b -- Klantwens-kosten
IS
SELECT '[' || v.regel_id || '|' || v.prs_debiteur_naam || '] ' aanduiding,
v.*, m.mld_melding_status
FROM (SELECT * FROM blcc_v_addd_actual WHERE xmlnode = 'opdracht' AND fac.gettrackingdate ('ORDVER', refkey) < TRUNC (SYSDATE)) v
LEFT JOIN mld_melding m -- Nooit geintroduceerd!
ON v.mld_melding_key = m.mld_melding_key
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering;
-- Factureer/bevries alleen geaccepteerde ADDD-correctiemeldingen en verwerk=AV deze (inclusief de afgemelde ADDD-correctiemeldingen)!
CURSOR c1c
IS
SELECT '[' || v.regel_id || '|' || v.prs_debiteur_naam || '|' || REPLACE (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '] ' aanduiding,
v.*,
m.mld_melding_status
FROM blcc_v_addd_correctie v, mld_melding m
WHERE v.mld_melding_key = m.mld_melding_key -- Dagelijkse correctiefacturatie
ORDER BY v.prs_bedrijf_key,
v.regel_id, -- Factuur per te corrigeren verkoopfactuur
v.mld_melding_key,
v.sortering;
-- Factureer/bevries alleen geaccepteerde ADDD-losverkoopmeldingen en verwerk=AV deze (inclusief de afgemelde ADDD-losverkoopmeldingen)!
CURSOR c1d
IS
SELECT '[' || v.regel_id || '|' || v.prs_debiteur_naam || '|' || REPLACE (REPLACE (REPLACE (v.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '] ' aanduiding,
v.*,
m.mld_melding_status
FROM blcc_v_addd_losverkoop v, mld_melding m
WHERE v.mld_melding_key = m.mld_melding_key -- Dagelijkse losverkoopfacturatie
ORDER BY v.prs_bedrijf_key,
v.mld_melding_key, -- Factuur per losverkoopmelding
v.sortering;
-- Verstuur verkoopfactuur/correctiefactuur/losverkoopfactuur naar huurder.
CURSOR c2
IS
SELECT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding,
vf.fin_verkoopfactuur_xmlnode,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email,
MAX (fin_verkoopfactuur_n1) mld_melding_key
FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) IN ('3', '4')
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND vf.fin_verkoopfactuur_aanmaak > TRUNC (SYSDATE) -- Zojuist/vannacht aangemaakt en dus nog niet gefactureerd(/genotificeerd)!
GROUP BY '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ',
vf.fin_verkoopfactuur_xmlnode,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email
ORDER BY vf.fin_verkoopfactuur_id;
-- Verwerk gefactureerde reserveringen (in juiste volgorde)!
CURSOR c3
IS
SELECT DISTINCT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
NULL res_rsv_deel_key,
rra.res_status_bo_key,
rra.res_artikel_key
FROM fin_verkoopfactuur vf, res_v_aanwezigrsv_artikel rra
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) IN ('3', '4')
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE) -- Vandaag/zojuist aangemaakt!
AND vf.fin_verkoopfactuur_refkey = rra.res_rsv_ruimte_key
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
rrd.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
rrd.res_rsv_deel_key,
rrd.res_status_bo_key,
NULL res_artikel_key
FROM fin_verkoopfactuur vf, res_v_aanwezigrsv_deel rrd
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) IN ('3', '4')
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE) -- Vandaag/zojuist aangemaakt!
AND vf.fin_verkoopfactuur_refkey = rrd.res_rsv_ruimte_key
UNION ALL
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
rrr.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
NULL res_rsv_deel_key,
rrr.res_status_bo_key,
NULL res_artikel_key
FROM fin_verkoopfactuur vf, res_v_aanwezigrsv_ruimte rrr
WHERE SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) IN ('3', '4')
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.fin_verkoopfactuur_xmlnode = 'reservering'
AND TRUNC (vf.fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE) -- Vandaag/zojuist aangemaakt!
AND vf.fin_verkoopfactuur_refkey = rrr.res_rsv_ruimte_key
ORDER BY 2, 3, 4;
/*
UNION ALL -- Nul-reserveringen/artikelen
SELECT DISTINCT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
NULL res_rsv_deel_key,
rra.res_status_bo_key,
rra.res_artikel_key
FROM blcc_v_addd_actual v, res_v_aanwezigrsv_artikel rra
WHERE v.xmlnode = 'reservering'
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_xmlnode = 'reservering' AND fin_verkoopfactuur_refkey = rra.res_rsv_ruimte_key)
AND v.refkey = rra.res_rsv_ruimte_key
UNION ALL -- Nul-reserveringen/voorzieningen
SELECT DISTINCT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
rrd.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
rrd.res_rsv_deel_key,
rrd.res_status_bo_key,
NULL res_artikel_key
FROM blcc_v_addd_actual v, res_v_aanwezigrsv_deel rrd
WHERE v.xmlnode = 'reservering'
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_xmlnode = 'reservering' AND fin_verkoopfactuur_refkey = rrd.res_rsv_ruimte_key)
AND v.refkey = rrd.res_rsv_ruimte_key
AND rrd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen bij niet reservering-gebonden afspraken?
UNION ALL -- Nul-reserveringen/ruimten
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
rrr.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
NULL res_rsv_deel_key,
rrr.res_status_bo_key,
NULL res_artikel_key
FROM blcc_v_addd_actual v, res_v_aanwezigrsv_ruimte rrr
WHERE v.xmlnode = 'reservering'
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuur_xmlnode = 'reservering' AND fin_verkoopfactuur_refkey = rrr.res_rsv_ruimte_key)
AND v.refkey = rrr.res_rsv_ruimte_key
ORDER BY 2, 3, 4;
*/
-- Verwerk nul-reserveringen (in juiste volgorde)!
CURSOR c4
IS -- Nul-reserveringen/artikelen
SELECT DISTINCT '[' || TO_CHAR (rra.res_rsv_ruimte_key) || '|' || TO_CHAR (rra.res_rsv_artikel_key) || '] ' aanduiding,
rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_key,
NULL res_rsv_deel_key,
rra.res_status_bo_key,
rra.res_artikel_key
FROM res_v_aanwezigrsv_artikel rra
WHERE rra.res_status_bo_key != 6
AND rra.res_rsv_artikel_levering < TRUNC (SYSDATE, 'mm')
AND rra.res_rsv_artikel_dirtlevel = 0
AND res.getdeelresprijs (rra.res_rsv_ruimte_key) = 0
UNION ALL -- Nul-reserveringen/voorzieningen
SELECT DISTINCT '[' || TO_CHAR (rrd.res_rsv_ruimte_key) || '|' || TO_CHAR (rrd.res_rsv_deel_key) || '] ' aanduiding,
rrd.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
rrd.res_rsv_deel_key,
rrd.res_status_bo_key,
NULL res_artikel_key
FROM res_v_aanwezigrsv_deel rrd
WHERE rrd.res_status_bo_key != 6
AND rrd.res_rsv_deel_tot < TRUNC (SYSDATE, 'mm')
AND rrd.res_rsv_deel_dirtlevel = 0
AND rrd.res_rsv_ruimte_key IS NOT NULL -- Geen parkeerplaatsen bij niet reservering-gebonden afspraken?
AND res.getdeelresprijs (rrd.res_rsv_ruimte_key) = 0
UNION ALL -- Nul-reserveringen/ruimten
SELECT DISTINCT '[' || TO_CHAR (rrr.res_rsv_ruimte_key) || '] ' aanduiding,
rrr.res_rsv_ruimte_key,
NULL res_rsv_artikel_key,
NULL res_rsv_deel_key,
rrr.res_status_bo_key,
NULL res_artikel_key
FROM res_v_aanwezigrsv_ruimte rrr
WHERE rrr.res_status_bo_key != 6
AND rrr.res_rsv_ruimte_tot < TRUNC (SYSDATE, 'mm')
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key IS NOT NULL -- Geen "roomservice"
AND res.getdeelresprijs (rrr.res_rsv_ruimte_key) = 0
ORDER BY 2, 3, 4;
-- Push nieuw aangemaakte facturen naar Dynamics (dagelijks en initieel van 1-11 t/m 11-11?).
CURSOR c5
IS
SELECT DISTINCT '[' || extra_key || '|' || custaccount || '] ' aanduiding,
extra_key
FROM blcc_v_rap_exp_dynamics
WHERE stroom = 'ADDD'
AND sync_id = TO_CHAR (SYSDATE, 'yyyymmdd') -- Zojuist/vannacht aangemaakt en dus nog niet doorgezet naar Dynamics!
ORDER BY extra_key;
c_cm_factid_kkey NUMBER (10) := 1681; -- 'Gefactureerd met'-key voor correctiemeldingen (ACCP-key=2221 en PROD-key=1681);
c_lvm_factid_kkey NUMBER (10) := 1682; -- 'Gefactureerd met'-key voor losverkoopmeldingen (ACCP-key=2222 en PROD-key=1682);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_holiday NUMBER;
v_fact_count NUMBER;
v_amount_sum NUMBER (10, 2);
v_old_bedrijf_key NUMBER (10);
v_old_po_nr VARCHAR2 (50);
v_old_melding_oms VARCHAR2 (200); -- Factuur per te corrigeren verkoopfactuur!
v_factuur_id VARCHAR2 (30);
v_factkop_id VARCHAR2 (30);
v_verkoopfactuurkop_key NUMBER (10);
v_count NUMBER;
v_prijs NUMBER (9, 2);
av1_exception NUMBER;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
SELECT COUNT ( * )
INTO v_holiday
FROM mld_vrije_dagen
WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1);
-- LET OP: ADDD-export draait dagelijks na middernacht (begin van dag).
-- RES-kosten worden maandelijks gefactureerd (de nacht na 10e werkdag van
-- de maand).
-- IF 10e werkdag van 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!
-- BLCC#74973: Van maandelijks naar vaste dagen, nl. op 8e + 22e.
IF TO_CHAR (SYSDATE, 'dd') IN ('08', '22') -- Op 8e en 22e!
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_bedrijf_key := -1;
v_old_po_nr := '';
-- Factureer/bevries kosten van additionele diensten en verwerk=AV alle
-- eventuele correctiemeldingen.
FOR rec IN c1a
LOOP
BEGIN
IF rec.mndnet != 0 AND (rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr)
THEN
-- BLCC#56148: Per feb. 2019 nieuwe sequence/BCC-verkoopboek en
-- altijd doorlopende boekstuknummers beginnend met
-- een '3'!
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3' en
-- CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_old_bedrijf_key := rec.prs_bedrijf_key;
v_old_po_nr := rec.po_nr;
END IF;
IF rec.mndnet != 0
THEN
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy') - 1, -- BLCC#58906: Factuur- en Vervaldatum antedateren naar voorgaande dag!
rec.regel || '=' || rec.regel_id,
rec.xmlnode,
rec.refkey,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
rec.grtboekrek,
rec.grtboekrek,
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
rec.mndnet,
rec.mndbtw,
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.mld_melding_key, -- n1/leeg
TO_NUMBER (NULL), -- n2/NULL (Onderscheid ADDD vs. FACT; als NULL, dan ADDD!)
rec.crf, -- n3/crf
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
NULL, -- c4
rec.aanvrager, -- c5
NULL, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- c8
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy') - 1, -- d1/BLCC#58906: Factuur- en Vervaldatum antedateren naar voorgaande dag!
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
END IF;
COMMIT;
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', rec.aanduiding || v_errormsg, 'ADDD[a]-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD[a]-verkoop/#regels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur verkoopfactuur naar huurder.
FOR rec IN c2
LOOP
BEGIN
IF rec.fin_verkoopfactuur_xmlnode = 'reservering' -- Cursor bevat soms ook opdracht/melding-nodes!
THEN
v_errormsg := 'Fout toevoegen CUST02-noti (huurder)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable.ccampus@brightlands.com',
rec.prs_bedrijf_email),
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
v_errormsg := 'Fout toevoegen CUST02-noti (BCC)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
'accountsreceivable.ccampus@brightlands.com',
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
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', rec.aanduiding || v_errormsg, 'ADDD[a]-noti');
COMMIT;
END;
END LOOP;
av1_exception := 0;
FOR rec IN c3
LOOP
BEGIN
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Catering-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5,
res_rsv_artikel_prijs = v_prijs,
res_rsv_artikel_inkoopprijs =
(SELECT res_artikel_inkoopprijs
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key),
res_rsv_artikel_btw =
(SELECT res_artikel_btw
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
END IF;
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_deel_prijs';
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 5,
res_rsv_deel_prijs = v_prijs
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) verwerkt');
END IF;
ELSE -- Ruimte-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5,
res_rsv_ruimte_prijs = v_prijs
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6 -- AV
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
END IF;
COMMIT;
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, 'W', rec.aanduiding || v_errormsg, 'ADDD[a]-AV1');
av1_exception := 1;
COMMIT;
END;
END LOOP;
-- Nul-reserveringen niet verwerken als hierboven een exception is opgetreden!
IF av1_exception = 0
THEN
-- BLCC#71123: Voortaan ook nul-reserveringen verwerken (eenmalig veul)!
FOR rec IN c4
LOOP
BEGIN
IF rec.res_rsv_artikel_key IS NOT NULL
THEN -- Catering-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_artikel_prijs';
SELECT res.getartikelprijs (rec.res_rsv_artikel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 5,
res_rsv_artikel_prijs = v_prijs,
res_rsv_artikel_inkoopprijs =
(SELECT res_artikel_inkoopprijs
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key),
res_rsv_artikel_btw =
(SELECT res_artikel_btw
FROM res_artikel
WHERE res_artikel_key = rec.res_artikel_key)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_artikel';
UPDATE res_rsv_artikel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_artikel_key = rec.res_rsv_artikel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Catering verwerkt');
END IF;
ELSIF rec.res_rsv_deel_key IS NOT NULL
THEN -- Voorziening-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_deel_prijs';
SELECT res.getdeelprijs (rec.res_rsv_deel_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 5,
res_rsv_deel_prijs = v_prijs
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) afgemeld');
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_deel';
UPDATE res_rsv_deel
SET res_status_bo_key = 6 -- AV (en zet ook Verwerkt-date)
WHERE res_rsv_deel_key = rec.res_rsv_deel_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, 'Voorziening(en) verwerkt');
END IF;
ELSE -- Ruimte-regel
IF rec.res_status_bo_key = 2
THEN
v_errormsg := 'Fout bepalen res_rsv_ruimte_prijs';
SELECT res.getruimteprijs (rec.res_rsv_ruimte_key)
INTO v_prijs
FROM DUAL;
v_errormsg := 'Fout afmelden res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 5,
res_rsv_ruimte_prijs = v_prijs
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken afmelding';
fac.trackaction ('RESAFM', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
IF rec.res_status_bo_key != 6
THEN
v_errormsg := 'Fout verwerken res_rsv_ruimte';
UPDATE res_rsv_ruimte
SET res_status_bo_key = 6 -- AV
WHERE res_rsv_ruimte_key = rec.res_rsv_ruimte_key;
v_errormsg := 'Fout tracken verwerking';
fac.trackaction ('RESVER', rec.res_rsv_ruimte_key, NULL, NULL, NULL);
END IF;
END IF;
COMMIT;
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, 'W', rec.aanduiding || v_errormsg, 'ADDD[a]-AV2');
COMMIT;
END;
END LOOP;
END IF;
END IF;
-- LET OP: ADDD-export draait dagelijks na middernacht (begin van dag).
-- BLCC#56408: Klantwens-kosten voortaan wekelijks gefactureerd (de nacht
-- na woensdag)
-- BLCC#58906: Van wekelijks naar vaste dagen, nl. op 1e, 8e, 15e + 22e!
IF TO_CHAR (SYSDATE, 'dd') IN ('01', '08', '15', '22') -- Op 1e, 8e, 15e + 22e!
THEN
v_fact_count := 0;
v_amount_sum := 0;
--v_old_bedrijf_key := -1;
--v_old_po_nr := '';
-- Factureer/bevries kosten van additionele diensten en verwerk=AV alle
-- eventuele correctiemeldingen.
FOR rec IN c1b
LOOP
BEGIN
--IF rec.mndnet != 0 AND (rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr)
IF rec.mndnet != 0 -- Elke Klantwens (kosten!=0) op eigen factuur!
THEN
-- BLCC#56148: Per feb. 2019 nieuwe sequence/BCC-verkoopboek en
-- altijd doorlopende boekstuknummers beginnend met
-- een '3'!
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3' en
-- CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
--v_old_bedrijf_key := rec.prs_bedrijf_key;
--v_old_po_nr := rec.po_nr;
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy') - 1, -- BLCC#58906: Factuur- en Vervaldatum antedateren naar voorgaande dag!
rec.regel || '=' || rec.regel_id,
rec.xmlnode,
rec.refkey,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
rec.grtboekrek,
rec.grtboekrek,
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
rec.mndnet,
rec.mndbtw,
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.mld_melding_key, -- n1/leeg
TO_NUMBER (NULL), -- n2/NULL (Onderscheid ADDD vs. FACT; als NULL, dan ADDD!)
rec.crf, -- n3/crf
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
NULL, -- c4
rec.aanvrager, -- c5
NULL, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- c8/leeg?
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy') - 1, -- d1/BLCC#58906: Factuur- en Vervaldatum antedateren naar voorgaande dag!
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
END IF;
-- Markeren als 'Doorgezet naar Twinfield'!
v_errormsg := 'Fout markeren Opdracht2Twinfield';
INSERT INTO mld_kenmerkopdr (mld_opdr_key,
mld_kenmerk_key,
mld_kenmerkopdr_waarde)
VALUES (rec.refkey,
582, -- Doorgezet naar Twinfield
TO_CHAR (SYSDATE, 'dd-mm-yyyy'));
IF rec.mld_melding_key IS NOT NULL -- Correctiemelding?
THEN
v_errormsg := 'Fout verwerken correctiemelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus
-- eerst afmelden (als nog niet Afgemeld)!
IF rec.mld_melding_status = 4 -- ACP
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- AFM
END IF;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- VER
END IF;
COMMIT;
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', rec.aanduiding || v_errormsg, 'ADDD[b]-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD[b]-verkoop/#regels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur verkoopfactuur naar huurder.
FOR rec IN c2
LOOP
BEGIN
IF rec.fin_verkoopfactuur_xmlnode = 'opdracht' -- Cursor bevat soms ook reservering/melding-nodes!
THEN
v_errormsg := 'Fout toevoegen CUST02-noti (huurder)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable.ccampus@brightlands.com',
rec.prs_bedrijf_email),
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
v_errormsg := 'Fout toevoegen CUST02-noti (BCC)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
'accountsreceivable.ccampus@brightlands.com',
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
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', rec.aanduiding || v_errormsg, 'ADDD[b]-noti');
COMMIT;
END;
END LOOP;
END IF;
-- LET OP: ADDD-export correctie- en losverkoopfacturen (= boekingsgangen)
-- draait dagelijks na middernacht (begin van dag) en de verkoop wordt ook
-- elke nacht doorgezet.
IF 1 = 1
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_melding_oms := 'Quqelequ'; -- Factuur per te corrigeren verkoopfactuur!
-- Factureer/bevries alleen geaccepteerde ADDD-correctiemeldingen en verwerk=AV deze (inclusief de afgemelde ADDD-correctiemeldingen)!
FOR rec IN c1c
LOOP
BEGIN
IF rec.mld_melding_status = 4 AND rec.mndnet != 0 AND rec.regel_id != v_old_melding_oms
THEN
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3' en
-- CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_old_melding_oms := rec.regel_id;
END IF;
IF rec.mld_melding_status = 4 AND rec.mndnet != 0
THEN
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy'), -- Niet antedateren naar voorgaande dag!
REPLACE (REPLACE (REPLACE (rec.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '=' || rec.regel_id, -- regel=Regelomschrijving + regel_id=fin_verkoopfactuur_id van te corrigeren factuur?
rec.xmlnode, -- melding of contract (don't care)?
rec.refkey, -- melding of contract (don't care)?
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
rec.grtboekrek,
rec.grtboekrek,
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
rec.mndnet,
rec.mndbtw,
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.mld_melding_key, -- n1/correctiemelding
TO_NUMBER (NULL), -- n2/NULL (Onderscheid ADDD vs. FACT; als NULL, dan ADDD!)
rec.crf, -- n3/crf
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
NULL, -- c4
rec.aanvrager, -- c5
rec.alg_onroerendgoed_type || TO_CHAR (rec.alg_onroerendgoed_keys) || '=' || rec.alg_plaatsaanduiding, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- c8/leeg
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy'), -- d1/niet antedateren naar voorgaande dag!
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
-- BLCC#64642: Registreren 'Gefactureerd met' bij correctiemelding!
v_errormsg := 'Fout bepalen Gefactureerd-kenmerkmelding';
SELECT COUNT (*)
INTO v_count
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_cm_factid_kkey;
IF v_count = 0
THEN
v_errormsg := 'Fout toevoegen Gefactureerd-kenmerkmelding';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key, c_cm_factid_kkey, v_factuur_id);
ELSE
v_errormsg := 'Fout bijwerken Gefactureerd-kenmerkmelding';
UPDATE mld_kenmerkmelding
SET mld_kenmerkmelding_waarde = v_factuur_id
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_cm_factid_kkey;
END IF;
END IF;
v_errormsg := 'Fout verwerken correctiemelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus dan
-- eerst afmelden (als nog niet Afgemeld)!
IF (rec.mld_melding_status = 4) -- ACP
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- AFM
END IF;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- VER
COMMIT;
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', rec.aanduiding || v_errormsg, 'ADDD-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD[c]-verkoop/#correctieregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
v_fact_count := 0;
v_amount_sum := 0;
v_old_melding_oms := 'Quqelequ'; -- Factuur per te corrigeren verkoopfactuur!
-- Factureer/bevries alleen geaccepteerde ADDD-losverkoopmeldingen en verwerk=AV deze (inclusief de afgemelde ADDD-losverkoopmeldingen)!
FOR rec IN c1d
LOOP
BEGIN
IF rec.mld_melding_status = 4 AND rec.mndnet != 0 AND rec.regel_id != v_old_melding_oms
THEN
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3' en
-- CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_old_melding_oms := rec.regel_id;
END IF;
IF rec.mld_melding_status = 4 AND rec.mndnet != 0
THEN
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy'), -- Niet antedateren naar voorgaande dag!
REPLACE (REPLACE (REPLACE (rec.regel, CHR (10), ''), CHR (13), ' '), '=', '~') || '=' || rec.regel_id, -- regel=Regelomschrijving + regel_id=mld_melding_key van losverkoopmelding?
rec.xmlnode, -- melding of contract (don't care)?
rec.refkey, -- melding of contract (don't care)?
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek_oms,
DECODE (SIGN (LENGTH (rec.grtboekrek) - 4), -1, SUBSTR ('000' || rec.grtboekrek, -4), rec.grtboekrek), -- BLCC#64759: Evt. leading zeroes weer aanvullen tot 4 posities!
DECODE (SIGN (LENGTH (rec.grtboekrek) - 4), -1, SUBSTR ('000' || rec.grtboekrek, -4), rec.grtboekrek), -- BLCC#64759: Evt. leading zeroes weer aanvullen tot 4 posities!
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
rec.mndnet,
rec.mndbtw,
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.mld_melding_key, -- n1/losverkoopmelding
TO_NUMBER (NULL), -- n2/NULL (Onderscheid ADDD vs. FACT; als NULL, dan ADDD!)
rec.crf, -- n3/crf
TO_NUMBER (NULL), -- n4
TO_NUMBER (NULL), -- n5
rec.po_nr, -- c1
rec.contract_id, -- c2
rec.sortering, -- c3
NULL, -- c4
rec.aanvrager, -- c5
rec.alg_onroerendgoed_type || TO_CHAR (rec.alg_onroerendgoed_keys) || '=' || rec.alg_plaatsaanduiding, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.regel_oms, -- c8/leeg
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy'), -- d1/niet antedateren naar voorgaande dag!
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (NULL), -- d4
TO_DATE (NULL)); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
-- BLCC#64642: Registreren 'Gefactureerd met' bij losverkoopmelding!
v_errormsg := 'Fout bepalen Gefactureerd-kenmerkmelding';
SELECT COUNT (*)
INTO v_count
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_lvm_factid_kkey;
IF v_count = 0
THEN
v_errormsg := 'Fout toevoegen Gefactureerd-kenmerkmelding';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key, c_lvm_factid_kkey, v_factuur_id);
ELSE
v_errormsg := 'Fout bijwerken Gefactureerd-kenmerkmelding';
UPDATE mld_kenmerkmelding
SET mld_kenmerkmelding_waarde = v_factuur_id
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_lvm_factid_kkey;
END IF;
END IF;
v_errormsg := 'Fout verwerken losverkoopmelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus dan
-- eerst afmelden (als nog niet Afgemeld)!
IF (rec.mld_melding_status = 4) -- ACP
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- AFM
END IF;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- VER
COMMIT;
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', rec.aanduiding || v_errormsg, 'ADDD-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'ADDD[d]-verkoop/#losverkoopregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur correctie- of losverkoopfactuur naar huurder/relatie.
FOR rec IN c2
LOOP
BEGIN
IF rec.mld_melding_key IS NOT NULL -- Correctie- of losverkoopmeldingen!
THEN
v_errormsg := 'Fout toevoegen CUST02-noti (huurder)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable.ccampus@brightlands.com',
rec.prs_bedrijf_email),
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
v_errormsg := 'Fout toevoegen CUST02-noti (BCC)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (341, -- CUST02-noti
2, -- Mail
'accountsreceivable.ccampus@brightlands.com',
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
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', rec.aanduiding || v_errormsg, 'ADDD[c+d]-noti');
COMMIT;
END;
END LOOP;
END IF;
-- Push nieuw aangemaakte ADDD-facturen naar Dynamics (per 1-11-2024).
FOR rec IN c5
LOOP
BEGIN
v_errormsg := 'Fout toevoegen CUST20-noti (Dynamics)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
prs_bedrijfadres_key
)
VALUES (961, -- CUST20
0, -- Don't care
3181, -- BLCC_V_RAP_EXP_DYNAMICS
fac.safe_to_number (rec.extra_key),
2,
4601 -- Dynamics-kanaal voor verkoopfacturen
);
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', rec.aanduiding || v_errormsg, 'ADDD-push');
COMMIT;
END;
END LOOP;
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_errormsg, 'ADDD-export afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE blcc_select_fact (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Factureer/bevries verhuurkosten.
-- Per 2022-09 nulfacturen freezen!
CURSOR c1a
IS
SELECT '[' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding,
v.*
FROM blcc_v_factv2_actual v
WHERE v.mld_melding_key IS NULL -- Maandelijkse huurfacturatie (regulier)
AND v.cnt_contract_status = 0 -- BLCC#79165:Definitief
ORDER BY v.prs_bedrijf_key,
v.cnt_contract_key,
v.sortering,
v.regel,
v.alg_plaatsaanduiding;
-- Factureer/bevries alleen geaccepteerde FACT-correctiemeldingen en verwerk=AV deze (inclusief de afgemelde FACT-correctiemeldingen)!
CURSOR c1b
IS
SELECT '[' || v.cnt_contract_nummer_intern || '.' || COALESCE (v.cnt_contract_versie, '0') || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding,
v.*,
m.mld_melding_status
FROM blcc_v_fact_correctie v, mld_melding m
WHERE v.mld_melding_key = m.mld_melding_key -- Dagelijkse correctiefacturatie
ORDER BY v.prs_bedrijf_key,
v.cnt_contract_key,
v.mld_melding_omschrijving, -- Factuur per te corrigeren verkoopfactuur
v.mld_melding_key,
v.sortering;
-- Verstuur verkoopfactuur naar huurder.
-- Per 2022-09 nulfacturen skippen!
CURSOR c2a
IS
SELECT DISTINCT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email,
vf.fin_verkoopfactuur_refkey
FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND vf.fin_verkoopfactuur_n4 = 1 -- Nulfacturen skippen!
AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND vf.fin_verkoopfactuur_n5 IS NULL -- Maandelijkse huurfacturatie (regulier)
--AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm') -- LET OP: Per BLCC#76037 is dit niet meer waar!
AND vf.fin_verkoopfactuur_aanmaak > TRUNC (SYSDATE) -- Zojuist/vannacht aangemaakt en dus nog niet gefactureerd(/genotificeerd)!
ORDER BY vf.fin_verkoopfactuur_id;
-- Verstuur correctiefactuur naar huurder.
CURSOR c2b
IS
SELECT DISTINCT '[' || vf.fin_verkoopfactuur_id || '|' || vf.fin_verkoopfactuur_maand || '|' || vf.prs_debiteur_naam || '] ' aanduiding,
vf.fin_verkoopfactuur_id, vf.fin_verkoopfactuur_maand, vf.prs_debiteur_naam,
vfk.fin_verkoopfactuurkop_key, vfk.fin_verkoopfactuurkop_id,
b.prs_bedrijf_email
FROM fin_verkoopfactuur vf, fin_verkoopfactuurkop vfk, prs_bedrijf b, mld_melding m
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
AND vf.fin_verkoopfactuur_n5 = m.mld_melding_key -- Dagelijkse correctiefacturatie
AND TRUNC (fac.gettrackingdate ('MLDVER', m.mld_melding_key)) = TRUNC (SYSDATE)
ORDER BY vf.fin_verkoopfactuur_id;
-- Push nieuw aangemaakte facturen naar Dynamics (dagelijks en initieel van 1-11 t/m 11-11?).
CURSOR c3
IS
SELECT DISTINCT '[' || extra_key || '|' || custaccount || '] ' aanduiding,
extra_key
FROM blcc_v_rap_exp_dynamics
WHERE stroom = 'FACT'
AND sync_id = TO_CHAR (SYSDATE, 'yyyymmdd') -- Zojuist/vannacht aangemaakt en dus nog niet doorgezet naar Dynamics!
ORDER BY extra_key;
c_cm_factid_kkey NUMBER (10) := 1681; -- 'Gefactureerd met'-key voor correctiemeldingen.
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_fact_count NUMBER;
v_amount_sum NUMBER (10, 2);
v_old_contract_key NUMBER (10); -- Factuur per contract!
v_old_melding_oms VARCHAR2 (200); -- Factuur per te corrigeren verkoopfactuur!
v_factuur_id VARCHAR2 (30);
v_factkop_id VARCHAR2 (30);
v_verkoopfactuurkop_key NUMBER (10);
v_count NUMBER;
BEGIN
-- Eerst opruiming
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
-- LET OP: FACT-export van verhuurfacturen (= boekingsgangen) draait
-- dagelijks na middernacht (begin van dag) en de verkoop wordt maandelijks
-- alleen in de nacht na 1e dag van de maand doorgezet.
IF TO_CHAR (SYSDATE, 'dd') = '01' -- Nacht na laatste dag van de maand!
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_contract_key := -1; -- Factuur per contract!
-- Factureer/bevries verhuurkosten.
FOR rec IN c1a
LOOP
BEGIN
IF rec.cnt_contract_key != v_old_contract_key
THEN
IF rec.factuur = 1
THEN
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3'
-- en CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
--A-tweak:v_factkop_id := rec.cnt_contract_nummer_intern || '-' || rec.debiteur_nr || '-' || v_factuur_id;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
ELSE
-- BLCC#73137: Nulfacturen in formaat 'x99999999_2022-09'!
v_factuur_id := 'x' || SUBSTR ('00000000' || TO_CHAR (rec.cnt_contract_key), -8) || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2);
v_factkop_id := v_factuur_id || '_' || rec.debiteur_nr;
END IF;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_old_contract_key := rec.cnt_contract_key;
END IF;
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy'),
rec.po_nr || '/=' || rec.sortering || rec.regel,
'contract',
rec.cnt_contract_key,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek,
rec.grtboekrek,
rec.grtboekrek,
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
ROUND (rec.mndnet, 2),
ROUND ((rec.mndnet * DECODE (rec.fin_btwtabelwaarde_perc, 99, 0, rec.fin_btwtabelwaarde_perc)) / 100, 2),
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.aantal, -- n1/aantal [rec.cnt_contract_korting, -- n1/kortingspercentage f subsidiepercentage]
rec.bedrag, -- n2/bedrag [rec.mld_melding_key, -- n2/correctiemelding]
rec.crf, -- n3/crf [TO_NUMBER (NULL), -- n3]
rec.factuur, -- n4/factuur [TO_NUMBER (NULL), -- n4]
rec.mld_melding_key, -- n5/mld_melding_key [TO_NUMBER (NULL), -- n5]
rec.ourref, -- c1 [TO_CHAR (rec.l_tarief) || 'x' || TO_CHAR (rec.l_opp), -- c1/jaartarief x oppervlakte]
rec.omschrijving, -- c2 [TO_CHAR (rec.h_tarief) || 'x' || TO_CHAR (rec.h_opp), -- c2/jaartarief x oppervlakte]
NULL, -- c3 [TO_CHAR (rec.k_tarief) || 'x' || TO_CHAR (rec.k_opp), -- c3/jaartarief x oppervlakte]
NULL, -- c4 [TO_CHAR (rec.o_tarief) || 'x' || TO_CHAR (rec.o_opp), -- c4/jaartarief x oppervlakte]
NULL, -- c5 [TO_CHAR (rec.t_tarief) || 'x' || TO_CHAR (rec.t_opp), -- c5/jaartarief x oppervlakte]
rec.alg_onroerendgoed_type || TO_CHAR (rec.alg_onroerendgoed_keys) || '=' || rec.alg_plaatsaanduiding, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.mld_melding_omschrijving, -- c8
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy'), -- d1
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (rec.dagbegin, 'dd-mm-yyyy'), -- d4
TO_DATE (rec.dageinde, 'dd-mm-yyyy')); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
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', rec.aanduiding || v_errormsg, 'FACT-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'FACT-verkoop/#contractregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur verkoopfactuur naar huurder (en CC naar BCC).
FOR rec IN c2a
LOOP
BEGIN
v_errormsg := 'Fout toevoegen CUST01-noti (huurder)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (281, -- CUST01-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable.ccampus@brightlands.com',
rec.prs_bedrijf_email),
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
v_errormsg := 'Fout toevoegen CUST01-noti (BCC)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (281, -- CUST01-noti
2, -- Mail
'accountsreceivable.ccampus@brightlands.com',
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
fac.trackaction ('CNTUPD', rec.fin_verkoopfactuur_refkey, NULL, NULL, 'Huurfactuur-notificatie CUST01 verstuurd naar: ' || rec.prs_bedrijf_email);
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', rec.aanduiding || v_errormsg, 'FACT-noti');
COMMIT;
END;
END LOOP;
END IF;
-- LET OP: FACT-export van correctiefacturen (= boekingsgangen) draait
-- dagelijks na middernacht (begin van dag) en de verkoop wordt ook elke
-- nacht doorgezet.
IF 1 = 1
THEN
v_fact_count := 0;
v_amount_sum := 0;
v_old_melding_oms := 'Quqelequ'; -- Factuur per te corrigeren verkoopfactuur!
-- Factureer/bevries alleen geaccepteerde FACT-correctiemeldingen en verwerk=AV deze (inclusief de afgemelde FACT-correctiemeldingen)!
FOR rec IN c1b
LOOP
BEGIN
IF rec.mld_melding_status = 4 AND rec.mndnet != 0 AND rec.mld_melding_omschrijving != v_old_melding_oms
THEN
-- BLCC#64393: Per 2021 CV-huurfacturen beginnen met een '3' en
-- CRF-huurfacturen beginnen met een '4'!
IF COALESCE (rec.crf, 0) = 0
THEN
SELECT fac_s_user03.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '3' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
ELSE
SELECT fac_s_user04.NEXTVAL INTO v_count FROM DUAL;
v_factuur_id := '4' || SUBSTR ('00000000' || TO_CHAR (v_count), -8);
END IF;
v_factkop_id := v_factuur_id || '_' || SUBSTR (rec.maand, 1, 4) || '-' || SUBSTR (rec.maand, -2) || '_' || rec.debiteur_nr;
INSERT INTO fin_verkoopfactuurkop (fin_verkoopfactuurkop_id)
VALUES (v_factkop_id)
RETURNING fin_verkoopfactuurkop_key
INTO v_verkoopfactuurkop_key;
COMMIT;
v_old_melding_oms := rec.mld_melding_omschrijving;
END IF;
IF rec.mld_melding_status = 4 AND rec.mndnet != 0
THEN
v_errormsg := 'Fout toevoegen verkoopfactuur';
INSERT INTO fin_verkoopfactuur (fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_datum,
fin_verkoopfactuur_omschr,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
prs_kostensoort_oms,
prs_kostensoort_opmerking,
prs_kostensoort_refcode,
prs_bedrijf_key,
prs_debiteur_naam,
prs_kostensoortgrp_oms,
fin_verkoopfactuur_bedrag,
fin_verkoopfactuur_btw,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
fin_verkoopfactuur_maand,
fin_verkoopfactuur_n1,
fin_verkoopfactuur_n2,
fin_verkoopfactuur_n3,
fin_verkoopfactuur_n4,
fin_verkoopfactuur_n5,
fin_verkoopfactuur_c1,
fin_verkoopfactuur_c2,
fin_verkoopfactuur_c3,
fin_verkoopfactuur_c4,
fin_verkoopfactuur_c5,
fin_verkoopfactuur_c6,
fin_verkoopfactuur_c7,
fin_verkoopfactuur_c8,
fin_verkoopfactuur_d1,
fin_verkoopfactuur_d2,
fin_verkoopfactuur_d3,
fin_verkoopfactuur_d4,
fin_verkoopfactuur_d5)
VALUES (v_verkoopfactuurkop_key,
v_factuur_id,
TO_DATE (rec.factuurdatum, 'dd-mm-yyyy'),
rec.po_nr || '/=' || rec.sortering || rec.regel,
'contract',
rec.cnt_contract_key,
rec.prs_kostenplaats_key,
rec.prs_kostenplaats_nr,
rec.prs_kostenplaats_omschrijving,
rec.prs_kostenplaatsgrp_oms,
rec.grtboekrek,
rec.grtboekrek,
rec.grtboekrek,
rec.prs_bedrijf_key,
rec.prs_debiteur_naam,
NULL,
--rec.mndnet,
--rec.mndbtw,
ROUND (rec.mndnet, 2),
ROUND ((rec.mndnet * rec.fin_btwtabelwaarde_perc) / 100, 2),
rec.fin_btwtabelwaarde_code,
rec.fin_btwtabelwaarde_oms,
rec.fin_btwtabelwaarde_perc,
rec.fin_btwtabelwaarde_verlegd,
rec.maand,
rec.aantal, -- n1/aantal [rec.cnt_contract_korting, -- n1/kortingspercentage of subsidiepercentage]
rec.bedrag, -- n2/bedrag [rec.mld_melding_key, -- n2/correctiemelding]
rec.crf, -- n3/crf [TO_NUMBER (NULL), -- n3]
rec.factuur, -- n4/factuur [TO_NUMBER (NULL), -- n4]
rec.mld_melding_key, -- n5/mld_melding_key [TO_NUMBER (NULL), -- n5]
rec.ourref, -- c1 [TO_CHAR (rec.l_tarief) || 'x' || TO_CHAR (rec.l_opp), -- c1/jaartarief x oppervlakte]
rec.omschrijving, -- c2 [TO_CHAR (rec.h_tarief) || 'x' || TO_CHAR (rec.h_opp), -- c2/jaartarief x oppervlakte]
NULL, -- c3 [TO_CHAR (rec.k_tarief) || 'x' || TO_CHAR (rec.k_opp), -- c3/jaartarief x oppervlakte]
NULL, -- c4 [TO_CHAR (rec.o_tarief) || 'x' || TO_CHAR (rec.o_opp), -- c4/jaartarief x oppervlakte]
NULL, -- c5 [TO_CHAR (rec.t_tarief) || 'x' || TO_CHAR (rec.t_opp), -- c5/jaartarief x oppervlakte]
rec.alg_onroerendgoed_type || TO_CHAR (rec.alg_onroerendgoed_keys) || '=' || rec.alg_plaatsaanduiding, -- c6
rec.debiteur_nr || '=' || rec.btw_nr, -- c7
rec.mld_melding_omschrijving, -- c8
TO_DATE (rec.vervaldatum, 'dd-mm-yyyy'), -- d1
TO_DATE (rec.mndbegin, 'dd-mm-yyyy'), -- d2
TO_DATE (rec.mndeinde, 'dd-mm-yyyy'), -- d3
TO_DATE (rec.dagbegin, 'dd-mm-yyyy'), -- d4
TO_DATE (rec.dageinde, 'dd-mm-yyyy')); -- d5
COMMIT;
v_fact_count := v_fact_count + 1;
v_amount_sum := v_amount_sum + rec.mndnet;
-- BLCC#64642: Registreren 'Gefactureerd met' bij correctiemelding!
v_errormsg := 'Fout bepalen Gefactureerd-kenmerkmelding';
SELECT COUNT (*)
INTO v_count
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_cm_factid_kkey;
IF v_count = 0
THEN
v_errormsg := 'Fout toevoegen Gefactureerd-kenmerkmelding';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (rec.mld_melding_key, c_cm_factid_kkey, v_factuur_id);
ELSE
v_errormsg := 'Fout bijwerken Gefactureerd-kenmerkmelding';
UPDATE mld_kenmerkmelding
SET mld_kenmerkmelding_waarde = v_factuur_id
WHERE mld_melding_key = rec.mld_melding_key
AND mld_kenmerk_key = c_cm_factid_kkey;
END IF;
END IF;
v_errormsg := 'Fout verwerken correctiemelding';
-- Overgang van Geaccepteerd naar Verwerkt niet mogelijk, dus dan
-- eerst afmelden (als nog niet Afgemeld)!
IF (rec.mld_melding_status = 4) -- ACP
THEN
MLD.setmeldingstatus (rec.mld_melding_key, 5, NULL); -- AFM
END IF;
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL); -- VER
COMMIT;
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', rec.aanduiding || v_errormsg, 'FACT-freeze');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'FACT-verkoop/#correctieregels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum));
-- Verstuur correctiefactuur naar huurder.
FOR rec IN c2b
LOOP
BEGIN
v_errormsg := 'Fout toevoegen CUST01-noti (huurder)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (281, -- CUST01-noti
2, -- Mail
DECODE ( -- To-adres
rec.prs_bedrijf_email,
NULL, 'accountsreceivable.ccampus@brightlands.com',
rec.prs_bedrijf_email),
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
v_errormsg := 'Fout toevoegen CUST01-noti (BCC)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit,
fac_notificatie_notbefore,
fac_notificatie_sender_email,
fac_notificatie_attachments)
VALUES (281, -- CUST01-noti
2, -- Mail
'accountsreceivable.ccampus@brightlands.com',
'Factuur ' || rec.fin_verkoopfactuur_id || ' ' || rec.fin_verkoopfactuur_maand || ' ' || rec.prs_debiteur_naam,
rec.fin_verkoopfactuurkop_key,
2, -- Prioriteit
TRUNC (SYSDATE) + (7 / 24),
'accountsreceivable.ccampus@brightlands.com', -- From-adres
'/../../Fplace5i/CUST/BLCC/export/PDF/Backup/' || rec.fin_verkoopfactuurkop_id || '.pdf');
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', rec.aanduiding || v_errormsg, 'FACT-noti');
COMMIT;
END;
END LOOP;
END IF;
-- Push nieuw aangemaakte FACT-facturen naar Dynamics (per 1-11-2024).
FOR rec IN c3
LOOP
BEGIN
v_errormsg := 'Fout toevoegen CUST20-noti (Dynamics)';
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_prioriteit,
prs_bedrijfadres_key
)
VALUES (961, -- CUST20
0, -- Don't care
3181, -- BLCC_V_RAP_EXP_DYNAMICS
fac.safe_to_number (rec.extra_key),
2,
4601 -- Dynamics-kanaal voor verkoopfacturen
);
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', rec.aanduiding || v_errormsg, 'FACT-push');
COMMIT;
END;
END LOOP;
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_errormsg, 'FACT-export afgebroken!');
END;
/
-- Export om een BAT-bestand aan te maken dat de PDF-bestanden genereert. Deze
-- export moet voor 5:00 worden gedraaid, daarna (7:00) worden de notificaties
-- vanuit putOrders verstuurd.
-- BLCC#53262: Facturatie additionele diensten.
CREATE OR REPLACE VIEW blcc_v_export_pdf_att
(
result,
result_order
)
AS -- Facturatie huur
SELECT 'CALL GENEREER1FIN_VK_PDF.BAT '
|| TO_CHAR (vfk.fin_verkoopfactuurkop_key)
|| ' '
|| vfk.fin_verkoopfactuurkop_id,
vfk.fin_verkoopfactuurkop_key
FROM fac_notificatie n, fin_verkoopfactuurkop vfk
WHERE n.fac_srtnotificatie_key = 281 -- CUST01-noti
AND n.fac_notificatie_refkey = vfk.fin_verkoopfactuurkop_key
UNION ALL -- Facturatie additionele diensten
SELECT 'CALL GENEREER1FIN_VK_PDF.BAT '
|| TO_CHAR (vfk.fin_verkoopfactuurkop_key)
|| ' '
|| vfk.fin_verkoopfactuurkop_id,
vfk.fin_verkoopfactuurkop_key
FROM fac_notificatie n, fin_verkoopfactuurkop vfk
WHERE n.fac_srtnotificatie_key = 341 -- CUST02-noti
AND n.fac_notificatie_refkey = vfk.fin_verkoopfactuurkop_key;
-- BLCC#86158: Rapportage op basis van CNTUPD-tracking van CUST01-noti!
CREATE OR REPLACE VIEW BLCC_V_RAP_FACT_NOTI
AS
SELECT DISTINCT 0 - fac.safe_to_number (vf.fin_verkoopfactuur_id) hide_f_sort,
b.prs_bedrijf_naam debiteur,
b.prs_overeenkomst_nr debiteurnr,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
vf.fin_verkoopfactuur_id factuurnr,
t.fac_tracking_datum logdatum,
t.fac_tracking_oms logregel
FROM fac_tracking t, cnt_contract c, fin_verkoopfactuur vf, prs_bedrijf b
WHERE t.fac_srtnotificatie_key = 102 -- CNTUPD
AND INSTR (t.fac_tracking_oms, 'CUST01') > 0
AND t.fac_tracking_refkey = c.cnt_contract_key
AND t.fac_tracking_refkey = vf.fin_verkoopfactuur_refkey
AND TRUNC (t.fac_tracking_datum) = TRUNC (vf.fin_verkoopfactuur_aanmaak)
AND vf.fin_verkoopfactuur_datum > TO_DATE ('11112019', 'ddmmyyyy') -- FACTV2!
AND vf.fin_verkoopfactuur_n2 IS NOT NULL -- Onderscheid ADDD vs. FACT; als NOT NULL, dan FACT!
AND SUBSTR (vf.fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND vf.fin_verkoopfactuur_n4 = 1 -- Nulfacturen skippen!
AND vf.fin_verkoopfactuur_n5 IS NULL -- Maandelijkse huurfacturatie (regulier)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
;
-- BLCC#85385: Rapportage totalen per contract (samenvatting)!
CREATE OR REPLACE VIEW BLCC_V_RAP_CNT_ITEMS
AS
WITH
contractpltsm2
AS
( SELECT ccp.cnt_contract_key, v.alg_gebouw_key, ud.fac_usrdata_code srtopp,
SUM (COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0)) vvo_ovk,
SUM (COALESCE (r.alg_ruimte_opp_alt1, 0)) vvo_nen2580
FROM cnt_v_aanwezigcontract_plaats ccp,
alg_ruimte r,
alg_verdieping v,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1100) cl, -- LHKOTC Classificatie
fac_usrdata ud,
(SELECT * FROM alg_v_aanwezigonrgoedkenmerk WHERE alg_onrgoed_niveau = 'R' AND alg_kenmerk_key = 1720) vvo -- VVO Overeenkomst
WHERE ccp.cnt_alg_plaats_code IN ('R')
AND ccp.cnt_alg_plaats_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_key = cl.alg_onrgoed_key(+)
AND fac.safe_to_number (cl.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)
AND r.alg_ruimte_key = vvo.alg_onrgoed_key(+)
GROUP BY ccp.cnt_contract_key, v.alg_gebouw_key, ud.fac_usrdata_code),
ozbtar -- OZB (alle letters)
AS
( SELECT vf.fin_verkoopfactuur_refkey cnt_contract_key, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
MIN (vf.fin_verkoopfactuur_n2) tarief
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND vf.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_id NOT LIKE 'x%'
AND vf.fin_verkoopfactuur_n1 > 0
AND SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Property Tax' -- Per 2021-01
AND NOT EXISTS
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_id NOT LIKE 'x%'
AND fin_verkoopfactuur_n1 > 0
AND SUBSTR (fin_verkoopfactuur_omschr, INSTR (fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Property Tax' -- Per 2021-01
AND SUBSTR (fin_verkoopfactuur_maand, 1, 4) = SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)
AND fin_verkoopfactuur_maand < vf.fin_verkoopfactuur_maand)
GROUP BY vf.fin_verkoopfactuur_refkey, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)),
ptar -- Parking
AS
( SELECT vf.fin_verkoopfactuur_refkey cnt_contract_key, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
MIN (vf.fin_verkoopfactuur_n2) tarief
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND vf.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_id NOT LIKE 'x%'
AND vf.fin_verkoopfactuur_n1 > 0
AND SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=') + 4) = 'Parking'
AND NOT EXISTS
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_id NOT LIKE 'x%'
AND fin_verkoopfactuur_n1 > 0
AND SUBSTR (fin_verkoopfactuur_omschr, INSTR (fin_verkoopfactuur_omschr, '/=') + 4) = 'Parking'
AND SUBSTR (fin_verkoopfactuur_maand, 1, 4) = SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)
AND fin_verkoopfactuur_maand < vf.fin_verkoopfactuur_maand)
GROUP BY vf.fin_verkoopfactuur_refkey, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)),
patar -- Public Amenities
AS
( SELECT vf.fin_verkoopfactuur_refkey cnt_contract_key, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
MIN (vf.fin_verkoopfactuur_n2) tarief
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND vf.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_id NOT LIKE 'x%'
AND vf.fin_verkoopfactuur_n1 > 0
AND SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=') + 4) = 'Public Amenities'
AND NOT EXISTS
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_id NOT LIKE 'x%'
AND fin_verkoopfactuur_n1 > 0
AND SUBSTR (fin_verkoopfactuur_omschr, INSTR (fin_verkoopfactuur_omschr, '/=') + 4) = 'Public Amenities'
AND SUBSTR (fin_verkoopfactuur_maand, 1, 4) = SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)
AND fin_verkoopfactuur_maand < vf.fin_verkoopfactuur_maand)
GROUP BY vf.fin_verkoopfactuur_refkey, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)),
dptar -- Dedicated Parking
AS
( SELECT vf.fin_verkoopfactuur_refkey cnt_contract_key, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
MIN (vf.fin_verkoopfactuur_n2) tarief
FROM fin_verkoopfactuur vf
WHERE vf.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND vf.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_id NOT LIKE 'x%'
AND vf.fin_verkoopfactuur_n1 > 0
AND SUBSTR (vf.fin_verkoopfactuur_omschr, INSTR (vf.fin_verkoopfactuur_omschr, '/=') + 4) = 'Dedicated Parking'
AND NOT EXISTS
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND fin_verkoopfactuur_xmlnode = 'contract'
AND fin_verkoopfactuur_id NOT LIKE 'x%'
AND fin_verkoopfactuur_n1 > 0
AND SUBSTR (fin_verkoopfactuur_omschr, INSTR (fin_verkoopfactuur_omschr, '/=') + 4) = 'Dedicated Parking'
AND SUBSTR (fin_verkoopfactuur_maand, 1, 4) = SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4)
AND fin_verkoopfactuur_maand < vf.fin_verkoopfactuur_maand)
GROUP BY vf.fin_verkoopfactuur_refkey, SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4))
SELECT x.contractsoort,
x.cnt_contract_key,
x.contractnr,
x.contractstatus,
x.ingangsdatum,
x.einddatum,
x.debiteur,
x.debiteurnr,
items.item,
items.vvo_ovk,
items.vvo_nen2580,
items.headcount,
items.jaartarief,
COALESCE (items.vvo_ovk, items.headcount, DECODE (items.item, 'Rent Rebate', -1, 1)) * items.jaartarief
totaal,
DECODE (x.contractnr, lv.contractnr, 'Ja', 'Nee') laatste_versie
FROM (SELECT cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
c.cnt_contract_looptijd_van ingangsdatum,
c.cnt_contract_looptijd_tot einddatum,
b.prs_bedrijf_naam debiteur,
TRIM (b.prs_overeenkomst_nr) debiteurnr
FROM cnt_contract c, cnt_discipline cd, prs_bedrijf b
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_contract_looptijd_tot > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN
(SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr
FROM cnt_contract c
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND NOT EXISTS
(SELECT 1
FROM cnt_contract
WHERE ins_discipline_key IN (2122, 2123)
AND cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > c.cnt_contract_versie)) lv
ON x.cnt_contract_key = lv.cnt_contract_key
LEFT JOIN
(SELECT cpm.cnt_contract_key,
cpm.srtopp item,
cpm.vvo_ovk,
cpm.vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (ltar.cnt_kenmerkcontract_waarde) jaartarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
(SELECT *
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (573, 572)) ltar -- L-Tarief
WHERE cpm.srtopp = 'L'
AND cpm.cnt_contract_key = ltar.cnt_contract_key(+)
UNION ALL
SELECT cpm.cnt_contract_key,
cpm.srtopp item,
cpm.vvo_ovk,
cpm.vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (htar.cnt_kenmerkcontract_waarde) jaartarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
(SELECT *
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (567, 566)) htar -- H-Tarief
WHERE cpm.srtopp = 'H'
AND cpm.cnt_contract_key = htar.cnt_contract_key(+)
UNION ALL
SELECT cpm.cnt_contract_key,
cpm.srtopp item,
cpm.vvo_ovk,
cpm.vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (ktar.cnt_kenmerkcontract_waarde) jaartarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
(SELECT *
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (570, 569)) ktar -- K-Tarief
WHERE cpm.srtopp = 'K'
AND cpm.cnt_contract_key = ktar.cnt_contract_key(+)
UNION ALL
SELECT cpm.cnt_contract_key,
cpm.srtopp item,
cpm.vvo_ovk,
cpm.vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (otar.cnt_kenmerkcontract_waarde) jaartarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
(SELECT *
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (576, 575)) otar -- O-Tarief
WHERE cpm.srtopp = 'O'
AND cpm.cnt_contract_key = otar.cnt_contract_key(+)
UNION ALL
SELECT cpm.cnt_contract_key,
cpm.srtopp item,
cpm.vvo_ovk,
cpm.vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (ttar.cnt_kenmerkcontract_waarde) jaartarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
(SELECT *
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (579, 578)) ttar -- T-Tarief
WHERE cpm.srtopp = 'T'
AND cpm.cnt_contract_key = ttar.cnt_contract_key(+)
UNION ALL
SELECT cnt_contract_key,
'Rent Rebate' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (cnt_kenmerkcontract_waarde) jaartarief
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (669, 668) -- Rent Rebate/LA+LA CRF
UNION ALL
SELECT cpm.cnt_contract_key,
'Advance Payment Property Tax' item,
SUM (cpm.vvo_ovk) vvo_ovk,
SUM (cpm.vvo_nen2580) vvo_nen2580,
TO_NUMBER (NULL) headcount,
--fac.safe_to_number (ozbtar.alg_onrgoedkenmerk_waarde) jaartarief
t.tarief
FROM contractpltsm2 cpm, -- Inclusief correcties!
--(SELECT *
-- FROM alg_v_aanwezigonrgoedkenmerk
-- WHERE alg_kenmerk_key = 2280 -- OZB tarief (alle letters)
-- AND alg_onrgoed_niveau = 'G') ozbtar -- OZB-Tarief
ozbtar t
WHERE cpm.srtopp IN ('L', 'H', 'K', 'O', 'C') -- Geen T?
--AND cpm.alg_gebouw_key = ozbtar.alg_onrgoed_key
AND cpm.cnt_contract_key = t.cnt_contract_key
GROUP BY cpm.cnt_contract_key,
'Advance Payment Property Tax',
TO_NUMBER (NULL),
--fac.safe_to_number (ozbtar.alg_onrgoedkenmerk_waarde)
t.tarief
UNION ALL
SELECT cnt_contract_key,
'Advance Payment Collective Services' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
TO_NUMBER (NULL) headcount,
SUM (fac.safe_to_number (cnt_kenmerkcontract_waarde)) jaartarief
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (1001, -- Voorschot CS Campusgebonden (jaarbedrag)/LA
1002, -- Voorschot CS Gebouwgebonden (jaarbedrag)/LA
842, -- Voorschot CS Huurderspecifiek (jaarbedrag)/LA
515) -- Advance Payment Collective Services/LA CRF
GROUP BY cnt_contract_key,
'Advance Payment Collective Services',
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
UNION ALL
SELECT cnt_contract_key,
'Advance Payment Utilities' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (cnt_kenmerkcontract_waarde) jaartarief
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (981, 525) -- Advance Payment Utilities/LA+LA CRF
UNION ALL
SELECT p.cnt_contract_key,
'Parking' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
fac.safe_to_number (p.cnt_kenmerkcontract_waarde) headcount,
t.tarief jaartarief
FROM cnt_kenmerkcontract p, ptar t
WHERE p.cnt_kenmerkcontract_verwijder IS NULL
AND p.cnt_kenmerk_key IN (470, 469) -- #Med. Parking/LA+LA CRF
--AND ptar.fac_usrtab_key = 581 -- Tarieflijst Div.
--AND ptar.fac_usrdata_key = 904 -- Parking
AND p.cnt_contract_key = t.cnt_contract_key
UNION ALL
SELECT pa.cnt_contract_key,
'Public Amenities' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
fac.safe_to_number (pa.cnt_kenmerkcontract_waarde) headcount,
t.tarief jaartarief
FROM cnt_kenmerkcontract pa, patar t
WHERE pa.cnt_kenmerkcontract_verwijder IS NULL
AND pa.cnt_kenmerk_key IN (472, 474) -- #Med. Public Amenities/LA+LA CRF
--AND patar.fac_usrtab_key = 581 -- Tarieflijst Div.
--AND patar.fac_usrdata_key = 905 -- Public Amenities
AND pa.cnt_contract_key = t.cnt_contract_key
UNION ALL
SELECT dp.cnt_contract_key,
'Dedicated Parking' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
fac.safe_to_number (dp.cnt_kenmerkcontract_waarde) headcount,
t.tarief jaartarief
FROM cnt_kenmerkcontract dp, dptar t
WHERE dp.cnt_kenmerkcontract_verwijder IS NULL
AND dp.cnt_kenmerk_key IN (1341, 1361) -- #Med. Dedicated Parking/LA+LA CRF
--AND dptar.fac_usrtab_key = 581 -- Tarieflijst Div.
--AND dptar.fac_usrdata_key = 2241 -- Dedicated Parking
AND dp.cnt_contract_key = t.cnt_contract_key
UNION ALL
SELECT jbw.cnt_contract_key,
DECODE (jbw.cnt_kenmerk_key, 630, '2GV', '3GV') item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
TO_NUMBER (NULL) headcount,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) jaartarief
FROM (SELECT kc.cnt_contract_key, kc.cnt_kenmerk_key, kc.cnt_kenmerkcontract_waarde, c.cnt_contract_looptijd_van, c.cnt_contract_looptijd_tot
FROM cnt_kenmerkcontract kc, cnt_v_aanwezigcontract c
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key IN (630, 628) -- 2GV/3GV
AND kc.cnt_contract_key = c.cnt_contract_key) jbw
LEFT JOIN cnt_kenmerkcontract tot
ON jbw.cnt_contract_key = tot.cnt_contract_key
AND jbw.cnt_kenmerk_key = DECODE (tot.cnt_kenmerk_key, 598, 630, 628)
AND tot.cnt_kenmerkcontract_verwijder IS NULL
AND tot.cnt_kenmerk_key IN (598, 600) -- Einddatum 2GV/3GV
WHERE COALESCE (fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 0) != 0
AND COALESCE (fac.safe_to_date (tot.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'), jbw.cnt_contract_looptijd_tot) > jbw.cnt_contract_looptijd_van
UNION ALL
SELECT cnt_contract_key,
'Advance Payment SLA Facility Services' item,
TO_NUMBER (NULL) vvo_ovk,
TO_NUMBER (NULL) vvo_nen2580,
TO_NUMBER (NULL) headcount,
SUM (COALESCE (fac.safe_to_number (cnt_kenmerkcontract_waarde), 0)) jaartarief
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (1041, 1061) -- SLA Facility Services/SLA Tenant-specific Services
GROUP BY cnt_contract_key,
'Advance Payment SLA Facility Services',
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)) items
ON x.cnt_contract_key = items.cnt_contract_key;
-- BLCC#88286: Losse contractverkopen per maand!
CREATE OR REPLACE VIEW BLCC_V_RAP_MLD_LV
AS
SELECT x.mld_melding_key,
SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
vf.fin_verkoopfactuur_maand maand,
vf.fin_verkoopfactuur_id factuurnr,
'FIN' || TO_CHAR (x.mld_melding_key) meldingnr,
TRUNC (x.mld_melding_datum) melddatum,
x.aanvrager,
c2g.gebouwen,
x.debiteur_naam,
x.debiteur_nr,
x.po_nr,
x.cv_crf,
x.cnt_contract_key,
x.contractnr,
regels.sortering regelnr,
regels.regel,
regels.mndnet, -- Netto losverkoopbedrag
regels.fin_btwtabelwaarde_code,
regels.fin_btwtabelwaarde_oms,
regels.fin_btwtabelwaarde_perc,
regels.mndbtw, -- BTW losverkoopbedrag
regels.prs_kostenplaats_key,
regels.prs_kostenplaats_nr,
regels.prs_kostenplaats_omschrijving,
regels.prs_kostenplaatsgrp_oms,
regels.grtboekrek
FROM (SELECT m.mld_melding_key,
m.mld_melding_datum,
pf.prs_perslid_naam_full aanvrager,
b.prs_bedrijf_key,
TRIM (b.prs_bedrijf_naam) debiteur_naam,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
TRIM (COALESCE (po.waarde, m2c.cnt_contract_nummer, '-'))
po_nr, -- Optioneel
factent.fac_usrdata_code cv_crf,
m2c.cnt_contract_key,
DECODE (m2c.cnt_contract_key, NULL, NULL, m2c.cnt_contract_nummer_intern || '.' || COALESCE (m2c.cnt_contract_versie, '0'))
contractnr, -- Optioneel
m2c.cnt_contract_looptijd_van,
m2c.cnt_contract_looptijd_tot
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
prs_bedrijf b,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1001) po, -- PO
(SELECT km.mld_melding_key, ud.fac_usrdata_code
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1121 -- CV/CRF
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) factent,
(SELECT mld_melding_key,
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_nummer,
c.cnt_contract_looptijd_van, c.cnt_contract_looptijd_tot
FROM mld_v_aanwezigkenmerkmelding km, cnt_contract c
WHERE mld_kenmerk_key = 1081 -- Contractreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = c.cnt_contract_key) m2c
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.prs_perslid_key_voor = pf.prs_perslid_key
--AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 941 -- Debiteur
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = b.prs_bedrijf_key
AND m.mld_melding_key = po.mld_melding_key(+)
AND m.mld_melding_key = factent.mld_melding_key(+)
AND m.mld_melding_key = m2c.mld_melding_key) x
LEFT JOIN
( SELECT cp.cnt_contract_key,
LISTAGG (DISTINCT aog.alg_gebouw_code, ',' ON OVERFLOW TRUNCATE) WITHIN GROUP (ORDER BY aog.alg_gebouw_code)
gebouwen
FROM cnt_v_aanwezigcontract_plaats cp, alg_v_allonrgoed_gegevens aog
WHERE cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
GROUP BY cp.cnt_contract_key) c2g
ON x.cnt_contract_key = c2g.cnt_contract_key
LEFT JOIN
(SELECT m.mld_melding_key,
'01' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 961) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 962 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 963) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 964 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 965) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'02' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 966) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 967 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 968) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 969 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 970) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'03' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 971) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 972 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 973) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 974 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 975) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'04' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1021) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1022 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1023) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1024 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1025) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'05' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1026) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1027 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1028) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1029 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1030) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'06' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1031) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1032 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1033) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1034 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1035) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'07' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1036) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1037 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1038) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1039 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1040) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'08' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1041) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1042 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1043) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1044 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1045) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'09' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1046) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1047 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1048) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1049 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1050) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'10' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto losverkoopbedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW losverkoopbedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1051) cb, -- Losverkoopbedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 1052 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1053) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 1054 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 1055) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1321 -- Losse verkoop
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key) regels
ON x.mld_melding_key = regels.mld_melding_key
LEFT JOIN
(SELECT DISTINCT fin_verkoopfactuur_n1, fin_verkoopfactuur_maand, fin_verkoopfactuur_id
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NULL) vf
ON x.mld_melding_key = vf.fin_verkoopfactuur_n1
WHERE vf.fin_verkoopfactuur_maand >= '2024-01'
;
-- BLCC#88300: Correcties (ADDD+FACT) per maand!
/*
ADDD
vf.fin_verkoopfactuur_c1 po_nr, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_c2 contract_id, -- Overnemen van te corrigeren factuur?
vf.fin_verkoopfactuur_id regel_id, -- Factuur waarop correctie betrekking heeft (en dan ook in Twinfield-exportbestand)!
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', 'contract', 'melding') xmlnode,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, m.mld_melding_key) refkey,
--b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, -- Niet overnemen van te corrigeren factuur?
vf.prs_bedrijf_key, vf.prs_debiteur_naam, SUBSTR (vf.fin_verkoopfactuur_c7, 1, INSTR (vf.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr, -- Overnemen van te corrigeren factuur!
pf.prs_perslid_naam_full aanvrager,
FACT
TRIM (SUBSTR (vf.fin_verkoopfactuur_omschr, 1, INSTR (vf.fin_verkoopfactuur_omschr, '/=', -1) - 1)) po_nr, -- Yourref
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ourref, -- Ourref
vf.fin_verkoopfactuur_c2 omschrijving, -- Contract scope
c.cnt_contract_key, c.cnt_contract_nummer_intern, c.cnt_contract_versie, c.cnt_contract_looptijd_tot lv,
b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr,
vf.fin_verkoopfactuur_maand maand,
TO_CHAR (vf.fin_verkoopfactuur_d4, 'dd-mm-yyyy') dagbegin,
TO_CHAR (vf.fin_verkoopfactuur_d5, 'dd-mm-yyyy') dageinde,
LAST_DAY (TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm')) - TO_DATE (vf.fin_verkoopfactuur_maand, 'yyyymm') + 1 mndbes, -- Beschikbaar
vf.fin_verkoopfactuur_d5 - vf.fin_verkoopfactuur_d4 + 1 mndbez, -- Bezet
1 aantal,
fac.safe_to_number (cb.waarde) bedrag,
1 factuur,
NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding,
vf.fin_verkoopfactuur_id mld_melding_omschrijving, -- Factuur waarop correctie betrekking heeft!
c.cnt_contract_status,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus
*/
CREATE OR REPLACE VIEW BLCC_V_RAP_MLD_CORR
AS
SELECT x.mld_melding_key,
COALESCE (SUBSTR (af.addd_maand, 1, 4), SUBSTR (hf.huur_maand, 1, 4)) jaar,
COALESCE (af.addd_maand, hf.huur_maand) maand,
COALESCE (af.addd_id, hf.huur_id) factuurnr,
'FIN' || TO_CHAR (x.mld_melding_key) meldingnr,
TRUNC (x.mld_melding_datum) melddatum,
x.aanvrager,
c2g.gebouwen, -- Als correctie op huurfactuur
x.debiteur_naam,
x.debiteur_nr,
DECODE (x.fin_verkoopfactuur_n2,
NULL, x.fin_verkoopfactuur_c1, -- ADDD
TRIM (SUBSTR (x.fin_verkoopfactuur_omschr, 1, INSTR (x.fin_verkoopfactuur_omschr, '/=', -1) - 1))) -- FACT
po_nr,
DECODE (x.fin_verkoopfactuur_n2,
NULL, NULL, -- ADDD
DECODE (x.fin_verkoopfactuur_n3, 0, 'CV', 'CRF')) -- FACT
cv_crf,
c.cnt_contract_key, -- Als correctie op huurfactuur
DECODE (c.cnt_contract_key, NULL, NULL, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'))
contract_id, -- Als correctie op huurfactuur
regels.sortering regelnr,
regels.regel,
regels.mndnet, -- Netto correctiebedrag
regels.fin_btwtabelwaarde_code,
regels.fin_btwtabelwaarde_oms,
regels.fin_btwtabelwaarde_perc,
regels.mndbtw, -- BTW correctiebedrag
regels.prs_kostenplaats_key,
regels.prs_kostenplaats_nr,
regels.prs_kostenplaats_omschrijving,
regels.prs_kostenplaatsgrp_oms,
regels.grtboekrek
FROM (SELECT m.mld_melding_key,
m.mld_melding_datum,
pf.prs_perslid_naam_full aanvrager,
b.prs_bedrijf_key,
TRIM (b.prs_bedrijf_naam) debiteur_naam,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
DECODE (vf.fin_verkoopfactuur_xmlnode, 'contract', vf.fin_verkoopfactuur_refkey, NULL) cnt_contract_key,
vf.fin_verkoopfactuur_omschr,
vf.fin_verkoopfactuur_maand,
vf.fin_verkoopfactuur_n2,
vf.fin_verkoopfactuur_n3,
vf.fin_verkoopfactuur_c1
FROM mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_v_aanwezigkenmerkmelding km,
fin_verkoopfactuur vf,
prs_bedrijf b
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.prs_perslid_key_voor = pf.prs_perslid_key
--AND m.mld_melding_status IN (4, 5) -- Geaccepteerd/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = 741 -- Factuurreferentie
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
--AND vf.fin_verkoopfactuur_n2 IS/IS NOT NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN cnt_v_aanwezigcontract c
ON x.cnt_contract_key = c.cnt_contract_key
LEFT JOIN
( SELECT cp.cnt_contract_key,
LISTAGG (DISTINCT aog.alg_gebouw_code, ',' ON OVERFLOW TRUNCATE) WITHIN GROUP (ORDER BY aog.alg_gebouw_code)
gebouwen
FROM cnt_v_aanwezigcontract_plaats cp, alg_v_allonrgoed_gegevens aog
WHERE cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys
GROUP BY cp.cnt_contract_key) c2g
ON x.cnt_contract_key = c2g.cnt_contract_key
LEFT JOIN
(SELECT m.mld_melding_key,
'01' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 761) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 762 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 763) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 764 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 765) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'02' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 801) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 802 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 803) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 804 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 805) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'03' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 806) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 807 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 808) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 809 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 810) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'04' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 811) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 812 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 813) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 814 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 815) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'05' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 816) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 817 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 818) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 819 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 820) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'06' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 821) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 822 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 823) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 824 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 825) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'07' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 826) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 827 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 828) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 829 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 830) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'08' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 831) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 832 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 833) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 834 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 835) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'09' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 836) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 837 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 838) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 839 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 840) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key
UNION ALL
SELECT m.mld_melding_key,
'10' sortering,
TRIM (ro.waarde) regel,
ROUND (fac.safe_to_number (cb.waarde), 2)
mndnet, -- Netto correctiebedrag
btw.code fin_btwtabelwaarde_code,
btw.oms fin_btwtabelwaarde_oms,
btw.perc fin_btwtabelwaarde_perc,
ROUND (fac.safe_to_number (cb.waarde * 0.01 * btw.perc), 2)
mndbtw, -- BTW correctiebedrag
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
SUBSTR ('000' || ks.mld_kenmerkmelding_waarde, -6) grtboekrek
FROM mld_melding m,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 841) cb, -- Correctiebedrag
(SELECT km.mld_melding_key,
ud.fac_usrdata_code code,
ud.fac_usrdata_omschr oms,
ud.fac_usrdata_prijs perc
FROM mld_v_aanwezigkenmerkmelding km,
fac_v_aanwezigusrdata ud
WHERE km.mld_kenmerk_key = 842 -- BTW tarief
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) btw,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 843) ro, -- Regelomschrijving
(SELECT km.mld_melding_key, kp.prs_kostenplaats_key
FROM mld_v_aanwezigkenmerkmelding km,
blcc_v_kostenplaats kp
WHERE km.mld_kenmerk_key = 844 -- Kostenplaats
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = kp.prs_kostenplaats_key) mkp,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
(SELECT mld_melding_key, mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key = 845) ks -- Kostensoort
WHERE m.mld_stdmelding_key = 1301 -- Correctie
AND m.mld_melding_key = cb.mld_melding_key
AND m.mld_melding_key = btw.mld_melding_key
AND m.mld_melding_key = ro.mld_melding_key
AND m.mld_melding_key = mkp.mld_melding_key
AND mkp.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND m.mld_melding_key = ks.mld_melding_key) regels
ON x.mld_melding_key = regels.mld_melding_key
LEFT JOIN
(SELECT DISTINCT fin_verkoopfactuur_n1 addd_corr, fin_verkoopfactuur_maand addd_maand, fin_verkoopfactuur_id addd_id
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NULL) af
ON x.mld_melding_key = af.addd_corr
LEFT JOIN
(SELECT DISTINCT fin_verkoopfactuur_n5 huur_corr, fin_verkoopfactuur_maand huur_maand, fin_verkoopfactuur_id huur_id
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_n2 IS NOT NULL) hf
ON x.mld_melding_key = hf.huur_corr
WHERE x.fin_verkoopfactuur_maand >= '2024-01'
AND (af.addd_corr IS NOT NULL OR hf.huur_corr IS NOT NULL);
/*
-- BLCC#90972: Drietal rapportages met oppervlakten per gebouw/classificatie
-- (verhuurd en leegstand) tbv. settlement!
*/
CREATE OR REPLACE VIEW BLCC_V_RAP_OPP_SETTLE1
AS
SELECT freeze_datum,
TO_CHAR (freeze_datum, 'yyyy-mm') freeze_maand,
gebouwcode,
vvo_h + vvo_k + vvo_l + vvo_o vvo_tot,
vvo_h,
vvo_k,
vvo_l,
vvo_o,
vvo_ovk_h + vvo_ovk_k + vvo_ovk_l + vvo_ovk_o vvo_ovk_tot,
vvo_ovk_h,
vvo_ovk_k,
vvo_ovk_l,
vvo_ovk_o,
leeg_h + leeg_k + leeg_l + leeg_o leeg_tot,
leeg_h,
leeg_k,
leeg_l,
leeg_o,
opp_c coll_tot
FROM ( SELECT freeze_datum, gebouwcode,
SUM (DECODE (lhkotc_class_code, 'H', vvo, 0)) vvo_h,
SUM (DECODE (lhkotc_class_code, 'K', vvo, 0)) vvo_k,
SUM (DECODE (lhkotc_class_code, 'L', vvo, 0)) vvo_l,
SUM (DECODE (lhkotc_class_code, 'O', vvo, 0)) vvo_o,
SUM (DECODE (lhkotc_class_code, 'H', DECODE (huur_contract, NULL, 0, vvo_overeenkomst), 0)) vvo_ovk_h,
SUM (DECODE (lhkotc_class_code, 'K', DECODE (huur_contract, NULL, 0, vvo_overeenkomst), 0)) vvo_ovk_k,
SUM (DECODE (lhkotc_class_code, 'L', DECODE (huur_contract, NULL, 0, vvo_overeenkomst), 0)) vvo_ovk_l,
SUM (DECODE (lhkotc_class_code, 'O', DECODE (huur_contract, NULL, 0, vvo_overeenkomst), 0)) vvo_ovk_o,
SUM (DECODE (lhkotc_class_code, 'H', DECODE (huur_contract, NULL, vvo, 0), 0)) leeg_h,
SUM (DECODE (lhkotc_class_code, 'K', DECODE (huur_contract, NULL, vvo, 0), 0)) leeg_k,
SUM (DECODE (lhkotc_class_code, 'L', DECODE (huur_contract, NULL, vvo, 0), 0)) leeg_l,
SUM (DECODE (lhkotc_class_code, 'O', DECODE (huur_contract, NULL, vvo, 0), 0)) leeg_o,
SUM (DECODE (lhkotc_class_code, 'C', vvo, 0)) opp_c
FROM blcc_alg_freeze
WHERE huur_maand >= GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
GROUP BY freeze_datum, gebouwcode);
CREATE OR REPLACE VIEW BLCC_V_RAP_OPP_SETTLE2
AS
SELECT x.cnt_contract_key,
x.cnt_contract_nummer_intern contractnr,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractversie,
SUBSTR (x.huur_maand, 1, 4) || '-' || SUBSTR (x.huur_maand, 5, 2) huur_maand,
x.huurder,
x.debiteur_nr,
x.gebouwcode,
x.gefactureerd,
x.vvo_ovk_h,
x.vvo_ovk_k,
x.vvo_ovk_l,
x.vvo_ovk_o,
x.vvo_ovk_h + x.vvo_ovk_k + x.vvo_ovk_l + x.vvo_ovk_o vvo_ovk_tot,
c.cnt_contract_looptijd_tot looptijd_tot,
c.jaarmaanden, -- Naar-rato-verhaal nog eens verdiepen, want oppervlakte naar rato vreemd???
--ROUND ((x.vvo_ovk_h + x.vvo_ovk_k + x.vvo_ovk_l + x.vvo_ovk_o) * (c.jaarmaanden / 12), 2) vvo_ovk_tot_rato,
--ROUND (x.vvo_ovk_h * (c.jaarmaanden / 12), 2) vvo_ovk_h_rato,
--ROUND (x.vvo_ovk_k * (c.jaarmaanden / 12), 2) vvo_ovk_k_rato,
--ROUND (x.vvo_ovk_l * (c.jaarmaanden / 12), 2) vvo_ovk_l_rato,
--ROUND (x.vvo_ovk_o * (c.jaarmaanden / 12), 2) vvo_ovk_o_rato
TO_NUMBER (NULL) vvo_ovk_tot_rato,
TO_NUMBER (NULL) vvo_ovk_h_rato,
TO_NUMBER (NULL) vvo_ovk_k_rato,
TO_NUMBER (NULL) vvo_ovk_l_rato,
TO_NUMBER (NULL) vvo_ovk_o_rato
FROM ( SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
x.fin_verkoopfactuur_maand huur_maand,
x.prs_debiteur_naam huurder,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
aog.alg_gebouw_code gebouwcode,
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee') gefactureerd,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_o
FROM fin_verkoopfactuur x, cnt_contract c, alg_v_allonrgoed_gegevens aog
WHERE x.fin_verkoopfactuur_maand > GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = aog.alg_ruimte_key
GROUP BY c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
x.fin_verkoopfactuur_maand,
x.prs_debiteur_naam,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1),
aog.alg_gebouw_code,
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee')) x
LEFT JOIN
(SELECT cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_looptijd_tot,
DECODE (TO_CHAR (cnt_contract_looptijd_tot, 'yyyy'),
TO_CHAR (SYSDATE, 'yyyy'), 0,
TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'), fac.safe_to_number (TO_CHAR (cnt_contract_looptijd_tot, 'mm')),
12)
jaarmaanden
FROM cnt_v_aanwezigcontract) c
ON x.cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (cnt_contract_versie) > fac.safe_to_number (c.cnt_contract_versie))
UNION ALL
SELECT NULL cnt_contract_key,
'8888' contractnr,
'8888.0' contractversie,
huur_maand,
'Collectief' huurder,
'#N/B' debiteur_nr,
gebouwcode,
NULL gefactureerd,
0 vvo_ovk_h,
0 vvo_ovk_k,
0 vvo_ovk_l,
0 vvo_ovk_o,
SUM (COALESCE (vvo, 0)) vvo_ovk_tot,
fac.safe_to_date ('31-12-2099', 'dd-mm-yyyy') looptijd_tot,
0 jaarmaanden,
TO_NUMBER (NULL) vvo_ovk_tot_rato,
TO_NUMBER (NULL) vvo_ovk_h_rato,
TO_NUMBER (NULL) vvo_ovk_k_rato,
TO_NUMBER (NULL) vvo_ovk_l_rato,
TO_NUMBER (NULL) vvo_ovk_o_rato
FROM blcc_alg_freeze
WHERE huur_maand >= GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND lhkotc_class_code = 'C'
GROUP BY NULL,
'8888',
'8888.0',
huur_maand,
'Collectief',
'#N/B',
gebouwcode,
NULL,
0,
0,
0,
0,
fac.safe_to_date ('31-12-2099', 'dd-mm-yyyy'),
0,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
UNION ALL
SELECT NULL cnt_contract_key,
'9999' contractnr,
'9999.0' contractversie,
huur_maand,
'Leegstand' huurder,
'#N/B' debiteur_nr,
gebouwcode,
NULL gefactureerd,
SUM (DECODE (lhkotc_class_code, 'H', vvo_overeenkomst, 0))
vvo_ovk_h,
SUM (DECODE (lhkotc_class_code, 'K', vvo_overeenkomst, 0))
vvo_ovk_k,
SUM (DECODE (lhkotc_class_code, 'L', vvo_overeenkomst, 0))
vvo_ovk_l,
SUM (DECODE (lhkotc_class_code, 'O', vvo_overeenkomst, 0))
vvo_ovk_o,
SUM (vvo_overeenkomst) vvo_ovk_tot,
fac.safe_to_date ('31-12-2099', 'dd-mm-yyyy') looptijd_tot,
0 jaarmaanden,
TO_NUMBER (NULL) vvo_ovk_tot_rato,
TO_NUMBER (NULL) vvo_ovk_h_rato,
TO_NUMBER (NULL) vvo_ovk_k_rato,
TO_NUMBER (NULL) vvo_ovk_l_rato,
TO_NUMBER (NULL) vvo_ovk_o_rato
FROM blcc_alg_freeze
WHERE huur_maand >= GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND lhkotc_class_code IN ('H', 'K', 'L', 'O')
AND huur_contract IS NULL
AND vvo_overeenkomst IS NOT NULL
GROUP BY NULL,
'9999',
'9999.0',
huur_maand,
'Leegstand',
'#N/B',
gebouwcode,
NULL,
fac.safe_to_date ('31-12-2099', 'dd-mm-yyyy'),
0,
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL),
TO_NUMBER (NULL)
UNION ALL -- Extrapoleren voor lopende jaar op basis van LA/LA CRF-contracten?
SELECT x.cnt_contract_key,
x.cnt_contract_nummer_intern contractnr,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractversie,
x.huur_maand,
x.huurder,
x.debiteur_nr,
x.gebouwcode,
x.gefactureerd,
x.vvo_ovk_h,
x.vvo_ovk_k,
x.vvo_ovk_l,
x.vvo_ovk_o,
x.vvo_ovk_h + x.vvo_ovk_k + x.vvo_ovk_l + x.vvo_ovk_o vvo_ovk_tot,
c.cnt_contract_looptijd_tot aflopend,
c.jaarmaanden, -- Naar-rato-verhaal nog eens verdiepen, want oppervlakte naar rato vreemd???
ROUND ((x.vvo_ovk_h + x.vvo_ovk_k + x.vvo_ovk_l + x.vvo_ovk_o) * (c.jaarmaanden / 12), 2) vvo_ovk_tot_rato,
ROUND (x.vvo_ovk_h * (c.jaarmaanden / 12), 2) vvo_ovk_h_rato,
ROUND (x.vvo_ovk_k * (c.jaarmaanden / 12), 2) vvo_ovk_k_rato,
ROUND (x.vvo_ovk_l * (c.jaarmaanden / 12), 2) vvo_ovk_l_rato,
ROUND (x.vvo_ovk_o * (c.jaarmaanden / 12), 2) vvo_ovk_o_rato
FROM ( SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
TO_CHAR (p.maand, 'yyyy-mm') huur_maand,
b.prs_bedrijf_naam huurder,
b.prs_overeenkomst_nr debiteur_nr,
rg.alg_gebouw_upper gebouwcode,
NULL gefactureerd,
SUM (DECODE (lhkotc.fac_usrdata_code, 'H', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0))
vvo_ovk_h,
SUM (DECODE (lhkotc.fac_usrdata_code, 'K', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0))
vvo_ovk_k,
SUM (DECODE (lhkotc.fac_usrdata_code, 'L', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0))
vvo_ovk_l,
SUM (DECODE (lhkotc.fac_usrdata_code, 'O', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0))
vvo_ovk_o
FROM cnt_contract c,
prs_bedrijf b,
( SELECT ADD_MONTHS (TRUNC (ADD_MONTHS (SYSDATE, 2), 'yyyy'), LEVEL - 1) maand
FROM DUAL
CONNECT BY LEVEL <= 12) p,
(SELECT * FROM cnt_v_aanwezigcontract_plaats WHERE cnt_alg_plaats_code = 'R') cp,
alg_v_ruimte_gegevens rg,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc,
(SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk ok
WHERE ok.alg_kenmerk_key = 1720 -- VVO Overeenkomst
AND ok.alg_onrgoed_niveau = 'R') vvo
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (ADD_MONTHS (SYSDATE, 2), 'mm') < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_key = rg.alg_ruimte_key
AND rg.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
AND rg.alg_ruimte_key = vvo.alg_onrgoed_key(+)
GROUP BY c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
TO_CHAR (p.maand, 'yyyy-mm'),
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
rg.alg_gebouw_upper,
NULL) x
LEFT JOIN
(SELECT cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_looptijd_tot,
DECODE (TO_CHAR (cnt_contract_looptijd_tot, 'yyyy'),
TO_CHAR (SYSDATE, 'yyyy'), 0,
TO_CHAR (ADD_MONTHS (SYSDATE, 12), 'yyyy'), fac.safe_to_number (TO_CHAR (cnt_contract_looptijd_tot, 'mm')),
12)
jaarmaanden
FROM cnt_v_aanwezigcontract) c
ON x.cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (cnt_contract_versie) > fac.safe_to_number (c.cnt_contract_versie));
/*
-- UNION ALL -- Extrapoleren 8888 en 9999?
*/
CREATE OR REPLACE VIEW BLCC_V_RAP_OPP_SETTLE3
AS
SELECT x.cnt_contract_key,
x.cnt_contract_nummer_intern contractnr,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractversie,
SUBSTR (x.huur_maand, 1, 4) || '-' || SUBSTR (x.huur_maand, 5, 2) huur_maand,
x.huurder,
x.debiteur_nr,
x.gebouwcode,
x.gefactureerd,
x.vvo_ovk_h,
x.vvo_ovk_k,
x.vvo_ovk_l,
x.vvo_ovk_o,
x.vvo_ovk_h + x.vvo_ovk_k + x.vvo_ovk_l + x.vvo_ovk_o vvo_ovk_tot,
c.cnt_contract_looptijd_van looptijd_van,
c.jaarmaanden -- Naar-rato-verhaal nog eens verdiepen, want oppervlakte naar rato vreemd???
FROM ( SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
x.fin_verkoopfactuur_maand huur_maand,
x.prs_debiteur_naam huurder,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
aog.alg_gebouw_code gebouwcode,
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee') gefactureerd,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0))
vvo_ovk_o
FROM fin_verkoopfactuur x, cnt_contract c, alg_v_allonrgoed_gegevens aog
WHERE x.fin_verkoopfactuur_maand > GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = aog.alg_ruimte_key
GROUP BY c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
x.fin_verkoopfactuur_maand,
x.prs_debiteur_naam,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1),
aog.alg_gebouw_code,
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee')) x
LEFT JOIN
(SELECT cnt_contract_nummer_intern,
cnt_contract_versie,
cnt_contract_looptijd_van,
DECODE (TO_CHAR (cnt_contract_looptijd_van, 'yyyy'),
TO_CHAR (SYSDATE, 'yyyy'), -- Oudste contract dit jaar begonnen, dan geen deeljaar in afgelopen jaar (en 0)!
0,
TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy'), -- Oudste contract afgelopen jaar begonnen, dan deeljaar of 12!
fac.safe_to_number (TO_CHAR (LEAST (cnt_contract_looptijd_tot, TRUNC (SYSDATE, 'yyyy') - 1), 'mm')) - fac.safe_to_number (TO_CHAR (cnt_contract_looptijd_van, 'mm')) + 1,
fac.safe_to_number (TO_CHAR (LEAST (cnt_contract_looptijd_tot, TRUNC (SYSDATE, 'yyyy') - 1), 'mm'))) -- Oudste contract voor afgelopen jaar begonnen, dan deeljaar of 12!
jaarmaanden
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_looptijd_van < SYSDATE) c -- Toekomstige contracten buiten beschouwing laten!
ON x.cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_looptijd_van < SYSDATE -- Toekomstige contracten buiten beschouwing laten!
AND cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (cnt_contract_versie) < fac.safe_to_number (c.cnt_contract_versie))
UNION ALL
SELECT NULL cnt_contract_key,
'8888' contractnr,
'8888.0' contractversie,
huur_maand,
'Collectief' huurder,
'#N/B' debiteur_nr,
gebouwcode,
NULL gefactureerd,
0 vvo_ovk_h,
0 vvo_ovk_k,
0 vvo_ovk_l,
0 vvo_ovk_o,
SUM (COALESCE (vvo, 0)) vvo_ovk_tot,
fac.safe_to_date ('01-01-1999', 'dd-mm-yyyy') looptijd_van,
0 jaarmaanden
FROM blcc_alg_freeze
WHERE huur_maand >= GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND lhkotc_class_code = 'C'
GROUP BY NULL,
'8888',
'8888.0',
huur_maand,
'Collectief',
'#N/B',
gebouwcode,
NULL,
0,
0,
0,
0,
fac.safe_to_date ('01-01-1999', 'dd-mm-yyyy'),
0
UNION ALL
SELECT NULL cnt_contract_key,
'9999' contractnr,
'9999.0' contractversie,
huur_maand,
'Leegstand' huurder,
'#N/B' debiteur_nr,
gebouwcode,
NULL gefactureerd,
SUM (DECODE (lhkotc_class_code, 'H', vvo_overeenkomst, 0))
vvo_ovk_h,
SUM (DECODE (lhkotc_class_code, 'K', vvo_overeenkomst, 0))
vvo_ovk_k,
SUM (DECODE (lhkotc_class_code, 'L', vvo_overeenkomst, 0))
vvo_ovk_l,
SUM (DECODE (lhkotc_class_code, 'O', vvo_overeenkomst, 0))
vvo_ovk_o,
SUM (vvo_overeenkomst) vvo_ovk_tot,
fac.safe_to_date ('01-01-1999', 'dd-mm-yyyy') looptijd_van,
0 jaarmaanden
FROM blcc_alg_freeze
WHERE huur_maand >= GREATEST (TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy-mm'), '2025-01')
AND lhkotc_class_code IN ('H', 'K', 'L', 'O')
AND huur_contract IS NULL
AND vvo_overeenkomst IS NOT NULL
GROUP BY NULL,
'9999',
'9999.0',
huur_maand,
'Leegstand',
'#N/B',
gebouwcode,
NULL,
fac.safe_to_date ('01-01-1999', 'dd-mm-yyyy'),
0;
-- BLCC#91058: Meldingen op verhuurde ruimten!
CREATE OR REPLACE VIEW BLCC_V_RAP_MLD_HUURDER
AS
SELECT p.prs_afdeling_key fclt_3d_afdeling_key,
m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnr,
sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving soortmelding,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = m.prs_perslid_key)
aanvrager, -- Ipv. melder in BLCC_V_RAP_MELDINGEN
(SELECT prs_afdeling_naam6 FROM prs_v_afdeling_fullnames WHERE prs_afdeling_key = p.prs_afdeling_key)
afdeling,
m.mld_melding_datum,
--TO_CHAR (m.mld_melding_datum, 'DD-MM-YYYY') datum,
--TO_CHAR (m.mld_melding_datum, 'hh24:mi') tijd,
--l.alg_locatie_code locatie,
aog.alg_gebouw_code gebouw,
aog.alg_verdieping_code verdieping,
aog.alg_ruimte_nr ruimte,
TRIM (m.mld_melding_onderwerp) onderwerp,
TRIM (m.mld_melding_omschrijving) omschrijving,
TO_CHAR (m.mld_melding_status) status_key,
(SELECT mld_statuses_omschrijving FROM mld_statuses WHERE mld_statuses_key = m.mld_melding_status)
status,
TRIM (m.mld_melding_opmerking) afhandeling, -- Ipv. opmerking in BLCC_V_RAP_MELDINGEN
--(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = m.mld_melding_behandelaar_key)
-- behandelaar,
m.mld_melding_einddatum,
--TO_CHAR (m.mld_melding_einddatum, 'DD-MM-YYYY') einddatum,
(SELECT MAX (datum)
FROM (SELECT t.fac_tracking_datum datum
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'melding'
AND t.fac_tracking_refkey = m.mld_melding_key
UNION ALL
SELECT mld_melding_note_aanmaak datum
FROM mld_melding_note
WHERE mld_melding_key = m.mld_melding_key))
laatste_actiedatum,
(SELECT mn.mld_melding_note_omschrijving
FROM mld_melding_note mn
WHERE mn.mld_melding_key = m.mld_melding_key
AND mn.mld_melding_note_key =
(SELECT MAX (mn.mld_melding_note_key)
FROM mld_melding_note mn
WHERE mn.mld_melding_key = m.mld_melding_key))
laatste_notitie
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
prs_perslid p,
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc
WHERE m.fac_activiteit_key IS NULL
AND (m.mld_melding_status NOT IN (1, 5, 6)
OR m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')) -- Melding open of afgelopen jaar aangemaakt
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND aog.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
--AND lhkotc.fac_usrdata_code IN ('L', 'H', 'K', 'O', 'N') -- Verhuurd!
AND EXISTS -- Meldingruimte in scope van recent LA/LA CRF-contract met aanvrager-organisatie!
(SELECT 1
FROM cnt_v_aanwezigcontract c, prs_v_aanwezigbedrijf h, prs_afdeling a, cnt_contract_plaats cp
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_contract_looptijd_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND h.prs_overeenkomst_nr = a.prs_afdeling_naam
AND a.prs_afdeling_key = p.prs_afdeling_key
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys)
UNION ALL -- Exploderen per huurder voor meldingen door Brightlands op C-ruimten!
SELECT g2h.prs_afdeling_key fclt_3d_afdeling_key,
m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnr,
sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving soortmelding,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = m.prs_perslid_key)
aanvrager, -- Ipv. melder in BLCC_V_RAP_MELDINGEN
(SELECT prs_afdeling_naam6 FROM prs_v_afdeling_fullnames WHERE prs_afdeling_key = p.prs_afdeling_key)
afdeling,
m.mld_melding_datum,
--TO_CHAR (m.mld_melding_datum, 'DD-MM-YYYY') datum,
--TO_CHAR (m.mld_melding_datum, 'hh24:mi') tijd,
--l.alg_locatie_code locatie,
aog.alg_gebouw_code gebouw,
aog.alg_verdieping_code verdieping,
aog.alg_ruimte_nr ruimte,
TRIM (m.mld_melding_onderwerp) onderwerp,
TRIM (m.mld_melding_omschrijving) omschrijving,
TO_CHAR (m.mld_melding_status) status_key,
(SELECT mld_statuses_omschrijving FROM mld_statuses WHERE mld_statuses_key = m.mld_melding_status)
status,
TRIM (m.mld_melding_opmerking) afhandeling, -- Ipv. opmerking in BLCC_V_RAP_MELDINGEN
--(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = m.mld_melding_behandelaar_key)
-- behandelaar,
m.mld_melding_einddatum,
--TO_CHAR (m.mld_melding_einddatum, 'DD-MM-YYYY') einddatum,
(SELECT MAX (datum)
FROM (SELECT t.fac_tracking_datum datum
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode = 'melding'
AND t.fac_tracking_refkey = m.mld_melding_key
UNION ALL
SELECT mld_melding_note_aanmaak datum
FROM mld_melding_note
WHERE mld_melding_key = m.mld_melding_key))
laatste_actiedatum,
(SELECT mn.mld_melding_note_omschrijving
FROM mld_melding_note mn
WHERE mn.mld_melding_key = m.mld_melding_key
AND mn.mld_melding_note_key =
(SELECT MAX (mn.mld_melding_note_key)
FROM mld_melding_note mn
WHERE mn.mld_melding_key = m.mld_melding_key))
laatste_notitie
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
prs_perslid p,
alg_locatie l,
alg_v_allonrgoed_gegevens aog,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc,
(SELECT DISTINCT aog.alg_gebouw_key, a.prs_afdeling_key
FROM cnt_v_aanwezigcontract c, prs_v_aanwezigbedrijf h, prs_afdeling a, cnt_contract_plaats cp, alg_v_allonrgoed_gegevens aog
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_contract_looptijd_van > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND h.prs_overeenkomst_nr = a.prs_afdeling_naam
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_code = 'R'
AND cp.cnt_alg_plaats_key = aog.alg_onroerendgoed_keys) g2h
WHERE m.fac_activiteit_key IS NULL
AND (m.mld_melding_status NOT IN (1, 5, 6)
OR m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')) -- Melding open of afgelopen jaar aangemaakt
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_afdeling_key IN (427, 428, 256) -- Chemelot Campus B.V./Chemelot Campus Vastgoed C.V./Chemelot Research Facilities
AND m.mld_alg_locatie_key = l.alg_locatie_key(+)
AND m.mld_alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys(+)
AND aog.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
AND lhkotc.fac_usrdata_code IN ('A', 'V', 'C', 'D') -- Algemene ruimte, gebouwgebonden/Algemene ruimte, verdiepinggebonden/Collectief/Dak
AND aog.alg_gebouw_key = g2h.alg_gebouw_key;
-- BLCC#64393: Rapportage waarmee Brightlands/Marie-Jose Douven eenvoudig de
-- bedragen kan controleren die komende maand worden gefactureerd!
CREATE OR REPLACE VIEW blcc_v_rap_fact_check
(
hide_f_sortering,
prs_bedrijf_key,
debiteur_naam,
debiteur_nr,
contractsoort,
cnt_contract_key,
contractnr,
--po_nr, -- Yourref
--ourref, -- Ourref
--omschrijving, -- Contract scope
--sortering,
regel,
btw,
maand,
dagbegin,
dageinde,
crf, -- CCCV=0 en CRF=1
factuur,
mndnet,
mndbtw,
totaal,
contractstatus
)
AS
SELECT SUBSTR ('00000' || x.debiteur_nr, -6) || SUBSTR ('00000' || x.cnt_contract_nummer_intern, -6) || x.sortering || x.fin_btwtabelwaarde_code,
x.prs_bedrijf_key,
x.prs_debiteur_naam,
x.debiteur_nr,
td.ins_discipline_omschrijving,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr,
--x.po_nr, -- Yourref
--x.ourref, -- Ourref
--x.omschrijving, -- Contract scope
--x.sortering,
x.regel,
x.fin_btwtabelwaarde_perc,
x.maand,
x.dagbegin,
x.dageinde,
x.crf, -- CCCV=0 en CRF=1
x.factuur,
SUM (x.mndnet), -- Netto maandbedrag
SUM ((x.mndnet / 100) * x.fin_btwtabelwaarde_perc), -- BTW maandbedrag
SUM ((x.mndnet / 100) * (x.fin_btwtabelwaarde_perc + 100)), -- Totaal
x.contractstatus
FROM blcc_v_factv2_actual x, cnt_contract c, ins_tab_discipline td
WHERE x.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = td.ins_discipline_key
GROUP BY SUBSTR ('00000' || x.debiteur_nr, -6) || SUBSTR ('00000' || x.cnt_contract_nummer_intern, -6) || x.sortering || x.fin_btwtabelwaarde_code,
x.prs_bedrijf_key,
x.prs_debiteur_naam,
x.debiteur_nr,
td.ins_discipline_omschrijving,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0'),
--x.po_nr, -- Yourref
--x.ourref, -- Ourref
--x.omschrijving, -- Contract scope
--x.sortering,
x.regel,
x.fin_btwtabelwaarde_perc,
x.maand,
x.dagbegin,
x.dageinde,
x.crf, -- CCCV=0 en CRF=1
x.factuur,
x.contractstatus;
CREATE OR REPLACE VIEW blcc_v_rap_fact_controle
(
fclt_x_stroom,
fclt_f_controle,
controle_ref
)
AS
WITH periodegeg AS (SELECT * FROM blcc_v_factv2_actual)
SELECT DISTINCT 'Verhuur', 'Contract(regel) bedrag < 0', xref
FROM ( SELECT v.cnt_contract_nummer_intern
|| DECODE (v.cnt_contract_versie,
NULL, '',
'.' || v.cnt_contract_versie)
|| ' ['
|| v.regel
|| ']' xref,
SUM (v.mndnet) bedrag
FROM periodegeg v
WHERE v.mld_melding_key IS NULL
GROUP BY v.cnt_contract_nummer_intern
|| DECODE (v.cnt_contract_versie,
NULL, '',
'.' || v.cnt_contract_versie)
|| ' ['
|| v.regel
|| ']')
WHERE bedrag < 0
UNION ALL
SELECT DISTINCT
'Verhuur',
'Contract met GVR-overlap?',
v.cnt_contract_nummer_intern
|| DECODE (v.cnt_contract_versie,
NULL, '',
'.' || v.cnt_contract_versie)
FROM periodegeg v, alg_v_allonroerendgoed aog
WHERE v.mld_melding_key IS NULL
AND v.alg_onroerendgoed_type IN ('G', 'V', 'R')
AND v.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
AND EXISTS
(SELECT 1
FROM periodegeg v1, alg_v_allonroerendgoed aog1
WHERE v1.alg_onroerendgoed_type IN ('G', 'V', 'R')
AND v1.alg_onroerendgoed_keys =
aog1.alg_onroerendgoed_keys
AND v1.cnt_contract_key = v.cnt_contract_key -- Hetzelfde contract
AND aog1.alg_gebouw_key = aog.alg_gebouw_key -- Hetzelfde gebouw
AND v1.alg_onroerendgoed_type !=
v.alg_onroerendgoed_type -- Ander type
AND v1.alg_onroerendgoed_keys !=
v.alg_onroerendgoed_keys) -- Andere regel
UNION ALL
SELECT DISTINCT
'Verhuur',
'Dezelfde plaats gekoppeld aan meer contracten',
v.alg_plaatsaanduiding
FROM periodegeg v
WHERE v.mld_melding_key IS NULL
AND v.alg_onroerendgoed_type IN ('G', 'V', 'R')
AND EXISTS
(SELECT 1
FROM periodegeg v1
WHERE v1.alg_onroerendgoed_type IN ('G', 'V', 'R')
AND v1.alg_onroerendgoed_keys =
v.alg_onroerendgoed_keys -- Dezelfde plaats
AND v1.cnt_contract_key != v.cnt_contract_key) -- Ander contract
UNION ALL
SELECT DISTINCT
'Verhuur',
'E-mail adres van debiteur onbekend',
v.prs_debiteur_naam
FROM periodegeg v, prs_bedrijf b
WHERE v.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_email IS NULL
UNION ALL
SELECT DISTINCT
'Verhuur',
'Factuuradres van debiteur onbekend/onvolledig',
v.prs_debiteur_naam
FROM periodegeg v
WHERE v.mld_melding_key IS NULL
AND ( v.adres IS NULL
OR v.postcode IS NULL
OR v.plaats IS NULL
OR v.land IS NULL)
UNION ALL
SELECT DISTINCT
'Verhuur',
'Correctie- of losverkoopbedrag = 0',
TO_CHAR (v.mld_melding_key)
FROM periodegeg v
WHERE v.mld_melding_key IS NOT NULL AND v.mndnet = 0
UNION ALL
SELECT DISTINCT
'Verhuur',
'Contract gekoppeld aan locatie',
v.cnt_contract_nummer_intern
|| DECODE (v.cnt_contract_versie,
NULL, '',
'.' || v.cnt_contract_versie)
FROM periodegeg v
WHERE v.mld_melding_key IS NULL AND v.alg_onroerendgoed_type = 'L'
UNION ALL
SELECT DISTINCT 'Verhuur', 'Debiteurnummer onbekend', v.prs_debiteur_naam
FROM periodegeg v, prs_bedrijf b
WHERE v.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_overeenkomst_nr IS NULL
UNION ALL
SELECT 'Verhuur',
'Aantal factuurregels > max. #regels (zoals geconfigureerd)',
x.prs_debiteur_naam || ' / ' || x.po_nr
FROM ( SELECT prs_debiteur_naam, po_nr, COUNT (*) factuurregels
FROM periodegeg
GROUP BY prs_debiteur_naam, po_nr) x
WHERE x.factuurregels > fac.getsetting ('res_xml_max_rsv_ruimte')
UNION ALL
SELECT 'Add. Diensten',
'H-afdeling leeg',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'Add. Diensten',
'H-afdeling zonder logins',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2)
IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-afdeling op ander dan niveau-1',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom ab
WHERE ab.prs_bedrijf_key = 22 -- Huurders
AND COALESCE (ab.prs_afdeling_key2,
ab.prs_afdeling_key3,
ab.prs_afdeling_key4,
ab.prs_afdeling_key5)
IS NOT NULL
AND ab.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-afdeling niet gelinkt aan H-relatie',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a --, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
--AND a.prs_afdeling_key = ap.prs_afdeling_key
--AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigkenmerklink kl,
prs_v_aanwezigbedrijf b
WHERE kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde =
b.prs_overeenkomst_nr
AND kl.prs_link_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-afdeling niet gelinkt aan actief AD-contract',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a --, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
--AND a.prs_afdeling_key = ap.prs_afdeling_key
--AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) <
LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot >
TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.prs_afdeling_key_eig = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-afdeling gelinkt aan >1 actief AD-contract',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a, cnt_v_aanwezigcontract c1
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = c1.prs_afdeling_key_eig
AND c1.ins_discipline_key IN (1841, 1842)
AND TRUNC (c1.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c1.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c1.cnt_contract_status = 0 -- Definitief
AND EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c2
WHERE c2.ins_discipline_key IN (1841, 1842)
AND TRUNC (c2.cnt_contract_looptijd_van) <
LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c2.cnt_contract_looptijd_tot >
TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c2.cnt_contract_status = 0 -- Definitief
AND c2.ins_discipline_key = c1.ins_discipline_key
AND c2.prs_afdeling_key_eig =
c1.prs_afdeling_key_eig
AND c2.cnt_contract_key != c1.cnt_contract_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-relatie niet gelinkt aan H-afdeling',
b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE b.prs_overeenkomst_nr IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde =
b.prs_overeenkomst_nr)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-relatie niet gelinkt aan actief AD-contract',
b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b
WHERE EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde =
b.prs_overeenkomst_nr)
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) <
LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot >
TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-relatie gelinkt aan >1 actief AD-contract',
b.prs_bedrijf_naam
FROM prs_v_aanwezigbedrijf b, cnt_v_aanwezigcontract c1
WHERE b.prs_bedrijf_key = c1.cnt_prs_bedrijf_key
AND c1.ins_discipline_key IN (1841, 1842)
AND TRUNC (c1.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c1.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c1.cnt_contract_status = 0 -- Definitief
AND EXISTS
(SELECT 1
FROM prs_afdeling a, prs_v_aanwezigkenmerklink kl
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde =
b.prs_overeenkomst_nr)
AND EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c2
WHERE c2.ins_discipline_key IN (1841, 1842)
AND TRUNC (c2.cnt_contract_looptijd_van) <
LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c2.cnt_contract_looptijd_tot >
TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c2.cnt_contract_status = 0 -- Definitief
AND c2.ins_discipline_key = c1.ins_discipline_key
AND c2.prs_afdeling_key_eig =
c1.prs_afdeling_key_eig
AND c2.cnt_contract_key != c1.cnt_contract_key)
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'Actief AD-contract incorrect gelinkt aan huurder',
c.cnt_contract_nummer_intern
|| DECODE (c.cnt_contract_versie,
NULL, '',
'.' || c.cnt_contract_versie)
FROM cnt_v_aanwezigcontract c,
prs_v_afdeling_boom ab,
prs_v_aanwezigkenmerklink kl,
prs_bedrijf b
WHERE c.ins_discipline_key IN (1841, 1842)
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin te factureren maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.prs_afdeling_key_eig = ab.prs_afdeling_key(+)
AND ab.prs_bedrijf_key(+) = 22 -- Huurders
AND c.prs_afdeling_key_eig = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau(+) = 'A'
AND kl.prs_kenmerk_key(+) = 1001 -- Debiteurnummer
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key(+)
AND kl.prs_kenmerklink_waarde != b.prs_overeenkomst_nr
UNION ALL
SELECT DISTINCT
'Add. Diensten',
'H-afdeling niet dezelfde naam als gelinkte H-relatie',
a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a,
prs_v_aanwezigkenmerklink kl,
prs_v_aanwezigbedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_bedrijf_key = 22 -- Huurders
AND a.prs_afdeling_parentkey IS NULL
AND a.prs_afdeling_key = kl.prs_link_key(+)
AND kl.prs_kenmerklink_niveau = 'A'
AND kl.prs_kenmerk_key = 1001 -- Debiteurnummer
AND kl.prs_kenmerklink_waarde = b.prs_overeenkomst_nr
AND UPPER (a.prs_afdeling_omschrijving) !=
TRIM (b.prs_bedrijf_naam_upper)
UNION ALL
SELECT 'Uitvoerenden',
'UV-afdeling leeg',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT 'Uitvoerenden',
'UV-afdeling zonder logins',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE p.prs_afdeling_key = a.prs_afdeling_key)
AND NOT EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2)
IS NOT NULL
AND p.prs_afdeling_key = a.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Uitvoerenden',
'UV-afdeling met logins niet gelinkt aan UV-relatie',
a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving
FROM prs_afdeling a, prs_v_aanwezigperslid ap
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = ap.prs_afdeling_key
AND COALESCE (ap.prs_perslid_oslogin, ap.prs_perslid_oslogin2)
IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp,
prs_bedrijf b,
prs_perslid p
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ap.prs_afdeling_key)
UNION ALL
SELECT DISTINCT
'Uitvoerenden',
'UV-afdeling gelinkt aan UV-relatie via persoon zonder login',
a.prs_afdeling_naam
|| '-'
|| a.prs_afdeling_omschrijving
|| '/'
|| p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2)
IS NULL
AND EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT DISTINCT
'Uitvoerenden',
'UV-relatie gelinkt aan UV-afdeling via verwijderde persoon',
a.prs_afdeling_naam
|| '-'
|| a.prs_afdeling_omschrijving
|| '/'
|| cp.prs_contactpersoon_naam
FROM prs_afdeling a,
prs_perslid p,
prs_contactpersoon cp,
prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_verwijder IS NOT NULL
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
UNION ALL
SELECT DISTINCT
'Uitvoerenden',
'UV-afdeling niet dezelfde naam als gelinkte UV-relatie',
a.prs_afdeling_omschrijving || ' <> ' || b.prs_bedrijf_naam
FROM prs_afdeling a,
prs_perslid p,
prs_contactpersoon cp,
prs_bedrijf b
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = cp.prs_perslid_key
AND cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND UPPER (a.prs_afdeling_omschrijving) !=
TRIM (b.prs_bedrijf_naam_upper);
/*
UNION ALL
SELECT '***UV-account niet gelinkt aan UV-relatie met RELUSE-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
AND EXISTS
(SELECT 1
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.fac_groep_key = gr.fac_groep_key
AND gr.fac_functie_key IN (43, 462) -- RELMAN/RELUSE
AND gg.prs_perslid_key = p.prs_perslid_key)
UNION ALL
SELECT '***UV-account niet gelinkt aan UV-relatie met ORDxxx-rechten', a.prs_afdeling_naam || '-' || a.prs_afdeling_omschrijving || '/' || p.prs_perslid_naam
FROM prs_afdeling a, prs_v_aanwezigperslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_parentkey = 23 -- UV
AND a.prs_afdeling_key = p.prs_afdeling_key
AND COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2) IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM prs_contactpersoon cp, prs_bedrijf b
WHERE cp.prs_contactpersoon_verwijder IS NULL
AND cp.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_verwijder IS NULL
AND cp.prs_perslid_key = p.prs_perslid_key)
AND EXISTS
(SELECT 1
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.fac_groep_key = gr.fac_groep_key
AND gr.fac_functie_key IN (31, 32, 34, 35, 242) -- ORDBOF/ORDBO2/ORDSUP/ORDFIN/ORDAFR
AND gg.prs_perslid_key = p.prs_perslid_key);
*/
CREATE OR REPLACE VIEW blcc_v_rap_fact_delta_actual
AS
SELECT DISTINCT
debiteur_nr || po_nr || regel sortering,
cnt_contract_nummer_intern,
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
opp_old,
opp_new,
opp_delta,
bruto_old,
bruto_new,
bruto_delta,
DECODE (opp_delta + bruto_delta, 0, NULL, 'X') mutatievlag
FROM (SELECT COALESCE (y.cnt_contract_nummer_intern,
'*' || x.cnt_contract_nummer_intern)
cnt_contract_nummer_intern,
DECODE (
x.cnt_contract_versie, -- Is altijd een versie!
y.cnt_contract_versie, x.cnt_contract_versie,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.cnt_contract_versie,
'***GEWIJZIGD: '
|| COALESCE (x.cnt_contract_versie, '<LEEG>')))
cnt_contract_versie,
DECODE (
x.prs_debiteur_naam, -- Is altijd een debiteur_naam!
y.prs_debiteur_naam, x.prs_debiteur_naam,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.prs_debiteur_naam,
'***GEWIJZIGD: '
|| COALESCE (x.prs_debiteur_naam, '<LEEG>')))
prs_debiteur_naam,
DECODE (
x.debiteur_nr, -- Niet altijd een debiteur_nr!
y.debiteur_nr, x.debiteur_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.debiteur_nr,
'***GEWIJZIGD: '
|| COALESCE (x.debiteur_nr, '<LEEG>')))
debiteur_nr,
DECODE (
x.po_nr, -- Niet altijd een PO-nr!
y.po_nr, x.po_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.po_nr,
'***GEWIJZIGD: ' || COALESCE (x.po_nr, '<LEEG>')))
po_nr,
DECODE (
x.regel, -- Is altijd een regel!
y.regel, x.regel,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.regel,
'***GEWIJZIGD: ' || COALESCE (x.regel, '<LEEG>')))
regel,
DECODE (
x.prs_kostenplaats_nr, -- Is altijd een KP-nr!
y.prs_kostenplaats_nr, x.prs_kostenplaats_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.prs_kostenplaats_nr,
'***GEWIJZIGD: '
|| COALESCE (x.prs_kostenplaats_nr, '<LEEG>')))
prs_kostenplaats_nr,
DECODE (
x.grtboekrek, -- Niet altijd een grootboekrekening!
y.grtboekrek, x.grtboekrek,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.grtboekrek,
'***GEWIJZIGD: '
|| COALESCE (x.grtboekrek, '<LEEG>')))
grtboekrek,
y.opp
opp_old,
x.opp
opp_new,
(COALESCE (x.opp, 0) - COALESCE (y.opp, 0))
opp_delta,
y.bruto
bruto_old,
x.bruto
bruto_new,
(COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0))
bruto_delta
FROM ( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_actual
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) x
LEFT JOIN
( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand) FROM blcc_v_fact_frozen)
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) y
ON x.cnt_contract_nummer_intern =
y.cnt_contract_nummer_intern
--AND x.cnt_contract_versie = y.cnt_contract_versie
--AND x.prs_debiteur_naam = y.prs_debiteur_naam
--AND x.debiteur_nr = y.debiteur_nr
--AND x.po_nr = y.po_nr
AND x.regel = y.regel
UNION
SELECT COALESCE (x.cnt_contract_nummer_intern,
'x' || y.cnt_contract_nummer_intern)
cnt_contract_nummer_intern,
DECODE (
y.cnt_contract_versie, -- Is altijd een versie!
x.cnt_contract_versie, y.cnt_contract_versie,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.cnt_contract_versie,
'***GEWIJZIGD: '
|| COALESCE (x.cnt_contract_versie, '<LEEG>')))
cnt_contract_versie,
DECODE (
y.prs_debiteur_naam, -- Is altijd een debiteur_naam!
x.prs_debiteur_naam, y.prs_debiteur_naam,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.prs_debiteur_naam,
'***GEWIJZIGD: '
|| COALESCE (x.prs_debiteur_naam, '<LEEG>')))
prs_debiteur_naam,
DECODE (
y.debiteur_nr, -- Niet altijd een debiteur_nr!
x.debiteur_nr, y.debiteur_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.debiteur_nr,
'***GEWIJZIGD: '
|| COALESCE (x.debiteur_nr, '<LEEG>')))
debiteur_nr,
DECODE (
y.po_nr, -- Niet altijd een PO-nr!
x.po_nr, y.po_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.po_nr,
'***GEWIJZIGD: ' || COALESCE (x.po_nr, '<LEEG>')))
po_nr,
DECODE (
y.regel, -- Is altijd een regel!
x.regel, y.regel,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.regel,
'***GEWIJZIGD: ' || COALESCE (x.regel, '<LEEG>')))
regel,
DECODE (
y.prs_kostenplaats_nr, -- Is altijd een KP-nr!
x.prs_kostenplaats_nr, y.prs_kostenplaats_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.prs_kostenplaats_nr,
'***GEWIJZIGD: '
|| COALESCE (x.prs_kostenplaats_nr, '<LEEG>')))
prs_kostenplaats_nr,
DECODE (
y.grtboekrek, -- Niet altijd een grootboekrekening!
x.grtboekrek, y.grtboekrek,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.grtboekrek,
'***GEWIJZIGD: '
|| COALESCE (x.grtboekrek, '<LEEG>')))
grtboekrek,
y.opp
opp_old,
x.opp
opp_new,
(COALESCE (x.opp, 0) - COALESCE (y.opp, 0))
opp_delta,
y.bruto
bruto_old,
x.bruto
bruto_new,
(COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0))
bruto_delta
FROM ( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_actual
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) x
RIGHT JOIN
( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand) FROM blcc_v_fact_frozen)
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) y
ON x.cnt_contract_nummer_intern =
y.cnt_contract_nummer_intern
--AND x.cnt_contract_versie = y.cnt_contract_versie
--AND x.prs_debiteur_naam = y.prs_debiteur_naam
--AND x.debiteur_nr = y.debiteur_nr
--AND x.po_nr = y.po_nr
AND x.regel = y.regel);
CREATE OR REPLACE VIEW blcc_v_rap_fact_delta_frozen
AS
SELECT DISTINCT
debiteur_nr || po_nr || regel sortering,
cnt_contract_nummer_intern,
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
opp_old,
opp_new,
opp_delta,
bruto_old,
bruto_new,
bruto_delta,
DECODE (opp_delta + bruto_delta, 0, NULL, 'X') mutatievlag
FROM (SELECT COALESCE (y.cnt_contract_nummer_intern,
'*' || x.cnt_contract_nummer_intern)
cnt_contract_nummer_intern,
DECODE (
x.cnt_contract_versie, -- Is altijd een versie!
y.cnt_contract_versie, x.cnt_contract_versie,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.cnt_contract_versie,
'***GEWIJZIGD: '
|| COALESCE (x.cnt_contract_versie, '<LEEG>')))
cnt_contract_versie,
DECODE (
x.prs_debiteur_naam, -- Is altijd een debiteur_naam!
y.prs_debiteur_naam, x.prs_debiteur_naam,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.prs_debiteur_naam,
'***GEWIJZIGD: '
|| COALESCE (x.prs_debiteur_naam, '<LEEG>')))
prs_debiteur_naam,
DECODE (
x.debiteur_nr, -- Niet altijd een debiteur_nr!
y.debiteur_nr, x.debiteur_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.debiteur_nr,
'***GEWIJZIGD: '
|| COALESCE (x.debiteur_nr, '<LEEG>')))
debiteur_nr,
DECODE (
x.po_nr, -- Niet altijd een PO-nr!
y.po_nr, x.po_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.po_nr,
'***GEWIJZIGD: ' || COALESCE (x.po_nr, '<LEEG>')))
po_nr,
DECODE (
x.regel, -- Is altijd een regel!
y.regel, x.regel,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.regel,
'***GEWIJZIGD: ' || COALESCE (x.regel, '<LEEG>')))
regel,
DECODE (
x.prs_kostenplaats_nr, -- Is altijd een KP-nr!
y.prs_kostenplaats_nr, x.prs_kostenplaats_nr,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.prs_kostenplaats_nr,
'***GEWIJZIGD: '
|| COALESCE (x.prs_kostenplaats_nr, '<LEEG>')))
prs_kostenplaats_nr,
DECODE (
x.grtboekrek, -- Niet altijd een grootboekrekening!
y.grtboekrek, x.grtboekrek,
DECODE (
y.cnt_contract_nummer_intern,
NULL, '*' || x.grtboekrek,
'***GEWIJZIGD: '
|| COALESCE (x.grtboekrek, '<LEEG>')))
grtboekrek,
y.opp
opp_old,
x.opp
opp_new,
(COALESCE (x.opp, 0) - COALESCE (y.opp, 0))
opp_delta,
y.bruto
bruto_old,
x.bruto
bruto_new,
(COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0))
bruto_delta
FROM ( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand) FROM blcc_v_factv2_frozen)
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) x
LEFT JOIN
( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand)
FROM blcc_v_factv2_frozen
WHERE maand <>
(SELECT MAX (maand)
FROM blcc_v_factv2_frozen))
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) y
ON x.cnt_contract_nummer_intern =
y.cnt_contract_nummer_intern
--AND x.cnt_contract_versie = y.cnt_contract_versie
--AND x.prs_debiteur_naam = y.prs_debiteur_naam
--AND x.debiteur_nr = y.debiteur_nr
--AND x.po_nr = y.po_nr
AND x.regel = y.regel
UNION
SELECT COALESCE (x.cnt_contract_nummer_intern,
'x' || y.cnt_contract_nummer_intern)
cnt_contract_nummer_intern,
DECODE (
y.cnt_contract_versie, -- Is altijd een versie!
x.cnt_contract_versie, y.cnt_contract_versie,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.cnt_contract_versie,
'***GEWIJZIGD: '
|| COALESCE (x.cnt_contract_versie, '<LEEG>')))
cnt_contract_versie,
DECODE (
y.prs_debiteur_naam, -- Is altijd een debiteur_naam!
x.prs_debiteur_naam, y.prs_debiteur_naam,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.prs_debiteur_naam,
'***GEWIJZIGD: '
|| COALESCE (x.prs_debiteur_naam, '<LEEG>')))
prs_debiteur_naam,
DECODE (
y.debiteur_nr, -- Niet altijd een debiteur_nr!
x.debiteur_nr, y.debiteur_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.debiteur_nr,
'***GEWIJZIGD: '
|| COALESCE (x.debiteur_nr, '<LEEG>')))
debiteur_nr,
DECODE (
y.po_nr, -- Niet altijd een PO-nr!
x.po_nr, y.po_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.po_nr,
'***GEWIJZIGD: ' || COALESCE (x.po_nr, '<LEEG>')))
po_nr,
DECODE (
y.regel, -- Is altijd een regel!
x.regel, y.regel,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.regel,
'***GEWIJZIGD: ' || COALESCE (x.regel, '<LEEG>')))
regel,
DECODE (
y.prs_kostenplaats_nr, -- Is altijd een KP-nr!
x.prs_kostenplaats_nr, y.prs_kostenplaats_nr,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.prs_kostenplaats_nr,
'***GEWIJZIGD: '
|| COALESCE (x.prs_kostenplaats_nr, '<LEEG>')))
prs_kostenplaats_nr,
DECODE (
y.grtboekrek, -- Niet altijd een grootboekrekening!
x.grtboekrek, y.grtboekrek,
DECODE (
x.cnt_contract_nummer_intern,
NULL, 'x' || y.grtboekrek,
'***GEWIJZIGD: '
|| COALESCE (x.grtboekrek, '<LEEG>')))
grtboekrek,
y.opp
opp_old,
x.opp
opp_new,
(COALESCE (x.opp, 0) - COALESCE (y.opp, 0))
opp_delta,
y.bruto
bruto_old,
x.bruto
bruto_new,
(COALESCE (x.bruto, 0) - COALESCE (y.bruto, 0))
bruto_delta
FROM ( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand) FROM blcc_v_factv2_frozen)
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) x
RIGHT JOIN
( SELECT cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0')
cnt_contract_versie,
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek,
SUM (COALESCE (aantal, 0))
opp,
SUM (mndnet + mndbtw)
bruto
FROM blcc_v_factv2_frozen
WHERE maand =
(SELECT MAX (maand)
FROM blcc_v_factv2_frozen
WHERE maand <>
(SELECT MAX (maand)
FROM blcc_v_factv2_frozen))
GROUP BY cnt_contract_nummer_intern,
COALESCE (cnt_contract_versie, '0'),
prs_debiteur_naam,
debiteur_nr,
po_nr,
regel,
prs_kostenplaats_nr,
grtboekrek) y
ON x.cnt_contract_nummer_intern =
y.cnt_contract_nummer_intern
--AND x.cnt_contract_versie = y.cnt_contract_versie
--AND x.prs_debiteur_naam = y.prs_debiteur_naam
--AND x.debiteur_nr = y.debiteur_nr
--AND x.po_nr = y.po_nr
AND x.regel = y.regel);
-- BLCC#41826: Leegstand
CREATE OR REPLACE VIEW blcc_v_rap_leegstand
AS
SELECT TO_CHAR (x.mnd, 'yyyy-mm') maand,
fp.alg_onrgoed_key,
fp.alg_onrgoed_type,
fp.fin_plaats,
c.prs_bedrijf_naam debiteur,
c.prs_overeenkomst_nr debiteur_nr,
fp.fin_opp,
fp.fin_lhkot,
DECODE (c.cnt_contract_key, NULL, 'Ja', 'Nee') leegstand
FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 13) mnd
FROM DUAL
CONNECT BY LEVEL <= 37) x
LEFT JOIN
(SELECT g.alg_gebouw_key alg_onrgoed_key,
'G' alg_onrgoed_type,
g.alg_gebouw_code
|| DECODE (glhkot.alg_kenmerk_key,
1082, ' / L',
1083, ' / H',
1084, ' / K',
1085, ' / O',
' / T') fin_plaats,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) fin_opp,
DECODE (glhkot.alg_kenmerk_key,
1082, 'L',
1083, 'H',
1084, 'K',
1085, 'O',
'T') fin_lhkot
FROM alg_v_aanweziggebouw g,
alg_v_aanwezigonrgoedkenmerk glhkot
WHERE g.alg_gebouw_code LIKE '%FIN%'
AND g.alg_gebouw_key = glhkot.alg_onrgoed_key
AND glhkot.alg_kenmerk_key IN (1082,
1083,
1084,
1085,
1120) -- LHKOT Oppervlakten
AND glhkot.alg_onrgoed_niveau = 'G'
UNION ALL
SELECT v.alg_verdieping_key alg_onrgoed_key,
'V' alg_onrgoed_type,
g.alg_gebouw_code
|| '-'
|| TRIM (v.alg_verdieping_code)
|| DECODE (vlhkot.alg_kenmerk_key,
1092, ' / L',
1093, ' / H',
1094, ' / K',
1095, ' / O',
' / T') fin_plaats,
fac.safe_to_number (alg_onrgoedkenmerk_waarde) fin_opp,
DECODE (vlhkot.alg_kenmerk_key,
1092, 'L',
1093, 'H',
1094, 'K',
1095, 'O',
'T') fin_lhkot
FROM alg_v_aanwezigverdieping v,
alg_gebouw g,
alg_v_aanwezigonrgoedkenmerk vlhkot
WHERE v.alg_verdieping_code LIKE '%FIN%'
AND v.alg_gebouw_key = g.alg_gebouw_key
AND v.alg_verdieping_key = vlhkot.alg_onrgoed_key
AND vlhkot.alg_kenmerk_key IN (1092,
1093,
1094,
1095,
1121) -- LHKOT Oppervlakten
AND vlhkot.alg_onrgoed_niveau = 'V'
UNION ALL
SELECT r.alg_ruimte_key alg_onrgoed_key,
'R' alg_onrgoed_type,
g.alg_gebouw_code
|| '-'
|| v.alg_verdieping_code
|| '-'
|| r.alg_ruimte_nr
|| ' / '
|| ud.fac_usrdata_code fin_plaats,
r.alg_ruimte_opp_alt1 fin_opp,
ud.fac_usrdata_code fin_lhkot
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_v_aanwezigonrgoedkenmerk rlhkot,
fac_usrdata ud
WHERE r.alg_ruimte_nr LIKE 'FIN%'
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = rlhkot.alg_onrgoed_key
AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie
AND rlhkot.alg_onrgoed_niveau = 'R'
AND rlhkot.alg_onrgoedkenmerk_waarde =
TO_CHAR (ud.fac_usrdata_key)) fp -- FIN-plaatsen
ON 1 = 1
LEFT JOIN
(SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cp.cnt_alg_plaats_key,
cp.cnt_alg_plaats_code,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr
FROM cnt_v_aanwezigcontract c,
cnt_kenmerkcontract vsov,
cnt_contract_plaats cp,
prs_bedrijf b
WHERE c.ins_discipline_key = 621 -- Huurcontracten
AND c.cnt_contract_key = vsov.cnt_contract_key
AND vsov.cnt_kenmerkcontract_verwijder IS NULL
AND vsov.cnt_kenmerk_key = 21 -- VSOV
AND vsov.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd telt als geen leegstand!
AND cp.cnt_contract_plaats_verwijder IS NULL
AND c.cnt_contract_key = cp.cnt_contract_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) c
ON x.mnd BETWEEN TRUNC (c.cnt_contract_looptijd_van)
AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND fp.alg_onrgoed_key = c.cnt_alg_plaats_key;
-- BLCC#41827: Rent roll met een per bedrijf/regel/jaar-rij een contractbedrag-
-- kolom (ter pivot in FACILITOR naar een per bedrijf/regel-rij een
-- contractbedrag per jaar-kolom).
CREATE OR REPLACE VIEW blcc_v_rap_rent_roll
AS
SELECT prs_bedrijf_naam huurder,
regel,
lv ingangsdatum_huurovk,
lt einddatum_huurovk,
12 * mndnet_heel rent,
TO_CHAR (maand, 'yyyy') jaar,
SUM (mndnet_deel) totaal -- Regeltotaal per jaar
FROM ( SELECT p.maand,
c.lv,
c.lt,
c.prs_bedrijf_naam,
x.regel,
SUM (ROUND (x.mndnet, 2)) mndnet_heel,
SUM (
ROUND (
( LEAST (TRUNC (c.lt), LAST_DAY (p.maand))
- GREATEST (TRUNC (c.lv), p.maand)
+ 1)
/ (LAST_DAY (p.maand) - p.maand + 1)
* x.mndnet,
2)) mndnet_deel -- Regeltotaal per maand
FROM ( SELECT ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'), LEVEL - 1) maand
FROM DUAL
CONNECT BY ADD_MONTHS (TRUNC (SYSDATE, 'yyyy'),
LEVEL - 1) <=
(SELECT MAX (
TRUNC (cnt_contract_looptijd_tot,
'mm'))
FROM cnt_v_aanwezigcontract c,
cnt_kenmerkcontract vsov
WHERE c.cnt_contract_status = 0 -- Definitief
AND c.ins_discipline_key IN (621,
721,
722,
724) -- Huurcontracten+PP/CV+Utility infra/voorz+General infra/voorz
AND c.cnt_contract_key =
vsov.cnt_contract_key
AND vsov.cnt_kenmerkcontract_verwijder
IS NULL
AND vsov.cnt_kenmerk_key = 21 -- VSOV
AND vsov.cnt_kenmerkcontract_waarde =
'454')) p -- ALLEEN Verhuurd!
LEFT JOIN
(SELECT c.cnt_contract_key,
c.cnt_contract_looptijd_van lv,
c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_naam
FROM cnt_v_aanwezigcontract c,
cnt_kenmerkcontract vsov,
prs_bedrijf b
WHERE c.cnt_contract_status = 0 -- Definitief
AND c.ins_discipline_key = 621 -- Huurcontracten
AND c.cnt_contract_key = vsov.cnt_contract_key
AND vsov.cnt_kenmerkcontract_verwijder IS NULL
AND vsov.cnt_kenmerk_key = 21 -- VSOV
AND vsov.cnt_kenmerkcontract_waarde = '454' -- ALLEEN Verhuurd!
--AND c.cnt_prs_bedrijf_key = 11207 -- Arlanxeo (om te testen)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
UNION ALL
SELECT c.cnt_contract_key,
c.cnt_contract_looptijd_van lv,
c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_naam
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.cnt_contract_status = 0 -- Definitief
AND c.ins_discipline_key IN (721, 722, 724) -- PP/CV+Utility infra/voorz+General infra/voorz
--AND c.cnt_prs_bedrijf_key = 11207 -- Arlanxeo (om te testen)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) c
ON p.maand BETWEEN TRUNC (c.lv, 'mm')
AND TRUNC (c.lt, 'mm')
LEFT JOIN
(SELECT x.cnt_contract_key, -- M2 feitelijk!
'Campus Rent' regel,
( (100 - COALESCE (x.cnt_contract_korting, 0))
/ 100)
* ( ( COALESCE (
fac.safe_to_number (
COALESCE (
glo.alg_onrgoedkenmerk_waarde,
vlo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'481', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (ltar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gho.alg_onrgoedkenmerk_waarde,
vho.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'482', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (htar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gko.alg_onrgoedkenmerk_waarde,
vko.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'483', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (ktar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
goo.alg_onrgoedkenmerk_waarde,
voo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'484', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (otar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gto.alg_onrgoedkenmerk_waarde,
vto.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'561', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (ttar.fac_usrdata_prijs / 12, 0))) mndnet -- Netto maandbedrag (incl. kortingspercentage)
FROM (SELECT c.cnt_contract_key, c.cnt_contract_korting
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 621) x -- Huurcontracten
LEFT JOIN cnt_kenmerkcontract tt_kc
ON x.cnt_contract_key =
tt_kc.cnt_contract_key
AND tt_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON tt_kc.cnt_kenmerkcontract_waarde =
TO_CHAR (tt_ud.fac_usrdata_key)
LEFT JOIN fac_v_aanwezigusrdata ltar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ltar.fac_usrtab_key)
AND ltar.fac_usrdata_code = 'L' -- L-Tarief
LEFT JOIN fac_v_aanwezigusrdata htar
ON tt_ud.fac_usrdata_code =
TO_CHAR (htar.fac_usrtab_key)
AND htar.fac_usrdata_code = 'H' -- H-Tarief
LEFT JOIN fac_v_aanwezigusrdata ktar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ktar.fac_usrtab_key)
AND ktar.fac_usrdata_code = 'K' -- K-Tarief
LEFT JOIN fac_v_aanwezigusrdata otar
ON tt_ud.fac_usrdata_code =
TO_CHAR (otar.fac_usrtab_key)
AND otar.fac_usrdata_code = 'O' -- O-Tarief
LEFT JOIN fac_v_aanwezigusrdata ttar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ttar.fac_usrtab_key)
AND ttar.fac_usrdata_code = 'T' -- T-Tarief
LEFT JOIN cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key =
ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code IN
('G', 'V', 'R')
LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo
ON ccp.cnt_alg_plaats_key =
glo.alg_onrgoed_key
AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte
AND glo.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho
ON ccp.cnt_alg_plaats_key =
gho.alg_onrgoed_key
AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte
AND gho.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko
ON ccp.cnt_alg_plaats_key =
gko.alg_onrgoed_key
AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte
AND gko.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo
ON ccp.cnt_alg_plaats_key =
goo.alg_onrgoed_key
AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte
AND goo.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto
ON ccp.cnt_alg_plaats_key =
gto.alg_onrgoed_key
AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte
AND gto.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo
ON ccp.cnt_alg_plaats_key =
vlo.alg_onrgoed_key
AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte
AND vlo.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho
ON ccp.cnt_alg_plaats_key =
vho.alg_onrgoed_key
AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte
AND vho.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko
ON ccp.cnt_alg_plaats_key =
vko.alg_onrgoed_key
AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte
AND vko.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo
ON ccp.cnt_alg_plaats_key =
voo.alg_onrgoed_key
AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte
AND voo.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto
ON ccp.cnt_alg_plaats_key =
vto.alg_onrgoed_key
AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte
AND vto.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot
ON ccp.cnt_alg_plaats_key =
rlhkot.alg_onrgoed_key
AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie
AND rlhkot.alg_onrgoed_niveau = 'R'
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key
UNION ALL -- M2 correctie!
SELECT x.cnt_contract_key,
'Campus Rent' regel,
( (100 - COALESCE (x.cnt_contract_korting, 0))
/ 100)
* ( ( COALESCE (
fac.safe_to_number (
clo.cnt_kenmerkcontract_waarde),
0)
* COALESCE (ltar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
cho.cnt_kenmerkcontract_waarde),
0)
* COALESCE (htar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
cko.cnt_kenmerkcontract_waarde),
0)
* COALESCE (ktar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
coo.cnt_kenmerkcontract_waarde),
0)
* COALESCE (otar.fac_usrdata_prijs / 12, 0))
+ ( COALESCE (
fac.safe_to_number (
cto.cnt_kenmerkcontract_waarde),
0)
* COALESCE (ttar.fac_usrdata_prijs / 12, 0))) mndnet -- Netto maandbedrag (incl. kortingspercentage)
FROM (SELECT c.cnt_contract_key, c.cnt_contract_korting
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 621) x -- Huurcontracten
LEFT JOIN cnt_kenmerkcontract tt_kc
ON x.cnt_contract_key =
tt_kc.cnt_contract_key
AND tt_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON tt_kc.cnt_kenmerkcontract_waarde =
TO_CHAR (tt_ud.fac_usrdata_key)
LEFT JOIN fac_v_aanwezigusrdata ltar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ltar.fac_usrtab_key)
AND ltar.fac_usrdata_code = 'L' -- L-Tarief
LEFT JOIN fac_v_aanwezigusrdata htar
ON tt_ud.fac_usrdata_code =
TO_CHAR (htar.fac_usrtab_key)
AND htar.fac_usrdata_code = 'H' -- H-Tarief
LEFT JOIN fac_v_aanwezigusrdata ktar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ktar.fac_usrtab_key)
AND ktar.fac_usrdata_code = 'K' -- K-Tarief
LEFT JOIN fac_v_aanwezigusrdata otar
ON tt_ud.fac_usrdata_code =
TO_CHAR (otar.fac_usrtab_key)
AND otar.fac_usrdata_code = 'O' -- O-Tarief
LEFT JOIN fac_v_aanwezigusrdata ttar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ttar.fac_usrtab_key)
AND ttar.fac_usrdata_code = 'T' -- T-Tarief
LEFT JOIN cnt_kenmerkcontract clo
ON x.cnt_contract_key =
clo.cnt_contract_key
AND clo.cnt_kenmerkcontract_verwijder
IS NULL
AND clo.cnt_kenmerk_key = 381 -- CL-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cho
ON x.cnt_contract_key =
cho.cnt_contract_key
AND cho.cnt_kenmerkcontract_verwijder
IS NULL
AND cho.cnt_kenmerk_key = 382 -- CH-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cko
ON x.cnt_contract_key =
cko.cnt_contract_key
AND cko.cnt_kenmerkcontract_verwijder
IS NULL
AND cko.cnt_kenmerk_key = 383 -- CK-Oppervlakte
LEFT JOIN cnt_kenmerkcontract coo
ON x.cnt_contract_key =
coo.cnt_contract_key
AND coo.cnt_kenmerkcontract_verwijder
IS NULL
AND coo.cnt_kenmerk_key = 384 -- CO-Oppervlakte
LEFT JOIN cnt_kenmerkcontract cto
ON x.cnt_contract_key =
cto.cnt_contract_key
AND cto.cnt_kenmerkcontract_verwijder
IS NULL
AND cto.cnt_kenmerk_key = 385 -- CT-Oppervlakte
WHERE ( clo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cho.cnt_kenmerkcontract_waarde IS NOT NULL
OR cko.cnt_kenmerkcontract_waarde IS NOT NULL
OR coo.cnt_kenmerkcontract_waarde IS NOT NULL
OR cto.cnt_kenmerkcontract_waarde IS NOT NULL)
UNION ALL -- FES
SELECT x.cnt_contract_key,
'FES' regel,
-1
* ( ( COALESCE (
fac.safe_to_number (
COALESCE (
glo.alg_onrgoedkenmerk_waarde,
vlo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'481', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* (COALESCE (lfes.fac_usrdata_prijs, 0) / 12))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gko.alg_onrgoedkenmerk_waarde,
vko.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'483', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* (COALESCE (kfes.fac_usrdata_prijs, 0) / 12))) mndnet -- Netto maandbedrag (excl. kortingspercentage)
FROM (SELECT c.cnt_contract_key
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 621) x -- Huurcontracten
LEFT JOIN cnt_kenmerkcontract tt_kc
ON x.cnt_contract_key =
tt_kc.cnt_contract_key
AND tt_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON tt_kc.cnt_kenmerkcontract_waarde =
TO_CHAR (tt_ud.fac_usrdata_key)
LEFT JOIN fac_v_aanwezigusrdata lfes
ON tt_ud.fac_usrdata_code =
TO_CHAR (lfes.fac_usrtab_key)
AND lfes.fac_usrdata_code = 'LFES' -- FES-Tarief op L-Oppervlakte
LEFT JOIN fac_v_aanwezigusrdata kfes
ON tt_ud.fac_usrdata_code =
TO_CHAR (kfes.fac_usrtab_key)
AND kfes.fac_usrdata_code = 'KFES' -- FES-Tarief op K-Oppervlakte
LEFT JOIN cnt_kenmerkcontract fes
ON x.cnt_contract_key =
fes.cnt_contract_key
AND fes.cnt_kenmerkcontract_verwijder
IS NULL
AND fes.cnt_kenmerk_key = 42 -- FES-vinkje
LEFT JOIN cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key =
ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code IN
('G', 'V', 'R')
LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo
ON ccp.cnt_alg_plaats_key =
glo.alg_onrgoed_key
AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte
AND glo.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko
ON ccp.cnt_alg_plaats_key =
gko.alg_onrgoed_key
AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte
AND gko.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo
ON ccp.cnt_alg_plaats_key =
vlo.alg_onrgoed_key
AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte
AND vlo.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko
ON ccp.cnt_alg_plaats_key =
vko.alg_onrgoed_key
AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte
AND vko.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk rlhkot
ON ccp.cnt_alg_plaats_key =
rlhkot.alg_onrgoed_key
AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie
AND rlhkot.alg_onrgoed_niveau = 'R'
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key
WHERE fes.cnt_kenmerkcontract_waarde IS NOT NULL
UNION ALL -- CFF Rent
SELECT cnt_contract_key,
'CFF Rent' regel,
-1
* fac_usrdata_prijs
* ( mndopp
- mndfes
- fac.safe_to_number (
cnt_kenmerkcontract_waarde)) mndnet -- CFF-subsidie * Netto maandbedrag alle meters minus Netto maandbedrag FES-korting minus kortingsbedrag)=CFF Rent
FROM ( SELECT x.cnt_contract_key,
kb_kc.cnt_kenmerkcontract_waarde, -- Netto kortingsbedrag (excl. kortingspercentage)!
ccf_ud.fac_usrdata_prijs, -- CFF-subsidiepercentatie %
SUM (
( ( 100
- COALESCE (
x.cnt_contract_korting,
0))
/ 100)
* ( ( COALESCE (
fac.safe_to_number (
COALESCE (
glo.alg_onrgoedkenmerk_waarde,
vlo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'481', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (
ltar.fac_usrdata_prijs
/ 12,
0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gho.alg_onrgoedkenmerk_waarde,
vho.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'482', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (
htar.fac_usrdata_prijs
/ 12,
0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gko.alg_onrgoedkenmerk_waarde,
vko.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'483', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (
ktar.fac_usrdata_prijs
/ 12,
0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
goo.alg_onrgoedkenmerk_waarde,
voo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'484', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (
otar.fac_usrdata_prijs
/ 12,
0))
+ ( COALESCE (
fac.safe_to_number (
COALESCE (
gto.alg_onrgoedkenmerk_waarde,
vto.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'561', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0))
* COALESCE (
ttar.fac_usrdata_prijs
/ 12,
0)))) mndopp, -- Netto maandbedrag alle meters (incl. kortingspercentage)
SUM (
( DECODE (
fes.cnt_kenmerkcontract_waarde,
NULL, 0,
COALESCE (
fac.safe_to_number (
COALESCE (
glo.alg_onrgoedkenmerk_waarde,
vlo.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'481', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0)))
* COALESCE (
lfes.fac_usrdata_prijs / 12,
0))
+ ( DECODE (
fes.cnt_kenmerkcontract_waarde,
NULL, 0,
COALESCE (
fac.safe_to_number (
COALESCE (
gko.alg_onrgoedkenmerk_waarde,
vko.alg_onrgoedkenmerk_waarde)),
DECODE (
rlhkot.alg_onrgoedkenmerk_waarde,
'483', COALESCE (
rxo.alg_ruimte_opp_alt1,
0),
0)))
* COALESCE (
kfes.fac_usrdata_prijs / 12,
0))) mndfes -- Netto maandbedrag FES-korting (excl. kortingspercentage)
FROM (SELECT c.cnt_contract_key,
c.cnt_contract_korting
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 621) x -- Huurcontracten
LEFT JOIN cnt_kenmerkcontract tt_kc
ON x.cnt_contract_key =
tt_kc.cnt_contract_key
AND tt_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND tt_kc.cnt_kenmerk_key = 23 -- Tarieftabel
LEFT JOIN fac_v_aanwezigusrdata tt_ud
ON tt_kc.cnt_kenmerkcontract_waarde =
TO_CHAR (tt_ud.fac_usrdata_key)
LEFT JOIN fac_v_aanwezigusrdata ltar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ltar.fac_usrtab_key)
AND ltar.fac_usrdata_code = 'L' -- L-Tarief
LEFT JOIN fac_v_aanwezigusrdata htar
ON tt_ud.fac_usrdata_code =
TO_CHAR (htar.fac_usrtab_key)
AND htar.fac_usrdata_code = 'H' -- H-Tarief
LEFT JOIN fac_v_aanwezigusrdata ktar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ktar.fac_usrtab_key)
AND ktar.fac_usrdata_code = 'K' -- K-Tarief
LEFT JOIN fac_v_aanwezigusrdata otar
ON tt_ud.fac_usrdata_code =
TO_CHAR (otar.fac_usrtab_key)
AND otar.fac_usrdata_code = 'O' -- O-Tarief
LEFT JOIN fac_v_aanwezigusrdata ttar
ON tt_ud.fac_usrdata_code =
TO_CHAR (ttar.fac_usrtab_key)
AND ttar.fac_usrdata_code = 'T' -- T-Tarief
LEFT JOIN cnt_kenmerkcontract kb_kc
ON x.cnt_contract_key =
kb_kc.cnt_contract_key
AND kb_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND kb_kc.cnt_kenmerk_key = 24 -- Kortingsbedrag
LEFT JOIN cnt_kenmerkcontract cff_kc
ON x.cnt_contract_key =
cff_kc.cnt_contract_key
AND cff_kc.cnt_kenmerkcontract_verwijder
IS NULL
AND cff_kc.cnt_kenmerk_key = 44 -- CFF-subsidie
LEFT JOIN fac_v_aanwezigusrdata ccf_ud
ON cff_kc.cnt_kenmerkcontract_waarde =
TO_CHAR (ccf_ud.fac_usrdata_key)
LEFT JOIN
cnt_v_aanwezigcontract_plaats ccp
ON x.cnt_contract_key =
ccp.cnt_contract_key
AND ccp.cnt_alg_plaats_code IN
('G', 'V', 'R')
LEFT JOIN alg_v_aanwezigonrgoedkenmerk glo
ON ccp.cnt_alg_plaats_key =
glo.alg_onrgoed_key
AND glo.alg_kenmerk_key = 1082 -- GL-Oppervlakte
AND glo.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gho
ON ccp.cnt_alg_plaats_key =
gho.alg_onrgoed_key
AND gho.alg_kenmerk_key = 1083 -- GH-Oppervlakte
AND gho.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gko
ON ccp.cnt_alg_plaats_key =
gko.alg_onrgoed_key
AND gko.alg_kenmerk_key = 1084 -- GK-Oppervlakte
AND gko.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk goo
ON ccp.cnt_alg_plaats_key =
goo.alg_onrgoed_key
AND goo.alg_kenmerk_key = 1085 -- GO-Oppervlakte
AND goo.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gto
ON ccp.cnt_alg_plaats_key =
gto.alg_onrgoed_key
AND gto.alg_kenmerk_key = 1120 -- GT-Oppervlakte
AND gto.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vlo
ON ccp.cnt_alg_plaats_key =
vlo.alg_onrgoed_key
AND vlo.alg_kenmerk_key = 1092 -- VL-Oppervlakte
AND vlo.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vho
ON ccp.cnt_alg_plaats_key =
vho.alg_onrgoed_key
AND vho.alg_kenmerk_key = 1093 -- VH-Oppervlakte
AND vho.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vko
ON ccp.cnt_alg_plaats_key =
vko.alg_onrgoed_key
AND vko.alg_kenmerk_key = 1094 -- VK-Oppervlakte
AND vko.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk voo
ON ccp.cnt_alg_plaats_key =
voo.alg_onrgoed_key
AND voo.alg_kenmerk_key = 1095 -- VO-Oppervlakte
AND voo.alg_onrgoed_niveau = 'V'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk vto
ON ccp.cnt_alg_plaats_key =
vto.alg_onrgoed_key
AND vto.alg_kenmerk_key = 1121 -- VT-Oppervlakte
AND vto.alg_onrgoed_niveau = 'V'
LEFT JOIN
alg_v_aanwezigonrgoedkenmerk rlhkot
ON ccp.cnt_alg_plaats_key =
rlhkot.alg_onrgoed_key
AND rlhkot.alg_kenmerk_key = 1100 -- LHKOT Classificatie
AND rlhkot.alg_onrgoed_niveau = 'R'
LEFT JOIN alg_v_aanwezigruimte rxo
ON ccp.cnt_alg_plaats_key =
rxo.alg_ruimte_key
LEFT JOIN fac_v_aanwezigusrdata lfes
ON tt_ud.fac_usrdata_code =
TO_CHAR (lfes.fac_usrtab_key)
AND lfes.fac_usrdata_code = 'LFES' -- FES-Tarief op L-Oppervlakte
LEFT JOIN fac_v_aanwezigusrdata kfes
ON tt_ud.fac_usrdata_code =
TO_CHAR (kfes.fac_usrtab_key)
AND kfes.fac_usrdata_code = 'KFES' -- FES-Tarief op K-Oppervlakte
LEFT JOIN cnt_kenmerkcontract fes
ON x.cnt_contract_key =
fes.cnt_contract_key
AND fes.cnt_kenmerkcontract_verwijder
IS NULL
AND fes.cnt_kenmerk_key = 42 -- FES-vinkje
WHERE COALESCE (
cff_kc.cnt_kenmerkcontract_waarde,
'534') !=
'534' -- NIET Nvt!
GROUP BY x.cnt_contract_key,
kb_kc.cnt_kenmerkcontract_waarde,
ccf_ud.fac_usrdata_prijs)
UNION ALL -- Alle individuele maandbedragen voor 721, 722 en 724!
SELECT c.cnt_contract_key,
'Campus Rent' regel,
SUM (
( ( 100
- COALESCE (c.cnt_contract_korting, 0))
/ 100)
* fac.safe_to_number (
kc.cnt_kenmerkcontract_waarde)) mndnet -- Netto kortingsbedrag (excl. kortingspercentage)!
FROM cnt_v_aanwezigcontract c,
cnt_kenmerkcontract kc,
cnt_kenmerk k,
cnt_srtkenmerk sk
WHERE c.ins_discipline_key IN (721, 722, 724) -- PP/CV+Utility infra/voorz+General infra/voorz
AND c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_key > 60
AND sk.cnt_srtkenmerk_kenmerktype = 'N' -- Numeriek
AND UPPER (sk.cnt_srtkenmerk_dimensie) LIKE
'%P.MND.%'
GROUP BY c.cnt_contract_key
UNION ALL -- Alle individuele kortingsbedragen (per maand) voor 621, 721, 722 en 724!
SELECT c.cnt_contract_key,
'Campus Rent' regel,
-1
* fac.safe_to_number (
kc.cnt_kenmerkcontract_waarde) mndnet -- Netto kortingsbedrag (excl. kortingspercentage)!
FROM cnt_v_aanwezigcontract c,
cnt_kenmerkcontract kc,
cnt_kenmerk k
WHERE c.ins_discipline_key IN (621,
721,
722,
724) -- Huurcontracten+PP/CV+Utility infra/voorz+General infra/voorz
AND c.cnt_contract_key = kc.cnt_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_srtkenmerk_key = 44 -- Kortingsbedrag
AND kc.cnt_kenmerkcontract_waarde != '0') x
ON c.cnt_contract_key = x.cnt_contract_key
GROUP BY p.maand,
c.lv,
c.lt,
c.prs_bedrijf_naam,
x.regel)
GROUP BY prs_bedrijf_naam,
regel,
lv,
lt,
12 * mndnet_heel,
TO_CHAR (maand, 'yyyy');
CREATE OR REPLACE VIEW blcc_v_huurcontracten -- DEPRECATED per FACTv2!
(
cnt_contract_key,
cnt_contract_id,
cnt_contract_tht
)
AS
--SELECT DISTINCT v.cnt_contract_key,
-- v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || '/' || cd.ins_discipline_omschrijving || ' [' || v.prs_debiteur_naam || ']',
-- NULL
-- FROM blcc_v_fact_actual v, cnt_discipline cd
-- WHERE v.sortering = TO_CHAR (cd.ins_discipline_key)
--UNION
SELECT DISTINCT cnt_contract_key,
v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || '/' || cd.ins_discipline_omschrijving || ' [' || v.prs_debiteur_naam || ']',
ADD_MONTHS (v.lv, 2)
FROM blcc_v_fact_frozen v, cnt_discipline cd
WHERE v.sortering = TO_CHAR (cd.ins_discipline_key);
CREATE OR REPLACE VIEW blcc_v_verkoopfactuurref
(
fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_tht
)
AS
SELECT vf.fin_verkoopfactuurkop_key,
vf.fin_verkoopfactuur_id
|| '/' || DECODE (c.cnt_contract_key, NULL, vf.fin_verkoopfactuur_c2, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'))
|| ' [' || vf.prs_debiteur_naam || ']'
fin_verkoopfactuur_id,
vf.tht
FROM (SELECT DISTINCT
fin_verkoopfactuurkop_key,
fin_verkoopfactuur_id,
fin_verkoopfactuur_c2,
prs_debiteur_naam,
LAST_DAY (ADD_MONTHS (fin_verkoopfactuur_datum, 24)) tht,
fin_verkoopfactuur_xmlnode,
fin_verkoopfactuur_refkey
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_datum > TO_DATE ('01122019', 'ddmmyyyy')) vf
LEFT JOIN
cnt_contract c
ON vf.fin_verkoopfactuur_xmlnode = 'contract'
AND vf.fin_verkoopfactuur_refkey = c.cnt_contract_key;
CREATE OR REPLACE VIEW blcc_v_kostenplaats
(
prs_kostenplaats_key,
prs_kostenplaats_id,
prs_kostenplaats_tht
)
AS
SELECT prs_kostenplaats_key,
prs_kostenplaats_nr || ' [' || prs_kostenplaats_omschrijving || ']'
prs_kostenplaats_id,
COALESCE (prs_kostenplaats_verwijder, prs_kostenplaats_eind) tht
FROM prs_kostenplaats
WHERE 1 = 1;
CREATE OR REPLACE VIEW blcc_v_kostensoort
(
prs_kostensoort_key, -- LET OP: Geen echte key (bah, had ik anders moeten noemen)!
prs_kostensoort_id,
prs_kostensoort_tht
)
AS
SELECT fac.safe_to_number (prs_kostensoort_oms) prs_kostensoort_key,
MIN (prs_kostensoort_oms || ' [' || prs_kostensoort_opmerking || ']')
prs_kostensoort_id,
MAX (prs_kostensoort_verwijder) tht
FROM prs_kostensoort
WHERE prs_kostensoortgrp_key = 141 -- Dynamics
--AND LENGTH (prs_kostensoort_oms) = 6 -- Zou moeten
AND fac.safe_to_number (prs_kostensoort_oms) IS NOT NULL -- Numeriek
GROUP BY fac.safe_to_number (prs_kostensoort_oms)
UNION
SELECT fac.safe_to_number (prs_kostensoort_oms) prs_kostensoort_key,
MIN (prs_kostensoort_oms || ' [' || prs_kostensoort_opmerking || ']')
prs_kostensoort_id,
fac.safe_to_date ('01-11-2024', 'dd-mm-yyyy') tht
FROM prs_kostensoort
WHERE prs_kostensoortgrp_key != 141 -- Dynamics
--AND LENGTH (prs_kostensoort_oms) = 4 -- Zou moeten
AND fac.safe_to_number (prs_kostensoort_oms) IS NOT NULL -- Numeriek
GROUP BY fac.safe_to_number (prs_kostensoort_oms)
UNION
SELECT DISTINCT
fac.safe_to_number (vf.prs_kostensoort_oms) prs_kostensoort_key,
vf.prs_kostensoort_oms || ' [' || ks.prs_kostensoort_opmerking || ']'
prs_kostensoort_id,
fac.safe_to_date ('01-11-2024', 'dd-mm-yyyy') tht
FROM fin_verkoopfactuur vf, prs_kostensoort ks
WHERE vf.fin_verkoopfactuur_datum > TO_DATE ('01122019', 'ddmmyyyy')
AND fac.safe_to_number (vf.prs_kostensoort_oms) IS NOT NULL -- Numeriek
AND vf.prs_kostensoort_oms = ks.prs_kostensoort_oms(+)
AND NOT EXISTS
(SELECT 1
FROM prs_kostensoort
WHERE fac.safe_to_number (prs_kostensoort_oms) = fac.safe_to_number (vf.prs_kostensoort_oms))
;
CREATE OR REPLACE VIEW blcc_v_debiteur
(
prs_bedrijf_key,
prs_bedrijf_id,
prs_bedrijf_verwijder
)
AS
SELECT prs_bedrijf_key,
prs_bedrijf_naam || ' [' || prs_overeenkomst_nr || ']',
prs_bedrijf_verwijder
FROM prs_bedrijf
WHERE (prs_bedrijf_intern != 1 or prs_bedrijf_intern IS NULL)
AND prs_overeenkomst_nr IS NOT NULL;
CREATE OR REPLACE VIEW blcc_v_verkoopcontractref
(
cnt_contract_key,
cnt_contract_id,
cnt_contract_tht
)
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
|| '/' || cd.ins_discipline_omschrijving
|| ' [' || b.prs_bedrijf_naam || ']',
LAST_DAY (ADD_MONTHS (c.cnt_contract_looptijd_tot, 12))
FROM cnt_v_aanwezigcontract c, cnt_discipline cd, prs_bedrijf b
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND (cd.ins_discipline_key IN (1841, 1842, 3441) -- Additionele diensten (Vergadervoorzieningen)/Additionele diensten (Klantwensen)/Research project
OR EXISTS
(SELECT 1
FROM fac_usrdata
WHERE fac_usrtab_key = 621 -- Entiteit fact.
AND fac.safe_to_number (fac_usrdata_code) = cd.ins_discipline_key))
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key;
-- BLCC#51200: Indexatie per 2019!
-- BLCC#64393: Allocatiemodel/Velden op 0 en indexatie per 2021!
-- BLCC#69650: Indexatie per 2022 (Lease Agreement/SLA Managed Connectivity/Steam Facility)!
CREATE OR REPLACE PROCEDURE blcc_export_indexwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
CURSOR ccnt (p_splitsindexdatum DATE)
IS
SELECT '[' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || '] '
aanduiding,
c.ins_discipline_key,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_tot einddatum
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key IN (2122, 2185, 2261) -- Lease Agreement/SLA Managed Connectivity/Steam Facility
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_looptijd_tot > TRUNC (ADD_MONTHS (SYSDATE, 12), 'yyyy') -- Einddatum in 2022 of later!
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
AND c.cnt_contract_looptijd_tot > p_splitsindexdatum
ORDER BY TO_NUMBER (c.cnt_contract_nummer_intern);
--c_index_percentage NUMBER := 0.0; -- Default/standaard in 2019: 1,0%!
c_splitsindexdatum DATE := TO_DATE ('01012022', 'ddmmyyyy');
v_errorhint VARCHAR2 (1000) := '';
v_errormsg VARCHAR2 (1000) := '';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_new_contract_key NUMBER;
BEGIN
-- Splitsen en indexeren (huur)contracten.
FOR rc IN ccnt (c_splitsindexdatum)
LOOP
BEGIN
v_errorhint := 'Fout splitsen contract.';
cnt.splitscontract (rc.cnt_contract_key, c_splitsindexdatum, NULL, NULL);
COMMIT;
-- Na splitsen de nieuwe versie indexeren.
v_errorhint := 'Fout bepalen nieuwe versie.';
SELECT cnt_contract_key
INTO v_new_contract_key
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = rc.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (rc.cnt_contract_versie, '0');
v_errorhint := 'Fout bijwerken velden.';
IF rc.ins_discipline_key = 2122 -- Lease Agreement
THEN
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
kc.cnt_kenmerkcontract_waarde cur_waarde,
DECODE (k.cnt_kenmerk_key,
567, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2),
570, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2),
573, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2),
576, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2),
579, ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2),
0) new_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE kc.cnt_contract_key = v_new_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_kenmerktype = 'N'
AND k.cnt_kenmerk_key IN (567, 570, 573, 576, 579) -- Contracttarief H+K+L+O+T
ORDER BY k.cnt_kenmerk_volgnummer)
LOOP
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
v_errorhint := 'Fout bijwerken tracking (CNTUPD).';
fac.trackaction ('CNTUPD', v_new_contract_key, NULL, NULL, 'Contracttarieven ge<67>ndexeerd (1,9%)');
COMMIT;
ELSIF rc.ins_discipline_key = 2185 -- SLA Managed Connectivity
THEN
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
kc.cnt_kenmerkcontract_waarde cur_waarde,
ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2)
new_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE kc.cnt_contract_key = v_new_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_kenmerktype = 'N'
AND k.cnt_kenmerk_key IN (637) -- Managed Connectivity (jaarbedrag)
ORDER BY k.cnt_kenmerk_volgnummer)
LOOP
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
v_errorhint := 'Fout bijwerken tracking (CNTUPD).';
fac.trackaction ('CNTUPD', v_new_contract_key, NULL, NULL, 'Jaarbedrag ge<67>ndexeerd (1,9%)');
COMMIT;
ELSIF rc.ins_discipline_key = 2261 -- SLA Steam Facility
THEN
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
kc.cnt_kenmerkcontract_waarde cur_waarde,
ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.9) / 100), 2)
new_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE kc.cnt_contract_key = v_new_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_kenmerktype = 'N'
AND k.cnt_kenmerk_key IN (781) -- Fixed Fee steam facility (jaarbedrag)
ORDER BY k.cnt_kenmerk_volgnummer)
LOOP
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
v_errorhint := 'Fout bijwerken tracking (CNTUPD).';
fac.trackaction ('CNTUPD', v_new_contract_key, NULL, NULL, 'Jaarbedrag ge<67>ndexeerd (1,9%)');
COMMIT;
/*
ELSIF rc.ins_discipline_key = 2381 -- SLA Generiek CV
THEN
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
kc.cnt_kenmerkcontract_waarde cur_waarde,
ROUND (fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) * ((100 + 1.4) / 100), 2)
new_waarde
FROM cnt_kenmerkcontract kc, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE kc.cnt_contract_key = v_new_contract_key
AND kc.cnt_kenmerkcontract_verwijder IS NULL
AND kc.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.cnt_srtkenmerk_kenmerktype = 'N'
AND k.cnt_kenmerk_key IN (821) -- Maandbedrag (excl. BTW)
ORDER BY k.cnt_kenmerk_volgnummer)
LOOP
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
v_errorhint := 'Fout bijwerken tracking (CNTUPD).';
fac.trackaction ('CNTUPD', v_new_contract_key, NULL, NULL, 'Maandbedrag ge<67>ndexeerd (1,4%)');
COMMIT;
*/
END IF;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'W', rc.aanduiding || v_errormsg, v_errorhint);
COMMIT;
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', 'Proces INDEXWERK afgebroken! ' || v_errormsg, v_errorhint);
END;
/
CREATE OR REPLACE VIEW blcc_v_rap_vastgoedgeg
AS
WITH ok AS (SELECT k.vnr, k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, ok.alg_onrgoed_key, ok.waarde, ok.alg_gebouw_key
FROM (SELECT ROWNUM vnr, alg_kenmerk_key, alg_kenmerk_omschrijving
FROM ( SELECT k.alg_kenmerk_key, k.alg_kenmerk_omschrijving, k.alg_kenmerk_aanmaak
FROM alg_kenmerk k
WHERE k.alg_kenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
AND k.alg_kenmerk_key NOT BETWEEN 1060 AND 1161 -- Dienstverlener/Rekenwijze M2/LHKOT-Oppervlakten/Eigenaar/Bouwjaar/Strategie
AND k.alg_kenmerk_key NOT IN
(1020, -- Strukton gebouwcode
1040, -- Uitzonderingen
1205, -- Voorschot Collective Services L
1206, -- Voorschot Collective Services H
1207, -- Voorschot Collective Services K
1208, -- Voorschot Collective Services O
1209, -- Voorschot Collective Services T
1240, -- C-oppervlakte (op Gebouw)
1243, -- Voorschot Collective Services C
1260, -- C-oppervlakte (op Verdieping)
1280, -- Schoonmaak
1300, -- Staat ruimte
1302, -- Binnenzonwering
1320, -- Buitenzonwering
1321, -- Meubilair
1340, -- Afvoer
1341, -- Datapunten
1342, -- WiFi
1344, -- Startup loft
1361, -- Schoonmaak binnenglas
1362, -- Aantal M2 binnenglas
1363, -- Schoonmaak gevelglas
1380, -- WiFi
1400, -- Status optie
1421, -- Schoonmaak separatieglas
1440, -- Adres
1441, -- Kadastraal perceel
1460, -- NVO schoonmaak (m2)
1567, -- Energielabel [R]
1940) -- Gebouwcluster
AND k.alg_kenmerk_key NOT BETWEEN 1981 AND 2181 -- Naam huisbaas t/m Geldig t/m
AND k.alg_kenmerk_key NOT BETWEEN 2320 AND 2348 -- Aardgas t/m Elektriciteit 400V
AND COALESCE (k.alg_kenmerk_verwijder, SYSDATE) > TO_DATE ('01122019', 'ddmmyyyy')
AND k.alg_kenmerk_niveau IN ('G', 'V', 'R')
ORDER BY 3, 1)) k
LEFT JOIN
(SELECT ok.alg_kenmerk_key, ok.alg_onrgoed_key,
DECODE (k.alg_kenmerk_kenmerktype,
'R', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde),
'S', fac.getdomeinwaarde (k.fac_kenmerkdomein_key, ok.alg_onrgoedkenmerk_waarde),
ok.alg_onrgoedkenmerk_waarde)
waarde,
aog.alg_gebouw_key
FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k, alg_v_allonroerendgoed aog
WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_verwijder IS NULL
AND k.alg_kenmerk_niveau IN ('G', 'V', 'R')
AND ok.alg_onrgoed_key = aog.alg_onroerendgoed_keys) ok
ON k.alg_kenmerk_key = ok.alg_kenmerk_key)
SELECT x.alg_locatie_key,
x.alg_regio_omschrijving regionaam,
x.alg_district_omschrijving districtnaam,
(SELECT fac_usrdata_code FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (gc.alg_onrgoedkenmerk_waarde)) gebouwclustercode,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (gc.alg_onrgoedkenmerk_waarde)) gebouwclusternaam,
x.alg_onrgoed_key,
x.alg_onrgoed_type,
x.alg_gebouw_code gebouwcode,
x.alg_verdieping_volgnr verdiepingvolgnr,
x.alg_verdieping_code verdiepingcode,
x.alg_srtruimte_omschrijving ruimtefunctie,
x.alg_ruimte_nr ruimtenummer,
x.alg_ruimte_omschrijving ruimteomschrijving,
x.alg_ruimte_opmerking ruimteopmerking,
x.vvo,
x.bvo nvo, -- BVO hernoemt naar NVO!!!
x.lhkotc_class,
c.contract,
pf1.prs_perslid_naam_full gebouwverantw1,
pf2.prs_perslid_naam_full gebouwverantw2,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (eig.alg_onrgoedkenmerk_waarde)) eigenaar,
sg.alg_srtgebouw_omschrijving gebouwfunctie,
SUBSTR (bouwjaar.alg_onrgoedkenmerk_waarde, 7, 10) bouwjaar,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (strategie.alg_onrgoedkenmerk_waarde)) strategie,
lc.last_change last_change,
k1.waarde std_tar_l,
k2.waarde std_tar_h,
k3.waarde std_tar_k,
k4.waarde std_tar_o,
k5.waarde std_tar_t,
k6.waarde ozb_tar_l, -- Weg???
k7.waarde ozb_tar_h, -- Weg???
k8.waarde ozb_tar_k, -- Weg???
k9.waarde ozb_tar_o, -- Weg???
k10.waarde ozb_tar_t, -- Weg???
k11.waarde vs_ut_l,
k12.waarde vs_ut_h,
k13.waarde vs_ut_k,
k14.waarde vs_ut_o,
k15.waarde vs_ut_t,
k16.waarde fes_l,
k17.waarde fes_h,
k18.waarde fes_k,
k19.waarde fes_o,
k20.waarde fes_t,
k21.waarde std_tar_c,
k22.waarde ozb_tar_c, -- Weg???
k23.waarde vs_ut_c,
k24.waarde fes_c,
k25.waarde type_vloer,
k26.waarde opmerkingen_bd, -- Voorheen: Comments
k27.waarde oppervlak_gevelglas, -- Voorheen: Opp_Gevgl
k28.waarde oppervlak_binnenglas, -- Voorheen: Opp_Bingl
k29.waarde oppervlak_separatieglas, -- Voorheen: Opp_Sepgl
k30.waarde vergunning, -- Voorheen: Ruimtefunctie2
k31.waarde wandafw_details, -- Voorheen: Wandafw
k32.waarde type_wand,
k33.waarde vloerbelasting, -- Voorheen: Vloerbel
k34.waarde plafondafwerking, -- Voorheen: Plafond
k35.waarde vloerafw_details, -- Voorheen: Vloerafw
k36.waarde sch_tarief_basic, -- Voorheen: Schtar_Basic
k37.waarde sch_tarief_premium, -- Voorheen: Schtar_Prem
k38.waarde sch_tarief_excellent, -- Voorheen: Schtar_Exc
k39.waarde open_offertes,
k40.waarde utl_gasaansl,
k41.waarde ict_voorz,
k42.waarde plafondhoogte,
k43.waarde vloer_waterkerend, -- Voorheen: Vloer_Waterk
k44.waarde op_termijn_beschikbaar, -- Voorheen: Op_Term_Bes
k45.waarde hfd_gasaansl,
k46.waarde in_expl_dat,
k47.waarde uit_expl_dat,
k48.waarde mensdichtheid, -- Voorheen: Mensdichth
k49.waarde rdr_ruimte,
k50.waarde datum_oplevering, -- Voorheen: Datum_Opl
k51.waarde breeam_score,
k52.waarde gebruiksfunctie, -- Voorheen: Gebr_Func
k53.waarde max_pers,
k54.waarde sirenegebied,
k55.waarde staat_ruimte,
k56.waarde vvo_overeenkomst,
k57.waarde vaknummer,
k58.waarde perceelnr,
k59.waarde energielabel,
k60.waarde afzuigcap_lab,
x.alg_gebouw_naam gebouwnaam,
TO_CHAR (x.alg_gebouw_vervaldatum, 'dd-mm-yyyy') vervaldatum,
x.aanmaakdatum,
TO_CHAR (x.verwijderdatum, 'dd-mm-yyyy') verwijderdatum,
cont.cad_imp_contour_opp nvo_getekend, -- BVO hernoemt naar NVO!!!
CASE
WHEN x.verwijderdatum IS NULL AND x.alg_gebouw_vervaldatum IS NULL THEN 'Ja'
ELSE 'Nee'
END
ruimte_vandaag_actief,
CASE
WHEN cp.cnt_alg_plaats_key IS NOT NULL THEN 'Ja'
ELSE 'Nee'
END
ruimte_vandaag_verhuurd,
k64.waarde vs_cs_l,
k61.waarde vs_cs_h,
k65.waarde vs_cs_k,
k62.waarde vs_cs_o,
k63.waarde vs_cs_t,
k66.waarde ozb_tar,
k67.waarde vs_utsp_l,
k68.waarde vs_utsp_h,
k69.waarde vs_utsp_k,
k70.waarde vs_utsp_o,
k71.waarde vs_utsp_t,
k72.waarde res_park,
k73.waarde opm_tar,
uitz.alg_onrgoedkenmerk_waarde uitz
FROM (SELECT l.alg_locatie_key,
g.alg_gebouw_key,
g.alg_gebouw_key alg_onrgoed_key,
'G' alg_onrgoed_type,
reg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
NULL alg_verdieping_key,
NULL alg_verdieping_volgnr,
NULL alg_verdieping_code,
NULL alg_srtruimte_omschrijving,
NULL alg_ruimte_nr,
NULL alg_ruimte_omschrijving,
NULL alg_ruimte_opmerking,
fac.safe_to_number (glhkot.alg_onrgoedkenmerk_waarde) vvo,
NULL bvo,
DECODE (glhkot.alg_kenmerk_key, 1082, 'L', 1083, 'H', 1084, 'K', 1085, 'O', 1120, 'T', 1240, 'C', NULL) lhkotc_class,
g.alg_gebouw_naam,
g.alg_gebouw_vervaldatum,
g.alg_gebouw_aanmaak aanmaakdatum,
g.alg_gebouw_verwijder verwijderdatum
FROM alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio reg,
(SELECT ok.*
FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k
WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_verwijder IS NULL
AND k.alg_kenmerk_key IN (1082, 1083, 1084, 1085, 1120, 1240)) glhkot -- LHKOTC Oppervlakten
WHERE g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = reg.alg_regio_key
AND g.alg_gebouw_key = glhkot.alg_onrgoed_key(+)
UNION ALL
SELECT t.alg_locatie_key,
NULL alg_gebouw_key,
t.alg_terreinsector_key alg_onrgoed_key,
'T' alg_onrgoed_type,
reg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
t.alg_terreinsector_code alg_gebouw_code,
NULL alg_verdieping_key,
NULL alg_verdieping_volgnr,
NULL alg_verdieping_code,
NULL alg_srtruimte_omschrijving,
NULL alg_ruimte_nr,
NULL alg_ruimte_omschrijving,
NULL alg_ruimte_opmerking,
t.alg_terreinsector_oppervlak vvo,
t.alg_terreinsector_oppervlak bvo,
NULL lhkotc_class,
t.alg_terreinsector_naam alg_gebouw_naam,
t.alg_terreinsector_vervaldatum alg_gebouw_vervaldatum,
t.alg_terreinsector_aanmaak aanmaakdatum,
t.alg_terreinsector_verwijder verwijderdatum
FROM alg_terreinsector t,
alg_locatie l,
alg_district d,
alg_regio reg
WHERE t.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = reg.alg_regio_key
UNION ALL
SELECT g.alg_locatie_key,
g.alg_gebouw_key,
v.alg_verdieping_key alg_onrgoed_key,
'V' alg_onrgoed_type,
reg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
v.alg_verdieping_key,
v.alg_verdieping_volgnr,
v.alg_verdieping_code,
NULL alg_srtruimte_omschrijving,
NULL alg_ruimte_nr,
NULL alg_ruimte_omschrijving,
NULL alg_ruimte_opmerking,
fac.safe_to_number (vlhkot.alg_onrgoedkenmerk_waarde) vvo,
NULL bvo,
DECODE (vlhkot.alg_kenmerk_key, 1092, 'L', 1093, 'H', 1094, 'K', 1095, 'O', 1121, 'T', 1260, 'C', NULL) lhkotc_class,
g.alg_gebouw_naam,
g.alg_gebouw_vervaldatum,
v.alg_verdieping_aanmaak aanmaakdatum,
v.alg_verdieping_verwijder verwijderdatum
FROM alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio reg,
(SELECT ok.*
FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k
WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_verwijder IS NULL
AND k.alg_kenmerk_key IN (1092, 1093, 1094, 1095, 1121, 1260)) vlhkot -- LHKOTC Oppervlakten
WHERE v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = reg.alg_regio_key
AND v.alg_verdieping_key = vlhkot.alg_onrgoed_key(+)
UNION ALL
SELECT g.alg_locatie_key,
g.alg_gebouw_key,
r.alg_ruimte_key alg_onrgoed_key,
'R' alg_onrgoed_type,
reg.alg_regio_omschrijving,
d.alg_district_omschrijving,
l.alg_locatie_code,
l.alg_locatie_omschrijving,
g.alg_gebouw_code,
v.alg_verdieping_key,
v.alg_verdieping_volgnr,
v.alg_verdieping_code,
sr.alg_srtruimte_omschrijving,
r.alg_ruimte_nr,
r.alg_ruimte_omschrijving,
r.alg_ruimte_opmerking,
r.alg_ruimte_opp_alt1 vvo,
r.alg_ruimte_bruto_vloeropp bvo,
ud.fac_usrdata_code lhkotc_class,
g.alg_gebouw_naam,
g.alg_gebouw_vervaldatum,
r.alg_ruimte_aanmaak aanmaakdatum,
r.alg_ruimte_verwijder verwijderdatum
FROM alg_ruimte r,
alg_v_aanwezigsrtruimte sr,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d,
alg_regio reg,
(SELECT ok.*
FROM alg_v_aanwezigonrgoedkenmerk ok, alg_kenmerk k
WHERE ok.alg_kenmerk_key = k.alg_kenmerk_key
AND k.alg_kenmerk_verwijder IS NULL
AND k.alg_kenmerk_key = 1100) rlhkot, -- LHKOTC Classificatie
fac_usrdata ud
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = reg.alg_regio_key
AND r.alg_ruimte_key = rlhkot.alg_onrgoed_key(+)
AND fac.safe_to_number (rlhkot.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)) x
LEFT JOIN ( SELECT cp.cnt_alg_plaats_key,
LISTAGG (c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'), ',') WITHIN GROUP (ORDER BY c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'))
contract
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp
WHERE c.ins_discipline_key = 2122 -- Alleen LA (niet LA CRF en andere contractsoorten)!
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_code IN ('R', 'V', 'G', 'T')
AND cp.cnt_contract_plaats_verwijder IS NULL
GROUP BY cp.cnt_alg_plaats_key) c
ON x.alg_onrgoed_key = c.cnt_alg_plaats_key
LEFT JOIN alg_gebouw g
ON x.alg_onrgoed_key = g.alg_gebouw_key
LEFT JOIN alg_srtgebouw sg
ON g.alg_srtgebouw_key = sg.alg_srtgebouw_key
LEFT JOIN prs_v_perslid_fullnames_all pf1
ON g.prs_perslid_key_verantw = pf1.prs_perslid_key
LEFT JOIN prs_v_perslid_fullnames_all pf2
ON g.prs_perslid_key_verantw2 = pf2.prs_perslid_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk eig
ON x.alg_onrgoed_key = eig.alg_onrgoed_key
AND eig.alg_kenmerk_key = 1140 -- Eigenaar
AND eig.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk bouwjaar
ON x.alg_onrgoed_key = bouwjaar.alg_onrgoed_key
AND bouwjaar.alg_kenmerk_key = 1160 -- Bouwjaar
AND bouwjaar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk strategie
ON x.alg_onrgoed_key = strategie.alg_onrgoed_key
AND strategie.alg_kenmerk_key = 1161 -- Strategie
AND strategie.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk gc
ON x.alg_gebouw_key = gc.alg_onrgoed_key
AND gc.alg_kenmerk_key = 1940 -- Gebouwcluster
AND gc.alg_onrgoed_niveau = 'G'
LEFT JOIN ( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) last_change
FROM fac_tracking t
WHERE EXISTS (SELECT 1 -- Last change
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_srtnotificatie_code LIKE 'ALG%'
AND fac_srtnotificatie_xmlnode != 'locatie')
GROUP BY t.fac_tracking_refkey) lc
ON x.alg_onrgoed_key = lc.fac_tracking_refkey
LEFT JOIN cad_tekening tek
ON x.alg_verdieping_key = tek.alg_verdieping_key
AND tek.cad_tekening_verwijder IS NULL
LEFT JOIN cad_imp_contour cont
ON x.alg_ruimte_nr = cont.cad_imp_contour_nr
AND cont.cad_tekening_key = tek.cad_tekening_key
AND cont.cad_imp_contour_concept = 0
AND cont.prj_scenario_key IS NULL
LEFT JOIN ( SELECT cp.cnt_alg_plaats_key, COUNT ( * )
FROM cnt_contract c, cnt_contract_plaats cp
WHERE c.ins_discipline_key IN (2122,2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_alg_plaats_code IN ('R', 'V', 'G', 'T')
AND cp.cnt_contract_plaats_verwijder IS NULL
GROUP BY cp.cnt_alg_plaats_key) cp
ON x.alg_onrgoed_key = cp.cnt_alg_plaats_key
LEFT JOIN ok k1 ON x.alg_onrgoed_key = k1.alg_onrgoed_key AND k1.vnr = 1
LEFT JOIN ok k2 ON x.alg_onrgoed_key = k2.alg_onrgoed_key AND k2.vnr = 2
LEFT JOIN ok k3 ON x.alg_onrgoed_key = k3.alg_onrgoed_key AND k3.vnr = 3
LEFT JOIN ok k4 ON x.alg_onrgoed_key = k4.alg_onrgoed_key AND k4.vnr = 4
LEFT JOIN ok k5 ON x.alg_onrgoed_key = k5.alg_onrgoed_key AND k5.vnr = 5
LEFT JOIN ok k6 ON x.alg_onrgoed_key = k6.alg_onrgoed_key AND k6.vnr = 6
LEFT JOIN ok k7 ON x.alg_onrgoed_key = k7.alg_onrgoed_key AND k7.vnr = 7
LEFT JOIN ok k8 ON x.alg_onrgoed_key = k8.alg_onrgoed_key AND k8.vnr = 8
LEFT JOIN ok k9 ON x.alg_onrgoed_key = k9.alg_onrgoed_key AND k9.vnr = 9
LEFT JOIN ok k10 ON x.alg_onrgoed_key = k10.alg_onrgoed_key AND k10.vnr = 10
LEFT JOIN ok k11 ON x.alg_onrgoed_key = k11.alg_onrgoed_key AND k11.vnr = 11
LEFT JOIN ok k12 ON x.alg_onrgoed_key = k12.alg_onrgoed_key AND k12.vnr = 12
LEFT JOIN ok k13 ON x.alg_onrgoed_key = k13.alg_onrgoed_key AND k13.vnr = 13
LEFT JOIN ok k14 ON x.alg_onrgoed_key = k14.alg_onrgoed_key AND k14.vnr = 14
LEFT JOIN ok k15 ON x.alg_onrgoed_key = k15.alg_onrgoed_key AND k15.vnr = 15
LEFT JOIN ok k16 ON x.alg_onrgoed_key = k16.alg_onrgoed_key AND k16.vnr = 16
LEFT JOIN ok k17 ON x.alg_onrgoed_key = k17.alg_onrgoed_key AND k17.vnr = 17
LEFT JOIN ok k18 ON x.alg_onrgoed_key = k18.alg_onrgoed_key AND k18.vnr = 18
LEFT JOIN ok k19 ON x.alg_onrgoed_key = k19.alg_onrgoed_key AND k19.vnr = 19
LEFT JOIN ok k20 ON x.alg_onrgoed_key = k20.alg_onrgoed_key AND k20.vnr = 20
LEFT JOIN ok k21 ON x.alg_onrgoed_key = k21.alg_onrgoed_key AND k21.vnr = 21
LEFT JOIN ok k22 ON x.alg_onrgoed_key = k22.alg_onrgoed_key AND k22.vnr = 22
LEFT JOIN ok k23 ON x.alg_onrgoed_key = k23.alg_onrgoed_key AND k23.vnr = 23
LEFT JOIN ok k24 ON x.alg_onrgoed_key = k24.alg_onrgoed_key AND k24.vnr = 24
LEFT JOIN ok k25 ON x.alg_onrgoed_key = k25.alg_onrgoed_key AND k25.vnr = 25
LEFT JOIN ok k26 ON x.alg_onrgoed_key = k26.alg_onrgoed_key AND k26.vnr = 26
LEFT JOIN ok k27 ON x.alg_onrgoed_key = k27.alg_onrgoed_key AND k27.vnr = 27
LEFT JOIN ok k28 ON x.alg_onrgoed_key = k28.alg_onrgoed_key AND k28.vnr = 28
LEFT JOIN ok k29 ON x.alg_onrgoed_key = k29.alg_onrgoed_key AND k29.vnr = 29
LEFT JOIN ok k30 ON x.alg_onrgoed_key = k30.alg_onrgoed_key AND k30.vnr = 30
LEFT JOIN ok k31 ON x.alg_onrgoed_key = k31.alg_onrgoed_key AND k31.vnr = 31
LEFT JOIN ok k32 ON x.alg_onrgoed_key = k32.alg_onrgoed_key AND k32.vnr = 32
LEFT JOIN ok k33 ON x.alg_onrgoed_key = k33.alg_onrgoed_key AND k33.vnr = 33
LEFT JOIN ok k34 ON x.alg_onrgoed_key = k34.alg_onrgoed_key AND k34.vnr = 34
LEFT JOIN ok k35 ON x.alg_onrgoed_key = k35.alg_onrgoed_key AND k35.vnr = 35
LEFT JOIN ok k36 ON x.alg_onrgoed_key = k36.alg_onrgoed_key AND k36.vnr = 36
LEFT JOIN ok k37 ON x.alg_onrgoed_key = k37.alg_onrgoed_key AND k37.vnr = 37
LEFT JOIN ok k38 ON x.alg_onrgoed_key = k38.alg_onrgoed_key AND k38.vnr = 38
LEFT JOIN ok k39 ON x.alg_onrgoed_key = k39.alg_onrgoed_key AND k39.vnr = 39
LEFT JOIN ok k40 ON x.alg_onrgoed_key = k40.alg_onrgoed_key AND k40.vnr = 40
LEFT JOIN ok k41 ON x.alg_onrgoed_key = k41.alg_onrgoed_key AND k41.vnr = 41
LEFT JOIN ok k42 ON x.alg_onrgoed_key = k42.alg_onrgoed_key AND k42.vnr = 42
LEFT JOIN ok k43 ON x.alg_onrgoed_key = k43.alg_onrgoed_key AND k43.vnr = 43
LEFT JOIN ok k44 ON x.alg_onrgoed_key = k44.alg_onrgoed_key AND k44.vnr = 44
LEFT JOIN ok k45 ON x.alg_onrgoed_key = k45.alg_onrgoed_key AND k45.vnr = 45
LEFT JOIN ok k46 ON x.alg_gebouw_key = k46.alg_gebouw_key AND k46.vnr = 46 -- in_expl_dat
LEFT JOIN ok k47 ON x.alg_gebouw_key = k47.alg_gebouw_key AND k47.vnr = 47 -- uit_expl_dat
LEFT JOIN ok k48 ON x.alg_onrgoed_key = k48.alg_onrgoed_key AND k48.vnr = 48
LEFT JOIN ok k49 ON x.alg_onrgoed_key = k49.alg_onrgoed_key AND k49.vnr = 49
LEFT JOIN ok k50 ON x.alg_onrgoed_key = k50.alg_onrgoed_key AND k50.vnr = 50
LEFT JOIN ok k51 ON x.alg_onrgoed_key = k51.alg_onrgoed_key AND k51.vnr = 51
LEFT JOIN ok k52 ON x.alg_onrgoed_key = k52.alg_onrgoed_key AND k52.vnr = 52
LEFT JOIN ok k53 ON x.alg_onrgoed_key = k53.alg_onrgoed_key AND k53.vnr = 53
LEFT JOIN ok k54 ON x.alg_onrgoed_key = k54.alg_onrgoed_key AND k54.vnr = 54
LEFT JOIN ok k55 ON x.alg_onrgoed_key = k55.alg_onrgoed_key AND k55.vnr = 55
LEFT JOIN ok k56 ON x.alg_onrgoed_key = k56.alg_onrgoed_key AND k56.vnr = 56
LEFT JOIN ok k57 ON x.alg_onrgoed_key = k57.alg_onrgoed_key AND k57.vnr = 57
LEFT JOIN ok k58 ON x.alg_onrgoed_key = k58.alg_onrgoed_key AND k58.vnr = 58
LEFT JOIN ok k59 ON x.alg_onrgoed_key = k59.alg_onrgoed_key AND k59.vnr = 59
LEFT JOIN ok k60 ON x.alg_onrgoed_key = k60.alg_onrgoed_key AND k60.vnr = 60
LEFT JOIN ok k61 ON x.alg_onrgoed_key = k61.alg_onrgoed_key AND k61.vnr = 61
LEFT JOIN ok k62 ON x.alg_onrgoed_key = k62.alg_onrgoed_key AND k62.vnr = 62
LEFT JOIN ok k63 ON x.alg_onrgoed_key = k63.alg_onrgoed_key AND k63.vnr = 63
LEFT JOIN ok k64 ON x.alg_onrgoed_key = k64.alg_onrgoed_key AND k64.vnr = 64
LEFT JOIN ok k65 ON x.alg_onrgoed_key = k65.alg_onrgoed_key AND k65.vnr = 65
LEFT JOIN ok k66 ON x.alg_onrgoed_key = k66.alg_onrgoed_key AND k66.vnr = 66
LEFT JOIN ok k67 ON x.alg_onrgoed_key = k67.alg_onrgoed_key AND k67.vnr = 67
LEFT JOIN ok k68 ON x.alg_onrgoed_key = k68.alg_onrgoed_key AND k68.vnr = 68
LEFT JOIN ok k69 ON x.alg_onrgoed_key = k69.alg_onrgoed_key AND k69.vnr = 69
LEFT JOIN ok k70 ON x.alg_onrgoed_key = k70.alg_onrgoed_key AND k70.vnr = 70
LEFT JOIN ok k71 ON x.alg_onrgoed_key = k71.alg_onrgoed_key AND k71.vnr = 71
LEFT JOIN ok k72 ON x.alg_onrgoed_key = k72.alg_onrgoed_key AND k72.vnr = 72
LEFT JOIN ok k73 ON x.alg_onrgoed_key = k73.alg_onrgoed_key AND k73.vnr = 73
--LEFT JOIN ok k74 ON x.alg_onrgoed_key = k74.alg_onrgoed_key AND k74.vnr = 74
--LEFT JOIN ok k75 ON x.alg_onrgoed_key = k75.alg_onrgoed_key AND k75.vnr = 75
--LEFT JOIN ok k76 ON x.alg_onrgoed_key = k76.alg_onrgoed_key AND k76.vnr = 76
--LEFT JOIN ok k77 ON x.alg_onrgoed_key = k77.alg_onrgoed_key AND k77.vnr = 77
--LEFT JOIN ok k78 ON x.alg_onrgoed_key = k78.alg_onrgoed_key AND k78.vnr = 78
--LEFT JOIN ok k79 ON x.alg_onrgoed_key = k79.alg_onrgoed_key AND k79.vnr = 79
--LEFT JOIN ok k80 ON x.alg_onrgoed_key = k80.alg_onrgoed_key AND k80.vnr = 80
LEFT JOIN alg_v_aanwezigonrgoedkenmerk uitz ON x.alg_gebouw_key = uitz.alg_onrgoed_key AND uitz.alg_kenmerk_key = 1040
;
CREATE OR REPLACE VIEW blcc_v_rap_contractgeg -- Alle contractgegevens behalve oude contractsoorten (tussen 621 en 761)!
AS
WITH ck AS (SELECT sk.vnr, sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, kw.cnt_contract_key, kw.waarde
FROM (SELECT ROWNUM vnr, cnt_srtkenmerk_key, cnt_srtkenmerk_omschrijving
FROM ( SELECT sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, sk.cnt_srtkenmerk_aanmaak
FROM cnt_srtkenmerk sk -- Inclusief alle verwijderde entries!
WHERE sk.cnt_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
AND sk.cnt_srtkenmerk_key NOT IN (281, 541) -- Ref.nr. aanvrager/Voorschot Collective Services (jaarbedrag)
AND COALESCE (sk.cnt_srtkenmerk_verwijder, SYSDATE+2) > TO_DATE ('12122019', 'ddmmyyyy')
AND EXISTS (SELECT 1 -- Ooit geassocieerd met contractsoorten <621 of >761
FROM cnt_kenmerk
WHERE cnt_srtcontract_key NOT BETWEEN 621 AND 761
--AND cnt_srtcontract_key NOT IN (1381, 1581, 1961, 2121) -- BCC Soft Serv./BCC Hard Serv./BCC Collectief PMA/Lease Option
AND COALESCE (cnt_kenmerk_verwijder, SYSDATE+2) > TO_DATE ('12122019', 'ddmmyyyy')
AND cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key)
ORDER BY 3, 1)) sk
LEFT JOIN
(SELECT sk.cnt_srtkenmerk_key, ck.cnt_contract_key,
DECODE (sk.cnt_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde),
ck.cnt_kenmerkcontract_waarde)
waarde
FROM cnt_kenmerkcontract ck, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE ck.cnt_kenmerkcontract_verwijder IS NULL
AND ck.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key) kw
ON sk.cnt_srtkenmerk_key = kw.cnt_srtkenmerk_key)
SELECT x.cnt_contract_key,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr,
x.ins_discipline_omschrijving contractsoort,
x.cnt_contract_nummer externnr,
x.cnt_contract_omschrijving beschrijving,
x.mantelnr,
x.cnt_contract_document omschrijving,
x.prs_afdeling_naam eigenaar_afd,
x.eig eigenaar,
x.beh beheerder,
--x.cnt_contract_opmerking opmerking,
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (x.cnt_contract_opmerking, 1, 20), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') opmerking,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
x.cnt_contract_looptijd_van ingangsdatum,
cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldatum,
cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdatum,
x.cnt_contract_looptijd_tot einddatum,
x.prs_bedrijf_naam contractant,
x.prs_overeenkomst_nr crediteurnr,
x.prs_overeenkomst_nr debiteurnr,
x.cp contactnaam,
x.prs_dienst_omschrijving dienst,
x.persoon,
x.prs_kostenplaats_upper kostenplaats_code,
x.prs_kostensoort_upper kostensoort_code,
x.cnt_contract_termijnkosten termijnbedrag,
x.cnt_termijn_omschrijving factuurtermijn,
x.cnt_contract_kosten contractbedrag,
x.cnt_contract_uurloon uurtarief,
x.cnt_contract_korting korting,
lc.last_change,
k1.waarde correctie_l, -- Vervallen per huurmaand 2023-01
k2.waarde correctie_h, -- Vervallen per huurmaand 2023-01
k3.waarde correctie_k, -- Vervallen per huurmaand 2023-01
k4.waarde correctie_o, -- Vervallen per huurmaand 2023-01
k5.waarde correctie_t, -- Vervallen per huurmaand 2023-01
k6.waarde aant_cispro_lic,
k7.waarde aant_mdw_kant,
k8.waarde aant_mdw_labhal,
k9.waarde aant_mdw_park,
k10.waarde aant_mdw_pa,
k11.waarde aant_mdw_sec,
k12.waarde upddat_cff,
k13.waarde upddat_fes,
k14.waarde aant_wp,
k15.waarde ak_cs,
k16.waarde ak_pt,
k17.waarde ak_ut,
k18.waarde ademhalingslucht,
k19.waarde ap_cs,
k20.waarde ap_heptaan,
k21.waarde ap_hexaan,
k22.waarde ap_isobutaan,
k23.waarde ap_isododecaan,
k24.waarde ap_itheen,
k25.waarde ap_nbutaan,
k26.waarde ap_propaan,
k27.waarde ap_tolueen,
k28.waarde ap_ut, -- LA CRF/SLA Brightlands CV - CRF/SLA Multi-Purpose Pilot Plant
k29.waarde ap, -- SLA Multi-Purpose Pilot Plant
k30.waarde afval, -- SLA Operational Center
k31.waarde rent, -- SLA Multi-Purpose Pilot Plant
k32.waarde andere_incentives,
k33.waarde auto_verleng,
k34.waarde btw_optie,
k35.waarde bgar_borg,
k36.waarde boete_breakopt,
k37.waarde cff_subsidy,
k38.waarde doorbereken_cs,
k39.waarde consignatiedienst,
k40.waarde contracttarief_h,
k41.waarde contracttarief_k,
k42.waarde contracttarief_l,
k43.waarde contracttarief_o,
k44.waarde contracttarief_t,
k45.waarde upddat_breakopt1,
k46.waarde upddat_index1,
k47.waarde upddat_bgar_borg,
k48.waarde deprec_roiext_cgz,
k49.waarde totdat_fes,
k50.waarde totdat_bgar_borg,
k51.waarde totdat_2gv,
k52.waarde totdat_3gv,
k53.waarde doorbereken_fes,
k54.waarde factuur,
k55.waarde garantiewaarde,
k56.waarde hygienisch_onderh,
k57.waarde hyperlink_doc,
k58.waarde iv_schap,
k59.waarde insurance_cgz,
k60.waarde kosten_3gv,
k61.waarde kosten_2gv,
k62.waarde kostenplaats,
k63.waarde lever_gasfl,
k64.waarde lever_cryogas,
k65.waarde managed_conn,
k66.waarde fee_cgz,
k67.waarde ondersteun_cvd,
k68.waarde oorspr_vandat,
k69.waarde rent_facilities, -- Lease agreement Facilities
k70.waarde rent_expedition, -- SLA Brightlands CRF - CV
k71.waarde rent_infra, -- SLA Brightlands CRF - CV
k72.waarde rent_landlease, -- Landlease CV - CRF
k73.waarde rent_rebate,
k74.waarde rent_utilities, -- SLA Brightlands CRF - CV
k75.waarde doorbereken_rent,
k76.waarde schakel_gasfl, -- SLA Operational Center
k77.waarde surcharge_sc,
k78.waarde info_breakopt,
k79.waarde verleng_termijn,
k80.waarde abs_korting, -- LA[441=Absolute korting FES]
k81.waarde fee_steam,
k82.waarde maandbedrag, -- SLA Generiek CV+SLA Generiek CRF
k83.waarde btw_code, -- SLA Generiek CV+SLA Generiek CRF
k84.waarde regeloms, -- SLA Generiek CV+SLA Generiek CRF
k85.waarde huurdersp_vs, -- LA
k86.waarde transf_bijdr, -- LA/LA CRF[Vervallen]
k87.waarde ap_ut_la, -- LA
k88.waarde ap_cs_campusgeb, -- LA
k89.waarde ap_cs_gebouwgeb, -- LA
k90.waarde contract_uren, -- Research abonnement
ru.research_uren_besteed opdracht_uren,
k91.waarde sla_facility, -- LA (SLA 170/094/059)
k92.waarde utarmens,
k93.waarde utarmachine,
k94.waarde k94,
k95.waarde k95,
k96.waarde k96,
k97.waarde k97,
k98.waarde k98,
k99.waarde k99,
k100.waarde k100
FROM (SELECT c.*,
cd.ins_discipline_omschrijving,
cm.cnt_contract_nummer_intern mantelnr,
a.prs_afdeling_naam,
eig.prs_perslid_naam_full eig,
beh.prs_perslid_naam_full beh,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
cp.prs_contactpersoon_naam
|| DECODE (cp.prs_contactpersoon_voorletters, NULL, '', ', ' || cp.prs_contactpersoon_voorletters)
|| DECODE (cp.prs_contactpersoon_tussenv, NULL, '', ' ' || cp.prs_contactpersoon_tussenv)
|| DECODE (cp.prs_contactpersoon_voornaam, NULL, '', ' (' || cp.prs_contactpersoon_voornaam || ')')
cp,
d.prs_dienst_omschrijving,
prs.prs_perslid_naam_full persoon,
kp.prs_kostenplaats_upper,
ks.prs_kostensoort_upper,
ct.cnt_termijn_omschrijving
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
cnt_v_aanwezigcontract cm,
prs_afdeling a,
prs_v_perslid_fullnames_all eig,
prs_v_perslid_fullnames_all beh,
prs_v_aanwezigbedrijf b,
prs_contactpersoon cp,
prs_dienst d,
prs_v_perslid_fullnames_all prs,
prs_kostenplaats kp,
prs_kostensoort ks,
cnt_termijn ct
WHERE c.ins_discipline_key NOT BETWEEN 621 AND 761
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_contract_mantel_key = cm.cnt_contract_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_eig = eig.prs_perslid_key(+)
AND c.prs_perslid_key_beh = beh.prs_perslid_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND c.prs_dienst_key = d.prs_dienst_key(+)
AND c.cnt_prs_perslid_key = prs.prs_perslid_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.cnt_contract_termijntermijn = ct.cnt_termijn_key(+)) x
LEFT JOIN ( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) last_change
FROM fac_tracking t
WHERE EXISTS (SELECT 1 -- Last change
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_srtnotificatie_xmlnode = 'contract')
GROUP BY t.fac_tracking_refkey) lc
ON x.cnt_contract_key = lc.fac_tracking_refkey
LEFT JOIN ( SELECT t.fac_tracking_refkey,
MAX (t.fac_tracking_datum) last_change
FROM fac_tracking t
WHERE EXISTS (SELECT 1 -- Last change
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_srtnotificatie_xmlnode = 'contract')
GROUP BY t.fac_tracking_refkey) lc
ON x.cnt_contract_key = lc.fac_tracking_refkey
LEFT JOIN ( SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde) research_contract_key,
SUM (ou.mld_opdr_uren_besteed) research_uren_besteed
FROM mld_melding m, mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_opdr o, mld_opdr_uren ou
WHERE m.mld_stdmelding_key = 2261 -- Research aanvraag
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1763 -- Research abonnementen
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_opdr_key = ou.mld_opdr_key
GROUP BY fac.safe_to_number (km.mld_kenmerkmelding_waarde)) ru
ON x.cnt_contract_key = ru.research_contract_key
LEFT JOIN ck k1 ON x.cnt_contract_key = k1.cnt_contract_key AND k1.vnr = 1
LEFT JOIN ck k2 ON x.cnt_contract_key = k2.cnt_contract_key AND k2.vnr = 2
LEFT JOIN ck k3 ON x.cnt_contract_key = k3.cnt_contract_key AND k3.vnr = 3
LEFT JOIN ck k4 ON x.cnt_contract_key = k4.cnt_contract_key AND k4.vnr = 4
LEFT JOIN ck k5 ON x.cnt_contract_key = k5.cnt_contract_key AND k5.vnr = 5
LEFT JOIN ck k6 ON x.cnt_contract_key = k6.cnt_contract_key AND k6.vnr = 6
LEFT JOIN ck k7 ON x.cnt_contract_key = k7.cnt_contract_key AND k7.vnr = 7
LEFT JOIN ck k8 ON x.cnt_contract_key = k8.cnt_contract_key AND k8.vnr = 8
LEFT JOIN ck k9 ON x.cnt_contract_key = k9.cnt_contract_key AND k9.vnr = 9
LEFT JOIN ck k10 ON x.cnt_contract_key = k10.cnt_contract_key AND k10.vnr = 10
LEFT JOIN ck k11 ON x.cnt_contract_key = k11.cnt_contract_key AND k11.vnr = 11
LEFT JOIN ck k12 ON x.cnt_contract_key = k12.cnt_contract_key AND k12.vnr = 12
LEFT JOIN ck k13 ON x.cnt_contract_key = k13.cnt_contract_key AND k13.vnr = 13
LEFT JOIN ck k14 ON x.cnt_contract_key = k14.cnt_contract_key AND k14.vnr = 14
LEFT JOIN ck k15 ON x.cnt_contract_key = k15.cnt_contract_key AND k15.vnr = 15
LEFT JOIN ck k16 ON x.cnt_contract_key = k16.cnt_contract_key AND k16.vnr = 16
LEFT JOIN ck k17 ON x.cnt_contract_key = k17.cnt_contract_key AND k17.vnr = 17
LEFT JOIN ck k18 ON x.cnt_contract_key = k18.cnt_contract_key AND k18.vnr = 18
LEFT JOIN ck k19 ON x.cnt_contract_key = k19.cnt_contract_key AND k19.vnr = 19
LEFT JOIN ck k20 ON x.cnt_contract_key = k20.cnt_contract_key AND k20.vnr = 20
LEFT JOIN ck k21 ON x.cnt_contract_key = k21.cnt_contract_key AND k21.vnr = 21
LEFT JOIN ck k22 ON x.cnt_contract_key = k22.cnt_contract_key AND k22.vnr = 22
LEFT JOIN ck k23 ON x.cnt_contract_key = k23.cnt_contract_key AND k23.vnr = 23
LEFT JOIN ck k24 ON x.cnt_contract_key = k24.cnt_contract_key AND k24.vnr = 24
LEFT JOIN ck k25 ON x.cnt_contract_key = k25.cnt_contract_key AND k25.vnr = 25
LEFT JOIN ck k26 ON x.cnt_contract_key = k26.cnt_contract_key AND k26.vnr = 26
LEFT JOIN ck k27 ON x.cnt_contract_key = k27.cnt_contract_key AND k27.vnr = 27
LEFT JOIN ck k28 ON x.cnt_contract_key = k28.cnt_contract_key AND k28.vnr = 28
LEFT JOIN ck k29 ON x.cnt_contract_key = k29.cnt_contract_key AND k29.vnr = 29
LEFT JOIN ck k30 ON x.cnt_contract_key = k30.cnt_contract_key AND k30.vnr = 30
LEFT JOIN ck k31 ON x.cnt_contract_key = k31.cnt_contract_key AND k31.vnr = 31
LEFT JOIN ck k32 ON x.cnt_contract_key = k32.cnt_contract_key AND k32.vnr = 32
LEFT JOIN ck k33 ON x.cnt_contract_key = k33.cnt_contract_key AND k33.vnr = 33
LEFT JOIN ck k34 ON x.cnt_contract_key = k34.cnt_contract_key AND k34.vnr = 34
LEFT JOIN ck k35 ON x.cnt_contract_key = k35.cnt_contract_key AND k35.vnr = 35
LEFT JOIN ck k36 ON x.cnt_contract_key = k36.cnt_contract_key AND k36.vnr = 36
LEFT JOIN ck k37 ON x.cnt_contract_key = k37.cnt_contract_key AND k37.vnr = 37
LEFT JOIN ck k38 ON x.cnt_contract_key = k38.cnt_contract_key AND k38.vnr = 38
LEFT JOIN ck k39 ON x.cnt_contract_key = k39.cnt_contract_key AND k39.vnr = 39
LEFT JOIN ck k40 ON x.cnt_contract_key = k40.cnt_contract_key AND k40.vnr = 40
LEFT JOIN ck k41 ON x.cnt_contract_key = k41.cnt_contract_key AND k41.vnr = 41
LEFT JOIN ck k42 ON x.cnt_contract_key = k42.cnt_contract_key AND k42.vnr = 42
LEFT JOIN ck k43 ON x.cnt_contract_key = k43.cnt_contract_key AND k43.vnr = 43
LEFT JOIN ck k44 ON x.cnt_contract_key = k44.cnt_contract_key AND k44.vnr = 44
LEFT JOIN ck k45 ON x.cnt_contract_key = k45.cnt_contract_key AND k45.vnr = 45
LEFT JOIN ck k46 ON x.cnt_contract_key = k46.cnt_contract_key AND k46.vnr = 46
LEFT JOIN ck k47 ON x.cnt_contract_key = k47.cnt_contract_key AND k47.vnr = 47
LEFT JOIN ck k48 ON x.cnt_contract_key = k48.cnt_contract_key AND k48.vnr = 48
LEFT JOIN ck k49 ON x.cnt_contract_key = k49.cnt_contract_key AND k49.vnr = 49
LEFT JOIN ck k50 ON x.cnt_contract_key = k50.cnt_contract_key AND k50.vnr = 50
LEFT JOIN ck k51 ON x.cnt_contract_key = k51.cnt_contract_key AND k51.vnr = 51
LEFT JOIN ck k52 ON x.cnt_contract_key = k52.cnt_contract_key AND k52.vnr = 52
LEFT JOIN ck k53 ON x.cnt_contract_key = k53.cnt_contract_key AND k53.vnr = 53
LEFT JOIN ck k54 ON x.cnt_contract_key = k54.cnt_contract_key AND k54.vnr = 54
LEFT JOIN ck k55 ON x.cnt_contract_key = k55.cnt_contract_key AND k55.vnr = 55
LEFT JOIN ck k56 ON x.cnt_contract_key = k56.cnt_contract_key AND k56.vnr = 56
LEFT JOIN ck k57 ON x.cnt_contract_key = k57.cnt_contract_key AND k57.vnr = 57
LEFT JOIN ck k58 ON x.cnt_contract_key = k58.cnt_contract_key AND k58.vnr = 58
LEFT JOIN ck k59 ON x.cnt_contract_key = k59.cnt_contract_key AND k59.vnr = 59
LEFT JOIN ck k60 ON x.cnt_contract_key = k60.cnt_contract_key AND k60.vnr = 60
LEFT JOIN ck k61 ON x.cnt_contract_key = k61.cnt_contract_key AND k61.vnr = 61
LEFT JOIN ck k62 ON x.cnt_contract_key = k62.cnt_contract_key AND k62.vnr = 62
LEFT JOIN ck k63 ON x.cnt_contract_key = k63.cnt_contract_key AND k63.vnr = 63
LEFT JOIN ck k64 ON x.cnt_contract_key = k64.cnt_contract_key AND k64.vnr = 64
LEFT JOIN ck k65 ON x.cnt_contract_key = k65.cnt_contract_key AND k65.vnr = 65
LEFT JOIN ck k66 ON x.cnt_contract_key = k66.cnt_contract_key AND k66.vnr = 66
LEFT JOIN ck k67 ON x.cnt_contract_key = k67.cnt_contract_key AND k67.vnr = 67
LEFT JOIN ck k68 ON x.cnt_contract_key = k68.cnt_contract_key AND k68.vnr = 68
LEFT JOIN ck k69 ON x.cnt_contract_key = k69.cnt_contract_key AND k69.vnr = 69
LEFT JOIN ck k70 ON x.cnt_contract_key = k70.cnt_contract_key AND k70.vnr = 70
LEFT JOIN ck k71 ON x.cnt_contract_key = k71.cnt_contract_key AND k71.vnr = 71
LEFT JOIN ck k72 ON x.cnt_contract_key = k72.cnt_contract_key AND k72.vnr = 72
LEFT JOIN ck k73 ON x.cnt_contract_key = k73.cnt_contract_key AND k73.vnr = 73
LEFT JOIN ck k74 ON x.cnt_contract_key = k74.cnt_contract_key AND k74.vnr = 74
LEFT JOIN ck k75 ON x.cnt_contract_key = k75.cnt_contract_key AND k75.vnr = 75
LEFT JOIN ck k76 ON x.cnt_contract_key = k76.cnt_contract_key AND k76.vnr = 76
LEFT JOIN ck k77 ON x.cnt_contract_key = k77.cnt_contract_key AND k77.vnr = 77
LEFT JOIN ck k78 ON x.cnt_contract_key = k78.cnt_contract_key AND k78.vnr = 78
LEFT JOIN ck k79 ON x.cnt_contract_key = k79.cnt_contract_key AND k79.vnr = 79
LEFT JOIN ck k80 ON x.cnt_contract_key = k80.cnt_contract_key AND k80.vnr = 80
LEFT JOIN ck k81 ON x.cnt_contract_key = k81.cnt_contract_key AND k81.vnr = 81
LEFT JOIN ck k82 ON x.cnt_contract_key = k82.cnt_contract_key AND k82.vnr = 82
LEFT JOIN ck k83 ON x.cnt_contract_key = k83.cnt_contract_key AND k83.vnr = 83
LEFT JOIN ck k84 ON x.cnt_contract_key = k84.cnt_contract_key AND k84.vnr = 84
LEFT JOIN ck k85 ON x.cnt_contract_key = k85.cnt_contract_key AND k85.vnr = 85
LEFT JOIN ck k86 ON x.cnt_contract_key = k86.cnt_contract_key AND k86.vnr = 86
LEFT JOIN ck k87 ON x.cnt_contract_key = k87.cnt_contract_key AND k87.vnr = 87
LEFT JOIN ck k88 ON x.cnt_contract_key = k88.cnt_contract_key AND k88.vnr = 88
LEFT JOIN ck k89 ON x.cnt_contract_key = k89.cnt_contract_key AND k89.vnr = 89
LEFT JOIN ck k90 ON x.cnt_contract_key = k90.cnt_contract_key AND k90.vnr = 90
LEFT JOIN ck k91 ON x.cnt_contract_key = k91.cnt_contract_key AND k91.vnr = 91
LEFT JOIN ck k92 ON x.cnt_contract_key = k92.cnt_contract_key AND k92.vnr = 92
LEFT JOIN ck k93 ON x.cnt_contract_key = k93.cnt_contract_key AND k93.vnr = 93
LEFT JOIN ck k94 ON x.cnt_contract_key = k94.cnt_contract_key AND k94.vnr = 94
LEFT JOIN ck k95 ON x.cnt_contract_key = k95.cnt_contract_key AND k95.vnr = 95
LEFT JOIN ck k96 ON x.cnt_contract_key = k96.cnt_contract_key AND k96.vnr = 96
LEFT JOIN ck k97 ON x.cnt_contract_key = k97.cnt_contract_key AND k97.vnr = 97
LEFT JOIN ck k98 ON x.cnt_contract_key = k98.cnt_contract_key AND k98.vnr = 98
LEFT JOIN ck k99 ON x.cnt_contract_key = k99.cnt_contract_key AND k99.vnr = 99
LEFT JOIN ck k100 ON x.cnt_contract_key = k100.cnt_contract_key AND k100.vnr = 100
;
CREATE OR REPLACE VIEW blcc_v_rap_contractgegv2 -- Alle contractgegevens behalve oude contractsoorten (tussen 621 en 761)!
AS
WITH ck AS (SELECT sk.vnr, sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, kw.cnt_contract_key, kw.waarde
FROM (SELECT ROWNUM vnr, cnt_srtkenmerk_key, cnt_srtkenmerk_omschrijving
FROM ( SELECT sk.cnt_srtkenmerk_key, sk.cnt_srtkenmerk_omschrijving, sk.cnt_srtkenmerk_aanmaak
FROM cnt_srtkenmerk sk -- Inclusief alle verwijderde entries!
WHERE sk.cnt_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
AND sk.cnt_srtkenmerk_key NOT IN (281, 301, 302, 303, 304, 305, 341, 342, 343, 346, 358, 426, 521, 541)
AND COALESCE (sk.cnt_srtkenmerk_verwijder, SYSDATE+2) > TO_DATE ('12122019', 'ddmmyyyy')
AND EXISTS (SELECT 1 -- Ooit geassocieerd met contractsoorten <621 of >761
FROM cnt_kenmerk
WHERE cnt_srtcontract_key NOT BETWEEN 621 AND 761
AND cnt_srtcontract_key NOT IN (1381, 1581, 1961, 2121) -- BCC Soft Serv./BCC Hard Serv./BCC Collectief PMA/Lease Option
AND COALESCE (cnt_kenmerk_verwijder, SYSDATE+2) > TO_DATE ('12122019', 'ddmmyyyy')
AND cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key)
ORDER BY 3, 1)) sk
LEFT JOIN
(SELECT sk.cnt_srtkenmerk_key, ck.cnt_contract_key,
DECODE (sk.cnt_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ck.cnt_kenmerkcontract_waarde),
ck.cnt_kenmerkcontract_waarde)
waarde
FROM cnt_kenmerkcontract ck, cnt_kenmerk k, cnt_srtkenmerk sk
WHERE ck.cnt_kenmerkcontract_verwijder IS NULL
AND ck.cnt_kenmerk_key = k.cnt_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key) kw
ON sk.cnt_srtkenmerk_key = kw.cnt_srtkenmerk_key)
SELECT x.cnt_contract_key cntcontractkey,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr,
x.ins_discipline_omschrijving contractsoort,
x.cnt_contract_nummer externnr,
x.cnt_contract_omschrijving beschrijving,
x.mantelnr,
x.cnt_contract_document omschrijving,
x.prs_afdeling_naam eigenaarafd,
x.eig eigenaar,
x.beh beheerder,
--x.cnt_contract_opmerking opmerking,
REPLACE (REPLACE (REPLACE (REPLACE (REPLACE (SUBSTR (x.cnt_contract_opmerking, 1, 20), CHR (10), ' '), CHR (13), ' '), CHR (128), 'EUR'), '"', ''''), ';', '') opmerking,
DECODE (x.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
x.cnt_contract_looptijd_van ingangsdat,
cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldat,
cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdat,
x.cnt_contract_looptijd_tot einddat,
x.prs_bedrijf_naam contractant,
x.prs_overeenkomst_nr crediteurnr,
x.prs_overeenkomst_nr debiteurnr,
x.cp contactnaam,
x.prs_dienst_omschrijving dienst,
x.persoon,
x.prs_kostenplaats_upper kostenplcod,
x.prs_kostensoort_upper kostensrtcod,
x.cnt_contract_termijnkosten termbedr,
x.cnt_termijn_omschrijving factterm,
x.cnt_contract_kosten contrbedr,
x.cnt_contract_uurloon uurtar,
x.cnt_contract_korting korting,
lc.last_change lastchange,
k1.waarde aantmdwpark,
k2.waarde aantmdwpa,
k3.waarde upddatcff,
k4.waarde upddatfes,
k5.waarde aantwp,
k6.waarde akcs,
k7.waarde akpt,
k8.waarde ademhlucht,
k9.waarde apcs,
k10.waarde aphept,
k11.waarde aphex,
k12.waarde apisobut,
k13.waarde apisododec,
k14.waarde apith,
k15.waarde apnbut,
k16.waarde appropa,
k17.waarde aptol,
k18.waarde aput, -- LA CRF/SLA Brightlands CV - CRF/SLA Multi-Purpose Pilot Plant
k19.waarde ap, -- SLA Multi-Purpose Pilot Plant
k20.waarde afval, -- SLA Operational Center
k21.waarde rent, -- SLA Multi-Purpose Pilot Plant
k22.waarde andincent,
k23.waarde autoverl,
k24.waarde btwoptie,
k25.waarde bgarborg,
k26.waarde boetebreak,
k27.waarde cffsubs,
k28.waarde doorberekcs,
k29.waarde consigndienst,
k30.waarde contrtarh,
k31.waarde contrtark,
k32.waarde contrtarl,
k33.waarde contrtaro,
k34.waarde contrtart,
k35.waarde upddatbreakopt1,
k36.waarde upddatindex1,
k37.waarde upddatbgarborg,
k38.waarde deprecroiextcgz,
k39.waarde totdatfes,
k40.waarde totdatbgarborg,
k41.waarde totdat2gv,
k42.waarde totdat3gv,
k43.waarde doorberekfes,
k44.waarde factuur,
k45.waarde garantiewrd,
k46.waarde hygienond,
k47.waarde hypdoc,
k48.waarde ivschap,
k49.waarde insurancecgz,
k50.waarde cost3gv,
k51.waarde cost2gv,
k52.waarde kostenpl,
k53.waarde levergasfl,
k54.waarde levercryogas,
k55.waarde mancon,
k56.waarde feecgz,
k57.waarde ondersteuncvd,
k58.waarde oorsprvandat,
k59.waarde rentfacilities, -- Lease agreement Facilities
k60.waarde rentexpedition, -- SLA Brightlands CRF - CV
k61.waarde rentinfra, -- SLA Brightlands CRF - CV
k62.waarde rentlandlease, -- Landlease CV - CRF
k63.waarde rentrebate,
k64.waarde rentutilities, -- SLA Brightlands CRF - CV
k65.waarde doorberekrent,
k66.waarde schakelgasfl, -- SLA Operational Center
k67.waarde infobreakopt,
k68.waarde verlengterm,
k69.waarde abskorting, -- LA[441=Absolute korting FES]
k70.waarde feesteam,
k71.waarde maandbedr,
k72.waarde btwcode,
k73.waarde regeloms,
k74.waarde huurderspvs, -- LA
k75.waarde aputla, -- LA
k76.waarde apcscampusgeb, -- LA
k77.waarde apcsgebouwgeb, -- LA
k78.waarde contracturen, -- Research abonnement
ru.research_uren_besteed opdrachturen,
k79.waarde slafac, -- LA
k80.waarde slatenspec, -- LA
k81.waarde utarmens,
k82.waarde utarmachine,
k83.waarde k83,
k84.waarde k84,
k85.waarde k85,
k86.waarde k86,
k87.waarde k87,
k88.waarde k88,
k89.waarde k89,
k90.waarde k90,
k91.waarde k91,
k92.waarde k92,
k93.waarde k93,
k94.waarde k94,
k95.waarde k95,
k96.waarde k96,
k97.waarde k97,
k98.waarde k98,
k99.waarde k99,
k100.waarde k100
FROM (SELECT c.*,
cd.ins_discipline_omschrijving,
cm.cnt_contract_nummer_intern mantelnr,
a.prs_afdeling_naam,
eig.prs_perslid_naam_full eig,
beh.prs_perslid_naam_full beh,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
cp.prs_contactpersoon_naam
|| DECODE (cp.prs_contactpersoon_voorletters, NULL, '', ', ' || cp.prs_contactpersoon_voorletters)
|| DECODE (cp.prs_contactpersoon_tussenv, NULL, '', ' ' || cp.prs_contactpersoon_tussenv)
|| DECODE (cp.prs_contactpersoon_voornaam, NULL, '', ' (' || cp.prs_contactpersoon_voornaam || ')')
cp,
d.prs_dienst_omschrijving,
prs.prs_perslid_naam_full persoon,
kp.prs_kostenplaats_upper,
ks.prs_kostensoort_upper,
ct.cnt_termijn_omschrijving
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
cnt_v_aanwezigcontract cm,
prs_afdeling a,
prs_v_perslid_fullnames_all eig,
prs_v_perslid_fullnames_all beh,
prs_v_aanwezigbedrijf b,
prs_contactpersoon cp,
prs_dienst d,
prs_v_perslid_fullnames_all prs,
prs_kostenplaats kp,
prs_kostensoort ks,
cnt_termijn ct
WHERE c.ins_discipline_key NOT BETWEEN 621 AND 761
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_contract_mantel_key = cm.cnt_contract_key(+)
AND c.prs_afdeling_key_eig = a.prs_afdeling_key
AND c.prs_perslid_key_eig = eig.prs_perslid_key(+)
AND c.prs_perslid_key_beh = beh.prs_perslid_key(+)
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.prs_contactpersoon_key = cp.prs_contactpersoon_key(+)
AND c.prs_dienst_key = d.prs_dienst_key(+)
AND c.cnt_prs_perslid_key = prs.prs_perslid_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND c.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND c.cnt_contract_termijntermijn = ct.cnt_termijn_key(+)) x
LEFT JOIN ( SELECT t.fac_tracking_refkey,
MAX (t.fac_tracking_datum) last_change
FROM fac_tracking t
WHERE EXISTS (SELECT 1 -- Last change
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_srtnotificatie_xmlnode = 'contract')
GROUP BY t.fac_tracking_refkey) lc
ON x.cnt_contract_key = lc.fac_tracking_refkey
LEFT JOIN ( SELECT fac.safe_to_number (km.mld_kenmerkmelding_waarde) research_contract_key,
SUM (ou.mld_opdr_uren_besteed) research_uren_besteed
FROM mld_melding m, mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_opdr o, mld_opdr_uren ou
WHERE m.mld_stdmelding_key = 2261 -- Research aanvraag
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1763 -- Research abonnementen
AND m.mld_melding_key = o.mld_melding_key
AND o.mld_opdr_key = ou.mld_opdr_key
GROUP BY fac.safe_to_number (km.mld_kenmerkmelding_waarde)) ru
ON x.cnt_contract_key = ru.research_contract_key
LEFT JOIN ck k1 ON x.cnt_contract_key = k1.cnt_contract_key AND k1.vnr = 1
LEFT JOIN ck k2 ON x.cnt_contract_key = k2.cnt_contract_key AND k2.vnr = 2
LEFT JOIN ck k3 ON x.cnt_contract_key = k3.cnt_contract_key AND k3.vnr = 3
LEFT JOIN ck k4 ON x.cnt_contract_key = k4.cnt_contract_key AND k4.vnr = 4
LEFT JOIN ck k5 ON x.cnt_contract_key = k5.cnt_contract_key AND k5.vnr = 5
LEFT JOIN ck k6 ON x.cnt_contract_key = k6.cnt_contract_key AND k6.vnr = 6
LEFT JOIN ck k7 ON x.cnt_contract_key = k7.cnt_contract_key AND k7.vnr = 7
LEFT JOIN ck k8 ON x.cnt_contract_key = k8.cnt_contract_key AND k8.vnr = 8
LEFT JOIN ck k9 ON x.cnt_contract_key = k9.cnt_contract_key AND k9.vnr = 9
LEFT JOIN ck k10 ON x.cnt_contract_key = k10.cnt_contract_key AND k10.vnr = 10
LEFT JOIN ck k11 ON x.cnt_contract_key = k11.cnt_contract_key AND k11.vnr = 11
LEFT JOIN ck k12 ON x.cnt_contract_key = k12.cnt_contract_key AND k12.vnr = 12
LEFT JOIN ck k13 ON x.cnt_contract_key = k13.cnt_contract_key AND k13.vnr = 13
LEFT JOIN ck k14 ON x.cnt_contract_key = k14.cnt_contract_key AND k14.vnr = 14
LEFT JOIN ck k15 ON x.cnt_contract_key = k15.cnt_contract_key AND k15.vnr = 15
LEFT JOIN ck k16 ON x.cnt_contract_key = k16.cnt_contract_key AND k16.vnr = 16
LEFT JOIN ck k17 ON x.cnt_contract_key = k17.cnt_contract_key AND k17.vnr = 17
LEFT JOIN ck k18 ON x.cnt_contract_key = k18.cnt_contract_key AND k18.vnr = 18
LEFT JOIN ck k19 ON x.cnt_contract_key = k19.cnt_contract_key AND k19.vnr = 19
LEFT JOIN ck k20 ON x.cnt_contract_key = k20.cnt_contract_key AND k20.vnr = 20
LEFT JOIN ck k21 ON x.cnt_contract_key = k21.cnt_contract_key AND k21.vnr = 21
LEFT JOIN ck k22 ON x.cnt_contract_key = k22.cnt_contract_key AND k22.vnr = 22
LEFT JOIN ck k23 ON x.cnt_contract_key = k23.cnt_contract_key AND k23.vnr = 23
LEFT JOIN ck k24 ON x.cnt_contract_key = k24.cnt_contract_key AND k24.vnr = 24
LEFT JOIN ck k25 ON x.cnt_contract_key = k25.cnt_contract_key AND k25.vnr = 25
LEFT JOIN ck k26 ON x.cnt_contract_key = k26.cnt_contract_key AND k26.vnr = 26
LEFT JOIN ck k27 ON x.cnt_contract_key = k27.cnt_contract_key AND k27.vnr = 27
LEFT JOIN ck k28 ON x.cnt_contract_key = k28.cnt_contract_key AND k28.vnr = 28
LEFT JOIN ck k29 ON x.cnt_contract_key = k29.cnt_contract_key AND k29.vnr = 29
LEFT JOIN ck k30 ON x.cnt_contract_key = k30.cnt_contract_key AND k30.vnr = 30
LEFT JOIN ck k31 ON x.cnt_contract_key = k31.cnt_contract_key AND k31.vnr = 31
LEFT JOIN ck k32 ON x.cnt_contract_key = k32.cnt_contract_key AND k32.vnr = 32
LEFT JOIN ck k33 ON x.cnt_contract_key = k33.cnt_contract_key AND k33.vnr = 33
LEFT JOIN ck k34 ON x.cnt_contract_key = k34.cnt_contract_key AND k34.vnr = 34
LEFT JOIN ck k35 ON x.cnt_contract_key = k35.cnt_contract_key AND k35.vnr = 35
LEFT JOIN ck k36 ON x.cnt_contract_key = k36.cnt_contract_key AND k36.vnr = 36
LEFT JOIN ck k37 ON x.cnt_contract_key = k37.cnt_contract_key AND k37.vnr = 37
LEFT JOIN ck k38 ON x.cnt_contract_key = k38.cnt_contract_key AND k38.vnr = 38
LEFT JOIN ck k39 ON x.cnt_contract_key = k39.cnt_contract_key AND k39.vnr = 39
LEFT JOIN ck k40 ON x.cnt_contract_key = k40.cnt_contract_key AND k40.vnr = 40
LEFT JOIN ck k41 ON x.cnt_contract_key = k41.cnt_contract_key AND k41.vnr = 41
LEFT JOIN ck k42 ON x.cnt_contract_key = k42.cnt_contract_key AND k42.vnr = 42
LEFT JOIN ck k43 ON x.cnt_contract_key = k43.cnt_contract_key AND k43.vnr = 43
LEFT JOIN ck k44 ON x.cnt_contract_key = k44.cnt_contract_key AND k44.vnr = 44
LEFT JOIN ck k45 ON x.cnt_contract_key = k45.cnt_contract_key AND k45.vnr = 45
LEFT JOIN ck k46 ON x.cnt_contract_key = k46.cnt_contract_key AND k46.vnr = 46
LEFT JOIN ck k47 ON x.cnt_contract_key = k47.cnt_contract_key AND k47.vnr = 47
LEFT JOIN ck k48 ON x.cnt_contract_key = k48.cnt_contract_key AND k48.vnr = 48
LEFT JOIN ck k49 ON x.cnt_contract_key = k49.cnt_contract_key AND k49.vnr = 49
LEFT JOIN ck k50 ON x.cnt_contract_key = k50.cnt_contract_key AND k50.vnr = 50
LEFT JOIN ck k51 ON x.cnt_contract_key = k51.cnt_contract_key AND k51.vnr = 51
LEFT JOIN ck k52 ON x.cnt_contract_key = k52.cnt_contract_key AND k52.vnr = 52
LEFT JOIN ck k53 ON x.cnt_contract_key = k53.cnt_contract_key AND k53.vnr = 53
LEFT JOIN ck k54 ON x.cnt_contract_key = k54.cnt_contract_key AND k54.vnr = 54
LEFT JOIN ck k55 ON x.cnt_contract_key = k55.cnt_contract_key AND k55.vnr = 55
LEFT JOIN ck k56 ON x.cnt_contract_key = k56.cnt_contract_key AND k56.vnr = 56
LEFT JOIN ck k57 ON x.cnt_contract_key = k57.cnt_contract_key AND k57.vnr = 57
LEFT JOIN ck k58 ON x.cnt_contract_key = k58.cnt_contract_key AND k58.vnr = 58
LEFT JOIN ck k59 ON x.cnt_contract_key = k59.cnt_contract_key AND k59.vnr = 59
LEFT JOIN ck k60 ON x.cnt_contract_key = k60.cnt_contract_key AND k60.vnr = 60
LEFT JOIN ck k61 ON x.cnt_contract_key = k61.cnt_contract_key AND k61.vnr = 61
LEFT JOIN ck k62 ON x.cnt_contract_key = k62.cnt_contract_key AND k62.vnr = 62
LEFT JOIN ck k63 ON x.cnt_contract_key = k63.cnt_contract_key AND k63.vnr = 63
LEFT JOIN ck k64 ON x.cnt_contract_key = k64.cnt_contract_key AND k64.vnr = 64
LEFT JOIN ck k65 ON x.cnt_contract_key = k65.cnt_contract_key AND k65.vnr = 65
LEFT JOIN ck k66 ON x.cnt_contract_key = k66.cnt_contract_key AND k66.vnr = 66
LEFT JOIN ck k67 ON x.cnt_contract_key = k67.cnt_contract_key AND k67.vnr = 67
LEFT JOIN ck k68 ON x.cnt_contract_key = k68.cnt_contract_key AND k68.vnr = 68
LEFT JOIN ck k69 ON x.cnt_contract_key = k69.cnt_contract_key AND k69.vnr = 69
LEFT JOIN ck k70 ON x.cnt_contract_key = k70.cnt_contract_key AND k70.vnr = 70
LEFT JOIN ck k71 ON x.cnt_contract_key = k71.cnt_contract_key AND k71.vnr = 71
LEFT JOIN ck k72 ON x.cnt_contract_key = k72.cnt_contract_key AND k72.vnr = 72
LEFT JOIN ck k73 ON x.cnt_contract_key = k73.cnt_contract_key AND k73.vnr = 73
LEFT JOIN ck k74 ON x.cnt_contract_key = k74.cnt_contract_key AND k74.vnr = 74
LEFT JOIN ck k75 ON x.cnt_contract_key = k75.cnt_contract_key AND k75.vnr = 75
LEFT JOIN ck k76 ON x.cnt_contract_key = k76.cnt_contract_key AND k76.vnr = 76
LEFT JOIN ck k77 ON x.cnt_contract_key = k77.cnt_contract_key AND k77.vnr = 77
LEFT JOIN ck k78 ON x.cnt_contract_key = k78.cnt_contract_key AND k78.vnr = 78
LEFT JOIN ck k79 ON x.cnt_contract_key = k79.cnt_contract_key AND k79.vnr = 79
LEFT JOIN ck k80 ON x.cnt_contract_key = k80.cnt_contract_key AND k80.vnr = 80
LEFT JOIN ck k81 ON x.cnt_contract_key = k81.cnt_contract_key AND k81.vnr = 81
LEFT JOIN ck k82 ON x.cnt_contract_key = k82.cnt_contract_key AND k82.vnr = 82
LEFT JOIN ck k83 ON x.cnt_contract_key = k83.cnt_contract_key AND k83.vnr = 83
LEFT JOIN ck k84 ON x.cnt_contract_key = k84.cnt_contract_key AND k84.vnr = 84
LEFT JOIN ck k85 ON x.cnt_contract_key = k85.cnt_contract_key AND k85.vnr = 85
LEFT JOIN ck k86 ON x.cnt_contract_key = k86.cnt_contract_key AND k86.vnr = 86
LEFT JOIN ck k87 ON x.cnt_contract_key = k87.cnt_contract_key AND k87.vnr = 87
LEFT JOIN ck k88 ON x.cnt_contract_key = k88.cnt_contract_key AND k88.vnr = 88
LEFT JOIN ck k89 ON x.cnt_contract_key = k89.cnt_contract_key AND k89.vnr = 89
LEFT JOIN ck k90 ON x.cnt_contract_key = k90.cnt_contract_key AND k90.vnr = 90
LEFT JOIN ck k91 ON x.cnt_contract_key = k91.cnt_contract_key AND k91.vnr = 91
LEFT JOIN ck k92 ON x.cnt_contract_key = k92.cnt_contract_key AND k92.vnr = 92
LEFT JOIN ck k93 ON x.cnt_contract_key = k93.cnt_contract_key AND k93.vnr = 93
LEFT JOIN ck k94 ON x.cnt_contract_key = k94.cnt_contract_key AND k94.vnr = 94
LEFT JOIN ck k95 ON x.cnt_contract_key = k95.cnt_contract_key AND k95.vnr = 95
LEFT JOIN ck k96 ON x.cnt_contract_key = k96.cnt_contract_key AND k96.vnr = 96
LEFT JOIN ck k97 ON x.cnt_contract_key = k97.cnt_contract_key AND k97.vnr = 97
LEFT JOIN ck k98 ON x.cnt_contract_key = k98.cnt_contract_key AND k98.vnr = 98
LEFT JOIN ck k99 ON x.cnt_contract_key = k99.cnt_contract_key AND k99.vnr = 99
LEFT JOIN ck k100 ON x.cnt_contract_key = k100.cnt_contract_key AND k100.vnr = 100
;
CREATE OR REPLACE VIEW blcc_v_rap_cnt_algscope
AS
SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
contractnr,
DECODE (cp.cnt_alg_plaats_code, 'L', cnt_alg_plaats_key, NULL) alg_locatie_key,
DECODE (cp.cnt_alg_plaats_code, 'L', NULL, cp.cnt_alg_plaats_key) alg_onrgoed_key,
DECODE (cp.cnt_alg_plaats_code, 'L', NULL, cp.cnt_alg_plaats_code) alg_onrgoed_type,
cp.cnt_contract_plaats_gewicht gewicht,
fac.safe_to_number (mdp.cnt_kenmerkcontract_waarde) dedi_parking_cnt
FROM cnt_contract_plaats cp, cnt_v_aanwezigcontract c,
(SELECT * FROM cnt_kenmerkcontract WHERE cnt_kenmerkcontract_verwijder IS NULL AND cnt_kenmerk_key IN (1341, 1361)) mdp -- #Med. Dedicated Parking
WHERE cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key NOT BETWEEN 621 AND 761
AND c.ins_discipline_key NOT IN (1381, 1581, 1961, 2121) -- BCC Soft Serv./BCC Hard Serv./BCC Collectief PMA/Lease Option
AND c.cnt_contract_key = mdp.cnt_contract_key(+)
;
CREATE OR REPLACE VIEW blcc_v_rap_twinfieldgeg
AS
SELECT SUBSTR (factuurdatum, 7, 4) || SUBSTR (factuurdatum, 4, 2) || SUBSTR (factuurdatum, 1, 2) || SUBSTR ('000000000' || hide_f_sortering, -10) sortering, -- <yyyy>1<volgnr>/oud
--fclt_x_maand,
'171025970000' administratie,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM blcc_v_rap_export_fact
UNION ALL
SELECT sync_id || SUBSTR ('000000000' || hide_f_sortering, -10) sortering, -- <yyyy>1<volgnr>/CV, <yyyy>2<volgnr>/oud en 3<volgnr>/CV
--fclt_x_maand,
'171025970000' administratie,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM blcc_v_rap_export_tf_cv
UNION ALL
SELECT sync_id || SUBSTR ('000000000' || hide_f_sortering, -10) sortering, -- <yyyy>1<volgnr>/CRF en 3<volgnr>/CRF
--fclt_x_maand,
'171046835000' administratie,
code,
valuta,
factuurdatum,
periode,
factuurnummer,
vervaldatum,
nummer,
grtboekrek,
rel_kpl,
prj_activa,
bedrag,
debitcredit,
omschrijving,
btwcode
FROM blcc_v_rap_export_tf_crf
ORDER BY 1;
CREATE OR REPLACE VIEW blcc_v_rap_factuurgeg
AS
SELECT fin_verkoopfactuur_aanmaak aanmaak,
fin_verkoopfactuur_id factuurnummer,
fin_verkoopfactuur_datum factuurdatum,
fin_verkoopfactuur_omschr omschrijving,
fin_verkoopfactuur_xmlnode xmlnode,
fin_verkoopfactuur_refkey refkey,
prs_kostenplaats_key kostenplaats_key,
prs_kostenplaats_nr kostenplaats_code,
prs_kostenplaats_omschrijving kostenplaats_oms,
--prs_kostenplaatsgrp_oms kostenplaatsgrp_oms,
prs_kostensoort_oms kostensoort_code,
--prs_kostensoort_opm kostensoort_oms,
--prs_kostensoort_refcode kostensoort_altcode,
prs_bedrijf_key debiteur_key,
prs_debiteur_naam debiteur,
--prs_kostensoortgrp_oms kostensoortgrp_oms,
fin_verkoopfactuur_bedrag bedrag,
fin_verkoopfactuur_btw btw,
fin_btwtabelwaarde_code btw_code,
fin_btwtabelwaarde_perc btw_perc,
fin_btwtabelwaarde_verlegd btw_verlegd,
fin_verkoopfactuur_maand maand,
fin_verkoopfactuur_n1 n1, -- V1-Korting|ADDD-Correctiemelding|V2-Aantal
fin_verkoopfactuur_n2 n2, -- V1-Correctiemelding|V2-Bedrag
fin_verkoopfactuur_n3 n3_crf, -- V2-CRF 0/1|ADDD-CRF 0/1
fin_verkoopfactuur_n4 n4_factuur, -- V2-Factuur 0/1
fin_verkoopfactuur_n5 n5, -- V2-Correctiemelding
fin_verkoopfactuur_c1 c1, -- V1-L-tarief|ADDD-PO|V2-Ourref
fin_verkoopfactuur_c2 c2, -- V1-H-tarief|ADDD-ContractId|V2-ContractOms
fin_verkoopfactuur_c3 c3, -- V1-K-tarief|ADDD-Sortering
fin_verkoopfactuur_c4 c4, -- V1-O-tarief
fin_verkoopfactuur_c5 c5_aanvr, -- V1-T-tarief|ADDD-Gastheer/Aanvrager
fin_verkoopfactuur_c6 c6_plaatsgeg, -- onrgoed_type+onrgoed_key=plaats
fin_verkoopfactuur_c7 c7_debnr_btwnr, -- debiteur_nr=btw_nr
fin_verkoopfactuur_c8 c8, -- V1+2-Correctieomschr.|ADDD-RegelOms
fin_verkoopfactuur_d1 d1_vervaldatum,
fin_verkoopfactuur_d2 d2_mndbegin,
fin_verkoopfactuur_d3 d3_mndeind,
fin_verkoopfactuur_d4 d4_dagbegin,
fin_verkoopfactuur_d5 d5_dageind
FROM fin_verkoopfactuur vf
WHERE fin_verkoopfactuur_key > 1;
CREATE OR REPLACE VIEW blcc_v_rap_sch_freeze
AS
SELECT x.sch_maand,
x.freeze_datum datum_po,
x.alg_ruimte_key,
x.locatiecode,
x.gebouwcode,
g.alg_gebouw_naam gebouwnaam,
x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving ruimteomschrijving,
TO_CHAR (x.nvo, 'fm999999999999999990.00') nvo,
TO_CHAR (x.nvo_getekend, 'fm999999999999999990.00') nvo_getekend,
TO_CHAR (x.basic_tarief, 'fm999999999999999990.00000') basic_tarief,
TO_CHAR (x.premium_tarief, 'fm999999999999999990.00000') premium_tarief,
TO_CHAR (x.excellent_tarief, 'fm999999999999999990.00000') excellent_tarief,
x.sch_tariefniveau,
TO_CHAR (
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0), 2)),
ROUND (COALESCE (x.premium_tarief, 0), 2)),
ROUND (COALESCE (x.excellent_tarief, 0), 2)), 'fm999999999999999990.00')
nvo_prijs_jaar,
TO_CHAR (
DECODE (INSTR (UPPER (x.sch_tariefniveau), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief, 0) / 12, 2)), 'fm999999999999999990.00')
nvo_prijs_maand,
vloertype.waarde vloertype,
x.lhkotc_class,
fac.safe_to_number (SUBSTR (x.sch_contract, 1, INSTR (x.sch_contract, '=') - 1)) cnt_contract_key,
SUBSTR (x.sch_contract, INSTR (x.sch_contract, '=') + 1, INSTR (x.sch_contract, '|') - INSTR (x.sch_contract, '=') - 1) contractnr,
SUBSTR (x.sch_contract, INSTR (x.sch_contract, '|') + 1, INSTR (x.sch_contract, '|', 1, 2) - INSTR (x.sch_contract, '|', 1, 1) - 1) contractsoort,
SUBSTR (x.sch_contract, INSTR (x.sch_contract, '|', 1, 2) + 1, INSTR (x.sch_contract, '|', 1, 3) - INSTR (x.sch_contract, '|', 1, 2) - 1) debiteur_nr,
SUBSTR (x.sch_contract, INSTR (x.sch_contract, '|', 1, 3) + 1) contractant,
--fac.safe_to_number (SUBSTR (x.sch_mantel, 1, INSTR (x.sch_mantel, '=') - 1)) cnt_contract_mantel_key,
SUBSTR (x.sch_mantel, INSTR (x.sch_mantel, '=') + 1, INSTR (x.sch_mantel, '|') - INSTR (x.sch_mantel, '=') - 1) mantelcontractnr,
SUBSTR (x.sch_mantel, INSTR (x.sch_mantel, '|') + 1) mantelcontractbeschr,
TO_CHAR (x.basic_tarief2, 'fm999999999999999990.00000') basic_tarief2,
TO_CHAR (x.premium_tarief2, 'fm999999999999999990.00000') premium_tarief2,
TO_CHAR (x.excellent_tarief2, 'fm999999999999999990.00000') excellent_tarief2,
TO_CHAR (x.excelplus_tarief2, 'fm999999999999999990.00000') excelplus_tarief2,
x.sch_tariefniveau2,
TO_CHAR (
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0), 2)),
ROUND (COALESCE (x.premium_tarief2, 0), 2)),
ROUND (COALESCE (x.excellent_tarief2, 0), 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0), 2)), 'fm999999999999999990.00')
nvo_prijs_jaar2,
TO_CHAR (
DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT PLUS'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'EXCELLENT'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'PREMIUM'),
0, DECODE (INSTR (UPPER (x.sch_tariefniveau2), 'BASIC'),
0, 0, -- Zou nooit mogen voorkomen!
ROUND (COALESCE (x.basic_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.premium_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excellent_tarief2, 0) / 12, 2)),
ROUND (COALESCE (x.excelplus_tarief2, 0) / 12, 2)), 'fm999999999999999990.00')
nvo_prijs_maand2
FROM blcc_alg_freeze x, alg_ruimte r, alg_verdieping v, alg_gebouw g,
(SELECT alg_onrgoed_key, ud.fac_usrdata_omschr waarde
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1301 -- Vloertype
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) vloertype
WHERE x.sch_contract IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = vloertype.alg_onrgoed_key(+);
CREATE OR REPLACE VIEW blcc_v_rap_alg_leeg_freeze
AS
SELECT TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') freeze_datum,
TO_CHAR (x.freeze_datum, 'yyyy-mm') leeg_maand, -- LET OP: Op verzoek van RQ geldt in deze rapportage: leeg_maand volgens freeze_datum!
x.alg_ruimte_key,
x.gebouwclustercode gebouwcluster,
x.gebouwcode,
--g.alg_gebouw_naam gebouwnaam,
--x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving ruimteomschrijving,
TO_CHAR (x.nvo, 'fm999999999999999990.00') nvo,
TO_CHAR (x.nvo_getekend, 'fm999999999999999990.00') nvo_getekend,
TO_CHAR (x.vvo, 'fm999999999999999990.00') vvo,
x.lhkotc_class,
x.lhkotc_class_code,
x.gebouw_strategie,
x.in_expl_dat,
x.uit_expl_dat,
x.gebouwfunctie,
TO_CHAR (ADD_MONTHS (x.freeze_datum, -1), 'dd-mm-yyyy') huurfactuur_datum,
TO_CHAR (x.freeze_datum, 'yyyy-mm') huurfactuur_maand,
x.lhkotc_brink_code
FROM blcc_alg_freeze x, alg_ruimte r, alg_verdieping v, alg_gebouw g
WHERE x.huur_maand BETWEEN '2021-01' AND '2024-11' -- T/m freeze_datum 1-10-2024 leegstand tegen basis voor huurfactuur over huidige maand (= voorgaande maand).
AND NOT EXISTS (SELECT 1 FROM blcc_alg_freeze WHERE huur_contract IS NOT NULL AND huur_maand = TO_CHAR (x.freeze_datum, 'yyyy-mm') AND alg_ruimte_key = x.alg_ruimte_key)
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
--AND COALESCE (x.gebouw_vervaldatum, g.alg_gebouw_vervaldatum) IS NULL -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
--AND COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > freeze_datum -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
AND g.alg_gebouw_vervaldatum IS NULL -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
UNION ALL
SELECT TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') freeze_datum,
TO_CHAR (x.freeze_datum, 'yyyy-mm') leeg_maand, -- LET OP: Op verzoek van RQ geldt in deze rapportage: leeg_maand volgens freeze_datum!
x.alg_ruimte_key,
x.gebouwclustercode gebouwcluster,
x.gebouwcode,
--g.alg_gebouw_naam gebouwnaam,
--x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving ruimteomschrijving,
TO_CHAR (x.nvo, 'fm999999999999999990.00') nvo,
TO_CHAR (x.nvo_getekend, 'fm999999999999999990.00') nvo_getekend,
TO_CHAR (x.vvo, 'fm999999999999999990.00') vvo,
x.lhkotc_class,
x.lhkotc_class_code,
x.gebouw_strategie,
x.in_expl_dat,
x.uit_expl_dat,
x.gebouwfunctie,
TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') huurfactuur_datum,
x.huur_maand huurfactuur_maand,
x.lhkotc_brink_code
FROM blcc_alg_freeze x, alg_ruimte r, alg_verdieping v, alg_gebouw g
WHERE TO_CHAR (x.freeze_datum, 'yyyy-mm') >= '2024-10' -- Vanaf freeze_datum 1-10-2024 leegstand tegen basis voor huurfactuur over volgende maand (= deze maand).
AND NOT EXISTS (SELECT 1 FROM blcc_alg_freeze WHERE huur_contract IS NOT NULL AND TRUNC (freeze_datum) = TRUNC (x.freeze_datum) AND alg_ruimte_key = x.alg_ruimte_key)
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
--AND COALESCE (x.gebouw_vervaldatum, g.alg_gebouw_vervaldatum) IS NULL -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
--AND COALESCE (g.alg_gebouw_vervaldatum, SYSDATE) > freeze_datum -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
AND g.alg_gebouw_vervaldatum IS NULL -- Bestaande ruimten onder vervallen gebouwen tellen niet als leegstand!
;
/* Oude variant op basis van BLCC_ALG_FREEZE-tabel.
-- VVO verhuurd op basis van BLCC_ALG_FREEZE-tabel (huur_contract=NOT NULL).
CREATE OR REPLACE VIEW blcc_v_rap_alg_verh_freeze
AS
SELECT x.freeze_datum,
x.huur_maand,
x.alg_ruimte_key,
--x.locatiecode,
--x.gebouwcode,
--g.alg_gebouw_naam gebouwnaam,
--x.verdiepingcode,
x.ruimtenummer,
x.ruimtefunctie,
r.alg_ruimte_omschrijving ruimteomschrijving,
TO_CHAR (x.nvo, 'fm999999999999999990.00') nvo,
TO_CHAR (x.nvo_getekend, 'fm999999999999999990.00') nvo_getekend,
TO_CHAR (x.vvo, 'fm999999999999999990.00') vvo,
x.lhkotc_class,
x.huur_contract
FROM blcc_alg_freeze x, alg_ruimte r
WHERE x.huur_contract IS NOT NULL
AND x.alg_ruimte_key = r.alg_ruimte_key;
*/
-- VVO verhuurd per ruimte op basis van FIN_VERKOOPFACTUUR-tabel.
CREATE OR REPLACE VIEW blcc_v_rap_alg_verh_freeze
AS
SELECT TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') freeze_datum,
x.huur_maand,
x.alg_ruimte_key,
x.ruimtenummer, -- Actuele nummer
--x.ruimtefunctie, -- Actuele ruimtefunctie
--x.ruimteomschrijving, -- Actuele ruimteomschrijving
--NULL nvo, -- Niet bewaard in FIN_VERKOOPFACTUUR-tabel
--NULL nvo_getekend, -- Niet bewaard in FIN_VERKOOPFACTUUR-tabel
--TO_CHAR (x.vvo, 'fm999999999999999990.00')
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (x.vvo, 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (r.vvo, 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo,
--TO_CHAR (NULL, 'fm999999999999999990.00')
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (NULL, 'fm999999999999999990.00') -- Leeg
ELSE
TO_CHAR (x.vvo, 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
END
vvo_overeenkomst,
COALESCE (r.lhkotc_class, x.lhkotc_class) lhkotc_class,
COALESCE (r.lhkotc_class_code, SUBSTR (COALESCE (r.lhkotc_class, x.lhkotc_class), 1, 1)) lhkotc_class_code,
x.cnt_contract_key,
x.huur_contract,
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee') gefactureerd,
r.lhkotc_brink_code
FROM (SELECT DISTINCT
x.fin_verkoopfactuur_datum freeze_datum,
x.fin_verkoopfactuur_maand huur_maand,
NULL alg_ruimte_key,
'G-' || DECODE (c.ins_discipline_key, 2122, 'LA-', 'LA_CRF-') || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ruimtenummer,
NULL ruimtefunctie,
NULL ruimteomschrijving,
COALESCE (x.fin_verkoopfactuur_n1, 0) vvo,
DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1),
'L', 'Lab',
'H', 'Hal',
'K', 'Kantoor',
'O', 'Overig',
'T', 'Terrein',
'C', 'Collectief',
NULL)
lhkotc_class,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') huur_contract,
x.fin_verkoopfactuur_n4
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'G'
UNION ALL
SELECT DISTINCT
x.fin_verkoopfactuur_datum freeze_datum,
x.fin_verkoopfactuur_maand huur_maand,
NULL alg_ruimte_key,
'V-' || DECODE (c.ins_discipline_key, 2122, 'LA-', 'LA_CRF-') || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') ruimtenummer,
NULL ruimtefunctie,
NULL ruimteomschrijving,
COALESCE (x.fin_verkoopfactuur_n1, 0) vvo,
DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1),
'L', 'Lab',
'H', 'Hal',
'K', 'Kantoor',
'O', 'Overig',
'T', 'Terrein',
'C', 'Collectief',
NULL)
lhkotc_class,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') huur_contract,
x.fin_verkoopfactuur_n4
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'V'
UNION ALL
SELECT x.fin_verkoopfactuur_datum freeze_datum,
x.fin_verkoopfactuur_maand huur_maand,
r.alg_ruimte_key,
r.alg_ruimte_nr ruimtenummer,
sr.alg_srtruimte_omschrijving ruimtefunctie,
r.alg_ruimte_omschrijving ruimteomschrijving,
COALESCE (x.fin_verkoopfactuur_n1, 0) vvo,
DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1),
'L', 'Lab',
'H', 'Hal',
'K', 'Kantoor',
'O', 'Overig',
'T', 'Terrein',
'C', 'Collectief',
NULL)
lhkotc_class,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') huur_contract,
x.fin_verkoopfactuur_n4
FROM fin_verkoopfactuur x, cnt_contract c, alg_ruimte r, alg_srtruimte sr
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)) x
LEFT JOIN
blcc_alg_freeze r
ON x.huur_maand = REPLACE (r.huur_maand, '-', '') AND x.alg_ruimte_key = r.alg_ruimte_key
;
/*
LEFT JOIN ( SELECT x.fin_verkoopfactuur_maand huurmaand,
aog.alg_ruimte_key,
LISTAGG (DISTINCT c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'), ',') WITHIN GROUP (ORDER BY c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'))
huur_contract
FROM fin_verkoopfactuur x, cnt_contract c, alg_v_allonrgoed_gegevens aog
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = aog.alg_onroerendgoed_keys
AND aog.alg_type = 'R'
GROUP BY x.fin_verkoopfactuur_maand,
aog.alg_ruimte_key) c
ON x.huur_maand = c.huurmaand AND x.alg_ruimte_key = c.alg_ruimte_key;
*/
--Per Lease Agreement of Lease Agreement CRF op 1 regel:
-- Contractsoort
-- Contractkey
-- Contractnummer
-- Debiteurnaam (bedrijf)
-- Debiteurnummer (staat onder leveranciersnummer bij relatie)
-- Status
-- Ingangsdatum
-- Einddatum
-- Locatie waar het contract betrekking op heeft
-- Gebouwen waar het contract betrekking op heeft, gescheiden door 'separator' (bijv ";")
-- Optelsom VVO (zoals op ruimtes vastgelegd), met per kolom 1 klasse hklotc (6 in totaal dus)
-- Waarde Correctievelden HKLOT op het contract in 5 kolommen (per hklot klasse)
-- VVO Overeenkomst (= optelsom VVO gecorrigeerd met correctievelden, uitgesplitst naar HKLOT)
--De kern van wat NU nodig is zijn de bovenstaande gegevens. Maar ik zou in een later stadu ook graag andere velden toevoegen nl. deze velden in het contract onder de kopjes:
-- Collective services gebouwgebonden
-- Collective services persoonsgebonden
-- Aanvullende gegevens rent (de contracttarieven dus)
-- Aanvullende gegevens utilities
-- Huurderspecifiek voorschot
-- Aanvullende gegevens - Gebruikergebonden voorzieningen
-- Aanvullende gegevens Subsidies
-- Algemene gegevens, de volgende velden:
-- Alle #Med getallen
-- Factuur versturen (ja/nee)
-- Oorspronkelijke ingangsdatum contract
-- Uit de eigentabel van BCC met tarieven de relevante tarieven die gebruikt worden voor het berekenen van de verhuurfactuur (o.a. tarief p.p. voor Parking en Public Amenities
-- Er moeten 2 datums zitten in het report:
-- Datum 1: de datum waarop het overzicht gegenereerd is
-- Datum 2: de jaar-maand combinatie waar het overzicht betrekking op heeft (de volgende kalendermaand)
--> m.a.w.: het rapport op 1 april 2022 (Datum 1) heeft betrekking op de huurperiode 2022-05 (datum 2)
-- Filter:
-- op het moment van genereren wordt gekeken welke LA of LA CRF contracten actief (Zie hieronder) zijn in de opvolgende maand en waarvoor dus een factuur gegenereerd moet worden (indien factuur versturen = 'ja', maar voor factuur versturen = 'nee' moet ook de data opgeslagen worden).
-- Actief =
-- Ingangsdatum contract is <= aan de 1e dag van de volgende maand
-- Einddatum contract is >= aan de laatste dag van de volgende maand
-- De status van het contract is definitief
-- Van deze contracten worden alle bovenstaande gegevens vastgelegd, zoals deze ook gebruikt worden om de factuur uit te rekenen.
/*
CREATE OR REPLACE VIEW blcc_v_rap_cnt_verh_freeze
AS
SELECT x.freeze_datum,
--x.huur_maand,
x.huur_maand || 'alg' huur_maand,
x.contractsoort,
x.cnt_contract_key,
x.contractnr,
x.debiteur_nr,
x.prs_debiteur_naam,
x.contractstatus,
x.ingangsdatum,
x.einddatum,
x.locatiecode,
g.gebouwen,
TO_CHAR (COALESCE (lopp.vvo, 0), 'fm999999999999999990.00') l_vvo,
TO_CHAR (COALESCE (hopp.vvo, 0), 'fm999999999999999990.00') h_vvo,
TO_CHAR (COALESCE (kopp.vvo, 0), 'fm999999999999999990.00') k_vvo,
TO_CHAR (COALESCE (oopp.vvo, 0), 'fm999999999999999990.00') o_vvo,
TO_CHAR (COALESCE (topp.vvo, 0), 'fm999999999999999990.00') t_vvo,
TO_CHAR (COALESCE (copp.vvo, 0), 'fm999999999999999990.00') c_vvo,
TO_CHAR (COALESCE (lc.waarde, 0), 'fm999999999999999990.00') l_corr,
TO_CHAR (COALESCE (hc.waarde, 0), 'fm999999999999999990.00') h_corr,
TO_CHAR (COALESCE (kc.waarde, 0), 'fm999999999999999990.00') k_corr,
TO_CHAR (COALESCE (oc.waarde, 0), 'fm999999999999999990.00') o_corr,
TO_CHAR (COALESCE (tc.waarde, 0), 'fm999999999999999990.00') t_corr,
TO_CHAR (COALESCE (lopp.vvo, 0) - COALESCE (lc.waarde, 0), 'fm999999999999999990.00') l_som,
TO_CHAR (COALESCE (hopp.vvo, 0) - COALESCE (hc.waarde, 0), 'fm999999999999999990.00') h_som,
TO_CHAR (COALESCE (kopp.vvo, 0) - COALESCE (kc.waarde, 0), 'fm999999999999999990.00') k_som,
TO_CHAR (COALESCE (oopp.vvo, 0) - COALESCE (oc.waarde, 0), 'fm999999999999999990.00') o_som,
TO_CHAR (COALESCE (topp.vvo, 0) - COALESCE (tc.waarde, 0), 'fm999999999999999990.00') t_som
FROM (SELECT DISTINCT
x.freeze_datum,
x.huur_maand,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
b.prs_bedrijf_naam prs_debiteur_naam,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
c.cnt_contract_looptijd_van ingangsdatum,
c.cnt_contract_looptijd_tot einddatum,
x.locatiecode
FROM blcc_alg_freeze x, cnt_contract c, cnt_discipline cd, prs_bedrijf b
WHERE x.huur_contract IS NOT NULL
AND fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) = c.cnt_contract_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
LISTAGG (DISTINCT x.gebouwcode, ', ') WITHIN GROUP (ORDER BY x.gebouwcode) AS gebouwen
FROM blcc_alg_freeze x
WHERE x.huur_contract IS NOT NULL
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) g
ON x.cnt_contract_key = g.cnt_contract_key AND x.huur_maand = g.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'L'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) lopp
ON x.cnt_contract_key = lopp.cnt_contract_key AND x.huur_maand = lopp.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'H'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) hopp
ON x.cnt_contract_key = hopp.cnt_contract_key AND x.huur_maand = hopp.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'K'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) kopp
ON x.cnt_contract_key = kopp.cnt_contract_key AND x.huur_maand = kopp.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'O'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) oopp
ON x.cnt_contract_key = oopp.cnt_contract_key AND x.huur_maand = oopp.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'T'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) topp
ON x.cnt_contract_key = topp.cnt_contract_key AND x.huur_maand = topp.huur_maand
LEFT JOIN ( SELECT fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)) cnt_contract_key,
x.huur_maand,
SUM (COALESCE (x.vvo, 0)) vvo
FROM blcc_alg_freeze x
WHERE SUBSTR (x.lhkotc_class, 1, 1) = 'C'
GROUP BY fac.safe_to_number (SUBSTR (x.huur_contract, 1, INSTR (x.huur_contract, '=') - 1)),
x.huur_maand) copp
ON x.cnt_contract_key = copp.cnt_contract_key AND x.huur_maand = copp.huur_maand
LEFT JOIN (SELECT kc.cnt_contract_key, fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = 301 AND cnt_kenmerk_key = kc.cnt_kenmerk_key)) lc
ON x.cnt_contract_key = lc.cnt_contract_key
LEFT JOIN (SELECT kc.cnt_contract_key, fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = 302 AND cnt_kenmerk_key = kc.cnt_kenmerk_key)) hc
ON x.cnt_contract_key = hc.cnt_contract_key
LEFT JOIN (SELECT kc.cnt_contract_key, fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = 303 AND cnt_kenmerk_key = kc.cnt_kenmerk_key)) kc
ON x.cnt_contract_key = kc.cnt_contract_key
LEFT JOIN (SELECT kc.cnt_contract_key, fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = 304 AND cnt_kenmerk_key = kc.cnt_kenmerk_key)) oc
ON x.cnt_contract_key = oc.cnt_contract_key
LEFT JOIN (SELECT kc.cnt_contract_key, fac.safe_to_number (kc.cnt_kenmerkcontract_waarde) waarde
FROM cnt_kenmerkcontract kc
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_srtkenmerk_key = 305 AND cnt_kenmerk_key = kc.cnt_kenmerk_key)) tc
ON x.cnt_contract_key = tc.cnt_contract_key
UNION ALL
*/
-- VVO verhuurd per contract op basis van FIN_VERKOOPFACTUUR-tabel.
CREATE OR REPLACE VIEW blcc_v_rap_cnt_verh_freeze
AS
SELECT TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') freeze_datum,
x.huur_maand,
x.contractsoort, -- Niet historisch bewaard!
x.cnt_contract_key,
x.contractnr,
x.debiteur_nr,
x.prs_debiteur_naam, -- Niet historisch bewaard!
x.contractstatus, -- Niet historisch bewaard!
TO_CHAR (x.ingangsdatum, 'dd-mm-yyyy') ingangsdatum, -- Niet historisch bewaard!
TO_CHAR (x.einddatum, 'dd-mm-yyyy') einddatum, -- Niet historisch bewaard!
CASE
WHEN x.huur_maand < '202209'
THEN
'CAMPUS'
ELSE
gc.gebouwclustercode
END
gebouwcluster,
g.gebouwen,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.l_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.l, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_l,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.h_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.h, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_h,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.k_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.k, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_k,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.o_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.o, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_o,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.t_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.t, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_t,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.c_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.c, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_c,
TO_CHAR (COALESCE (corr.l, 0), 'fm999999999999999990.00') vvo_correctie_l,
TO_CHAR (COALESCE (corr.h, 0), 'fm999999999999999990.00') vvo_correctie_h,
TO_CHAR (COALESCE (corr.k, 0), 'fm999999999999999990.00') vvo_correctie_k,
TO_CHAR (COALESCE (corr.o, 0), 'fm999999999999999990.00') vvo_correctie_o,
TO_CHAR (COALESCE (corr.t, 0), 'fm999999999999999990.00') vvo_correctie_t,
TO_CHAR (COALESCE (ot.l_vvo, 0) + COALESCE (corr.l, 0), 'fm999999999999999990.00') vvo_overeenkomst_l,
TO_CHAR (COALESCE (ot.h_vvo, 0) + COALESCE (corr.h, 0), 'fm999999999999999990.00') vvo_overeenkomst_h,
TO_CHAR (COALESCE (ot.k_vvo, 0) + COALESCE (corr.k, 0), 'fm999999999999999990.00') vvo_overeenkomst_k,
TO_CHAR (COALESCE (ot.o_vvo, 0) + COALESCE (corr.o, 0), 'fm999999999999999990.00') vvo_overeenkomst_o,
TO_CHAR (COALESCE (ot.t_vvo, 0) + COALESCE (corr.t, 0), 'fm999999999999999990.00') vvo_overeenkomst_t,
DECODE (ot.l_tar, NULL, NULL, TO_CHAR (ot.l_tar, 'fm999999999999999990.00')) l_tar,
DECODE (ot.h_tar, NULL, NULL, TO_CHAR (ot.h_tar, 'fm999999999999999990.00')) h_tar,
DECODE (ot.k_tar, NULL, NULL, TO_CHAR (ot.k_tar, 'fm999999999999999990.00')) k_tar,
DECODE (ot.o_tar, NULL, NULL, TO_CHAR (ot.o_tar, 'fm999999999999999990.00')) o_tar,
DECODE (ot.t_tar, NULL, NULL, TO_CHAR (ot.t_tar, 'fm999999999999999990.00')) t_tar,
TO_CHAR (COALESCE (mndnet.rent, 0), 'fm999999999999999990.00') rent, -- Rent
TO_CHAR (COALESCE (mndnet.cff, 0), 'fm999999999999999990.00') cff_subsidy, -- CFF-Subsidy
TO_CHAR (COALESCE (mndnet.fes, 0), 'fm999999999999999990.00') fes_subsidy, -- FES-Subsidy (niet LA CRF)
TO_CHAR (COALESCE (appt.mndnet, 0), 'fm999999999999999990.00') ap_prop_tax, -- Advance Payment Property Tax
TO_CHAR (COALESCE (mndnet.apcs, 0), 'fm999999999999999990.00') ap_coll_serv, -- Advance Payment Collective Services (zoals op factuur)
TO_CHAR (COALESCE (apcs.cg, 0), 'fm999999999999999990.00') ap_cs_cg, -- Collective services campusgebonden (niet LA CRF)
TO_CHAR (COALESCE (apcs.gg, 0), 'fm999999999999999990.00') ap_cs_gg, -- Collective services gebouwgebonden (niet LA CRF)
TO_CHAR (COALESCE (apcs.ts, 0), 'fm999999999999999990.00') ap_cs_ts, -- Collective services huurderspecifiek (niet LA CRF)
TO_CHAR (COALESCE (mndnet.apu, 0), 'fm999999999999999990.00') ap_utilities, -- Advance Payment Utilities
TO_CHAR (COALESCE (mndnet.ssc, 0), 'fm999999999999999990.00') surcharge_sc, -- Surcharge Service Costs (niet LA CRF)/Vervallen
TO_CHAR (COALESCE (mndnet.ggv, 0), 'fm999999999999999990.00') kosten_2gv, -- 2GV (niet LA CRF)
TO_CHAR (COALESCE (mndnet.gggv, 0), 'fm999999999999999990.00') kosten_3gv, -- 3GV (niet LA CRF)
TO_CHAR (COALESCE (mndnet.cf, 0), 'fm999999999999999990.00') cispro_fee, -- CISPRO Fee/Vervallen
TO_CHAR (COALESCE (mndnet.epf, 0), 'fm999999999999999990.00') env_permit_fee, -- Environmental Permit Fee/Vervallen
TO_CHAR (COALESCE (mndnet.sec, 0), 'fm999999999999999990.00') security, -- Securiy/Vervallen
TO_CHAR (COALESCE (mndnet.park, 0), 'fm999999999999999990.00') parking, -- Parking
TO_CHAR (COALESCE (mndnet.pa, 0), 'fm999999999999999990.00') publ_amenities, -- Public Amenities
TO_CHAR (COALESCE (mndnet.dedi_park, 0), 'fm999999999999999990.00') dedi_parking, -- Dedicated Parking
TO_CHAR (COALESCE (sla.fs, 0), 'fm999999999999999990.00') sla_fac_serv, -- SLA Facility Services (niet LA CRF)
TO_CHAR (COALESCE (sla.tss, 0), 'fm999999999999999990.00') sla_ts_serv, -- SLA Tenant-specific Services (niet LA CRF)
ovd.cnt_kenmerkcontract_waarde oorspr_vandat, -- Niet historisch bewaard!
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee') gefactureerd
FROM (SELECT DISTINCT
x.fin_verkoopfactuur_datum freeze_datum,
x.fin_verkoopfactuur_maand huur_maand,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
--TRIM (b.prs_overeenkomst_nr) debiteur_nr,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
x.prs_debiteur_naam,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
c.cnt_contract_looptijd_van ingangsdatum,
c.cnt_contract_looptijd_tot einddatum,
x.fin_verkoopfactuur_n4 -- Factuur versturen (ja/nee)?
FROM fin_verkoopfactuur x, cnt_contract c, cnt_discipline cd, prs_bedrijf b
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
COUNT (DISTINCT baf.gebouwclustercode) aantal_clusters,
MAX (baf.gebouwclustercode) gebouwclustercode,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) o,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) t,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'C', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) c
FROM fin_verkoopfactuur x, cnt_contract c, blcc_alg_freeze baf
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
--AND x.fin_verkoopfactuur_maand = SUBSTR (baf.huur_maand, 1, 4) || SUBSTR (baf.huur_maand, 6, 2)
AND x.fin_verkoopfactuur_maand = REPLACE (baf.huur_maand, '-', '')
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = baf.alg_ruimte_key
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) gc
ON x.cnt_contract_key = gc.cnt_contract_key AND x.huur_maand = gc.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
LISTAGG (DISTINCT aog.alg_gebouw_code, ', ') WITHIN GROUP (ORDER BY aog.alg_gebouw_code) AS gebouwen
FROM fin_verkoopfactuur x, cnt_contract c, alg_v_allonrgoed_gegevens aog
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = aog.alg_onroerendgoed_keys
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) g
ON x.cnt_contract_key = g.cnt_contract_key AND x.huur_maand = g.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) l_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) h_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) k_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) o_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) t_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'C', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) c_vvo,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) l_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) h_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) k_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) o_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) t_tar
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND INSTR (x.fin_verkoopfactuur_c6, '#') > 0
AND INSTR (x.fin_verkoopfactuur_c6, '=Correctie#') = 0
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) ot -- Oppervlakte/Tarief
ON x.cnt_contract_key = ot.cnt_contract_key AND x.huur_maand = ot.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) o,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) t
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND INSTR (x.fin_verkoopfactuur_c6, '=Correctie#') = 1
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) corr
ON x.cnt_contract_key = corr.cnt_contract_key AND x.huur_maand = corr.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Rent', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) rent,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'CFF-Subsidy', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cff,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'FES-Subsidy', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) fes,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Advance Payment Collective Services', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) apcs,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Advance Payment Utilities', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) apu,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Surcharge Service Costs', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ssc,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), '2GV', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ggv,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), '3GV', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) gggv,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'CISPRO Fee', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cf,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Environmental Permit Fee', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) epf,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Security', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) sec,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Parking', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) park,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Public Amenities', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) pa,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Dedicated Parking', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) dedi_park
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) mndnet
ON x.cnt_contract_key = mndnet.cnt_contract_key AND x.huur_maand = mndnet.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (x.fin_verkoopfactuur_bedrag) mndnet
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Property Tax' -- T/m 2020-12
OR SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Property Tax') -- Per 2021-01
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) appt
ON x.cnt_contract_key = appt.cnt_contract_key AND x.huur_maand = appt.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (x.prs_kostensoort_oms, '8171', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cg,
SUM (DECODE (x.prs_kostensoort_oms, '8172', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) gg,
SUM (DECODE (x.prs_kostensoort_oms, '8115', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ts
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122) -- LA
AND SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Collective Services'
AND x.prs_kostensoort_oms IN ('8171', '8172', '8115')
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) apcs
ON x.cnt_contract_key = apcs.cnt_contract_key AND x.huur_maand = apcs.huur_maand
LEFT JOIN ( SELECT c.cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (x.prs_kostensoort_oms, '8173', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) fs,
SUM (DECODE (x.prs_kostensoort_oms, '8174', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) tss
FROM fin_verkoopfactuur x, cnt_contract c
WHERE x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key IN (2122) -- LA
--AND SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'SLA Facility Services'
AND (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'SLA Facility Services' -- T/m 2023-04
OR SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment SLA Facility Services') -- Per 2023-05
AND x.prs_kostensoort_oms IN ('8173', '8174')
GROUP BY c.cnt_contract_key, x.fin_verkoopfactuur_maand) sla
ON x.cnt_contract_key = sla.cnt_contract_key AND x.huur_maand = sla.huur_maand
LEFT JOIN cnt_kenmerkcontract ovd
ON x.cnt_contract_key = ovd.cnt_contract_key
AND ovd.cnt_kenmerkcontract_verwijder IS NULL
AND ovd.cnt_kenmerk_key IN (643, 642) -- Oorspronkelijke ingangsdatum contract
;
/*
CREATE OR REPLACE VIEW blcc_v_rap_cnt_verh_frecent
AS
SELECT freeze_datum,
huur_maand,
contractsoort, -- Niet historisch bewaard!
cnt_contract_key,
contractnr,
debiteur_nr,
prs_debiteur_naam, -- Niet historisch bewaard!
contractstatus, -- Niet historisch bewaard!
ingangsdatum, -- Niet historisch bewaard!
einddatum, -- Niet historisch bewaard!
gebouwcluster,
gebouwen,
vvo_nen2580_l,
vvo_nen2580_h,
vvo_nen2580_k,
vvo_nen2580_o,
vvo_nen2580_t,
vvo_nen2580_c,
vvo_correctie_l,
vvo_correctie_h,
vvo_correctie_k,
vvo_correctie_o,
vvo_correctie_t,
vvo_overeenkomst_l,
vvo_overeenkomst_h,
vvo_overeenkomst_k,
vvo_overeenkomst_o,
vvo_overeenkomst_t,
l_tar,
h_tar,
k_tar,
o_tar,
t_tar,
rent, -- Rent
cff_subsidy, -- CFF-Subsidy
fes_subsidy, -- FES-Subsidy (niet LA CRF)
ap_prop_tax, -- Advance Payment Property Tax
ap_coll_serv, -- Advance Payment Collective Services (zoals op factuur)
ap_cs_cg, -- Collective services campusgebonden (niet LA CRF)
ap_cs_gg, -- Collective services gebouwgebonden (niet LA CRF)
ap_cs_ts, -- Collective services huurderspecifiek (niet LA CRF)
ap_utilities, -- Advance Payment Utilities
surcharge_sc, -- Surcharge Service Costs (niet LA CRF)/Vervallen
kosten_2gv, -- 2GV (niet LA CRF)
kosten_3gv, -- 3GV (niet LA CRF)
cispro_fee, -- CISPRO Fee/Vervallen
env_permit_fee, -- Environmental Permit Fee/Vervallen
security, -- Securiy/Vervallen
parking, -- Parking
publ_amenities, -- Public Amenities
sla_fac_serv, -- SLA Facility Services (niet LA CRF)
sla_ts_serv, -- SLA Tenant-specific Services (niet LA CRF)
oorspr_vandat, -- Niet historisch bewaard!
gefactureerd
FROM blcc_v_rap_cnt_verh_freeze
WHERE huur_maand > TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy');
*/
CREATE OR REPLACE VIEW blcc_v_rap_cnt_verh_frecent
AS
SELECT TO_CHAR (x.freeze_datum, 'dd-mm-yyyy') freeze_datum,
x.huur_maand,
x.contractsoort, -- Niet historisch bewaard!
x.cnt_contract_key,
x.contractnr,
x.debiteur_nr,
x.prs_debiteur_naam, -- Niet historisch bewaard!
x.contractstatus, -- Niet historisch bewaard!
TO_CHAR (x.ingangsdatum, 'dd-mm-yyyy') ingangsdatum, -- Niet historisch bewaard!
TO_CHAR (x.einddatum, 'dd-mm-yyyy') einddatum, -- Niet historisch bewaard!
CASE
WHEN x.huur_maand < '202209'
THEN
'CAMPUS'
ELSE
gc.gebouwclustercode
END
gebouwcluster,
g.gebouwen,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.l_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.l, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_l,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.h_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.h, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_h,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.k_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.k, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_k,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.o_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.o, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_o,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.t_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.t, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_t,
CASE
WHEN x.huur_maand < '202301'
THEN
TO_CHAR (COALESCE (ot.c_vvo, 0), 'fm999999999999999990.00') -- Op basis van verkoopfacturen!
ELSE
TO_CHAR (COALESCE (gc.c, 0), 'fm999999999999999990.00') -- Op basis van VVO bij ruimte!
END
vvo_nen2580_c,
TO_CHAR (COALESCE (corr.l, 0), 'fm999999999999999990.00') vvo_correctie_l,
TO_CHAR (COALESCE (corr.h, 0), 'fm999999999999999990.00') vvo_correctie_h,
TO_CHAR (COALESCE (corr.k, 0), 'fm999999999999999990.00') vvo_correctie_k,
TO_CHAR (COALESCE (corr.o, 0), 'fm999999999999999990.00') vvo_correctie_o,
TO_CHAR (COALESCE (corr.t, 0), 'fm999999999999999990.00') vvo_correctie_t,
TO_CHAR (COALESCE (ot.l_vvo, 0) + COALESCE (corr.l, 0), 'fm999999999999999990.00') vvo_overeenkomst_l,
TO_CHAR (COALESCE (ot.h_vvo, 0) + COALESCE (corr.h, 0), 'fm999999999999999990.00') vvo_overeenkomst_h,
TO_CHAR (COALESCE (ot.k_vvo, 0) + COALESCE (corr.k, 0), 'fm999999999999999990.00') vvo_overeenkomst_k,
TO_CHAR (COALESCE (ot.o_vvo, 0) + COALESCE (corr.o, 0), 'fm999999999999999990.00') vvo_overeenkomst_o,
TO_CHAR (COALESCE (ot.t_vvo, 0) + COALESCE (corr.t, 0), 'fm999999999999999990.00') vvo_overeenkomst_t,
DECODE (ot.l_tar, NULL, NULL, TO_CHAR (ot.l_tar, 'fm999999999999999990.00')) l_tar,
DECODE (ot.h_tar, NULL, NULL, TO_CHAR (ot.h_tar, 'fm999999999999999990.00')) h_tar,
DECODE (ot.k_tar, NULL, NULL, TO_CHAR (ot.k_tar, 'fm999999999999999990.00')) k_tar,
DECODE (ot.o_tar, NULL, NULL, TO_CHAR (ot.o_tar, 'fm999999999999999990.00')) o_tar,
DECODE (ot.t_tar, NULL, NULL, TO_CHAR (ot.t_tar, 'fm999999999999999990.00')) t_tar,
TO_CHAR (COALESCE (mndnet.rent, 0), 'fm999999999999999990.00') rent, -- Rent
TO_CHAR (COALESCE (mndnet.cff, 0), 'fm999999999999999990.00') cff_subsidy, -- CFF-Subsidy
TO_CHAR (COALESCE (mndnet.fes, 0), 'fm999999999999999990.00') fes_subsidy, -- FES-Subsidy (niet LA CRF)
TO_CHAR (COALESCE (appt.mndnet, 0), 'fm999999999999999990.00') ap_prop_tax, -- Advance Payment Property Tax
TO_CHAR (COALESCE (mndnet.apcs, 0), 'fm999999999999999990.00') ap_coll_serv, -- Advance Payment Collective Services (zoals op factuur)
TO_CHAR (COALESCE (apcs.cg, 0), 'fm999999999999999990.00') ap_cs_cg, -- Collective services campusgebonden (niet LA CRF)
TO_CHAR (COALESCE (apcs.gg, 0), 'fm999999999999999990.00') ap_cs_gg, -- Collective services gebouwgebonden (niet LA CRF)
TO_CHAR (COALESCE (apcs.ts, 0), 'fm999999999999999990.00') ap_cs_ts, -- Collective services huurderspecifiek (niet LA CRF)
TO_CHAR (COALESCE (mndnet.apu, 0), 'fm999999999999999990.00') ap_utilities, -- Advance Payment Utilities
TO_CHAR (COALESCE (mndnet.ssc, 0), 'fm999999999999999990.00') surcharge_sc, -- Surcharge Service Costs (niet LA CRF)/Vervallen
TO_CHAR (COALESCE (mndnet.ggv, 0), 'fm999999999999999990.00') kosten_2gv, -- 2GV (niet LA CRF)
TO_CHAR (COALESCE (mndnet.gggv, 0), 'fm999999999999999990.00') kosten_3gv, -- 3GV (niet LA CRF)
TO_CHAR (COALESCE (mndnet.cf, 0), 'fm999999999999999990.00') cispro_fee, -- CISPRO Fee/Vervallen
TO_CHAR (COALESCE (mndnet.epf, 0), 'fm999999999999999990.00') env_permit_fee, -- Environmental Permit Fee/Vervallen
TO_CHAR (COALESCE (mndnet.sec, 0), 'fm999999999999999990.00') security, -- Securiy/Vervallen
TO_CHAR (COALESCE (mndnet.park, 0), 'fm999999999999999990.00') parking, -- Parking
TO_CHAR (COALESCE (mndnet.pa, 0), 'fm999999999999999990.00') publ_amenities, -- Public Amenities
TO_CHAR (COALESCE (mndnet.dedi_park, 0), 'fm999999999999999990.00') dedi_parking, -- Dedicated Parking
TO_CHAR (COALESCE (sla.fs, 0), 'fm999999999999999990.00') sla_fac_serv, -- SLA Facility Services (niet LA CRF)
TO_CHAR (COALESCE (sla.tss, 0), 'fm999999999999999990.00') sla_ts_serv, -- SLA Tenant-specific Services (niet LA CRF)
ovd.cnt_kenmerkcontract_waarde oorspr_vandat, -- Niet historisch bewaard!
DECODE (x.fin_verkoopfactuur_n4, 1, 'Ja', 'Nee') gefactureerd
FROM (SELECT DISTINCT
x.fin_verkoopfactuur_datum freeze_datum,
x.fin_verkoopfactuur_maand huur_maand,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') contractnr,
--TRIM (b.prs_overeenkomst_nr) debiteur_nr,
SUBSTR (x.fin_verkoopfactuur_c7, 1, INSTR (x.fin_verkoopfactuur_c7, '=') - 1) debiteur_nr,
x.prs_debiteur_naam,
DECODE (c.cnt_contract_status, 1, 'Gesloten', 2, 'Nieuw', 3, 'Ter goedkeuring', 'Definitief') contractstatus,
c.cnt_contract_looptijd_van ingangsdatum,
c.cnt_contract_looptijd_tot einddatum,
x.fin_verkoopfactuur_n4 -- Factuur versturen (ja/nee)?
FROM fin_verkoopfactuur x, cnt_contract c, cnt_discipline cd, prs_bedrijf b
WHERE x.fin_verkoopfactuur_maand > TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) x
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
COUNT (DISTINCT baf.gebouwclustercode) aantal_clusters,
MAX (baf.gebouwclustercode) gebouwclustercode,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) o,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) t,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'C', COALESCE (baf.vvo, 0), TO_NUMBER (NULL))) c
FROM fin_verkoopfactuur x, blcc_alg_freeze baf
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SUBSTR (x.fin_verkoopfactuur_c6, 1, 1) = 'R'
--AND x.fin_verkoopfactuur_maand = SUBSTR (baf.huur_maand, 1, 4) || SUBSTR (baf.huur_maand, 6, 2)
AND x.fin_verkoopfactuur_maand = REPLACE (baf.huur_maand, '-', '')
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = baf.alg_ruimte_key
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) gc
ON x.cnt_contract_key = gc.cnt_contract_key AND x.huur_maand = gc.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
LISTAGG (DISTINCT aog.alg_gebouw_code, ', ') WITHIN GROUP (ORDER BY aog.alg_gebouw_code) AS gebouwen
FROM fin_verkoopfactuur x, alg_v_allonrgoed_gegevens aog
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND fac.safe_to_number (SUBSTR (x.fin_verkoopfactuur_c6, 2, INSTR (x.fin_verkoopfactuur_c6, '=') - 2)) = aog.alg_onroerendgoed_keys
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) g
ON x.cnt_contract_key = g.cnt_contract_key AND x.huur_maand = g.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) l_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) h_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) k_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) o_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) t_vvo,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'C', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) c_vvo,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) l_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) h_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) k_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) o_tar,
MAX (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', x.fin_verkoopfactuur_n2, TO_NUMBER (NULL))) t_tar
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND INSTR (x.fin_verkoopfactuur_c6, '#') > 0
AND INSTR (x.fin_verkoopfactuur_c6, '=Correctie#') = 0
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) ot -- Oppervlakte/Tarief
ON x.cnt_contract_key = ot.cnt_contract_key AND x.huur_maand = ot.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'L', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) l,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'H', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) h,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'K', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) k,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'O', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) o,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_c6, INSTR (x.fin_verkoopfactuur_c6, '#') + 1), 'T', COALESCE (x.fin_verkoopfactuur_n1, 0), 0)) t
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND INSTR (x.fin_verkoopfactuur_c6, '=Correctie#') = 1
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) corr
ON x.cnt_contract_key = corr.cnt_contract_key AND x.huur_maand = corr.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Rent', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) rent,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'CFF-Subsidy', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cff,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'FES-Subsidy', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) fes,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Advance Payment Collective Services', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) apcs,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Advance Payment Utilities', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) apu,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Surcharge Service Costs', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ssc,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), '2GV', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ggv,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), '3GV', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) gggv,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'CISPRO Fee', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cf,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Environmental Permit Fee', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) epf,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Security', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) sec,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Parking', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) park,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Public Amenities', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) pa,
SUM (DECODE (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4), 'Dedicated Parking', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) dedi_park
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) mndnet
ON x.cnt_contract_key = mndnet.cnt_contract_key AND x.huur_maand = mndnet.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (x.fin_verkoopfactuur_bedrag) mndnet
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Property Tax' -- T/m 2020-12
OR SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Property Tax') -- Per 2021-01
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) appt
ON x.cnt_contract_key = appt.cnt_contract_key AND x.huur_maand = appt.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (x.prs_kostensoort_oms, '8171', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) cg,
SUM (DECODE (x.prs_kostensoort_oms, '8172', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) gg,
SUM (DECODE (x.prs_kostensoort_oms, '8115', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) ts
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122) -- LA
AND SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment Collective Services'
AND x.prs_kostensoort_oms IN ('8171', '8172', '8115')
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) apcs
ON x.cnt_contract_key = apcs.cnt_contract_key AND x.huur_maand = apcs.huur_maand
LEFT JOIN ( SELECT x.fin_verkoopfactuur_refkey cnt_contract_key, x.fin_verkoopfactuur_maand huur_maand,
SUM (DECODE (x.prs_kostensoort_oms, '8173', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) fs,
SUM (DECODE (x.prs_kostensoort_oms, '8174', COALESCE (x.fin_verkoopfactuur_bedrag, 0), 0)) tss
FROM fin_verkoopfactuur x
WHERE 1 = 1 --x.fin_verkoopfactuur_maand > '2020'
AND x.fin_verkoopfactuur_n2 IS NOT NULL -- Bedrag in N2 (dus FACT)
AND x.fin_verkoopfactuur_n5 IS NULL -- Geen melding (dus regulier)
AND x.fin_verkoopfactuur_xmlnode = 'contract'
--AND x.fin_verkoopfactuur_refkey = c.cnt_contract_key
--AND c.ins_discipline_key IN (2122) -- LA
--AND SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'SLA Facility Services'
AND (SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'SLA Facility Services' -- T/m 2023-04
OR SUBSTR (x.fin_verkoopfactuur_omschr, INSTR (x.fin_verkoopfactuur_omschr, '/=') + 4) = 'Advance Payment SLA Facility Services') -- Per 2023-05
AND x.prs_kostensoort_oms IN ('8173', '8174')
GROUP BY x.fin_verkoopfactuur_refkey, x.fin_verkoopfactuur_maand) sla
ON x.cnt_contract_key = sla.cnt_contract_key AND x.huur_maand = sla.huur_maand
LEFT JOIN cnt_kenmerkcontract ovd
ON x.cnt_contract_key = ovd.cnt_contract_key
AND ovd.cnt_kenmerkcontract_verwijder IS NULL
AND ovd.cnt_kenmerk_key IN (643, 642) -- Oorspronkelijke ingangsdatum contract
;
-- BLCC#87078: Contractscope-mutaties!
CREATE OR REPLACE VIEW BLCC_V_RAP_CNT_SCOPE_MUT
AS
WITH
alg_freeze
AS
(SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 0
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 1
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 1
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 2) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 3) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 3) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2)
SELECT x.gebouwcode gebouw,
x.gebouwclusternaam gebouwcluster,
x.ins_discipline_omschrijving contractsoort,
SUBSTR (x.maand, 1, 4) foto_jaar,
x.maand foto_maand,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr,
x.prs_bedrijf_naam party,
x.prs_overeenkomst_nr partynumber,
x.cnt_contract_looptijd_van ingangsdatum,
--cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldatum,
--cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdatum,
x.cnt_contract_looptijd_tot einddatum,
oic.cnt_kenmerkcontract_waarde oorspr_ingangsdatum,
x.vvo_overeenkomst_l,
x.vvo_overeenkomst_h,
x.vvo_overeenkomst_k,
x.vvo_overeenkomst_o,
x.vvo_overeenkomst_t,
x.vvo_nen2580_l,
x.vvo_nen2580_h,
x.vvo_nen2580_k,
x.vvo_nen2580_o,
x.vvo_nen2580_t,
x.vvo_nen2580_c,
y.aantal toegevoegd,
y.vvo_overeenkomst_l vvo_overeenkomst_lpos,
y.vvo_overeenkomst_h vvo_overeenkomst_hpos,
y.vvo_overeenkomst_k vvo_overeenkomst_kpos,
y.vvo_overeenkomst_o vvo_overeenkomst_opos,
y.vvo_overeenkomst_t vvo_overeenkomst_tpos,
y.vvo_nen2580_l vvo_nen2880_lpos,
y.vvo_nen2580_h vvo_nen2880_hpos,
y.vvo_nen2580_k vvo_nen2880_kpos,
y.vvo_nen2580_o vvo_nen2880_opos,
y.vvo_nen2580_t vvo_nen2880_tpos,
y.vvo_nen2580_c vvo_nen2880_cpos,
-1 * z.aantal verwijderd,
-1 * z.vvo_overeenkomst_l vvo_overeenkomst_lneg,
-1 * z.vvo_overeenkomst_h vvo_overeenkomst_hneg,
-1 * z.vvo_overeenkomst_k vvo_overeenkomst_kneg,
-1 * z.vvo_overeenkomst_o vvo_overeenkomst_oneg,
-1 * z.vvo_overeenkomst_t vvo_overeenkomst_tneg,
-1 * z.vvo_nen2580_l vvo_nen2880_lneg,
-1 * z.vvo_nen2580_h vvo_nen2880_hneg,
-1 * z.vvo_nen2580_k vvo_nen2880_kneg,
-1 * z.vvo_nen2580_o vvo_nen2880_oneg,
-1 * z.vvo_nen2580_t vvo_nen2880_tneg,
-1 * z.vvo_nen2580_c vvo_nen2880_cneg
FROM ( SELECT TO_CHAR (p.maand, 'yyyy-mm') maand,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
baf.gebouwcode,
baf.gebouwclusternaam,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_t,
SUM (DECODE (baf.lhkotc_class_code, 'C', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_c,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_t
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_bedrijf b,
( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
alg_freeze baf
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND p.maand = baf.freeze_datum
AND baf.huur_contract_key = c.cnt_contract_key
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
baf.gebouwcode,
baf.gebouwclusternaam) x
LEFT JOIN -- In scope volgende maand en deze maand nog niet!
( SELECT TO_CHAR (p.maand, 'yyyy-mm') maand, -- Deze maand aangemaakt!
c.cnt_contract_key,
baf.gebouwcode,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_t,
SUM (DECODE (baf.lhkotc_class_code, 'C', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_c,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_t,
COUNT (*) aantal
FROM cnt_v_aanwezigcontract c,
( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
alg_freeze baf
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND ADD_MONTHS (p.maand, 1) = baf.freeze_datum -- Ruimten volgende maand!
AND baf.huur_contract_nr = c.cnt_contract_nummer_intern
AND NOT EXISTS -- Nog niet in scope deze maand!
(SELECT 1
FROM alg_freeze
WHERE freeze_datum = p.maand
AND huur_contract_nr = baf.huur_contract_nr
AND alg_ruimte_key = baf.alg_ruimte_key)
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
baf.gebouwcode) y
ON x.cnt_contract_key = y.cnt_contract_key
AND x.maand = y.maand
AND x.gebouwcode = y.gebouwcode
LEFT JOIN -- In scope deze maand en volgende maand niet meer!
( SELECT TO_CHAR (p.maand, 'yyyy-mm') maand, -- Deze maand verwijderd!
c.cnt_contract_key,
baf.gebouwcode,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_t,
SUM (DECODE (baf.lhkotc_class_code, 'C', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_c,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_t,
COUNT (*) aantal
FROM cnt_v_aanwezigcontract c,
( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
alg_freeze baf
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND p.maand = baf.freeze_datum -- Ruimten deze maand!
AND baf.huur_contract_nr = c.cnt_contract_nummer_intern
AND EXISTS -- Volgende maand loopt contract nog!
(SELECT 1
FROM alg_freeze
WHERE freeze_datum = ADD_MONTHS (baf.freeze_datum, 1)
AND huur_contract_nr = baf.huur_contract_nr)
AND NOT EXISTS -- Niet meer in scope volgende maand!
(SELECT 1
FROM alg_freeze
WHERE freeze_datum = ADD_MONTHS (baf.freeze_datum, 1)
AND huur_contract_nr = baf.huur_contract_nr
AND alg_ruimte_key = baf.alg_ruimte_key)
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
baf.gebouwcode) z
ON x.cnt_contract_key = z.cnt_contract_key
AND x.maand = z.maand
AND x.gebouwcode = z.gebouwcode
LEFT JOIN cnt_kenmerkcontract oic
ON x.cnt_contract_key = oic.cnt_contract_key
AND oic.cnt_kenmerkcontract_verwijder IS NULL
AND oic.cnt_kenmerk_key IN (642, 643) -- Oorspronkelijke ingangsdatum contract
WHERE y.aantal > 0 OR z.aantal > 0;
-- BLCC#87720: Contractkosten per maand sinds 2024-01!
CREATE OR REPLACE VIEW BLCC_V_RAP_CNT_KOSTEN_PM
AS
SELECT x.gebouwcode gebouw,
x.gebouwclusternaam gebouwcluster,
x.prs_bedrijf_naam party,
x.prs_overeenkomst_nr partynumber,
x.twk_aanmaak,
x.cnt_contract_key,
x.cnt_contract_nummer_intern || '.' || COALESCE (x.cnt_contract_versie, '0') contractnr,
x.cnt_contract_looptijd_van ingangsdatum,
--cnt.cnt_getRappeldatum (x.cnt_contract_key) rappeldatum,
--cnt.cnt_getOpzegdatum (x.cnt_contract_key) opzegdatum,
x.cnt_contract_looptijd_tot einddatum,
fac.safe_to_date (oi.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') oorspr_ingangsdatum,
fac.safe_to_date (de.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') definitieve_einddatum,
TO_CHAR (x.maand, 'yyyy') huur_jaar,
TO_CHAR (x.maand, 'yyyy-mm') huur_maand,
DECODE (vf.cnt_contract_key, NULL, 'Nee', 'Ja') gefactureerd,
x.vvo_overeenkomst_l,
x.vvo_overeenkomst_h,
x.vvo_overeenkomst_k,
x.vvo_overeenkomst_o,
x.vvo_overeenkomst_t,
x.vvo_nen2580_l,
x.vvo_nen2580_h,
x.vvo_nen2580_k,
x.vvo_nen2580_o,
x.vvo_nen2580_t,
x.vvo_nen2580_c,
opm_cs.cnt_kenmerkcontract_waarde opmerkingen_cs,
opm_ut.cnt_kenmerkcontract_waarde opmerkingen_ut,
opm_rent.cnt_kenmerkcontract_waarde opmerkingen_rent,
fac.safe_to_number (ap_cs_cg.cnt_kenmerkcontract_waarde) voorschot_cs_cg,
fac.safe_to_number (ap_cs_gg.cnt_kenmerkcontract_waarde) voorschot_cs_gg,
fac.safe_to_number (ap_cs_ts.cnt_kenmerkcontract_waarde) voorschot_cs_ts,
fac.safe_to_number (ap_cs_crf.cnt_kenmerkcontract_waarde) voorschot_cs_crf,
COALESCE (fac.safe_to_number (ap_cs_cg.cnt_kenmerkcontract_waarde), 0)
+ COALESCE (fac.safe_to_number (ap_cs_gg.cnt_kenmerkcontract_waarde), 0)
+ COALESCE (fac.safe_to_number (ap_cs_ts.cnt_kenmerkcontract_waarde), 0)
+ COALESCE (fac.safe_to_number (ap_cs_crf.cnt_kenmerkcontract_waarde), 0) voorschot_cs_tot,
fac.safe_to_number (ap_ut.cnt_kenmerkcontract_waarde) voorschot_ut,
fac.safe_to_number (sla_fac_serv.cnt_kenmerkcontract_waarde) sla_fac_serv,
fac.safe_to_number (sla_fac_serv.cnt_kenmerkcontract_waarde) sla_ts_serv,
x.ins_discipline_omschrijving contractsoort,
vf.factuurdatum
FROM ( SELECT p.maand,
'Ja' twk_aanmaak, -- Oppervlakten uit actual scope
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
rg.alg_gebouw_upper gebouwcode,
gc.fac_usrdata_omschr gebouwclusternaam,
SUM (DECODE (lhkotc.fac_usrdata_code, 'L', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_l,
SUM (DECODE (lhkotc.fac_usrdata_code, 'H', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_h,
SUM (DECODE (lhkotc.fac_usrdata_code, 'K', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_k,
SUM (DECODE (lhkotc.fac_usrdata_code, 'O', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_o,
SUM (DECODE (lhkotc.fac_usrdata_code, 'T', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_t,
SUM (DECODE (lhkotc.fac_usrdata_code, 'C', COALESCE (rg.alg_ruimte_opp_alt1, 0), 0)) vvo_nen2580_c,
SUM (DECODE (lhkotc.fac_usrdata_code, 'L', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0)) vvo_overeenkomst_l,
SUM (DECODE (lhkotc.fac_usrdata_code, 'H', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0)) vvo_overeenkomst_h,
SUM (DECODE (lhkotc.fac_usrdata_code, 'K', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0)) vvo_overeenkomst_k,
SUM (DECODE (lhkotc.fac_usrdata_code, 'O', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0)) vvo_overeenkomst_o,
SUM (DECODE (lhkotc.fac_usrdata_code, 'T', COALESCE (fac.safe_to_number (vvo.alg_onrgoedkenmerk_waarde), 0), 0)) vvo_overeenkomst_t
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_bedrijf b,
( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
(SELECT * FROM cnt_v_aanwezigcontract_plaats WHERE cnt_alg_plaats_code = 'R') cp,
alg_v_ruimte_gegevens rg,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc,
(SELECT ok.alg_onrgoed_key, ok.alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk ok
WHERE ok.alg_kenmerk_key = 1720 -- VVO Overeenkomst
AND ok.alg_onrgoed_niveau = 'R') vvo,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1940 -- Gebouwcluster
AND ok.alg_onrgoed_niveau = 'G'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) gc
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND c.cnt_contract_aanmaak >= ADD_MONTHS (p.maand, -1) -- TWK-aanmaak=Ja!
AND c.cnt_contract_key = cp.cnt_contract_key -- Alleen contracten met scope!
AND cp.cnt_alg_plaats_key = rg.alg_ruimte_key
AND rg.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
AND rg.alg_ruimte_key = vvo.alg_onrgoed_key(+)
AND rg.alg_gebouw_key = gc.alg_onrgoed_key(+)
GROUP BY p.maand,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
rg.alg_gebouw_upper,
gc.fac_usrdata_omschr
UNION ALL
SELECT p.maand,
'Nee' twk_aanmaak, -- Oppervlakten uit frozen scope(=foto)
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
baf.gebouwcode,
baf.gebouwclusternaam,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_t,
SUM (DECODE (baf.lhkotc_class_code, 'C', COALESCE (baf.vvo, 0), 0)) vvo_nen2580_c,
SUM (DECODE (baf.lhkotc_class_code, 'L', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_l,
SUM (DECODE (baf.lhkotc_class_code, 'H', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_h,
SUM (DECODE (baf.lhkotc_class_code, 'K', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_k,
SUM (DECODE (baf.lhkotc_class_code, 'O', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_o,
SUM (DECODE (baf.lhkotc_class_code, 'T', COALESCE (baf.vvo_overeenkomst, 0), 0)) vvo_overeenkomst_t
FROM cnt_v_aanwezigcontract c,
cnt_discipline cd,
prs_bedrijf b,
( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
(SELECT * FROM cnt_v_aanwezigcontract_plaats WHERE cnt_alg_plaats_code = 'R') cp,
blcc_alg_freeze baf
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND c.cnt_contract_aanmaak < ADD_MONTHS (p.maand, -1) -- TWK-aanmaak=Nee!
AND c.cnt_contract_key = cp.cnt_contract_key -- Alleen contracten met scope!
AND TO_CHAR (p.maand, 'yyyy-mm') = baf.huur_maand
AND cp.cnt_alg_plaats_key = baf.alg_ruimte_key
GROUP BY p.maand,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr,
baf.gebouwcode,
baf.gebouwclusternaam) x
--LEFT JOIN contractpltsm2 m2
-- ON x.cnt_contract_key = m2.cnt_contract_key
LEFT JOIN cnt_kenmerkcontract oi
ON x.cnt_contract_key = oi.cnt_contract_key
AND oi.cnt_kenmerkcontract_verwijder IS NULL
AND oi.cnt_kenmerk_key IN (642, 643) -- Oorspronkelijke ingangsdatum contract
LEFT JOIN cnt_kenmerkcontract de
ON x.cnt_contract_key = de.cnt_contract_key
AND de.cnt_kenmerkcontract_verwijder IS NULL
AND de.cnt_kenmerk_key IN (1481, 1521) -- Definitieve einddatum contract
LEFT JOIN cnt_kenmerkcontract opm_cs
ON x.cnt_contract_key = opm_cs.cnt_contract_key
AND opm_cs.cnt_kenmerkcontract_verwijder IS NULL
AND opm_cs.cnt_kenmerk_key IN (1122, 1142) -- Opmerkingen CS
LEFT JOIN cnt_kenmerkcontract opm_ut
ON x.cnt_contract_key = opm_ut.cnt_contract_key
AND opm_ut.cnt_kenmerkcontract_verwijder IS NULL
AND opm_ut.cnt_kenmerk_key IN (1124, 1144) -- Opmerkingen UT
LEFT JOIN cnt_kenmerkcontract opm_rent
ON x.cnt_contract_key = opm_rent.cnt_contract_key
AND opm_rent.cnt_kenmerkcontract_verwijder IS NULL
AND opm_rent.cnt_kenmerk_key IN (1123, 1143) -- Opmerkingen Rent
LEFT JOIN cnt_kenmerkcontract ap_cs_cg
ON x.cnt_contract_key = ap_cs_cg.cnt_contract_key
AND ap_cs_cg.cnt_kenmerkcontract_verwijder IS NULL
AND ap_cs_cg.cnt_kenmerk_key = 1001 -- LA/Voorschot CS Campusgebonden (jaarbedrag)
LEFT JOIN cnt_kenmerkcontract ap_cs_gg
ON x.cnt_contract_key = ap_cs_gg.cnt_contract_key
AND ap_cs_gg.cnt_kenmerkcontract_verwijder IS NULL
AND ap_cs_gg.cnt_kenmerk_key = 1002 -- LA/Voorschot CS Gebouwgebonden (jaarbedrag)
LEFT JOIN cnt_kenmerkcontract ap_cs_ts
ON x.cnt_contract_key = ap_cs_ts.cnt_contract_key
AND ap_cs_ts.cnt_kenmerkcontract_verwijder IS NULL
AND ap_cs_ts.cnt_kenmerk_key = 1003 -- LA/Voorschot CS Huurderspecifiek (jaarbedrag)
LEFT JOIN cnt_kenmerkcontract ap_cs_crf
ON x.cnt_contract_key = ap_cs_crf.cnt_contract_key
AND ap_cs_crf.cnt_kenmerkcontract_verwijder IS NULL
AND ap_cs_crf.cnt_kenmerk_key = 515 -- LA CRF/Advance Payment Collective Services
LEFT JOIN cnt_kenmerkcontract ap_ut
ON x.cnt_contract_key = ap_ut.cnt_contract_key
AND ap_ut.cnt_kenmerkcontract_verwijder IS NULL
AND ap_ut.cnt_kenmerk_key IN (981, 525) -- Advance Payment Utilities
LEFT JOIN cnt_kenmerkcontract sla_fac_serv
ON x.cnt_contract_key = sla_fac_serv.cnt_contract_key
AND sla_fac_serv.cnt_kenmerkcontract_verwijder IS NULL
AND sla_fac_serv.cnt_kenmerk_key = 1041 -- LA/SLA Facility Services
LEFT JOIN cnt_kenmerkcontract sla_ts_serv
ON x.cnt_contract_key = sla_ts_serv.cnt_contract_key
AND sla_ts_serv.cnt_kenmerkcontract_verwijder IS NULL
AND sla_ts_serv.cnt_kenmerk_key = 1061 -- LA/SLA Tenant-specific Services
LEFT JOIN (SELECT DISTINCT cnt_contract_key, maand, factuurdatum FROM blcc_v_factv2_frozen WHERE mld_melding_key IS NULL) vf
ON x.cnt_contract_key = vf.cnt_contract_key AND TO_CHAR (x.maand, 'yyyymm') = vf.maand;
-- BLCC#87225: Nieuwe en beeindigde huurcontacten sinds 2024-01!
CREATE OR REPLACE VIEW BLCC_V_RAP_CNT_BEGINEIND
AS
SELECT x.prs_bedrijf_naam party,
x.prs_overeenkomst_nr partynumber,
c.ins_discipline_omschrijving contractsoort,
c.jaar,
c.begineind,
c.cnt_contract_key,
DECODE (c.cnt_contract_key, NULL, NULL, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0')) contractnr,
c.cnt_contract_looptijd_van ingangsdatum,
cnt.cnt_getRappeldatum (c.cnt_contract_key) rappeldatum,
cnt.cnt_getOpzegdatum (c.cnt_contract_key) opzegdatum,
c.cnt_contract_looptijd_tot einddatum,
fac.safe_to_date (oi.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') oorspr_ingangsdatum,
fac.safe_to_date (de.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') definitieve_einddatum,
fac.safe_to_date (ce.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') contractuele_einddatum,
c.cnt_contract_omschrijving beschrijving,
vf.aantal facturen
FROM (SELECT b.prs_bedrijf_key, -- Relaties ooit aan LA/LA CRF gekoppeld!
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr
FROM prs_bedrijf b
WHERE EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND cnt_prs_bedrijf_key = b.prs_bedrijf_key)) x
LEFT JOIN
(SELECT c.cnt_prs_bedrijf_key,
TO_CHAR (c.cnt_contract_looptijd_van, 'yyyy') jaar,
'Begin' begineind,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
c.cnt_contract_omschrijving,
cd.ins_discipline_omschrijving
FROM cnt_v_aanwezigcontract c, cnt_discipline cd
WHERE c.cnt_contract_looptijd_van >= fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND c.cnt_contract_versie = 0
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
UNION ALL
SELECT c.cnt_prs_bedrijf_key,
TO_CHAR (c.cnt_contract_looptijd_tot, 'yyyy') jaar,
'Eind' begineind,
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
c.cnt_contract_omschrijving,
cd.ins_discipline_omschrijving
FROM cnt_v_aanwezigcontract c, cnt_discipline cd
WHERE c.cnt_contract_looptijd_tot >= fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (cnt_contract_versie) > fac.safe_to_number (COALESCE (c.cnt_contract_versie, '0')))
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123)) c -- LA/LA CRF
ON x.prs_bedrijf_key = c.cnt_prs_bedrijf_key
LEFT JOIN cnt_kenmerkcontract oi
ON c.cnt_contract_key = oi.cnt_contract_key
AND oi.cnt_kenmerkcontract_verwijder IS NULL
AND oi.cnt_kenmerk_key IN (642, 643) -- Oorspronkelijke ingangsdatum contract
LEFT JOIN cnt_kenmerkcontract de
ON c.cnt_contract_key = de.cnt_contract_key
AND de.cnt_kenmerkcontract_verwijder IS NULL
AND de.cnt_kenmerk_key IN (1481, 1521) -- Definitieve einddatum contract
LEFT JOIN cnt_kenmerkcontract ce
ON c.cnt_contract_key = ce.cnt_contract_key
AND ce.cnt_kenmerkcontract_verwijder IS NULL
AND ce.cnt_kenmerk_key IN (1501, 1522) -- Contractuele einddatum
LEFT JOIN (SELECT cnt_contract_key, SUBSTR (maand, 1, 4) jaar, COUNT (*) aantal FROM blcc_v_factv2_frozen WHERE mld_melding_key IS NULL GROUP BY cnt_contract_key, SUBSTR (maand, 1, 4)) vf
ON c.cnt_contract_key = vf.cnt_contract_key AND c.jaar = vf.jaar;
-- BLCC#87225: Bankgarantie/borg huurcontracten sinds 2024-01!
CREATE OR REPLACE VIEW BLCC_V_RAP_CNT_BGAR_BORG
AS
SELECT c.cnt_contract_key,
DECODE (c.cnt_contract_key, NULL, NULL, c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0')) contractnr,
c.ins_discipline_omschrijving contractsoort,
c.cnt_contract_omschrijving beschrijving,
c.prs_bedrijf_naam party,
c.prs_overeenkomst_nr partynumber,
c.cnt_contract_looptijd_van ingangsdatum,
--cnt.cnt_getRappeldatum (c.cnt_contract_key) rappeldatum,
--cnt.cnt_getOpzegdatum (c.cnt_contract_key) opzegdatum,
c.cnt_contract_looptijd_tot einddatum,
fac.safe_to_date (oi.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') oorspr_ingangsdatum,
fv.cnt_kenmerkcontract_waarde factuur,
av.cnt_kenmerkcontract_waarde autoverl,
vt.cnt_kenmerkcontract_waarde verlterm, -- verlengterm
bg_ud.fac_usrdata_omschr bgarborg,
vdbg.cnt_kenmerkcontract_waarde vanbgarborg, -- upddatbgarborg
tdbg.cnt_kenmerkcontract_waarde totbgarborg, -- totdatbgarborg
fac.safe_to_number (gw.cnt_kenmerkcontract_waarde) garwaarde -- garantiewrd
FROM (SELECT c.cnt_contract_key,
c.cnt_contract_nummer_intern,
c.cnt_contract_versie,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
c.cnt_contract_omschrijving,
cd.ins_discipline_key,
cd.ins_discipline_omschrijving,
b.prs_bedrijf_key,
b.prs_bedrijf_naam,
b.prs_overeenkomst_nr
FROM cnt_v_aanwezigcontract c, cnt_discipline cd, prs_bedrijf b
WHERE c.cnt_contract_looptijd_van >= fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.ins_discipline_key = cd.ins_discipline_key
--AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key) c
LEFT JOIN cnt_kenmerkcontract oi
ON c.cnt_contract_key = oi.cnt_contract_key
AND oi.cnt_kenmerkcontract_verwijder IS NULL
AND oi.cnt_kenmerk_key IN (642, 643) -- Oorspronkelijke ingangsdatum contract
LEFT JOIN cnt_kenmerkcontract fv -- 400=Factuur versturen?
ON c.cnt_contract_key = fv.cnt_contract_key
AND fv.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 400 AND cnt_kenmerk_key = fv.cnt_kenmerk_key)
LEFT JOIN cnt_kenmerkcontract av -- 375=Automatische verlenging?
ON c.cnt_contract_key = av.cnt_contract_key
AND av.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 375 AND cnt_kenmerk_key = av.cnt_kenmerk_key)
LEFT JOIN cnt_kenmerkcontract vt -- 428=Verlengingstermijn (#mnd) bij autom. verlengen
ON c.cnt_contract_key = vt.cnt_contract_key
AND vt.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 428 AND cnt_kenmerk_key = vt.cnt_kenmerk_key)
LEFT JOIN cnt_kenmerkcontract bg -- 377=Bankgarantie/borg?
ON c.cnt_contract_key = bg.cnt_contract_key
AND bg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 377 AND cnt_kenmerk_key = bg.cnt_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata bg_ud
ON fac.safe_to_number (bg.cnt_kenmerkcontract_waarde) = bg_ud.fac_usrdata_key
AND bg_ud.fac_usrtab_key = 582 -- Garantie/borg
LEFT JOIN cnt_kenmerkcontract vdbg -- 392=Datum bankgarantie/borg
ON c.cnt_contract_key = vdbg.cnt_contract_key
AND vdbg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 392 AND cnt_kenmerk_key = vdbg.cnt_kenmerk_key)
LEFT JOIN cnt_kenmerkcontract tdbg -- 395=Einddatum bankgarantie/borg
ON c.cnt_contract_key = tdbg.cnt_contract_key
AND tdbg.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 395 AND cnt_kenmerk_key = tdbg.cnt_kenmerk_key)
LEFT JOIN cnt_kenmerkcontract gw -- 401=Garantiewaarde
ON c.cnt_contract_key = gw.cnt_contract_key
AND gw.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS (SELECT 1 FROM cnt_kenmerk WHERE cnt_kenmerk_verwijder IS NULL AND cnt_srtkenmerk_key = 401 AND cnt_kenmerk_key = gw.cnt_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata factent
ON c.ins_discipline_key = fac.safe_to_number (factent.fac_usrdata_code)
AND factent.fac_usrtab_key = 621 -- Brightlands Entiteit
WHERE bg.cnt_contract_key IS NOT NULL
AND factent.fac_usrdata_key IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (cnt_contract_versie) > fac.safe_to_number (COALESCE (c.cnt_contract_versie, '0')));
-- BLCC#88791: Ruimten/oppervlakten per maand/gebouw!
CREATE OR REPLACE VIEW BLCC_V_UDR_ALG_FREEZE
AS
SELECT TO_CHAR (freeze_datum, 'yyyy-mm') maand,
gebouwclusternaam gebouwcluster,
gebouwcode gebouw,
gebouwfunctie,
verdiepingcode,
ruimtenummer,
ruimtefunctie,
lhkotc_class_code,
lhkotc_class,
vvo vvo_nen2580,
vvo_overeenkomst
FROM blcc_alg_freeze
WHERE freeze_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy');
-- BLCC#88791: Leegstand per maand/gebouw (blcc_v_rap_alg_leeg_freeze-kopie
-- met numerieke oppervlakten)!
CREATE OR REPLACE VIEW BLCC_V_UDR_ALG_LEEG_FREEZE
AS
SELECT leeg_maand maand,
gebouwcluster,
gebouwcode gebouw,
ruimtenummer,
ruimtefunctie,
lhkotc_class_code,
lhkotc_class,
fac.safe_to_number (vvo) vvo_nen2580
FROM blcc_v_rap_alg_leeg_freeze
WHERE fac.safe_to_date (freeze_datum, 'dd-mm-yyyy') > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy');
-- BLCC#55646: WTCA-ish rapportages tbv. afstemmingsoverleg en freeze per leverancier!
-- BLCC#85404: Voortaan alle statussen!
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordafm
(
maand,
prefix,
opdr_key,
opdr,
opdr_status,
type_opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager, -- BLCC#58361: Voortaan de 1e ORDGOE-er!
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key,
poc_steekproef,
poc_gecontroleerd
)
AS
SELECT TO_CHAR (SYSDATE, 'yyyy-mm'),
a.prefix,
a.mld_opdr_key,
a.opdracht,
a.opdracht_status,
a.mld_typeopdr_omschrijving,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
a.ksoort,
a.ksoort_oms,
--a.propertymanager,
COALESCE ((SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = ordgoe.prs_perslid_key), a.propertymanager)
goedkeurder,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
a.vakgroep,
a.melding,
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling,
a.poc_steekproef,
a.poc_gecontroleerd
FROM (SELECT o.mld_opdr_key,
t.mld_typeopdr_omschrijving,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key)
gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr
opdracht,
so.mld_statusopdr_omschrijving opdracht_status,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms)
ksoort,
DECODE (ksm.prs_kostensoort_oms, NULL, ksv.prs_kostensoort_opmerking, ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code)
gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten,
COALESCE (poc_sp.poc_sp, 'Nee') POC_steekproef,
COALESCE (poc_ctr.poc_ctr, 'Nee') POC_gecontroleerd
FROM mld_opdr o,
mld_typeopdr t,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg,
mld_statusopdr so, -- BLCC#85404: Toevoeging opdrachtstatus
(SELECT ko.mld_opdr_key,
--CASE
-- WHEN ko.mld_kenmerkopdr_waarde = '1' THEN 'Ja'
--END
DECODE (ko.mld_kenmerkopdr_waarde, '1', 'Ja', NULL) poc_sp
FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkopdr ko
WHERE sk.mld_srtkenmerk_key = 2061 -- Gecontroleerd
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND UPPER (k.mld_kenmerk_omschrijving) LIKE '%POC%'
AND UPPER (k.mld_kenmerk_omschrijving) LIKE '%PROEF%'
AND k.mld_kenmerk_key = ko.mld_kenmerk_key) poc_sp,
(SELECT ko.mld_opdr_key,
--CASE
-- WHEN ko.mld_kenmerkopdr_waarde = '1' THEN 'Ja'
--END
DECODE (ko.mld_kenmerkopdr_waarde, '1', 'Ja', NULL) poc_ctr
FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkopdr ko
WHERE sk.mld_srtkenmerk_key = 2061 -- Gecontroleerd
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND UPPER (k.mld_kenmerk_omschrijving) LIKE '%POC%'
AND UPPER (k.mld_kenmerk_omschrijving) LIKE '%CONTR%'
AND k.mld_kenmerk_key = ko.mld_kenmerk_key) poc_ctr
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND t.mld_typeopdr_key = o.mld_typeopdr_key
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND o.mld_statusopdr_key = so.mld_statusopdr_key
AND o.mld_opdr_key = poc_sp.mld_opdr_key(+)
AND o.mld_opdr_key = poc_ctr.mld_opdr_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT t.fac_tracking_refkey, t.prs_perslid_key -- Bah!
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 60 -- ORDUPD
AND UPPER (t.fac_tracking_oms) LIKE 'OPDRACHT IS GOEDGEKEURD DOOR%'
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 60 -- ORDUPD
AND UPPER (fac_tracking_oms) LIKE 'OPDRACHT IS GOEDGEKEURD DOOR%'
AND fac_tracking_refkey = t.fac_tracking_refkey
AND fac_tracking_key < t.fac_tracking_key)) ordgoe
ON a.mld_opdr_key = ordgoe.fac_tracking_refkey;
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordafr
(
maand,
prefix,
opdr_key,
opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (SYSDATE, 'yyyy-mm'),
a.prefix,
a.mld_opdr_key,
a.opdracht,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
a.ksoort,
a.ksoort_oms,
a.propertymanager,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
a.vakgroep,
a.melding,
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling
FROM (SELECT o.mld_opdr_key,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key = 9 -- Afgerond???
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key;
CREATE OR REPLACE VIEW blcc_v_rap_maand_ordver
(
maand,
prefix,
opdr_key,
opdr,
kpn,
kplaats_nr,
kplaats_oms,
--corr_kplaats,
ksoort_code,
ksoort_oms,
--org_ksoort,
propertymanager,
gebouw_terrein,
verdieping,
ruimte,
vakgroep,
melding,
melder,
omschrijving,
opmerking,
aanmaak,
gepland,
gereed,
uitv_key,
uitvoerende,
contactpersoon,
kosten,
fclt_3d_afdeling_key
)
AS
SELECT TO_CHAR (fac.gettrackingdate ('ORDVER', a.mld_opdr_key), 'yyyy-mm-dd'),
COALESCE (c2.prefix, a.prefix),
a.mld_opdr_key,
a.opdracht,
COALESCE (a.prs_kostenplaatsgrp_nr, SUBSTR (a.kdrager, 1, 5)) kpn,
a.kdrager,
a.kdrager_oms,
--c1.corr_kdrager,
COALESCE (c2.corr_ksoort, a.ksoort),
COALESCE (c2.corr_ksoort_oms, a.ksoort_oms),
--DECODE (c2.corr_ksoort, NULL, NULL, a.ksoort || '-' || a.ksoort_oms),
a.propertymanager,
a.gebouw_terrein,
a.verdieping,
a.ruimte,
COALESCE (c2.vakgroep, a.vakgroep),
COALESCE (c2.melding, a.melding),
a.melder,
a.oms,
a.opm,
a.datum_aanmaak,
a.datum_gepland,
a.datum_gereed,
a.prs_bedrijf_key,
a.bedrijf,
a.cp,
COALESCE (a.kosten, 0),
b.afdeling
FROM (SELECT o.mld_opdr_key,
COALESCE (og.alg_gebouw_key, og.alg_terreinsector_key) gebter_key,
sd.ins_srtdiscipline_prefix prefix,
o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdracht,
kpg.prs_kostenplaatsgrp_nr,
kp.prs_kostenplaats_nr kdrager,
kp.prs_kostenplaats_omschrijving kdrager_oms,
COALESCE (ksm.prs_kostensoort_oms, ksv.prs_kostensoort_oms) ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
ksoort_oms,
pm.prs_perslid_naam_full propertymanager,
COALESCE (og.alg_terreinsector_code, og.alg_gebouw_code) gebouw_terrein,
og.alg_verdieping_code verdieping,
og.alg_ruimte_nr ruimte,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding,
pf.prs_perslid_naam_full melder,
o.mld_opdr_omschrijving oms,
o.mld_opdr_opmerking opm,
o.mld_opdr_datumbegin datum_aanmaak, -- Of verzonden?
--fac.datumtijdplusuitvoertijd (o.mld_opdr_datumbegin, m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid)
o.mld_opdr_einddatum datum_gepland,
fac.gettrackingdate ('ORDAFM', o.mld_opdr_key) datum_gereed,
b.prs_bedrijf_key,
b.prs_bedrijf_naam bedrijf,
o.mld_opdr_contactpersoon cp,
o.mld_opdr_kosten kosten
FROM mld_opdr o,
prs_bedrijf b,
mld_melding m,
prs_v_perslid_fullnames_all pf,
alg_v_allonrgoed_gegevens og,
alg_gebouw g,
prs_v_perslid_fullnames pm,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key = 7 -- Verwerkt???
AND o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
AND og.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.prs_perslid_key_verantw = pm.prs_perslid_key(+)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND sm.prs_kostensoort_key = ksm.prs_kostensoort_key(+)
AND td.prs_kostensoort_key = ksv.prs_kostensoort_key(+)
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) a
LEFT JOIN ( SELECT o.mld_opdr_key, MAX (p.prs_afdeling_key) afdeling
FROM mld_opdr o, prs_bedrijf b, prs_contactpersoon cp, prs_perslid p
WHERE o.mld_uitvoerende_keys = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cp.prs_bedrijf_key
AND cp.prs_perslid_key = p.prs_perslid_key
GROUP BY o.mld_opdr_key) b
ON a.mld_opdr_key = b.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key, ud.fac_usrdata_omschr corr_kplaats
FROM mld_kenmerkopdr ko, fac_usrdata ud
WHERE ko.mld_kenmerk_key = -1 -- Corr. kplaats
AND TO_CHAR (ud.fac_usrdata_key) = ko.mld_kenmerkopdr_waarde) c1
ON a.mld_opdr_key = c1.mld_opdr_key
LEFT JOIN (SELECT ko.mld_opdr_key,
COALESCE (ksm.prs_kostensoort_oms,
ksv.prs_kostensoort_oms)
corr_ksoort,
DECODE (ksm.prs_kostensoort_oms,
NULL, ksv.prs_kostensoort_opmerking,
ksm.prs_kostensoort_opmerking)
corr_ksoort_oms,
sd.ins_srtdiscipline_prefix prefix,
td.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving melding
FROM mld_v_aanwezigkenmerkopdr ko,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostensoort ksm,
prs_kostensoort ksv
WHERE ko.mld_kenmerk_key = -1 -- Corr. melding
AND TO_CHAR (sm.mld_stdmelding_key) = ko.mld_kenmerkopdr_waarde
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 td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key) c2
ON a.mld_opdr_key = c2.mld_opdr_key
WHERE fac.gettrackingdate ('ORDVER', a.mld_opdr_key) > TO_DATE ('01012019', 'ddmmyyyy');
CREATE OR REPLACE VIEW blcc_v_rap_freezeopdrachten
(
kpn,
aantal,
kosten
)
AS
SELECT COALESCE (kpg.prs_kostenplaatsgrp_nr, SUBSTR (kp.prs_kostenplaats_nr, 1, 5)),
COUNT ( * ) aantal, SUM (mld_opdr_kosten) kosten
FROM mld_opdr o, prs_kostenplaats kp, prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key = 9 -- Afgerond
--AND fac.gettrackingdate ('ORDAFR', o.mld_opdr_key) < TRUNC (SYSDATE, 'mm')
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
GROUP BY COALESCE (kpg.prs_kostenplaatsgrp_nr, SUBSTR (kp.prs_kostenplaats_nr, 1, 5));
-- BLCC#58929: Alle reserveringen binnen CAMPUS!
-- BLCC#67894: Inclusief alle reserveringen die zijn verwijderd en vervallen
-- (= doorbelasten)!
-- BLCC#58929: Alle reserveringen binnen CAMPUS!
-- BLCC#67894: Inclusief alle reserveringen die zijn verwijderd en vervallen
-- (= doorbelasten)!
CREATE OR REPLACE VIEW blcc_v_rap_res_all
(
res_rsv_ruimte_key,
datum,
van,
tot,
activiteit,
ruimte,
resnr,
status,
aant_pers,
voorz_opstel,
gastheer_vrouw,
aanvrager,
aanvr_tel,
aanvr_mob,
kostenplaats,
debiteur,
kosten, -- Niet in Management Info?
omschrijving,
opmerking,
dirty,
act_contract, -- Lopend contract (Actief en Actueel)!
verwijderd -- Verwijderd en vervallen!
)
AS
SELECT rrr.res_rsv_ruimte_key,
rrr.res_rsv_ruimte_van datum,
TO_CHAR (rrr.res_rsv_ruimte_van, 'hh24:mi') van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'hh24:mi') tot,
act.res_activiteit_omschrijving,
COALESCE (res_ruimte_nr, rg.alg_ruimte_aanduiding || DECODE (rg.alg_ruimte_omschrijving, NULL, '', ' (' || rg.alg_ruimte_omschrijving || ')'))
ruimte,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr resnr,
COALESCE (rs.res_status_bo_omschrijving, 'Verwijderd') status,
rrr.res_rsv_ruimte_bezoekers aant_pers,
COALESCE ((SELECT res_opstelling_omschrijving FROM res_opstelling WHERE res_opstelling_key = rro.res_opstelling_key), 'Voorzieningen')
voorzieningen_opstelling,
pfh.prs_perslid_naam_full gastheer_vrouw,
pfc.prs_perslid_naam_full aanvrager,
pc.prs_perslid_telefoonnr aanvr_tel,
pc.prs_perslid_mobiel aanvr_mob,
kp.prs_kostenplaats_nr,
a.prs_afdeling_naam debiteur,
res.getdeelresprijs (rrr.res_rsv_ruimte_key) kosten, -- Niet in Management Info?
rrr.res_rsv_ruimte_omschrijving oms,
rrr.res_rsv_ruimte_opmerking opm,
rrr.res_rsv_ruimte_dirtlevel dirty,
COALESCE (c.contract_id, 'Geen') contract_id,
rrr.res_rsv_ruimte_verwijder
FROM res_rsv_ruimte rrr,
res_activiteit act,
( SELECT res_rsv_ruimte_key,
MIN (res_status_bo_key) res_status_bo_key
FROM (SELECT res_rsv_ruimte_key, res_status_bo_key
FROM res_v_aanwezigrsv_ruimte
UNION ALL
SELECT res_rsv_ruimte_key, res_status_bo_key
FROM res_v_aanwezigrsv_artikel
UNION ALL
SELECT res_rsv_ruimte_key, res_status_bo_key
FROM res_v_aanwezigrsv_deel)
GROUP BY res_rsv_ruimte_key) r2s,
res_status_bo rs,
res_ruimte_opstelling rro,
res_ruimte rr,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_ruimte_gegevens_all rg,
prs_perslid pc,
prs_v_perslid_fullnames_all pfc,
prs_perslid ph,
prs_v_perslid_fullnames_all pfh,
prs_afdeling a,
prs_kostenplaats kp,
( SELECT c.prs_afdeling_key_eig,
MAX (c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0')) contract_id,
MAX (b.prs_bedrijf_naam) bedrijf
FROM cnt_v_aanwezigcontract c, prs_bedrijf b
WHERE c.ins_discipline_key = 1841
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde *deze* maand!
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE, 'mm') -- Tot-datum > begin *deze* maand!
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY c.prs_afdeling_key_eig) c
WHERE (rrr.res_rsv_ruimte_verwijder IS NULL OR (rrr.res_rsv_ruimte_verwijder IS NOT NULL AND rrr.res_status_fo_key = 4)) -- Inclusief verwijderd en vervallen!
AND rrr.res_rsv_ruimte_van > TRUNC (ADD_MONTHS (SYSDATE, -24), 'yyyy')
AND rrr.res_activiteit_key = act.res_activiteit_key
AND rrr.res_rsv_ruimte_key = r2s.res_rsv_ruimte_key(+)
AND r2s.res_status_bo_key = rs.res_status_bo_key(+)
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rr.res_ruimte_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = rg.alg_ruimte_key
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
AND pc.prs_perslid_key = pfc.prs_perslid_key
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key
AND ph.prs_perslid_key = pfh.prs_perslid_key
AND ph.prs_afdeling_key = a.prs_afdeling_key
AND rrr.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
--AND rrr.res_rsv_ruimte_dirtlevel = 0
AND a.prs_afdeling_key = c.prs_afdeling_key_eig(+)
;
-- BLCC#59950: Import gebouw-scope bij contract inclusief waarde.
CREATE OR REPLACE VIEW blcc_v_rap_cnt_gebscope
(
contractnr,
gebouwcode,
gebouwkosten
)
AS
SELECT c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
contractnr,
g.alg_gebouw_code,
cp.cnt_contract_plaats_gewicht
FROM cnt_contract_plaats cp, cnt_v_aanwezigcontract c, alg_v_aanweziggebouw g
WHERE cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 2221 -- Planned Maintenance
AND c.cnt_contract_status = 0 -- Definitief
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 2221 -- Planned Maintenance
AND cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
AND cp.cnt_alg_plaats_code = 'G';
CREATE OR REPLACE PROCEDURE blcc_import_cnt_gebscope (p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_contractnr VARCHAR2 (255); -- C30+'.'+C10
v_gebouwcode VARCHAR2 (255); -- C12
v_gebouwkosten VARCHAR2 (255);
v_ruimtenr VARCHAR2 (255); -- C10
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM blcc_imp_cnt_gebscope;
COMMIT;
header_is_valid := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_ongeldig := 0;
v_aanduiding := '';
v_errormsg := 'Fout opvragen importregel';
v_newline := rec1.fac_imp_file_line;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_contractnr);
fac.imp_getfield (v_newline, c_delim, v_gebouwcode);
fac.imp_getfield (v_newline, c_delim, v_gebouwkosten);
fac.imp_getfield (v_newline, c_delim, v_ruimtenr);
v_aanduiding := '[' || v_contractnr || '|' || v_gebouwcode || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_contractnr) = 'CONTRACTNR'
AND UPPER (v_gebouwcode) = 'GEBOUWCODE'
AND UPPER (v_gebouwkosten) = 'GEBOUWKOSTEN'
--AND UPPER (v_gebouwkosten) = 'RUIMTENR' -- Optioneel
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Contractnr ongeldig; ongedefinieerd of te lang';
v_contractnr := TRIM (v_contractnr);
IF v_contractnr IS NULL OR LENGTH (v_contractnr) > 40
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Gebouwcode ongeldig; ongedefinieerd of te lang';
v_gebouwcode := TRIM (v_gebouwcode);
IF v_gebouwcode IS NULL OR LENGTH (v_gebouwcode) > 12
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Gebouwkosten ongeldig';
v_gebouwkosten := REPLACE (TRIM (v_gebouwkosten), ',', '.');
IF v_gebouwkosten IS NOT NULL AND fac.safe_to_number (v_gebouwkosten) IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Gebouwkosten worden genegeerd!');
END IF;
--
v_errormsg := 'Ruimtenummer te lang';
v_ruimtenr := TRIM (v_ruimtenr);
IF LENGTH (v_ruimtenr) > 10
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO blcc_imp_cnt_gebscope (contractnr, gebouwcode, gebouwkosten, ruimtenr)
VALUES (v_contractnr, v_gebouwcode, fac.safe_to_number (v_gebouwkosten), v_ruimtenr);
COMMIT;
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'CNT-gebscope/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'CNT-gebscope/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
END IF;
COMMIT;
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CNT-gebscope afgebroken!');
END blcc_import_cnt_gebscope;
/
CREATE OR REPLACE PROCEDURE blcc_update_cnt_gebscope (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_count NUMBER (10);
v_count_del NUMBER (10);
v_count_upd NUMBER (10);
v_contract_kosten NUMBER (10);
-- Verwijderen gebouw-scope!
CURSOR c1
IS
SELECT c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
contractnr,
g.alg_gebouw_code,
cp.cnt_contract_plaats_key
FROM cnt_contract_plaats cp,
cnt_v_aanwezigcontract c,
alg_gebouw g
WHERE cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 2221 -- Planned Maintenance
--AND c.cnt_contract_status = 0 -- Definitief
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten?
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 2221 -- Planned Maintenance
AND cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
AND cp.cnt_alg_plaats_key = g.alg_gebouw_key
AND cp.cnt_alg_plaats_code = 'G'
AND EXISTS
(SELECT 1
FROM blcc_imp_cnt_gebscope
WHERE ruimtenr IS NULL
AND UPPER (contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)))
AND NOT EXISTS
(SELECT 1
FROM blcc_imp_cnt_gebscope
WHERE ruimtenr IS NULL
AND UPPER (contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie))
AND UPPER (gebouwcode) = g.alg_gebouw_upper)
ORDER BY 1, 2;
-- Bijwerken gebouw-scope!
CURSOR c2
IS
SELECT i.contractnr, i.gebouwcode, i.gebouwkosten,
c.cnt_contract_key, g.alg_gebouw_key,
cp.cnt_contract_plaats_key, cp.cnt_contract_plaats_gewicht
FROM blcc_imp_cnt_gebscope i,
cnt_v_aanwezigcontract c,
alg_v_aanweziggebouw g,
(SELECT * FROM cnt_contract_plaats WHERE cnt_alg_plaats_code = 'G') cp
WHERE i.ruimtenr IS NULL
AND UPPER (i.contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie))
AND c.ins_discipline_key = 2221 -- Planned Maintenance
--AND c.cnt_contract_status = 0 -- Definitief
AND UPPER (i.gebouwcode) = g.alg_gebouw_upper(+)
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND g.alg_gebouw_key = cp.cnt_alg_plaats_key(+)
ORDER BY 1, 2, 3;
-- Bijwerken totaal!
CURSOR c3
IS
SELECT c.cnt_contract_key, i.contractnr, SUM (i.gebouwkosten) gebouwtotaal
FROM blcc_imp_cnt_gebscope i,
cnt_v_aanwezigcontract c
WHERE i.ruimtenr IS NULL
AND UPPER (i.contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie))
AND c.ins_discipline_key = 2221 -- Planned Maintenance
--AND c.cnt_contract_status = 0 -- Definitief
GROUP BY c.cnt_contract_key, i.contractnr
ORDER BY 1;
-- Verwijderen ruimte-scope!
CURSOR c4
IS
SELECT c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)
contractnr,
r.alg_ruimte_nr,
cp.cnt_contract_plaats_key
FROM cnt_contract_plaats cp,
cnt_v_aanwezigcontract c,
alg_ruimte r
WHERE cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_contract_key = c.cnt_contract_key
AND c.ins_discipline_key = 2501 -- Soft Services Cleaning
--AND c.cnt_contract_status = 0 -- Definitief
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten?
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 2501 -- Planned Maintenance
AND cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
AND cp.cnt_alg_plaats_key = r.alg_ruimte_key
AND cp.cnt_alg_plaats_code = 'R'
AND EXISTS
(SELECT 1
FROM blcc_imp_cnt_gebscope
WHERE ruimtenr IS NOT NULL
AND UPPER (contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '.0', '.' || c.cnt_contract_versie)))
AND NOT EXISTS
(SELECT 1
FROM blcc_imp_cnt_gebscope
WHERE ruimtenr IS NOT NULL
AND UPPER (contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '.0', '.' || c.cnt_contract_versie))
AND UPPER (ruimtenr) = r.alg_ruimte_upper_nr)
ORDER BY 1, 2;
-- Bijwerken ruimte-scope!
CURSOR c5
IS
SELECT i.contractnr, i.ruimtenr,
c.cnt_contract_key, r.alg_ruimte_key,
cp.cnt_contract_plaats_key, cp.cnt_contract_plaats_gewicht
FROM blcc_imp_cnt_gebscope i,
cnt_v_aanwezigcontract c,
alg_v_aanwezigruimte r,
(SELECT * FROM cnt_contract_plaats WHERE cnt_alg_plaats_code = 'R') cp
WHERE i.ruimtenr IS NOT NULL
AND UPPER (i.contractnr) = UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '.0', '.' || c.cnt_contract_versie))
AND c.ins_discipline_key = 2501 -- Soft Services Cleaning
--AND c.cnt_contract_status = 0 -- Definitief
AND UPPER (i.ruimtenr) = r.alg_ruimte_upper_nr(+)
AND c.cnt_contract_key = cp.cnt_contract_key(+)
AND r.alg_ruimte_key = cp.cnt_alg_plaats_key(+)
ORDER BY 1, 2;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
SELECT COUNT (*)
INTO v_count
FROM blcc_imp_cnt_gebscope
WHERE ruimtenr IS NOT NULL;
IF v_count = 0
THEN
v_count_del := 0;
FOR rec IN c1
LOOP
BEGIN
v_aanduiding := '[' || rec.contractnr || '|' || rec.alg_gebouw_code || '] ';
v_errormsg := 'Fout verwijderen contract-gebouw';
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_verwijder = SYSDATE
WHERE cnt_alg_plaats_code = 'G' AND cnt_contract_plaats_key = rec.cnt_contract_plaats_key;
v_count_del := v_count_del + 1;
COMMIT;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'DEL-loop (G)');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT-scope/#verwijderd (G): ' || TO_CHAR (v_count_del), '');
v_count_upd := 0;
FOR rec IN c2
LOOP
BEGIN
v_aanduiding := '[' || rec.contractnr || '|' || rec.gebouwcode || '] ';
IF rec.alg_gebouw_key IS NOT NULL
THEN
IF rec.cnt_contract_plaats_key IS NULL
THEN
v_errormsg := 'Fout toevoegen contract-gebouw';
INSERT INTO cnt_contract_plaats (cnt_contract_key, cnt_alg_plaats_key, cnt_alg_plaats_code, cnt_contract_plaats_gewicht)
VALUES (rec.cnt_contract_key, rec.alg_gebouw_key, 'G', rec.gebouwkosten);
v_count_upd := v_count_upd + 1;
ELSIF rec.gebouwkosten != rec.cnt_contract_plaats_gewicht
THEN
v_errormsg := 'Fout bijwerken contract-gebouw';
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_gewicht = rec.gebouwkosten
WHERE cnt_contract_plaats_key = rec.cnt_contract_plaats_key;
v_count_upd := v_count_upd + 1;
END IF;
ELSE
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen contract-gebouw', 'Gebouw bestaat niet');
END IF;
COMMIT;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'UPD-gebouw');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT-gebouw/#bijgewerkt: ' || TO_CHAR (v_count_upd), '');
v_count_upd := 0;
FOR rec IN c3
LOOP
BEGIN
v_aanduiding := '[' || rec.contractnr || '] ';
v_errormsg := 'Fout bijwerken contract-totaal';
UPDATE cnt_contract
SET cnt_contract_kosten = rec.gebouwtotaal
WHERE cnt_contract_key = rec.cnt_contract_key;
fac.trackaction ('CNTUPD', rec.cnt_contract_key, v_importeur_key, NULL, 'Contract-scope bijgewerkt via import');
v_count_upd := v_count_upd + 1;
COMMIT;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'UPD-totaal');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT-totaal/#bijgewerkt: ' || TO_CHAR (v_count_upd), '');
ELSE
v_count_del := 0;
FOR rec IN c4
LOOP
BEGIN
v_aanduiding := '[' || rec.contractnr || '|' || rec.alg_ruimte_nr || '] ';
v_errormsg := 'Fout verwijderen contract-ruimte';
UPDATE cnt_contract_plaats
SET cnt_contract_plaats_verwijder = SYSDATE
WHERE cnt_alg_plaats_code = 'R' AND cnt_contract_plaats_key = rec.cnt_contract_plaats_key;
v_count_del := v_count_del + 1;
COMMIT;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'DEL-loop (R)');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT-scope/#verwijderd (R): ' || TO_CHAR (v_count_del), '');
v_count_upd := 0;
FOR rec IN c5
LOOP
BEGIN
v_aanduiding := '[' || rec.contractnr || '|' || rec.ruimtenr || '] ';
IF rec.alg_ruimte_key IS NOT NULL
THEN
IF rec.cnt_contract_plaats_key IS NULL
THEN
v_errormsg := 'Fout toevoegen contract-ruimte';
INSERT INTO cnt_contract_plaats (cnt_contract_key, cnt_alg_plaats_key, cnt_alg_plaats_code, cnt_contract_plaats_gewicht)
VALUES (rec.cnt_contract_key, rec.alg_ruimte_key, 'R', NULL);
v_count_upd := v_count_upd + 1;
END IF;
ELSE
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen contract-ruimte', 'Ruimte bestaat niet');
END IF;
COMMIT;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'UPD-ruimte');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT-ruimte/#bijgewerkt: ' || TO_CHAR (v_count_upd), '');
END IF;
v_errormsg := 'Fout bepalen aantallen';
SELECT COUNT (DISTINCT i.contractnr)
INTO v_count
FROM blcc_imp_cnt_gebscope i;
fac.imp_writelog (p_import_key, 'S', 'CNT-contracten/#ingelezen: ' || TO_CHAR (v_count), '');
/*
SELECT COUNT (DISTINCT i.contractnr)
INTO v_count
FROM blcc_imp_cnt_gebscope i
WHERE EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract c
WHERE UPPER (c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie)) = UPPER (i.contractnr));
fac.imp_writelog (p_import_key, 'S', 'CNT-contracten/#bijgewerkt: ' || TO_CHAR (v_count), '');
*/
COMMIT;
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces CNT-gebscope afgebroken!');
END blcc_update_cnt_gebscope;
/
CREATE OR REPLACE PROCEDURE blcc_import_mld_lv (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_regelnr NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_debiteurnr VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_po VARCHAR2 (1000); -- C30
v_cv_crf VARCHAR2 (1000); --C3
v_contractref VARCHAR2 (1000); -- C30+C1+C10+C1+C60+C2+C60+C1=C165
v_bedrijf_key NUMBER (10);
v_cv_crf_ud_key NUMBER (10);
v_contract_key NUMBER (10);
v_bedrag1 VARCHAR2 (1000); -- N12.2 (en N9.2 in BLCC_IMP_MLD_LV!)
v_btwtarief1 VARCHAR2 (1000); -- C11 (Vrijgesteld)
v_omschrijving1 VARCHAR2 (1000); -- C400
v_kostenplaats1 VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_kostensoort1 VARCHAR2 (1000); -- C60+C2+C255+C1=C318
v_kp_key1 NUMBER (10);
v_ks_key1 NUMBER (10);
v_btw_ud_key1 NUMBER (10);
v_bedrag2 VARCHAR2 (1000); -- N12.2 (en N9.2 in BLCC_IMP_MLD_LV!)
v_btwtarief2 VARCHAR2 (1000); -- C11 (Vrijgesteld)
v_omschrijving2 VARCHAR2 (1000); -- C400
v_kostenplaats2 VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_kostensoort2 VARCHAR2 (1000); -- C60+C2+C255+C1=C318
v_kp_key2 NUMBER (10);
v_ks_key2 NUMBER (10);
v_btw_ud_key2 NUMBER (10);
v_bedrag3 VARCHAR2 (1000); -- N12.2 (en N9.2 in BLCC_IMP_MLD_LV!)
v_btwtarief3 VARCHAR2 (1000); -- C11 (Vrijgesteld)
v_omschrijving3 VARCHAR2 (1000); -- C400
v_kostenplaats3 VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_kostensoort3 VARCHAR2 (1000); -- C60+C2+C255+C1=C318
v_btw_ud_key3 NUMBER (10);
v_kp_key3 NUMBER (10);
v_ks_key3 NUMBER (10);
v_bedrag4 VARCHAR2 (1000); -- N12.2 (en N9.2 in BLCC_IMP_MLD_LV!)
v_btwtarief4 VARCHAR2 (1000); -- C11 (Vrijgesteld)
v_omschrijving4 VARCHAR2 (1000); -- C400
v_kostenplaats4 VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_kostensoort4 VARCHAR2 (1000); -- C60+C2+C255+C1=C318
v_btw_ud_key4 NUMBER (10);
v_kp_key4 NUMBER (10);
v_ks_key4 NUMBER (10);
v_bedrag5 VARCHAR2 (1000); -- N12.2 (en N9.2 in BLCC_IMP_MLD_LV!)
v_btwtarief5 VARCHAR2 (1000); -- C11 (Vrijgesteld)
v_omschrijving5 VARCHAR2 (1000); -- C400
v_kostenplaats5 VARCHAR2 (1000); -- C30+C2+C60+C1=C93
v_kostensoort5 VARCHAR2 (1000); -- C60+C2+C255+C1=C318
v_btw_ud_key5 NUMBER (10);
v_kp_key5 NUMBER (10);
v_ks_key5 NUMBER (10);
v_gebouwcode VARCHAR2 (1000);
v_gebouw_key NUMBER (10);
v_count NUMBER (10);
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM blcc_imp_mld_lv;
COMMIT;
header_is_valid := 0;
v_regelnr := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_regelnr := v_regelnr + 1;
v_ongeldig := 0;
v_aanduiding := '';
v_errormsg := 'Fout opvragen importregel';
v_newline := rec1.fac_imp_file_line;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_debiteurnr);
fac.imp_getfield (v_newline, c_delim, v_po);
fac.imp_getfield (v_newline, c_delim, v_cv_crf);
fac.imp_getfield (v_newline, c_delim, v_contractref);
fac.imp_getfield (v_newline, c_delim, v_bedrag1);
fac.imp_getfield (v_newline, c_delim, v_btwtarief1);
fac.imp_getfield (v_newline, c_delim, v_omschrijving1);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats1);
fac.imp_getfield (v_newline, c_delim, v_kostensoort1);
fac.imp_getfield (v_newline, c_delim, v_bedrag2);
fac.imp_getfield (v_newline, c_delim, v_btwtarief2);
fac.imp_getfield (v_newline, c_delim, v_omschrijving2);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats2);
fac.imp_getfield (v_newline, c_delim, v_kostensoort2);
fac.imp_getfield (v_newline, c_delim, v_bedrag3);
fac.imp_getfield (v_newline, c_delim, v_btwtarief3);
fac.imp_getfield (v_newline, c_delim, v_omschrijving3);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats3);
fac.imp_getfield (v_newline, c_delim, v_kostensoort3);
fac.imp_getfield (v_newline, c_delim, v_bedrag4);
fac.imp_getfield (v_newline, c_delim, v_btwtarief4);
fac.imp_getfield (v_newline, c_delim, v_omschrijving4);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats4);
fac.imp_getfield (v_newline, c_delim, v_kostensoort4);
fac.imp_getfield (v_newline, c_delim, v_bedrag5);
fac.imp_getfield (v_newline, c_delim, v_btwtarief5);
fac.imp_getfield (v_newline, c_delim, v_omschrijving5);
fac.imp_getfield (v_newline, c_delim, v_kostenplaats5);
fac.imp_getfield (v_newline, c_delim, v_kostensoort5);
fac.imp_getfield (v_newline, c_delim, v_gebouwcode);
v_aanduiding := '[' || v_regelnr || '|' || v_debiteurnr || '|' || v_contractref || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
-- Debiteurnr;PO;CV/CRF;Contractref (nr[.versie]);Bedrag;BTW-tarief;Omschrijving;Kostenplaats;Kostensoort;... (5x)
IF (header_is_valid = 0)
THEN
IF UPPER (TRIM (v_debiteurnr)) = 'DEBITEURNR'
AND UPPER (TRIM (v_po)) = 'PO'
AND UPPER (TRIM (v_cv_crf)) = 'CV/CRF'
--AND UPPER (TRIM (v_contractref)) = 'CONTRACTREF (NR[.VERSIE])'
AND UPPER (TRIM (v_bedrag1)) = 'BEDRAG'
AND UPPER (TRIM (v_btwtarief1)) = 'BTW-TARIEF'
AND UPPER (TRIM (v_omschrijving1)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_kostenplaats1)) = 'KOSTENPLAATS'
AND UPPER (TRIM (v_kostensoort1)) = 'KOSTENSOORT'
AND UPPER (TRIM (v_bedrag2)) = 'BEDRAG'
AND UPPER (TRIM (v_btwtarief2)) = 'BTW-TARIEF'
AND UPPER (TRIM (v_omschrijving2)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_kostenplaats2)) = 'KOSTENPLAATS'
AND UPPER (TRIM (v_kostensoort2)) = 'KOSTENSOORT'
AND UPPER (TRIM (v_bedrag3)) = 'BEDRAG'
AND UPPER (TRIM (v_btwtarief3)) = 'BTW-TARIEF'
AND UPPER (TRIM (v_omschrijving3)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_kostenplaats3)) = 'KOSTENPLAATS'
AND UPPER (TRIM (v_kostensoort3)) = 'KOSTENSOORT'
AND UPPER (TRIM (v_bedrag4)) = 'BEDRAG'
AND UPPER (TRIM (v_btwtarief4)) = 'BTW-TARIEF'
AND UPPER (TRIM (v_omschrijving4)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_kostenplaats4)) = 'KOSTENPLAATS'
AND UPPER (TRIM (v_kostensoort4)) = 'KOSTENSOORT'
AND UPPER (TRIM (v_bedrag5)) = 'BEDRAG'
AND UPPER (TRIM (v_btwtarief5)) = 'BTW-TARIEF'
AND UPPER (TRIM (v_omschrijving5)) = 'OMSCHRIJVING'
AND UPPER (TRIM (v_kostenplaats5)) = 'KOSTENPLAATS'
AND UPPER (TRIM (v_kostensoort5)) = 'KOSTENSOORT'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer sommige veldwaarden
v_errormsg := 'DebiteurNr ongeldig';
v_debiteurnr := TRIM (v_debiteurnr);
SELECT MAX (prs_bedrijf_key), COUNT (*)
INTO v_bedrijf_key, v_count
FROM blcc_v_debiteur
WHERE prs_bedrijf_verwijder IS NULL
AND INSTR (prs_bedrijf_id, '[' || v_debiteurnr || ']') > 0;
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'PO ongeldig';
v_po := TRIM (v_po);
--
v_errormsg := 'CV/CRF ongeldig';
v_cv_crf := UPPER (TRIM (v_cv_crf));
SELECT MAX (fac_usrdata_key)
INTO v_cv_crf_ud_key
FROM fac_usrdata
WHERE fac_usrtab_key = 661 -- CV/CRF
AND UPPER (fac_usrdata_omschr) = v_cv_crf;
IF v_cv_crf_ud_key IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'ContractRef ongeldig';
v_contractref := TRIM (v_contractref);
SELECT MAX (cnt_contract_key), COUNT (*)
INTO v_contract_key, v_count
FROM blcc_v_verkoopcontractref
WHERE SUBSTR (cnt_contract_id, 1, INSTR (cnt_contract_id, '/') - 1) = SUBSTR (v_contractref, 1, INSTR (v_contractref || '/', '/') - 1);
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Bedrag#1 ongeldig';
v_bedrag1 := REPLACE (TRIM (v_bedrag1), ',', '.');
IF fac.safe_to_number (v_bedrag1) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'BtwTarief#1 ongeldig';
v_btwtarief1 := UPPER (TRIM (v_btwtarief1));
SELECT MAX (fac_usrdata_key)
INTO v_btw_ud_key1
FROM fac_usrdata
WHERE fac_usrtab_key = 641 -- BTW tabel
AND UPPER (fac_usrdata_omschr) = v_btwtarief1;
IF v_btw_ud_key1 IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Omschrijving#1 ongeldig; ongedefinieerd of te lang';
v_omschrijving1 := TRIM (v_omschrijving1);
IF v_omschrijving1 IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
ELSIF LENGTH (v_omschrijving1) > 400
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Omschrijving#1 wordt afgekapt!');
END IF;
--
v_errormsg := 'Kostenplaats#1 ongeldig';
v_kostenplaats1 := TRIM (v_kostenplaats1);
SELECT MAX (prs_kostenplaats_key), COUNT (*)
INTO v_kp_key1, v_count
FROM blcc_v_kostenplaats
WHERE SUBSTR (prs_kostenplaats_id, 1, INSTR (prs_kostenplaats_id, ' ') - 1) = SUBSTR (v_kostenplaats1, 1, INSTR (v_kostenplaats1 || ' ', ' ') - 1);
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kostensoort#1 ongeldig';
v_kostensoort1 := TRIM (v_kostensoort1);
SELECT MAX (prs_kostensoort_key), COUNT (*)
INTO v_ks_key1, v_count
FROM blcc_v_kostensoort
WHERE SUBSTR (prs_kostensoort_id, 1, INSTR (prs_kostensoort_id, ' ') - 1) = SUBSTR (v_kostensoort1, 1, INSTR (v_kostensoort1 || ' ', ' ') - 1);
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Bedrag#2 ongeldig';
v_bedrag2 := REPLACE (TRIM (v_bedrag2), ',', '.');
IF v_bedrag2 IS NOT NULL AND fac.safe_to_number (v_bedrag2) IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#2 wordt genegeerd!');
v_bedrag2 := NULL;
END IF;
--
v_errormsg := 'BtwTarief#2 ongeldig';
v_btwtarief2 := UPPER (TRIM (v_btwtarief2));
SELECT MAX (fac_usrdata_key)
INTO v_btw_ud_key2
FROM fac_usrdata
WHERE fac_usrtab_key = 641 -- BTW tabel
AND UPPER (fac_usrdata_omschr) = v_btwtarief2;
IF v_bedrag2 IS NOT NULL AND v_btw_ud_key2 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#2 wordt genegeerd!');
v_bedrag2 := NULL;
END IF;
--
v_errormsg := 'Omschrijving#2 ongeldig; ongedefinieerd of te lang';
v_omschrijving2 := TRIM (v_omschrijving2);
IF v_bedrag2 IS NOT NULL AND v_omschrijving2 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#2 wordt genegeerd!');
v_bedrag2 := NULL;
ELSIF LENGTH (v_omschrijving2) > 400
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Omschrijving#2 wordt afgekapt!');
END IF;
--
v_errormsg := 'Kostenplaats#2 ongeldig';
v_kostenplaats2 := TRIM (v_kostenplaats2);
SELECT MAX (prs_kostenplaats_key), COUNT (*)
INTO v_kp_key2, v_count
FROM blcc_v_kostenplaats
WHERE SUBSTR (prs_kostenplaats_id, 1, INSTR (prs_kostenplaats_id, ' ') - 1) = SUBSTR (v_kostenplaats2, 1, INSTR (v_kostenplaats2 || ' ', ' ') - 1);
IF v_bedrag2 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#2 wordt genegeerd!');
v_bedrag2 := NULL;
END IF;
--
v_errormsg := 'Kostensoort#2 ongeldig';
v_kostensoort2 := TRIM (v_kostensoort2);
SELECT MAX (prs_kostensoort_key), COUNT (*)
INTO v_ks_key2, v_count
FROM blcc_v_kostensoort
WHERE SUBSTR (prs_kostensoort_id, 1, INSTR (prs_kostensoort_id, ' ') - 1) = SUBSTR (v_kostensoort2, 1, INSTR (v_kostensoort2 || ' ', ' ') - 1);
IF v_bedrag2 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#2 wordt genegeerd!');
v_bedrag2 := NULL;
END IF;
--
v_errormsg := 'Bedrag#3 ongeldig';
v_bedrag3 := REPLACE (TRIM (v_bedrag3), ',', '.');
IF v_bedrag3 IS NOT NULL AND fac.safe_to_number (v_bedrag3) IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#3 wordt genegeerd!');
v_bedrag3 := NULL;
END IF;
--
v_errormsg := 'BtwTarief#3 ongeldig';
v_btwtarief3 := UPPER (TRIM (v_btwtarief3));
SELECT MAX (fac_usrdata_key)
INTO v_btw_ud_key3
FROM fac_usrdata
WHERE fac_usrtab_key = 641 -- BTW tabel
AND UPPER (fac_usrdata_omschr) = v_btwtarief3;
IF v_bedrag3 IS NOT NULL AND v_btw_ud_key3 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#3 wordt genegeerd!');
v_bedrag3 := NULL;
END IF;
--
v_errormsg := 'Omschrijving#3 ongeldig; ongedefinieerd of te lang';
v_omschrijving3 := TRIM (v_omschrijving3);
IF v_bedrag3 IS NOT NULL AND v_omschrijving3 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#3 wordt genegeerd!');
v_bedrag3 := NULL;
ELSIF LENGTH (v_omschrijving3) > 400
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Omschrijving#3 wordt afgekapt!');
END IF;
--
v_errormsg := 'Kostenplaats#3 ongeldig';
v_kostenplaats3 := TRIM (v_kostenplaats3);
SELECT MAX (prs_kostenplaats_key), COUNT (*)
INTO v_kp_key3, v_count
FROM blcc_v_kostenplaats
WHERE SUBSTR (prs_kostenplaats_id, 1, INSTR (prs_kostenplaats_id, ' ') - 1) = SUBSTR (v_kostenplaats3, 1, INSTR (v_kostenplaats3 || ' ', ' ') - 1);
IF v_bedrag3 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#3 wordt genegeerd!');
v_bedrag3 := NULL;
END IF;
--
v_errormsg := 'Kostensoort#3 ongeldig';
v_kostensoort3 := TRIM (v_kostensoort3);
SELECT MAX (prs_kostensoort_key), COUNT (*)
INTO v_ks_key3, v_count
FROM blcc_v_kostensoort
WHERE SUBSTR (prs_kostensoort_id, 1, INSTR (prs_kostensoort_id, ' ') - 1) = SUBSTR (v_kostensoort3, 1, INSTR (v_kostensoort3 || ' ', ' ') - 1);
IF v_bedrag3 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#3 wordt genegeerd!');
v_bedrag3 := NULL;
END IF;
--
v_errormsg := 'Bedrag#4 ongeldig';
v_bedrag4 := REPLACE (TRIM (v_bedrag4), ',', '.');
IF v_bedrag4 IS NOT NULL AND fac.safe_to_number (v_bedrag4) IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#4 wordt genegeerd!');
v_bedrag4 := NULL;
END IF;
--
v_errormsg := 'BtwTarief#4 ongeldig';
v_btwtarief4 := UPPER (TRIM (v_btwtarief4));
SELECT MAX (fac_usrdata_key)
INTO v_btw_ud_key4
FROM fac_usrdata
WHERE fac_usrtab_key = 641 -- BTW tabel
AND UPPER (fac_usrdata_omschr) = v_btwtarief4;
IF v_bedrag4 IS NOT NULL AND v_btw_ud_key4 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#4 wordt genegeerd!');
v_bedrag4 := NULL;
END IF;
--
v_errormsg := 'Omschrijving#4 ongeldig; ongedefinieerd of te lang';
v_omschrijving4 := TRIM (v_omschrijving4);
IF v_bedrag4 IS NOT NULL AND v_omschrijving4 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#4 wordt genegeerd!');
v_bedrag4 := NULL;
ELSIF LENGTH (v_omschrijving4) > 400
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Omschrijving#4 wordt afgekapt!');
END IF;
--
v_errormsg := 'Kostenplaats#4 ongeldig';
v_kostenplaats4 := TRIM (v_kostenplaats4);
SELECT MAX (prs_kostenplaats_key), COUNT (*)
INTO v_kp_key4, v_count
FROM blcc_v_kostenplaats
WHERE SUBSTR (prs_kostenplaats_id, 1, INSTR (prs_kostenplaats_id, ' ') - 1) = SUBSTR (v_kostenplaats4, 1, INSTR (v_kostenplaats4 || ' ', ' ') - 1);
IF v_bedrag4 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#4 wordt genegeerd!');
v_bedrag4 := NULL;
END IF;
--
v_errormsg := 'Kostensoort#4 ongeldig';
v_kostensoort4 := TRIM (v_kostensoort4);
SELECT MAX (prs_kostensoort_key), COUNT (*)
INTO v_ks_key4, v_count
FROM blcc_v_kostensoort
WHERE SUBSTR (prs_kostensoort_id, 1, INSTR (prs_kostensoort_id, ' ') - 1) = SUBSTR (v_kostensoort4, 1, INSTR (v_kostensoort4 || ' ', ' ') - 1);
IF v_bedrag4 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#4 wordt genegeerd!');
v_bedrag4 := NULL;
END IF;
--
v_errormsg := 'Bedrag#5 ongeldig';
v_bedrag5 := REPLACE (TRIM (v_bedrag5), ',', '.');
IF v_bedrag5 IS NOT NULL AND fac.safe_to_number (v_bedrag5) IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#5 wordt genegeerd!');
v_bedrag5 := NULL;
END IF;
--
v_errormsg := 'BtwTarief#5 ongeldig';
v_btwtarief5 := UPPER (TRIM (v_btwtarief5));
SELECT MAX (fac_usrdata_key)
INTO v_btw_ud_key5
FROM fac_usrdata
WHERE fac_usrtab_key = 641 -- BTW tabel
AND UPPER (fac_usrdata_omschr) = v_btwtarief5;
IF v_bedrag5 IS NOT NULL AND v_btw_ud_key5 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#5 wordt genegeerd!');
v_bedrag5 := NULL;
END IF;
--
v_errormsg := 'Omschrijving#5 ongeldig; ongedefinieerd of te lang';
v_omschrijving5 := TRIM (v_omschrijving5);
IF v_bedrag5 IS NOT NULL AND v_omschrijving5 IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#5 wordt genegeerd!');
v_bedrag5 := NULL;
ELSIF LENGTH (v_omschrijving5) > 400
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Omschrijving#5 wordt afgekapt!');
END IF;
--
v_errormsg := 'Kostenplaats#5 ongeldig';
v_kostenplaats5 := TRIM (v_kostenplaats5);
SELECT MAX (prs_kostenplaats_key), COUNT (*)
INTO v_kp_key5, v_count
FROM blcc_v_kostenplaats
WHERE SUBSTR (prs_kostenplaats_id, 1, INSTR (prs_kostenplaats_id, ' ') - 1) = SUBSTR (v_kostenplaats5, 1, INSTR (v_kostenplaats5 || ' ', ' ') - 1);
IF v_bedrag5 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#5 wordt genegeerd!');
v_bedrag5 := NULL;
END IF;
--
v_errormsg := 'Kostensoort#5 ongeldig';
v_kostensoort5 := TRIM (v_kostensoort5);
SELECT MAX (prs_kostensoort_key), COUNT (*)
INTO v_ks_key5, v_count
FROM blcc_v_kostensoort
WHERE SUBSTR (prs_kostensoort_id, 1, INSTR (prs_kostensoort_id, ' ') - 1) = SUBSTR (v_kostensoort5, 1, INSTR (v_kostensoort5 || ' ', ' ') - 1);
IF v_bedrag5 IS NOT NULL AND v_count != 1
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Verkoopregel#5 wordt genegeerd!');
v_bedrag5 := NULL;
END IF;
--
v_errormsg := 'Gebouwcode ongeldig';
v_gebouwcode := TRIM (v_gebouwcode);
SELECT MAX (alg_gebouw_key), COUNT (*)
INTO v_gebouw_key, v_count
FROM alg_v_aanweziggebouw
WHERE alg_gebouw_upper = UPPER (v_gebouwcode);
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO blcc_imp_mld_lv (regelnr,
debiteurnr, po, cv_crf, contractref,
bedrijf_key, cv_crf_ud_key, contract_key,
bedrag1, btwtarief1, omschrijving1, kostenplaats1, kostensoort1,
btw_ud_key1, kp_key1, ks_key1,
bedrag2, btwtarief2, omschrijving2, kostenplaats2, kostensoort2,
btw_ud_key2, kp_key2, ks_key2,
bedrag3, btwtarief3, omschrijving3, kostenplaats3, kostensoort3,
btw_ud_key3, kp_key3, ks_key3,
bedrag4, btwtarief4, omschrijving4, kostenplaats4, kostensoort4,
btw_ud_key4, kp_key4, ks_key4,
bedrag5, btwtarief5, omschrijving5, kostenplaats5, kostensoort5,
btw_ud_key5, kp_key5, ks_key5,
gebouw_key)
VALUES (v_regelnr,
v_debiteurnr, v_po, v_cv_crf, v_contractref,
v_bedrijf_key, v_cv_crf_ud_key, v_contract_key,
v_bedrag1, v_btwtarief1, v_omschrijving1, v_kostenplaats1, v_kostensoort1,
v_btw_ud_key1, v_kp_key1, v_ks_key1,
v_bedrag2, v_btwtarief2, v_omschrijving2, v_kostenplaats2, v_kostensoort2,
v_btw_ud_key2, v_kp_key2, v_ks_key2,
v_bedrag3, v_btwtarief3, v_omschrijving3, v_kostenplaats3, v_kostensoort3,
v_btw_ud_key3, v_kp_key3, v_ks_key3,
v_bedrag4, v_btwtarief4, v_omschrijving4, v_kostenplaats4, v_kostensoort4,
v_btw_ud_key4, v_kp_key4, v_ks_key4,
v_bedrag5, v_btwtarief5, v_omschrijving5, v_kostenplaats5, v_kostensoort5,
v_btw_ud_key5, v_kp_key5, v_ks_key5,
v_gebouw_key);
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'LV/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'LV/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
END IF;
COMMIT;
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces LV afgebroken!');
END blcc_import_mld_lv;
/
CREATE OR REPLACE PROCEDURE blcc_update_mld_lv (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_count NUMBER (10);
v_melding_key NUMBER (10);
-- Toevoegen Losse Verkoop melding!
CURSOR c_lv
IS
SELECT '[' || TO_CHAR (regelnr) || '|' || debiteurnr || '] ' aanduiding,
regelnr,
debiteurnr, po, cv_crf, contractref,
bedrijf_key, cv_crf_ud_key, contract_key,
bedrag1, btwtarief1, omschrijving1, kostenplaats1, kostensoort1,
btw_ud_key1, kp_key1, ks_key1,
bedrag2, btwtarief2, omschrijving2, kostenplaats2, kostensoort2,
btw_ud_key2, kp_key2, ks_key2,
bedrag3, btwtarief3, omschrijving3, kostenplaats3, kostensoort3,
btw_ud_key3, kp_key3, ks_key3,
bedrag4, btwtarief4, omschrijving4, kostenplaats4, kostensoort4,
btw_ud_key4, kp_key4, ks_key4,
bedrag5, btwtarief5, omschrijving5, kostenplaats5, kostensoort5,
btw_ud_key5, kp_key5, ks_key5,
COALESCE (fac.safe_to_number (bedrag1), 0)
+ COALESCE (fac.safe_to_number (bedrag2), 0)
+ COALESCE (fac.safe_to_number (bedrag3), 0)
+ COALESCE (fac.safe_to_number (bedrag4), 0)
+ COALESCE (fac.safe_to_number (bedrag5), 0)
totaal,
gebouw_key
FROM blcc_imp_mld_lv
ORDER BY 2;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
v_count := 0;
FOR rec IN c_lv
LOOP
BEGIN
v_errormsg := 'Fout toevoegen LV-melding';
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_meldbron_nr,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_behandelaar_key,
mld_melding_behandelaar2_key,
mld_ins_discipline_key,
mld_stdmelding_key,
mld_melding_t_uitvoertijd,
mld_melding_einddatum,
prs_perslid_key,
prs_perslid_key_voor,
mld_melding_status,
mld_melding_spoed,
mld_melding_opmerking)
VALUES ('MLD',
1, -- Onbekend
NULL,
1, -- CAMPUS
rec.gebouw_key,
SYSDATE,
NULL, -- Onderwerp
NULL, -- Omschrijving
TO_NUMBER (NULL), -- mld_melding_behandelaar_key
TO_NUMBER (NULL), -- mld_melding_behandelaar2_key
TO_NUMBER (NULL), -- mld_ins_discipline_key
1321, -- Losse Verkoop
NULL,
TO_DATE (NULL),
v_importeur_key, -- Toch???
v_importeur_key, -- Toch???
2, -- Nieuw
3,
NULL)
RETURNING mld_melding_key
INTO v_melding_key;
fac.trackaction ('MLDNEW', v_melding_key, v_importeur_key, SYSDATE, 'Ge<47>mporteerd vanuit LV-sjabloon');
-- Toevoegen overkoepelende gegevens (bij inlezen vereist)!
v_errormsg := 'Fout toevoegen DebiteurNr';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 941, TO_CHAR (rec.bedrijf_key));
v_errormsg := 'Fout toevoegen PO';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1001, rec.po);
v_errormsg := 'Fout toevoegen CV/CRF';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1121, TO_CHAR (rec.cv_crf_ud_key));
v_errormsg := 'Fout toevoegen ContractRef';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1081, TO_CHAR (rec.contract_key));
-- Toevoegen Verkoopregel#1 (bij inlezen vereist)!
v_errormsg := 'Fout toevoegen Bedrag#1';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 961, rec.bedrag1);
v_errormsg := 'Fout toevoegen BTW tarief#1';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 962, TO_CHAR (rec.btw_ud_key1));
v_errormsg := 'Fout toevoegen Omschrijving#1';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 963, rec.omschrijving1);
v_errormsg := 'Fout toevoegen Kostenplaats#1';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 964, TO_CHAR (rec.kp_key1));
v_errormsg := 'Fout toevoegen Kostensoort#1';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 965, TO_CHAR (rec.ks_key1));
-- Toevoegen Verkoopregel#2 (als Bedrag2 is gevuld, dan als groep vereist)!
IF rec.bedrag2 IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen Bedrag#2';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 966, rec.bedrag2);
v_errormsg := 'Fout toevoegen BTW tarief#2';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 967, TO_CHAR (rec.btw_ud_key2));
v_errormsg := 'Fout toevoegen Omschrijving#2';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 968, rec.omschrijving2);
v_errormsg := 'Fout toevoegen Kostenplaats#2';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 969, TO_CHAR (rec.kp_key2));
v_errormsg := 'Fout toevoegen Kostensoort#2';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 970, TO_CHAR (rec.ks_key2));
END IF;
-- Toevoegen Verkoopregel#3 (als Bedrag3 is gevuld, dan als groep vereist)!
IF rec.bedrag3 IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen Bedrag#3';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 971, rec.bedrag3);
v_errormsg := 'Fout toevoegen BTW tarief#3';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 972, TO_CHAR (rec.btw_ud_key3));
v_errormsg := 'Fout toevoegen Omschrijving#3';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 973, rec.omschrijving3);
v_errormsg := 'Fout toevoegen Kostenplaats#3';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 974, TO_CHAR (rec.kp_key3));
v_errormsg := 'Fout toevoegen Kostensoort#3';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 975, TO_CHAR (rec.ks_key3));
END IF;
-- Toevoegen Verkoopregel#4 (als Bedrag4 is gevuld, dan als groep vereist)!
IF rec.bedrag4 IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen Bedrag#4';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1021, rec.bedrag4);
v_errormsg := 'Fout toevoegen BTW tarief#4';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1022, TO_CHAR (rec.btw_ud_key4));
v_errormsg := 'Fout toevoegen Omschrijving#4';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1023, rec.omschrijving4);
v_errormsg := 'Fout toevoegen Kostenplaats#4';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1024, TO_CHAR (rec.kp_key4));
v_errormsg := 'Fout toevoegen Kostensoort#4';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1025, TO_CHAR (rec.ks_key4));
END IF;
-- Toevoegen Verkoopregel#5 (als Bedrag5 is gevuld, dan als groep vereist)!
IF rec.bedrag5 IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen Bedrag#5';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1026, rec.bedrag5);
v_errormsg := 'Fout toevoegen BTW tarief#5';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1027, TO_CHAR (rec.btw_ud_key5));
v_errormsg := 'Fout toevoegen Omschrijving#5';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1028, rec.omschrijving5);
v_errormsg := 'Fout toevoegen Kostenplaats#5';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1029, TO_CHAR (rec.kp_key5));
v_errormsg := 'Fout toevoegen Kostensoort#5';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 1030, TO_CHAR (rec.ks_key5));
END IF;
v_errormsg := 'Fout toevoegen Totaal Losse Verkoop'; -- TODO:A=8201/P=8341!
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, 8341, TO_CHAR (rec.totaal));
v_count := v_count + 1;
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.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, '');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'LV/#toegevoegd: ' || TO_CHAR (v_count), '');
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces LV afgebroken!');
END blcc_update_mld_lv;
/
-- k1001 VARCHAR2 (1000), -- Voorschot CS Campusgebonden (jaarbedrag)
-- k1002 VARCHAR2 (1000), -- Voorschot CS Gebouwgebonden (jaarbedrag)
-- k842 VARCHAR2 (1000), -- Voorschot CS Huurderspecifiek (jaarbedrag)
-- k1041 VARCHAR2 (1000), -- SLA Facility Services (jaarbedrag)
-- k1061 VARCHAR2 (1000), -- SLA tenant-specific services (jaarbedrag)
-- k506 VARCHAR2 (1000), -- Absolute korting Property Tax (jaarbedrag)
-- k669 VARCHAR2 (1000) -- Rent Rebate (jaarbedrag)
-- k981 VARCHAR2 (1000) -- Voorschot Utilities (jaarbedrag)
CREATE OR REPLACE PROCEDURE blcc_import_cnt_la (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_regelnr NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_contractref VARCHAR2 (1000); -- C30+C1+C10+C1+C60+C2+C60+C1=C165
v_contract_key NUMBER (10);
v_k1001 VARCHAR2 (1000); -- N12.5
v_k1002 VARCHAR2 (1000); -- N12.5
v_k842 VARCHAR2 (1000); -- N12.5
v_k1041 VARCHAR2 (1000); -- N20.10?
v_k1061 VARCHAR2 (1000); -- N20.10?
v_k506 VARCHAR2 (1000); -- N12.5
v_k669 VARCHAR2 (1000); -- N12.5
v_k981 VARCHAR2 (1000); -- N20.10?
v_count NUMBER (10);
CURSOR c1 IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM blcc_imp_cnt_la_velden;
COMMIT;
header_is_valid := 0;
v_regelnr := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_regelnr := v_regelnr + 1;
v_ongeldig := 0;
v_aanduiding := '';
v_errormsg := 'Fout opvragen importregel';
v_newline := rec1.fac_imp_file_line;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_contractref);
fac.imp_getfield (v_newline, c_delim, v_k1001);
fac.imp_getfield (v_newline, c_delim, v_k1002);
fac.imp_getfield (v_newline, c_delim, v_k842);
fac.imp_getfield (v_newline, c_delim, v_k1041);
fac.imp_getfield (v_newline, c_delim, v_k1061);
fac.imp_getfield (v_newline, c_delim, v_k506);
fac.imp_getfield (v_newline, c_delim, v_k669);
fac.imp_getfield (v_newline, c_delim, v_k981);
v_aanduiding := '[' || v_regelnr || '|' || v_contractref || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ENKELE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
-- Contractref (nr[.versie]);Bedrag;... (8x)
IF (header_is_valid = 0)
THEN
IF 1 = 1
--AND UPPER (TRIM (v_contractref)) = 'CONTRACTREF (NR[.VERSIE])'
AND UPPER (TRIM (v_k1001)) = 'BEDRAG'
AND UPPER (TRIM (v_k1002)) = 'BEDRAG'
AND UPPER (TRIM (v_k842)) = 'BEDRAG'
AND UPPER (TRIM (v_k1041)) = 'BEDRAG'
AND UPPER (TRIM (v_k1061)) = 'BEDRAG'
AND UPPER (TRIM (v_k506)) = 'BEDRAG'
AND UPPER (TRIM (v_k669)) = 'BEDRAG'
AND UPPER (TRIM (v_k981)) = 'BEDRAG'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer veldwaarden
v_errormsg := 'ContractRef ongeldig';
v_contractref := TRIM (v_contractref);
SELECT MAX (c.cnt_contract_key), COUNT (*)
INTO v_contract_key, v_count
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2122 -- LA
AND c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie) = v_contractref
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (COALESCE (cnt_contract_versie, '0')) > fac.safe_to_number (COALESCE (c.cnt_contract_versie, '0')));
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#1001 ongeldig [Voorschot CS Campusgebonden (jaarbedrag)]';
v_k1001 := REPLACE (TRIM (v_k1001), ',', '.');
IF v_k1001 IS NOT NULL AND fac.safe_to_number (v_k1001) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#1002 ongeldig [Voorschot CS Gebouwgebonden (jaarbedrag)]';
v_k1002 := REPLACE (TRIM (v_k1002), ',', '.');
IF v_k1002 IS NOT NULL AND fac.safe_to_number (v_k1002) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#842 ongeldig [Voorschot CS Huurderspecifiek (jaarbedrag)]';
v_k842 := REPLACE (TRIM (v_k842), ',', '.');
IF v_k842 IS NOT NULL AND fac.safe_to_number (v_k842) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#1041 ongeldig [SLA Facility Services (jaarbedrag)]';
v_k1041 := REPLACE (TRIM (v_k1041), ',', '.');
IF v_k1041 IS NOT NULL AND fac.safe_to_number (v_k1041) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#1061 ongeldig [SLA tenant-specific services (jaarbedrag)]';
v_k1061 := REPLACE (TRIM (v_k1061), ',', '.');
IF v_k1061 IS NOT NULL AND fac.safe_to_number (v_k1061) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#506 ongeldig [Absolute korting Property Tax (jaarbedrag)]';
v_k506 := REPLACE (TRIM (v_k506), ',', '.');
IF v_k506 IS NOT NULL AND fac.safe_to_number (v_k506) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#669 ongeldig [Rent Rebate (jaarbedrag)]';
v_k669 := REPLACE (TRIM (v_k669), ',', '.');
IF v_k669 IS NOT NULL AND fac.safe_to_number (v_k669) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#981 ongeldig [Voorschot Utilities (jaarbedrag)]';
v_k981 := REPLACE (TRIM (v_k981), ',', '.');
IF v_k981 IS NOT NULL AND fac.safe_to_number (v_k981) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO blcc_imp_cnt_la_velden (regelnr, contractref, contract_key,
k1001, k1002, k842, k1041, k1061, k506, k669, k981)
VALUES (v_regelnr, v_contractref, v_contract_key,
v_k1001, v_k1002, v_k842, v_k1041, v_k1061, v_k506, v_k669, v_k981);
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'CNT_LA/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'CNT_LA/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CNT_LA afgebroken!');
END blcc_import_cnt_la;
/
CREATE OR REPLACE PROCEDURE blcc_update_cnt_la (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_count NUMBER (10);
-- Bijwerken contract LA!
CURSOR c_la IS
SELECT '[' || TO_CHAR (regelnr) || '|' || contractref || '] '
aanduiding,
regelnr, contractref, contract_key, k1001, k1002, k842, k1041, k1061, k506, k669, k981
FROM blcc_imp_cnt_la_velden
ORDER BY 2;
-- SUBPROC
PROCEDURE upsert_cntkenmerk (p_contract_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerknaam VARCHAR2 (50);
v_srtkenmerk_type VARCHAR2 (1);
v_usrtab_key NUMBER;
v_objectnaam VARCHAR2 (128);
v_kolomnaam VARCHAR2 (128);
v_kolomtxt VARCHAR2 (128);
sql_stmt VARCHAR2 (1000);
v_waarde_new VARCHAR2 (255);
ccount NUMBER;
v_kenmerkcontract_key NUMBER;
v_waarde_cur VARCHAR2 (255);
BEGIN
v_errormsg := 'Fout bepalen kenmerk [' || p_kenmerk_key || ']';
SELECT COALESCE (k.cnt_kenmerk_omschrijving, sk.cnt_srtkenmerk_omschrijving), sk.cnt_srtkenmerk_kenmerktype,
d.fac_usrtab_key, d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
INTO v_kenmerknaam, v_srtkenmerk_type,
v_usrtab_key, v_objectnaam, v_kolomnaam, v_kolomtxt
FROM cnt_contract c, cnt_kenmerk k, cnt_srtkenmerk sk, fac_kenmerkdomein d
WHERE c.cnt_contract_key = p_contract_key
AND k.cnt_kenmerk_key = p_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtcontract_key = c.ins_discipline_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key(+);
IF v_srtkenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']';
IF v_usrtab_key IS NOT NULL
THEN -- Eigen tabel
SELECT TO_CHAR (fac_usrdata_key)
INTO v_waarde_new
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = v_usrtab_key
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (p_waarde);
ELSE -- FACILITOR view/tabel
sql_stmt :=
'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER ('''
|| p_waarde
|| ''')';
EXECUTE IMMEDIATE sql_stmt INTO v_waarde_new;
END IF;
ELSE -- C(haracter)/D(ate)/N(umeric)
v_waarde_new := p_waarde;
END IF;
v_errormsg := 'Fout bepalen huidige waarde';
SELECT COUNT (*), MAX (cnt_kenmerkcontract_key), MAX (cnt_kenmerkcontract_waarde)
INTO ccount, v_kenmerkcontract_key, v_waarde_cur
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_contract_key = p_contract_key
AND cnt_kenmerk_key = p_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout toevoegen waarde [' || v_waarde_new || ']';
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
VALUES (p_contract_key, p_kenmerk_key, v_waarde_new);
ELSE
v_errormsg := 'Fout bijwerken waarde [' || v_waarde_new || ']';
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = v_waarde_new
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
END IF;
fac.trackaction ('CNTUPD', p_contract_key, NULL, NULL, v_kenmerknaam || ': ' || COALESCE (v_waarde_cur, '(leeg)') || ' --> ' || v_waarde_new);
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.imp_writelog (p_import_key, 'W', v_errormsg, 'upsert_cntkenmerk [' || TO_CHAR (p_contract_key) || '|' || TO_CHAR (p_kenmerk_key) || ']');
END;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
v_count := 0;
FOR rec IN c_la
LOOP
BEGIN
IF rec.k1001 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#1001';
upsert_cntkenmerk (rec.contract_key, 1001, rec.k1001);
END IF;
IF rec.k1002 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#1002';
upsert_cntkenmerk (rec.contract_key, 1002, rec.k1002);
END IF;
IF rec.k842 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#842';
upsert_cntkenmerk (rec.contract_key, 842, rec.k842);
END IF;
IF rec.k1041 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#1041';
upsert_cntkenmerk (rec.contract_key, 1041, rec.k1041);
END IF;
IF rec.k1061 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#1061';
upsert_cntkenmerk (rec.contract_key, 1061, rec.k1061);
END IF;
IF rec.k506 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#506';
upsert_cntkenmerk (rec.contract_key, 506, rec.k506);
END IF;
IF rec.k669 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#669';
upsert_cntkenmerk (rec.contract_key, 669, rec.k669);
END IF;
IF rec.k981 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#981';
upsert_cntkenmerk (rec.contract_key, 981, rec.k981);
END IF;
v_count := v_count + 1;
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.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, '');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT_LA/#bijgewerkt: ' || TO_CHAR (v_count), '');
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces CNT_LA afgebroken!');
END blcc_update_cnt_la;
/
-- k515 VARCHAR2 (1000), -- Advance Payment Collective Services (jaarbedrag)
-- k801 VARCHAR2 (1000), -- Absolute korting Property Tax (jaarbedrag)
-- k525 VARCHAR2 (1000), -- Advance Payment Utilities (jaarbedrag)
-- k668 VARCHAR2 (1000) -- Rent Rebate (jaarbedrag)
CREATE OR REPLACE PROCEDURE blcc_import_cnt_la_crf (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_regelnr NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_contractref VARCHAR2 (1000); -- C30+C1+C10+C1+C60+C2+C60+C1=C165
v_contract_key NUMBER (10);
v_k515 VARCHAR2 (1000); -- N12.5
v_k801 VARCHAR2 (1000); -- N12.5
v_k525 VARCHAR2 (1000); -- N12.5
v_k668 VARCHAR2 (1000); -- N12.5
v_count NUMBER (10);
CURSOR c1 IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM blcc_imp_cnt_la_crf_velden;
COMMIT;
header_is_valid := 0;
v_regelnr := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_regelnr := v_regelnr + 1;
v_ongeldig := 0;
v_aanduiding := '';
v_errormsg := 'Fout opvragen importregel';
v_newline := rec1.fac_imp_file_line;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_contractref);
fac.imp_getfield (v_newline, c_delim, v_k515);
fac.imp_getfield (v_newline, c_delim, v_k801);
fac.imp_getfield (v_newline, c_delim, v_k525);
fac.imp_getfield (v_newline, c_delim, v_k668);
v_aanduiding := '[' || v_regelnr || '|' || v_contractref || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ENKELE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
-- Contractref (nr[.versie]);Bedrag;... (4x)
IF (header_is_valid = 0)
THEN
IF 1 = 1
--AND UPPER (TRIM (v_contractref)) = 'CONTRACTREF (NR[.VERSIE])'
AND UPPER (TRIM (v_k515)) = 'BEDRAG'
AND UPPER (TRIM (v_k801)) = 'BEDRAG'
AND UPPER (TRIM (v_k525)) = 'BEDRAG'
AND UPPER (TRIM (v_k668)) = 'BEDRAG'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer veldwaarden
v_errormsg := 'ContractRef ongeldig';
v_contractref := TRIM (v_contractref);
SELECT MAX (c.cnt_contract_key), COUNT (*)
INTO v_contract_key, v_count
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2123 -- LA CRF
AND c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie) = v_contractref
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (COALESCE (cnt_contract_versie, '0')) > fac.safe_to_number (COALESCE (c.cnt_contract_versie, '0')));
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#515 ongeldig [Advance Payment Collective Services (jaarbedrag)]';
v_k515 := REPLACE (TRIM (v_k515), ',', '.');
IF v_k515 IS NOT NULL AND fac.safe_to_number (v_k515) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#801 ongeldig [Absolute korting Property Tax (jaarbedrag)]';
v_k801 := REPLACE (TRIM (v_k801), ',', '.');
IF v_k801 IS NOT NULL AND fac.safe_to_number (v_k801) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#525 ongeldig [Advance Payment Utilities (jaarbedrag)]';
v_k525 := REPLACE (TRIM (v_k525), ',', '.');
IF v_k525 IS NOT NULL AND fac.safe_to_number (v_k525) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#668 ongeldig [Rent Rebate (jaarbedrag)]';
v_k668 := REPLACE (TRIM (v_k668), ',', '.');
IF v_k668 IS NOT NULL AND fac.safe_to_number (v_k668) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO blcc_imp_cnt_la_crf_velden (regelnr, contractref, contract_key,
k515, k801, k525, k668)
VALUES (v_regelnr, v_contractref, v_contract_key,
v_k515, v_k801, v_k525, v_k668);
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'CNT_LA_CRF/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'CNT_LA_CRF/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CNT_LA_CRF afgebroken!');
END blcc_import_cnt_la_crf;
/
CREATE OR REPLACE PROCEDURE blcc_update_cnt_la_crf (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_count NUMBER (10);
-- Bijwerken contract LA!
CURSOR c_la IS
SELECT '[' || TO_CHAR (regelnr) || '|' || contractref || '] '
aanduiding,
regelnr, contractref, contract_key, k515, k801, k525, k668
FROM blcc_imp_cnt_la_crf_velden
ORDER BY 2;
-- SUBPROC
PROCEDURE upsert_cntkenmerk (p_contract_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerknaam VARCHAR2 (50);
v_srtkenmerk_type VARCHAR2 (1);
v_usrtab_key NUMBER;
v_objectnaam VARCHAR2 (128);
v_kolomnaam VARCHAR2 (128);
v_kolomtxt VARCHAR2 (128);
sql_stmt VARCHAR2 (1000);
v_waarde_new VARCHAR2 (255);
ccount NUMBER;
v_kenmerkcontract_key NUMBER;
v_waarde_cur VARCHAR2 (255);
BEGIN
v_errormsg := 'Fout bepalen kenmerk [' || p_kenmerk_key || ']';
SELECT COALESCE (k.cnt_kenmerk_omschrijving, sk.cnt_srtkenmerk_omschrijving), sk.cnt_srtkenmerk_kenmerktype,
d.fac_usrtab_key, d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
INTO v_kenmerknaam, v_srtkenmerk_type,
v_usrtab_key, v_objectnaam, v_kolomnaam, v_kolomtxt
FROM cnt_contract c, cnt_kenmerk k, cnt_srtkenmerk sk, fac_kenmerkdomein d
WHERE c.cnt_contract_key = p_contract_key
AND k.cnt_kenmerk_key = p_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtcontract_key = c.ins_discipline_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key(+);
IF v_srtkenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']';
IF v_usrtab_key IS NOT NULL
THEN -- Eigen tabel
SELECT TO_CHAR (fac_usrdata_key)
INTO v_waarde_new
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = v_usrtab_key
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (p_waarde);
ELSE -- FACILITOR view/tabel
sql_stmt :=
'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER ('''
|| p_waarde
|| ''')';
EXECUTE IMMEDIATE sql_stmt INTO v_waarde_new;
END IF;
ELSE -- C(haracter)/D(ate)/N(umeric)
v_waarde_new := p_waarde;
END IF;
v_errormsg := 'Fout bepalen huidige waarde';
SELECT COUNT (*), MAX (cnt_kenmerkcontract_key), MAX (cnt_kenmerkcontract_waarde)
INTO ccount, v_kenmerkcontract_key, v_waarde_cur
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_contract_key = p_contract_key
AND cnt_kenmerk_key = p_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout toevoegen waarde [' || v_waarde_new || ']';
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
VALUES (p_contract_key, p_kenmerk_key, v_waarde_new);
ELSE
v_errormsg := 'Fout bijwerken waarde [' || v_waarde_new || ']';
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = v_waarde_new
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
END IF;
fac.trackaction ('CNTUPD', p_contract_key, NULL, NULL, v_kenmerknaam || ': ' || COALESCE (v_waarde_cur, '(leeg)') || ' --> ' || v_waarde_new);
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.imp_writelog (p_import_key, 'W', v_errormsg, 'upsert_cntkenmerk [' || TO_CHAR (p_contract_key) || '|' || TO_CHAR (p_kenmerk_key) || ']');
END;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
v_count := 0;
FOR rec IN c_la
LOOP
BEGIN
IF rec.k515 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#515';
upsert_cntkenmerk (rec.contract_key, 515, rec.k515);
END IF;
IF rec.k801 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#801';
upsert_cntkenmerk (rec.contract_key, 801, rec.k801);
END IF;
IF rec.k525 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#525';
upsert_cntkenmerk (rec.contract_key, 525, rec.k525);
END IF;
IF rec.k668 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#668';
upsert_cntkenmerk (rec.contract_key, 668, rec.k668);
END IF;
v_count := v_count + 1;
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.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, '');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT_LA_CRF/#bijgewerkt: ' || TO_CHAR (v_count), '');
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces CNT_LA_CRF afgebroken!');
END blcc_update_cnt_la_crf;
/
-- k641 VARCHAR2 (1000), -- Ondersteuning Chef van Dienst (jaarbedrag)
-- k618 VARCHAR2 (1000), -- Hygienisch onderhoud (jaarbedrag)
-- k529 VARCHAR2 (1000), -- Afval (jaarbedrag)
-- k674 VARCHAR2 (1000), -- Schakelen gasflessen (jaarbedrag)
-- k635 VARCHAR2 (1000), -- Leveren gasflessen (jaarbedrag)
-- k636 VARCHAR2 (1000), -- Levering cryogene gassen (jaarbedrag)
-- k511 VARCHAR2 (1000) -- Ademhalingslucht (jaarbedrag)
CREATE OR REPLACE PROCEDURE blcc_import_cnt_sla_oc (p_import_key IN NUMBER)
AS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
header_is_valid NUMBER;
v_regelnr NUMBER (10);
v_count_tot NUMBER (10);
v_count_import NUMBER (10);
v_ongeldig NUMBER (1);
v_aanduiding VARCHAR2 (200);
-- De importvelden:
v_contractref VARCHAR2 (1000); -- C30+C1+C10+C1+C60+C2+C60+C1=C165
v_contract_key NUMBER (10);
v_k641 VARCHAR2 (1000); -- N12.5
v_k618 VARCHAR2 (1000); -- N12.5
v_k529 VARCHAR2 (1000); -- N12.5
v_k674 VARCHAR2 (1000); -- N12.5
v_k635 VARCHAR2 (1000); -- N12.5
v_k636 VARCHAR2 (1000); -- N12.5
v_k511 VARCHAR2 (1000); -- N12.5
v_count NUMBER (10);
CURSOR c1 IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM blcc_imp_cnt_sla_oc_velden;
COMMIT;
header_is_valid := 0;
v_regelnr := 0;
v_count_tot := 0;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_regelnr := v_regelnr + 1;
v_ongeldig := 0;
v_aanduiding := '';
v_errormsg := 'Fout opvragen importregel';
v_newline := rec1.fac_imp_file_line;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_contractref);
fac.imp_getfield (v_newline, c_delim, v_k641);
fac.imp_getfield (v_newline, c_delim, v_k618);
fac.imp_getfield (v_newline, c_delim, v_k529);
fac.imp_getfield (v_newline, c_delim, v_k674);
fac.imp_getfield (v_newline, c_delim, v_k635);
fac.imp_getfield (v_newline, c_delim, v_k636);
fac.imp_getfield (v_newline, c_delim, v_k511);
v_aanduiding := '[' || v_regelnr || '|' || v_contractref || '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ENKELE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
-- Contractref (nr[.versie]);Bedrag;... (7x)
IF (header_is_valid = 0)
THEN
IF 1 = 1
--AND UPPER (TRIM (v_contractref)) = 'CONTRACTREF (NR[.VERSIE])'
AND UPPER (TRIM (v_k641)) = 'BEDRAG'
AND UPPER (TRIM (v_k618)) = 'BEDRAG'
AND UPPER (TRIM (v_k529)) = 'BEDRAG'
AND UPPER (TRIM (v_k674)) = 'BEDRAG'
AND UPPER (TRIM (v_k635)) = 'BEDRAG'
AND UPPER (TRIM (v_k636)) = 'BEDRAG'
AND UPPER (TRIM (v_k511)) = 'BEDRAG'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer veldwaarden
v_errormsg := 'ContractRef ongeldig';
v_contractref := TRIM (v_contractref);
SELECT MAX (c.cnt_contract_key), COUNT (*)
INTO v_contract_key, v_count
FROM cnt_v_aanwezigcontract c
WHERE c.ins_discipline_key = 2187 -- SLA OC
AND c.cnt_contract_nummer_intern || DECODE (c.cnt_contract_versie, NULL, '', '.' || c.cnt_contract_versie) = v_contractref
AND NOT EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
AND fac.safe_to_number (COALESCE (cnt_contract_versie, '0')) > fac.safe_to_number (COALESCE (c.cnt_contract_versie, '0')));
IF v_count != 1
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#641 ongeldig [Ondersteuning Chef van Dienst (jaarbedrag)]';
v_k641 := REPLACE (TRIM (v_k641), ',', '.');
IF v_k641 IS NOT NULL AND fac.safe_to_number (v_k641) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#618 ongeldig [Hygienisch onderhoud (jaarbedrag)]';
v_k618 := REPLACE (TRIM (v_k618), ',', '.');
IF v_k618 IS NOT NULL AND fac.safe_to_number (v_k618) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#529 ongeldig [Afval (jaarbedrag)]';
v_k529 := REPLACE (TRIM (v_k529), ',', '.');
IF v_k529 IS NOT NULL AND fac.safe_to_number (v_k529) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#674 ongeldig [Schakelen gasflessen (jaarbedrag)]';
v_k674 := REPLACE (TRIM (v_k674), ',', '.');
IF v_k674 IS NOT NULL AND fac.safe_to_number (v_k674) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#635 ongeldig [Leveren gasflessen (jaarbedrag)]';
v_k635 := REPLACE (TRIM (v_k635), ',', '.');
IF v_k635 IS NOT NULL AND fac.safe_to_number (v_k635) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#636 ongeldig [Levering cryogene gassen (jaarbedrag)]';
v_k636 := REPLACE (TRIM (v_k636), ',', '.');
IF v_k636 IS NOT NULL AND fac.safe_to_number (v_k636) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Kenmerkbedrag#511 ongeldig [Ademhalingslucht (jaarbedrag)]';
v_k511 := REPLACE (TRIM (v_k511), ',', '.');
IF v_k511 IS NOT NULL AND fac.safe_to_number (v_k511) IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO blcc_imp_cnt_sla_oc_velden (regelnr, contractref, contract_key,
k641, k618, k529, k674, k635, k636, k511)
VALUES (v_regelnr, v_contractref, v_contract_key,
v_k641, v_k618, v_k529, v_k674, v_k635, v_k636, v_k511);
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (p_import_key, 'S', 'CNT_SLA_OC/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'CNT_SLA_OC/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CNT_SLA_OC afgebroken!');
END blcc_import_cnt_sla_oc;
/
CREATE OR REPLACE PROCEDURE blcc_update_cnt_sla_oc (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000) := '-';
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_importeur_key NUMBER (10);
v_count NUMBER (10);
-- Bijwerken contract LA!
CURSOR c_la IS
SELECT '[' || TO_CHAR (regelnr) || '|' || contractref || '] '
aanduiding,
regelnr, contractref, contract_key, k641, k618, k529, k674, k635, k636, k511
FROM blcc_imp_cnt_sla_oc_velden
ORDER BY 2;
-- SUBPROC
PROCEDURE upsert_cntkenmerk (p_contract_key IN NUMBER,
p_kenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerknaam VARCHAR2 (50);
v_srtkenmerk_type VARCHAR2 (1);
v_usrtab_key NUMBER;
v_objectnaam VARCHAR2 (128);
v_kolomnaam VARCHAR2 (128);
v_kolomtxt VARCHAR2 (128);
sql_stmt VARCHAR2 (1000);
v_waarde_new VARCHAR2 (255);
ccount NUMBER;
v_kenmerkcontract_key NUMBER;
v_waarde_cur VARCHAR2 (255);
BEGIN
v_errormsg := 'Fout bepalen kenmerk [' || p_kenmerk_key || ']';
SELECT COALESCE (k.cnt_kenmerk_omschrijving, sk.cnt_srtkenmerk_omschrijving), sk.cnt_srtkenmerk_kenmerktype,
d.fac_usrtab_key, d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
INTO v_kenmerknaam, v_srtkenmerk_type,
v_usrtab_key, v_objectnaam, v_kolomnaam, v_kolomtxt
FROM cnt_contract c, cnt_kenmerk k, cnt_srtkenmerk sk, fac_kenmerkdomein d
WHERE c.cnt_contract_key = p_contract_key
AND k.cnt_kenmerk_key = p_kenmerk_key
AND k.cnt_kenmerk_verwijder IS NULL
AND k.cnt_srtcontract_key = c.ins_discipline_key
AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_key
AND sk.cnt_srtkenmerk_verwijder IS NULL
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key(+);
IF v_srtkenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']';
IF v_usrtab_key IS NOT NULL
THEN -- Eigen tabel
SELECT TO_CHAR (fac_usrdata_key)
INTO v_waarde_new
FROM fac_v_aanwezigusrdata
WHERE fac_usrtab_key = v_usrtab_key
AND UPPER (TRIM (fac_usrdata_omschr)) = UPPER (p_waarde);
ELSE -- FACILITOR view/tabel
sql_stmt :=
'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER ('''
|| p_waarde
|| ''')';
EXECUTE IMMEDIATE sql_stmt INTO v_waarde_new;
END IF;
ELSE -- C(haracter)/D(ate)/N(umeric)
v_waarde_new := p_waarde;
END IF;
v_errormsg := 'Fout bepalen huidige waarde';
SELECT COUNT (*), MAX (cnt_kenmerkcontract_key), MAX (cnt_kenmerkcontract_waarde)
INTO ccount, v_kenmerkcontract_key, v_waarde_cur
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_contract_key = p_contract_key
AND cnt_kenmerk_key = p_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout toevoegen waarde [' || v_waarde_new || ']';
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
VALUES (p_contract_key, p_kenmerk_key, v_waarde_new);
ELSE
v_errormsg := 'Fout bijwerken waarde [' || v_waarde_new || ']';
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = v_waarde_new
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
END IF;
fac.trackaction ('CNTUPD', p_contract_key, NULL, NULL, v_kenmerknaam || ': ' || COALESCE (v_waarde_cur, '(leeg)') || ' --> ' || v_waarde_new);
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.imp_writelog (p_import_key, 'W', v_errormsg, 'upsert_cntkenmerk [' || TO_CHAR (p_contract_key) || '|' || TO_CHAR (p_kenmerk_key) || ']');
END;
BEGIN
v_errormsg := 'Fout bepalen importeur';
SELECT prs_perslid_key
INTO v_importeur_key
FROM fac_import
WHERE fac_import_key = p_import_key;
v_count := 0;
FOR rec IN c_la
LOOP
BEGIN
IF rec.k641 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#641';
upsert_cntkenmerk (rec.contract_key, 641, rec.k641);
END IF;
IF rec.k618 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#618';
upsert_cntkenmerk (rec.contract_key, 618, rec.k618);
END IF;
IF rec.k529 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#529';
upsert_cntkenmerk (rec.contract_key, 529, rec.k529);
END IF;
IF rec.k674 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#674';
upsert_cntkenmerk (rec.contract_key, 674, rec.k674);
END IF;
IF rec.k635 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#635';
upsert_cntkenmerk (rec.contract_key, 635, rec.k635);
END IF;
IF rec.k636 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#636';
upsert_cntkenmerk (rec.contract_key, 636, rec.k636);
END IF;
IF rec.k511 IS NOT NULL
THEN
v_errormsg := 'Fout bijwerken kenmerkbedrag#511';
upsert_cntkenmerk (rec.contract_key, 511, rec.k511);
END IF;
v_count := v_count + 1;
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.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, '');
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'CNT_SLA_OC/#bijgewerkt: ' || TO_CHAR (v_count), '');
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces CNT_SLA_OC afgebroken!');
END blcc_update_cnt_sla_oc;
/
CREATE OR REPLACE VIEW blcc_v_rap_ruimteoverzicht
AS
SELECT x.alg_ruimte_key,
x.alg_locatie_code locatiecode,
x.alg_gebouw_code gebouwcode,
x.alg_verdieping_code verdiepingcode,
x.alg_ruimte_nr ruimtenummer,
DECODE (x.prs_verhuurbaar, NULL, 'Nee', 'Ja') verhuurbaar,
x.alg_srtruimte_omschrijving ruimtefunctie,
x.alg_ruimte_omschrijving ruimteomschrijving,
x.vvo,
x.bvo,
x.lhkotc_class,
DECODE (c.contract, NULL, 'Nee', 'Ja') contract,
c.contract contractnr,
pf1.prs_perslid_naam_full gebouwverantw1,
pf2.prs_perslid_naam_full gebouwverantw2,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (dvl.alg_onrgoedkenmerk_waarde)) dienstverlener,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (eig.alg_onrgoedkenmerk_waarde)) eigenaar,
sg.alg_srtgebouw_omschrijving gebouwfunctie,
SUBSTR (bouwjaar.alg_onrgoedkenmerk_waarde, 7, 10) bouwjaar,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (strategie.alg_onrgoedkenmerk_waarde)) strategie,
(SELECT fac_usrdata_omschr FROM fac_usrdata WHERE fac_usrdata_key = fac.safe_to_number (rw_m2.alg_onrgoedkenmerk_waarde)) rekenwijze_m2,
lc.last_change last_change
FROM (SELECT g.alg_gebouw_key,
r.alg_ruimte_key,
l.alg_locatie_code,
g.alg_gebouw_code,
v.alg_verdieping_code,
r.alg_ruimte_nr,
sr.alg_srtruimte_omschrijving,
sr.prs_verhuurbaar,
r.alg_ruimte_omschrijving,
r.alg_ruimte_opp_alt1 vvo,
r.alg_ruimte_bruto_vloeropp bvo,
ud.fac_usrdata_code lhkotc_class
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_v_aanwezigsrtruimte sr,
alg_v_aanwezigonrgoedkenmerk rlhkot,
fac_usrdata ud
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = rlhkot.alg_onrgoed_key(+)
AND rlhkot.alg_kenmerk_key(+) = 1100 -- LHKOTC Classificatie
AND rlhkot.alg_onrgoed_niveau(+) = 'R'
AND fac.safe_to_number (rlhkot.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key(+)) x
LEFT JOIN ( SELECT cp.cnt_alg_plaats_key,
LISTAGG (c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'), ',') WITHIN GROUP (ORDER BY c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0'))
contract
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp
WHERE SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
GROUP BY cp.cnt_alg_plaats_key) c
ON x.alg_ruimte_key = c.cnt_alg_plaats_key
LEFT JOIN alg_gebouw g
ON x.alg_gebouw_key = g.alg_gebouw_key
LEFT JOIN alg_srtgebouw sg
ON g.alg_srtgebouw_key = sg.alg_srtgebouw_key
LEFT JOIN prs_v_perslid_fullnames_all pf1
ON g.prs_perslid_key_verantw = pf1.prs_perslid_key
LEFT JOIN prs_v_perslid_fullnames_all pf2
ON g.prs_perslid_key_verantw2 = pf2.prs_perslid_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk dvl
ON x.alg_gebouw_key = dvl.alg_onrgoed_key
AND dvl.alg_kenmerk_key = 1060 -- Dienstverlener
AND dvl.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk eig
ON x.alg_gebouw_key = eig.alg_onrgoed_key
AND eig.alg_kenmerk_key = 1140 -- Eigenaar
AND eig.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk bouwjaar
ON x.alg_gebouw_key = bouwjaar.alg_onrgoed_key
AND bouwjaar.alg_kenmerk_key = 1160 -- Bouwjaar
AND bouwjaar.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk strategie
ON x.alg_gebouw_key = strategie.alg_onrgoed_key
AND strategie.alg_kenmerk_key = 1161 -- Strategie
AND strategie.alg_onrgoed_niveau = 'G'
LEFT JOIN alg_v_aanwezigonrgoedkenmerk rw_m2
ON x.alg_gebouw_key = rw_m2.alg_onrgoed_key
AND rw_m2.alg_kenmerk_key = 1181 -- Rekenwijze M2
AND rw_m2.alg_onrgoed_niveau = 'G'
LEFT JOIN ( SELECT t.fac_tracking_refkey, MAX (t.fac_tracking_datum) last_change
FROM fac_tracking t
WHERE EXISTS (SELECT 1 -- Last change
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_key = t.fac_srtnotificatie_key
AND fac_srtnotificatie_code LIKE 'ALG%'
AND fac_srtnotificatie_xmlnode != 'ruimte')
GROUP BY t.fac_tracking_refkey) lc
ON x.alg_ruimte_key = lc.fac_tracking_refkey;
-- BLCC#62052: Huurder per ruimte op basis van Lease Agreements (LA+LA CRF).
CREATE OR REPLACE VIEW blcc_v_thema_ruimte_huurder
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key,
DECODE (rh.aantal,
NULL, DECODE (lhkotc.fac_usrdata_code,
'C', '[Collectieve ruimte]',
'A', '[Algemene ruimte]',
'N', '[N - Foutief leegstand]',
'V', '[Verdiepinggebonden Algemene ruimte]',
DECODE (rofr.alg_onrgoedkenmerk_waarde, NULL, '[Leegstand]', '[Leegstand - ROFR]')), -- Ook als [Niet verhuurbaar]!
1, DECODE (lhkotc.fac_usrdata_code,
'C', '[C - Foutief verhuurd]',
--'A', '[A - Foutief verhuurd]',
--'V', '[V - Foutief verhuurd]',
rh.prs_bedrijf_naam),
'[Dubbel verhuurd]') -- Ook als C-, A- of V-ruimte (zal nooit voorkomen)!
waarde,
DECODE (rh.aantal, -- Ongebruikte keys 11, 12, 13, 14, 15, 16, 17, 18, 19 en 20!
NULL, DECODE (lhkotc.fac_usrdata_code,
'C', 14,
'A', 16,
'N', 18,
'V', 19,
DECODE (rofr.alg_onrgoedkenmerk_waarde, NULL, 11, 12)),
1, DECODE (lhkotc.fac_usrdata_code,
'C', 15,
--'A', 17,
--'V', 20,
rh.prs_bedrijf_key),
13)
waarde_key
FROM alg_v_aanwezigruimte r,
alg_srtruimte sr,
( SELECT c2rh.alg_ruimte_key,
MIN (b.prs_bedrijf_naam) prs_bedrijf_naam,
MIN (b.prs_bedrijf_key) prs_bedrijf_key,
COUNT (b.prs_bedrijf_key) aantal
FROM (SELECT cp.cnt_alg_plaats_key alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'R'
UNION
SELECT r.alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp, alg_v_aanwezigruimte r
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'V'
AND cp.cnt_alg_plaats_key = r.alg_verdieping_key
UNION
SELECT r.alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp, alg_v_aanwezigverdieping v, alg_v_aanwezigruimte r
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key) c2rh,
prs_bedrijf b
WHERE c2rh.cnt_prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_contract = 1 AND b.prs_bedrijf_huurder = 1
--AND prs_overeenkomst_nr IS NOT NULL
GROUP BY c2rh.alg_ruimte_key) rh,
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_v_aanwezigusrdata ud
WHERE ok.alg_kenmerk_key = 1100 -- LHKOTC Classificatie
AND ok.alg_onrgoed_niveau = 'R'
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) lhkotc,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 2080 -- ROFR
AND alg_onrgoed_niveau = 'R') rofr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND r.alg_ruimte_key = rh.alg_ruimte_key(+)
AND r.alg_ruimte_key = lhkotc.alg_onrgoed_key(+)
AND r.alg_ruimte_key = rofr.alg_onrgoed_key(+)
--UNION ALL -- Bedrijven die nergens aan hangen!
--SELECT NULL alg_ruimte_key, b.prs_bedrijf_naam waarde, b.prs_bedrijf_key waarde_key
-- FROM prs_v_aanwezigbedrijf b
-- WHERE NOT EXISTS
-- (SELECT 1
-- FROM cnt_v_aanwezigcontract c
-- WHERE c.ins_discipline_key = 2122 -- Lease Agreement
-- AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
-- AND c.prs_bedrijf_contract = 1) --AND b.prs_bedrijf_huurder = 1
UNION ALL -- Bedrijven die alleen dubbel ergens aan hangen!
SELECT NULL alg_ruimte_key,
prs_bedrijf_naam waarde,
prs_bedrijf_key waarde_key
FROM (--SELECT DISTINCT b.prs_bedrijf_naam, b.prs_bedrijf_key
-- FROM prs_v_aanwezigbedrijf b, prs_contactpersoon cp, prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
-- WHERE b.prs_bedrijf_key = cp.prs_bedrijf_key
-- AND cp.prs_contactpersoon_verwijder IS NULL
-- AND cp.prs_perslid_key = p.prs_perslid_key
-- AND p.prs_afdeling_key = ab.prs_afdeling_key
-- AND ab.prs_bedrijf_key = 22 -- Huurders Chemelot Campus
SELECT prs_bedrijf_naam, prs_bedrijf_key
FROM prs_v_aanwezigbedrijf
WHERE prs_bedrijf_contract = 1 --AND prs_bedrijf_huurder = 1
AND prs_overeenkomst_nr IS NOT NULL
MINUS
SELECT prs_bedrijf_naam, prs_bedrijf_key
FROM ( SELECT c2rh.alg_ruimte_key,
MIN (b.prs_bedrijf_naam) prs_bedrijf_naam,
MIN (b.prs_bedrijf_key) prs_bedrijf_key,
COUNT (b.prs_bedrijf_key) aantal
FROM (SELECT cp.cnt_alg_plaats_key alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'R'
UNION
SELECT r.alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp, alg_v_aanwezigruimte r
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'V'
AND cp.cnt_alg_plaats_key = r.alg_verdieping_key
UNION
SELECT r.alg_ruimte_key, c.cnt_prs_bedrijf_key
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp, alg_v_aanwezigverdieping v, alg_v_aanwezigruimte r
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND SYSDATE BETWEEN TRUNC (c.cnt_contract_looptijd_van) AND TRUNC (c.cnt_contract_looptijd_tot + 1)
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'G'
AND cp.cnt_alg_plaats_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key) c2rh,
prs_bedrijf b
WHERE c2rh.cnt_prs_bedrijf_key = b.prs_bedrijf_key
--AND b.prs_bedrijf_contract = 1 AND b.prs_bedrijf_huurder = 1
--AND prs_overeenkomst_nr IS NOT NULL
GROUP BY c2rh.alg_ruimte_key)
WHERE aantal = 1);
CREATE OR REPLACE VIEW blcc_v_label_ruimte_huurder (alg_ruimte_key, waarde)
AS
SELECT alg_ruimte_key, waarde FROM blcc_v_thema_ruimte_huurder;
-- BLCC#78319: RDR.
CREATE OR REPLACE VIEW blcc_v_thema_rdr
(
alg_ruimte_key,
waarde,
waarde_key
)
AS
SELECT r.alg_ruimte_key,
DECODE (rdr.alg_onrgoedkenmerk_waarde, NULL, 'Geen RDR', 'RDR') waarde,
DECODE (rdr.alg_onrgoedkenmerk_waarde, NULL, 0, 1) waarde_key
FROM alg_v_aanwezigruimte r,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1580 -- RDR
AND alg_onrgoed_niveau = 'R') rdr
WHERE r.alg_ruimte_key = rdr.alg_onrgoed_key(+);
CREATE OR REPLACE VIEW blcc_v_label_rdr (alg_ruimte_key, waarde)
AS
SELECT alg_ruimte_key, waarde FROM blcc_v_thema_rdr;
CREATE OR REPLACE VIEW BLCC_V_RAP_VERKOOPFACTUUR
AS
SELECT 'ADDD' factuurstroom,
fin_verkoopfactuur_id,
po_nr,
--NULL ourref, -- Alleen FACT
NULL omschrijving, -- Alleen FACT
--contract_id, -- Contractnummer of NULL => Zie contractnummer
sortering,
regel,
regel_id,
regel_oms,
TO_DATE (factuurdatum, 'dd-mm-yyyy') gefactureerd_op,
factuurdatum,
vervaldatum,
--xmlnode, -- Niet gebruikt op ADDD-factuur
--refkey, -- Niet gebruikt op ADDD-factuur
NULL cnt_contract_key, -- Alleen FACT
--NULL cnt_contract_nummer_intern, -- Alleen FACT
--NULL cnt_contract_versie, -- Alleen FACT
contract_id contractnummer,
NULL lv, -- Alleen FACT
prs_bedrijf_key,
prs_debiteur_naam,
debiteur_nr,
btw_nr,
--contactpersoon, -- Niet gebruikt op ADDD-factuur (altijd '-' zelfs)
adres,
postcode,
plaats,
land,
aanvrager,
--prs_kostenplaats_key,
--prs_kostenplaats_nr,
--prs_kostenplaats_omschrijving,
--prs_kostenplaatsgrp_oms,
--fin_btwtabelwaarde_code,
--fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
maand,
mndbegin,
mndeinde,
--NULL dagbegin, -- Alleen FACT
--NULL dageinde, -- Alleen FACT
--NULL mndbes, -- Alleen FACT
--NULL mndbez, -- Alleen FACT
mndnet,
mndbtw,
--NULL aantal, -- Alleen FACT
--NULL bedrag, -- Alleen FACT
TO_CHAR (crf) crf,
--NULL factuur, -- Alleen FACT
--NULL alg_onroerendgoed_type, -- Alleen FACT
--NULL alg_onroerendgoed_keys, -- Alleen FACT
--NULL alg_plaatsaanduiding, -- Alleen FACT
--grtboekrek, -- Niet gebruikt op ADDD-factuur
--grtboekrek_oms, -- Niet gebruikt op ADDD-factuur
mld_melding_key,
TO_CHAR (mld_melding_key) meldingnummer,
NULL mld_melding_omschrijving -- Alleen FACT
FROM blcc_v_addd_frozen
WHERE maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01'
UNION ALL
SELECT 'HUUR' factuurstroom,
fin_verkoopfactuur_id,
po_nr,
--ourref, -- Contractnummer => Zie contractnummer
omschrijving, -- Contract scope
--NULL contract_id, -- Alleen ADDD
sortering,
regel,
NULL regel_id, -- Alleen ADDD
NULL regel_oms, -- Alleen ADDD
TO_DATE (factuurdatum, 'dd-mm-yyyy') gefactureerd_op,
factuurdatum,
vervaldatum,
--NULL xmlnode, -- Alleen ADDD
--NULL refkey, -- Alleen ADDD
cnt_contract_key,
--cnt_contract_nummer_intern, -- Niet gebruikt op FACT-factuur
--cnt_contract_versie, -- Niet gebruikt op FACT-factuur
ourref contractnummer,
lv,
prs_bedrijf_key,
prs_debiteur_naam,
debiteur_nr,
btw_nr,
--NULL contactpersoon, -- Alleen ADDD
adres,
postcode,
plaats,
land,
NULL aanvrager, -- Alleen ADDD
--prs_kostenplaats_key,
--prs_kostenplaats_nr,
--prs_kostenplaats_omschrijving,
--prs_kostenplaatsgrp_oms,
--fin_btwtabelwaarde_code,
--fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
fin_btwtabelwaarde_verlegd,
maand,
mndbegin,
mndeinde,
--dagbegin, -- Niet gebruikt op FACT-factuur
--dageinde, -- Niet gebruikt op FACT-factuur
--mndbes, -- Niet gebruikt op FACT-factuur
--mndbez, -- Niet gebruikt op FACT-factuur
mndnet,
mndbtw,
--aantal, -- Niet gebruikt op FACT-factuur
--bedrag, -- Niet gebruikt op FACT-factuur
TO_CHAR (crf) crf,
--factuur, -- Niet gebruikt op FACT-factuur
--alg_onroerendgoed_type, -- Niet gebruikt op FACT-factuur
--alg_onroerendgoed_keys, -- Niet gebruikt op FACT-factuur
--alg_plaatsaanduiding, -- Niet gebruikt op FACT-factuur
--grtboekrek, -- Niet gebruikt op FACT-factuur
--NULL grtboekrek_oms, -- Alleen ADDD
mld_melding_key,
TO_CHAR (mld_melding_key) meldingnummer,
mld_melding_omschrijving
FROM blcc_v_factv2_frozen
WHERE SUBSTR (fin_verkoopfactuur_id, 1, 1) != 'x' -- Nulfacturen skippen!
AND factuur = 1 -- Nulfacturen skippen!
AND maand >= TO_CHAR (ADD_MONTHS (SYSDATE, -12), 'yyyy') || '01';
-- BLCC#64393: Rapportage op verzoek van Bart Coumans voor Marian de Haar!
-- Eerst op basis van blcc_v_addd_actual, maar gewenst inclusief
-- afgeronde klantwensen (dus voor verwerken en daarmee vrijgave
-- ter facturatie)!
CREATE OR REPLACE VIEW BLCC_V_RAP_KW_ACTUAL
(
mld_opdr_key,
klantwens,
debiteur,
debiteurnr,
bedrag,
btw,
refnr
)
AS
SELECT o.mld_opdr_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)
klantwens,
h.prs_bedrijf_naam prs_debiteur_naam,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
ROUND (COALESCE (o.mld_opdr_kosten, 0), 2) bedrag,
21 btw,
TRIM (COALESCE (ko.mld_kenmerkopdr_waarde, km.mld_kenmerkmelding_waarde, c.cnt_contract_nummer, '-'))
po_nr
FROM mld_opdr o,
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 281) ko, -- Refnr. aanvrager
mld_melding m,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager
prs_perslid p,
prs_v_afdeling_boom ab,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key IN (9, 7) -- Afgerond/Verwerkt (en anders dan in blcc_v_addd_actual)!
AND TO_CHAR (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), 'yyyy-mm-dd') >= '2020-01-01' -- Vrij willekeurig gekozen (en anders dan in blcc_v_addd_actual)!
AND NOT EXISTS -- Nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_xmlnode = 'opdracht'
AND fin_verkoopfactuur_refkey = o.mld_opdr_key)
AND COALESCE (o.mld_opdr_kosten, 0) != 0
AND o.mld_opdr_key = ko.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_key = km.mld_melding_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1842
AND TRUNC (c.cnt_contract_looptijd_van) <
LAST_DAY (TRUNC (COALESCE (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), SYSDATE), 'mm')) -- Van-datum < einde te factureren maand (en anders dan in blcc_v_addd_actual)!
AND c.cnt_contract_looptijd_tot >
TRUNC (COALESCE (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), SYSDATE), 'mm') -- Tot-datum > begin te factureren maand (en anders dan in blcc_v_addd_actual)!
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900'
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key;
-- BLCC#88309: Klantwensen per maand!
CREATE OR REPLACE VIEW BLCC_V_RAP_KW
(
mld_opdr_key,
jaar,
maand,
factuurnr,
klantwens,
melddatum,
aanvrager,
debiteur_naam,
debiteur_nr,
po_nr,
mndnet,
fin_btwtabelwaarde_code,
fin_btwtabelwaarde_oms,
fin_btwtabelwaarde_perc,
mndbtw,
prs_kostenplaats_key,
prs_kostenplaats_nr,
prs_kostenplaats_omschrijving,
prs_kostenplaatsgrp_oms,
grtboekrek,
gefactureerd
)
AS
SELECT o.mld_opdr_key,
SUBSTR (vf.fin_verkoopfactuur_maand, 1, 4) jaar,
vf.fin_verkoopfactuur_maand maand,
vf.fin_verkoopfactuur_id factuurnr,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) klantwens,
m.mld_melding_datum melddatum,
pf.prs_perslid_naam_full aanvrager,
TRIM (b.prs_bedrijf_naam) debiteur_naam,
TRIM (b.prs_overeenkomst_nr) debiteur_nr,
vf.fin_verkoopfactuur_c1 po_nr,
--vf.fin_verkoopfactuur_bedrag mndnet,
vf.fin_verkoopfactuur_bedrag + ROUND (0.065 * vf.fin_verkoopfactuur_bedrag, 2) mndnet,
vf.fin_btwtabelwaarde_code,
vf.fin_btwtabelwaarde_oms,
vf.fin_btwtabelwaarde_perc,
--vf.fin_verkoopfactuur_btw mndbtw,
ROUND (vf.fin_verkoopfactuur_bedrag * 0.21, 2) + ROUND (ROUND (0.065 * vf.fin_verkoopfactuur_bedrag, 2) * 0.21, 2) mndbtw,
vf.prs_kostenplaats_key,
vf.prs_kostenplaats_nr,
vf.prs_kostenplaats_omschrijving,
vf.prs_kostenplaatsgrp_oms,
vf.prs_kostensoort_refcode grtboekrek,
'Ja' gefactureerd
FROM mld_opdr o,
mld_melding m,
prs_v_perslid_fullnames_all pf,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
fin_verkoopfactuur vf,
prs_bedrijf b
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_melding_key = m.mld_melding_key
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.mld_opdr_key = vf.fin_verkoopfactuur_refkey
AND vf.fin_verkoopfactuur_xmlnode = 'opdracht'
AND vf.fin_verkoopfactuur_maand >= '2024-01'
AND vf.fin_verkoopfactuur_n2 IS NULL -- Onderscheid ADDD vs. FACT; als NULL, dan ADDD!
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
UNION ALL
SELECT o.mld_opdr_key,
TO_CHAR (SYSDATE, 'yyyy') || '*' jaar,
TO_CHAR (SYSDATE, 'yyyymm') || '*' maand,
NULL factuurnr,
sd.ins_srtdiscipline_prefix || TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) klantwens,
m.mld_melding_datum melddatum,
pf.prs_perslid_naam_full aanvrager,
h.prs_bedrijf_naam prs_debiteur_naam,
TRIM (h.prs_overeenkomst_nr) debiteur_nr,
TRIM (COALESCE (ko.mld_kenmerkopdr_waarde, km.mld_kenmerkmelding_waarde, c.cnt_contract_nummer, '-'))
po_nr,
--ROUND (COALESCE (o.mld_opdr_kosten, 0), 2) mndnet,
ROUND (COALESCE (o.mld_opdr_kosten, 0), 2) + ROUND (0.065 * COALESCE (o.mld_opdr_kosten, 0), 2) mndnet,
'H' fin_btwtabelwaarde_code,
'Hoog' fin_btwtabelwaarde_oms,
21 fin_btwtabelwaarde_perc,
--ROUND (COALESCE (o.mld_opdr_kosten * 0.21, 0), 2) mndbtw,
ROUND (COALESCE (o.mld_opdr_kosten, 0) * 0.21, 2) + ROUND (ROUND (0.065 * COALESCE (o.mld_opdr_kosten, 0), 2) * 0.21, 2) mndbtw,
kp.prs_kostenplaats_key,
kp.prs_kostenplaats_nr,
kp.prs_kostenplaats_omschrijving,
kpg.prs_kostenplaatsgrp_oms,
'816100' grtboekrek, -- In overleg met Roger hard-coded!
'Nee' gefactureerd
FROM mld_opdr o,
(SELECT ko.mld_opdr_key, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 281) ko, -- Refnr. aanvrager
mld_melding m,
(SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 281) km, -- Refnr. aanvrager
prs_perslid p,
prs_v_afdeling_boom ab,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
prs_v_perslid_fullnames_all pf,
mld_stdmelding sm,
ins_tab_discipline td,
ins_srtdiscipline sd,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE o.mld_typeopdr_key IN (101, 2741, 3101, 3121) -- WO (tot 1000,-)/WO na offerte aanvraag/Klantwens WO/Klantwens WO na offerte
AND o.mld_statusopdr_key IN (9, 7) -- Afgerond/Verwerkt (en anders dan in blcc_v_addd_actual)!
AND TO_CHAR (fac.gettrackingdate ('ORDNEW', o.mld_opdr_key), 'yyyy-mm-dd') >= '2024-01-01'
AND NOT EXISTS -- Nog niet gefactureerd!
(SELECT 1
FROM fin_verkoopfactuur
WHERE fin_verkoopfactuur_xmlnode = 'opdracht'
AND fin_verkoopfactuur_refkey = o.mld_opdr_key)
--AND COALESCE (o.mld_opdr_kosten, 0) != 0 -- Zou zo moeten zijn!
AND o.mld_opdr_key = ko.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key
AND m.mld_melding_key = km.mld_melding_key(+)
AND m.prs_perslid_key_voor = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1842
AND TRUNC (c.cnt_contract_looptijd_van) <
LAST_DAY (TRUNC (COALESCE (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), SYSDATE), 'mm')) -- Van-datum < einde te factureren maand (en anders dan in blcc_v_addd_actual)!
AND c.cnt_contract_looptijd_tot >
TRUNC (COALESCE (fac.gettrackingdate ('ORDVER', o.mld_opdr_key), SYSDATE), 'mm') -- Tot-datum > begin te factureren maand (en anders dan in blcc_v_addd_actual)!
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key
AND SUBSTR (kp.prs_kostenplaats_upper, 1, 5) = '50900'
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key;
-- BLCC#70441: Rapportage soorgelijk aan hierboven, maar dan voor banqueting.
-- BLCC#74973: Van maandelijks naar vaste dagen, nl. op 8e + 22e.
CREATE OR REPLACE VIEW BLCC_V_RAP_BQ_ACTUAL
(
res_rsv_ruimte_key,
reservering,
debiteur,
debiteurnr,
bedrag,
btw,
refnr,
intern_extern,
ruimte_jn,
voorzieningen_jn
)
AS
WITH periode_tot -- BLCC_V_RAP_BQ_ACTUAL tot einde periode vs. BLCC_V_ADDD_ACTUAL tot vandaag!
AS (SELECT CASE
WHEN TO_CHAR (SYSDATE, 'dd') BETWEEN '08' AND '21'
THEN
TRUNC (SYSDATE, 'mm') + 21
ELSE
TRUNC (SYSDATE + 10, 'mm') + 7
END
datum
FROM DUAL)
SELECT x.res_rsv_ruimte_key,
'V' || x.res_id reservering,
x.prs_bedrijf_naam prs_debiteur_naam,
TRIM (x.prs_overeenkomst_nr) debiteur_nr,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', '6', '9'), '21') btw,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')) refnr,
'Intern (Crossing campus)' intern_extern,
DECODE (x.res_ruimte_opstel_key, NULL, 'Nee', 'Ja') ruimte,
DECODE (rra.aantal, NULL, 'Nee', 'Ja') voorzieningen
FROM (SELECT rrr.res_rsv_ruimte_key, -- Catering-regels
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
c.cnt_contract_nummer,
h.prs_bedrijf_naam,
h.prs_overeenkomst_nr,
kw.res_kenmerkreservering_waarde,
rrr.res_ruimte_opstel_key
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_v_afdeling_boom ab,
cnt_v_aanwezigcontract c,
prs_v_aanwezigbedrijf h,
prs_kostenplaats kp,
--prs_kostenplaatsgrp kpg,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20180501', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
res_disc_params dp,
prs_bedrijf b,
--prs_kostensoort ks,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE rrr.res_activiteit_key != 130 -- Anders dan Evenement
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 22 -- Huurder Chemelot Campus
AND ab.prs_afdeling_key1 = c.prs_afdeling_key_eig
AND c.ins_discipline_key = 1841
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (SYSDATE) -- Van-datum < einde huidige maand
AND c.cnt_contract_looptijd_tot > TRUNC (SYSDATE) -- Tot-datum > begin huidige maand
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_prs_bedrijf_key = h.prs_bedrijf_key
AND kp.prs_kostenplaats_key = 4321 -- BLCC#69994:Banqueting per 1/1/2022 hard op 50902!
--AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rd.ins_discipline_key = dp.res_ins_discipline_key
AND dp.prs_bedrijf_key = b.prs_bedrijf_key
--AND rd.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x,
(SELECT res_rsv_ruimte_key, COUNT(*) aantal FROM res_v_aanwezigrsv_artikel WHERE res_rsv_artikel_dirtlevel = 0 GROUP BY res_rsv_ruimte_key) rra
WHERE x.res_rsv_ruimte_key = rra.res_rsv_ruimte_key(+)
GROUP BY x.res_rsv_ruimte_key,
'V' || x.res_id,
x.prs_bedrijf_naam,
TRIM (x.prs_overeenkomst_nr),
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', '6', '9'), '21'),
TRIM (COALESCE (x.res_kenmerkreservering_waarde, x.cnt_contract_nummer, '-')),
'Intern (Crossing campus)',
DECODE (x.res_ruimte_opstel_key, NULL, 'Nee', 'Ja'),
DECODE (rra.aantal, NULL, 'Nee', 'Ja')
UNION ALL
SELECT x.res_rsv_ruimte_key,
--'E' || x.res_id reservering,
DECODE (x.res_activiteit_key, 130, 'E' || x.res_id, 'V' || x.res_id) regel,
x.prs_bedrijf_naam prs_debiteur_naam,
TRIM (x.prs_overeenkomst_nr) debiteur_nr,
SUM (COALESCE (verw_prijs, prijs, 0)) mndnet, -- Netto bedrag
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', '6', '9'), '21') btw,
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')) refnr,
'Extern' intern_extern,
DECODE (x.res_ruimte_opstel_key, NULL, 'Nee', 'Ja') ruimte,
DECODE (rra.aantal, NULL, 'Nee', 'Ja') voorzieningen
FROM (SELECT rrr.res_rsv_ruimte_key, -- Ruimte-regel
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
rrr.res_rsv_ruimte_van reslev,
rrr.res_rsv_ruimte_prijs verw_prijs,
res.getruimteprijs (rrr.res_rsv_ruimte_key) prijs,
'VH' btw, -- Hard 21%
h.prs_bedrijf_naam,
h.prs_overeenkomst_nr,
kw.res_kenmerkreservering_waarde,
rrr.res_ruimte_opstel_key
FROM periode_tot pt,
res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_van > TO_DATE ('20221001', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < pt.datum
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
UNION ALL -- Korting-regel
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
rrr.res_rsv_ruimte_van reslev,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) verw_prijs,
-1 * COALESCE (rrr.res_rsv_ruimte_korting, 0) prijs,
'VH' btw, -- Hard 21%
h.prs_bedrijf_naam,
h.prs_overeenkomst_nr,
kw.res_kenmerkreservering_waarde,
rrr.res_ruimte_opstel_key
FROM periode_tot pt,
res_v_aanwezigrsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_van > TO_DATE ('20221001', 'yyyymmdd')
AND rrr.res_rsv_ruimte_van < pt.datum
AND rrr.res_status_bo_key != 6 -- AV
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND COALESCE (rrr.res_rsv_ruimte_korting, 0) != 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key -- Alleen Ruimte-reserveringen!
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)
UNION ALL -- Catering-regels
SELECT rrr.res_rsv_ruimte_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr res_id,
rrr.res_activiteit_key,
rra.res_rsv_artikel_levering reslev,
rra.res_rsv_artikel_prijs verw_prijs,
rra.res_rsv_artikel_aantal * rra.res_artikel_prijs prijs,
rra.btw,
h.prs_bedrijf_naam,
h.prs_overeenkomst_nr,
kw.res_kenmerkreservering_waarde,
rrr.res_ruimte_opstel_key
FROM res_rsv_ruimte rrr,
res_ruimte_opstelling rro,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NULL
GROUP BY res_ruimte_key) rar1,
( SELECT res_ruimte_key, MAX (alg_ruimte_key) alg_ruimte_key
FROM res_alg_ruimte
WHERE res_alg_ruimte_verwijder IS NOT NULL
GROUP BY res_ruimte_key) rar2,
alg_v_allonroerendgoed aog,
prs_perslid p,
prs_afdeling a,
(SELECT *
FROM prs_v_aanwezigbedrijf b
WHERE NOT EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_overeenkomst_nr = b.prs_overeenkomst_nr AND prs_bedrijf_key < b.prs_bedrijf_key)) h,
(SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
rra.res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
ra.res_artikel_prijs,
DECODE (COALESCE (rra.res_rsv_artikel_btw, ra.res_artikel_btw),
NULL, 'VH',
21, 'VH',
'VL') btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key NOT IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.75 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.75 * ra.res_artikel_prijs res_artikel_prijs,
'VL' btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)
UNION ALL
SELECT rra.res_rsv_ruimte_key,
rra.res_rsv_artikel_levering,
0.25 * rra.res_rsv_artikel_prijs res_rsv_artikel_prijs,
rra.res_rsv_artikel_aantal,
0.25 * ra.res_artikel_prijs res_artikel_prijs,
'VH' btw,
ra.res_discipline_key
--ra.res_artikel_omschrijving,
--ra.res_artikel_eenheid
FROM periode_tot pt, res_v_aanwezigrsv_artikel rra, res_artikel ra
WHERE rra.res_rsv_artikel_levering > TO_DATE ('20221001', 'yyyymmdd')
AND rra.res_rsv_artikel_levering < pt.datum
AND rra.res_rsv_artikel_verwerkt IS NULL
AND rra.res_rsv_artikel_dirtlevel = 0
AND rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key IN (821, 822)) rra,
res_discipline rd,
(SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde
FROM res_v_aanwezigkenmerkwaarde kw, res_kenmerk k
WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = 1) kw -- Refnr. aanvrager
WHERE (rrr.res_activiteit_key = 130
OR (rrr.res_activiteit_key = 10 AND EXISTS (SELECT 1 FROM prs_kostenplaats WHERE prs_kostenplaats_extern = 1 AND prs_kostenplaats_key = rrr.prs_kostenplaats_key)))
AND rrr.res_rsv_ruimte_dirtlevel = 0
AND rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key(+)
AND rro.res_ruimte_key = rar1.res_ruimte_key(+)
AND rro.res_ruimte_key = rar2.res_ruimte_key(+)
AND COALESCE (rar1.alg_ruimte_key, rar2.alg_ruimte_key, rrr.alg_ruimte_key) = aog.alg_ruimte_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND TRIM (a.prs_afdeling_upper) = UPPER (TRIM (h.prs_overeenkomst_nr))
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_discipline_key = rd.ins_discipline_key
AND rrr.res_rsv_ruimte_key = kw.res_rsv_ruimte_key(+)) x,
(SELECT res_rsv_ruimte_key, COUNT(*) aantal FROM res_v_aanwezigrsv_artikel WHERE res_rsv_artikel_dirtlevel = 0 GROUP BY res_rsv_ruimte_key) rra
WHERE x.res_rsv_ruimte_key = rra.res_rsv_ruimte_key(+)
GROUP BY x.res_rsv_ruimte_key,
--'E' || x.res_id,
DECODE (x.res_activiteit_key, 130, 'E' || x.res_id, 'V' || x.res_id),
x.prs_bedrijf_naam,
TRIM (x.prs_overeenkomst_nr),
DECODE (x.btw, 'VL', DECODE (TO_CHAR (x.reslev, 'yyyy'), '2018', '6', '9'), '21'),
TRIM (COALESCE (x.res_kenmerkreservering_waarde, '-')),
'Extern',
DECODE (x.res_ruimte_opstel_key, NULL, 'Nee', 'Ja'),
DECODE (rra.aantal, NULL, 'Nee', 'Ja');
-- BLCC#74058: Rentable space.
CREATE OR REPLACE VIEW BLCC_V_RAP_RENTABLE_SPACE
(
alg_ruimte_key,
gebouwcode, -- gebouw
verdiepingcode, -- verdieping
ruimtenummer,
lhkotc_class, -- classificatie
staat_ruimte,
open_offertes,
ruimte_vandaag_verhuurd, -- verhuurd
op_termijn_beschikbaar,
opmerkingen_bd,
nvo,
vvo,
ict_voorz, -- ict_voorzieningen
vloerbelasting,
plafondhoogte,
utl_gasaansl, -- utilities_gasaansluiting
afzuigcap_lab, -- afzuigcapaciteit_lab
contractant,
einddatum, -- einddatum_contract
plafondafwerking,
beschikbaar_per
)
AS
SELECT x.alg_onrgoed_key alg_ruimte_key,
x.gebouwcode, -- gebouw
x.verdiepingcode, -- verdieping
x.ruimtenummer,
COALESCE (x.lhkotc_class, 'Onbekend') lhkotc_class,
x.staat_ruimte,
x.open_offertes,
x.ruimte_vandaag_verhuurd, -- verhuurd
--x.op_termijn_beschikbaar,
op_termijn_beschikbaar.fac_usrdata_omschr op_termijn_beschikbaar,
x.opmerkingen_bd,
fac.safe_to_number (x.nvo) nvo,
fac.safe_to_number (x.vvo) vvo,
x.ict_voorz, -- ict_voorzieningen
x.vloerbelasting,
x.plafondhoogte,
x.utl_gasaansl, -- utilities_gasaansluiting
x.afzuigcap_lab, -- afzuigcapaciteit_lab
DECODE (chuur.aantal, 1, chuur.max_contractant, '') contractant,
DECODE (chuur.aantal, 1, chuur.max_einddatum, '') einddatum, -- einddatum_contract
x.plafondafwerking,
beschikbaar_per.alg_onrgoedkenmerk_waarde beschikbaar_per
FROM blcc_v_rap_vastgoedgeg x,
( SELECT cp.cnt_alg_plaats_key,
COUNT ( * ) aantal,
MAX (b.prs_bedrijf_naam) max_contractant,
MAX (c.cnt_contract_looptijd_tot) max_einddatum
FROM cnt_v_aanwezigcontract c, cnt_contract_plaats cp, prs_v_aanwezigbedrijf b
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND TRUNC (ADD_MONTHS (SYSDATE, 1), 'mm') >= TRUNC (c.cnt_contract_looptijd_van)
AND TRUNC (ADD_MONTHS (SYSDATE, 1), 'mm') < TRUNC (c.cnt_contract_looptijd_tot + 1) -- Volgende maand actief (want op 1/4 wordt mei gehuurfactureerd)!
AND c.cnt_contract_status = 0 -- Definitief
AND c.cnt_contract_key = cp.cnt_contract_key
AND cp.cnt_contract_plaats_verwijder IS NULL
AND cp.cnt_alg_plaats_code = 'R'
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
GROUP BY cp.cnt_alg_plaats_key) chuur, -- Huurcontract per ruimte (via scope gekoppeld)
(SELECT ok.alg_onrgoed_key, ud.fac_usrdata_omschr -- TODO:Opnemen in blcc_v_rap_vastgoedgeg???
FROM alg_v_aanwezigonrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_onrgoed_niveau = 'R' -- Zou zo moeten zijn!
AND ok.alg_kenmerk_key = 2120
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key) op_termijn_beschikbaar,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde -- TODO:Opnemen in blcc_v_rap_vastgoedgeg???
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_onrgoed_niveau = 'R' -- Zou zo moeten zijn!
AND alg_kenmerk_key = 2100) beschikbaar_per
WHERE x.alg_onrgoed_type = 'R'
AND x.vvo > 0
--AND COALESCE (x.lhkotc_class, 'X') != 'C'
AND COALESCE (x.lhkotc_class, 'X') NOT IN ('C', 'A', 'N', 'V', 'T')
AND x.ruimte_vandaag_actief = 'Ja'
AND x.alg_onrgoed_key = chuur.cnt_alg_plaats_key(+)
AND x.alg_onrgoed_key = op_termijn_beschikbaar.alg_onrgoed_key(+)
AND x.alg_onrgoed_key = beschikbaar_per.alg_onrgoed_key(+)
AND EXISTS (SELECT 1 FROM alg_v_ruimte_gegevens WHERE alg_srtgebouw_key IN (141, 142, 143) AND alg_ruimte_key = x.alg_onrgoed_key) -- Bombenis/Gebouw Multi Tenant/Gebouw Single Tenant
AND (x.ruimte_vandaag_verhuurd = 'Nee' OR (x.ruimte_vandaag_verhuurd = 'Ja' AND op_termijn_beschikbaar.fac_usrdata_omschr = 'Ja'));
------ 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