From d75e9915c6b13ac397049af2f13c424fc1f28b0c Mon Sep 17 00:00:00 2001 From: Maarten van der Heide Date: Wed, 5 Nov 2025 09:40:09 +0000 Subject: [PATCH] BLCC.SQL GESPLITST+BLCC#91191 Imports (CNT_LA+CNT_LA_CRF+CNT_SLA_OC)/Bijwerken jaarbedragen svn path=/Customer/trunk/; revision=70827 --- BLCC/blcc2.sql | 23570 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 23570 insertions(+) create mode 100644 BLCC/blcc2.sql diff --git a/BLCC/blcc2.sql b/BLCC/blcc2.sql new file mode 100644 index 000000000..84c4a27a6 --- /dev/null +++ b/BLCC/blcc2.sql @@ -0,0 +1,23570 @@ +-- +-- $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) + || ''); +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 ! + 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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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ë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 (én geen weekend é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 +*/ +-- 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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, ''))) + 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ï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ï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ï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ï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, -- 1/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, -- 1/CV, 2/oud en 3/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, -- 1/CRF en 3/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ï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