diff --git a/BSSC/bssc.sql b/BSSC/bssc.sql index f9a114bd9..c91f4bfcb 100644 --- a/BSSC/bssc.sql +++ b/BSSC/bssc.sql @@ -610,6 +610,1665 @@ AS GROUP BY fac_tracking_refkey) t ON x.bez_afspraak_key = t.fac_tracking_refkey; +-- BSSC#55692: Facturatie verhuur (M2 en meer)! +CREATE OR REPLACE VIEW bssc_v_fact_actual +AS + WITH lopendeperiode AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '201903') maand + FROM fin_verkoopfactuur) + SELECT '*CONCEPT*' fin_verkoopfactuur_id, -- Huur! + 'R' || TRIM (x.cnt_contract_nummer) po_nr, -- Regulier + TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO + 'CHV' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 4 posities! + 'CHV - ' || TRIM (SUBSTR (tar.fac_usrdata_omschr, 1, INSTR (tar.fac_usrdata_omschr, '-') - 1)) regel, -- Huur + 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.cnt_contract_korting, -- Korting % + x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = x.prs_bedrijf_key) + NULL contactpersoon, + x.adres, x.postcode, x.plaats, x.land, + x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, + --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 + rxo.alg_ruimte_bruto_vloeropp aantal, -- Oppervlakte + tar.fac_usrdata_prijs tarief, -- Jaartarief per m2 + vvo_toeslag.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagperc. + korting_pct.fac_usrdata_prijs korting_pct, -- Kortingsperc. + fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde) korting_pm2, -- Korting per m2 + pa.alg_onroerendgoed_type, + pa.alg_onroerendgoed_keys, + pa.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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + COALESCE (rxo.alg_ruimte_bruto_vloeropp, 0) * + COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) * + (COALESCE (tar.fac_usrdata_prijs, 0) - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) * + korting_pct.fac_usrdata_prijs * + 1/12, 2) + mndnet, -- Netto maandbedrag (incl. kortingspercentage) + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + COALESCE (rxo.alg_ruimte_bruto_vloeropp, 0) * + COALESCE (vvo_toeslag.fac_usrdata_prijs, 0) * + (COALESCE (tar.fac_usrdata_prijs, 0) - COALESCE (fac.safe_to_number (korting_pm2.cnt_kenmerkcontract_waarde), 0)) * + korting_pct.fac_usrdata_prijs * + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * + 1/12, 2) + mndbtw, -- BTW maandbedrag + TRIM (DECODE (biss_kc1.cnt_kenmerkcontract_waarde, NULL, DECODE (biss_kc2.cnt_kenmerkcontract_waarde, NULL, SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1), '8110'), '8110')) grtboekrek, + TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key + NULL mld_melding_omschrijving + 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_looptijd_van lv, c.cnt_contract_looptijd_tot lt, + c.cnt_contract_korting, + b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, + 0.21 btw, + 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, + lp.maand + FROM lopendeperiode lp, + cnt_v_aanwezigcontract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg + WHERE c.ins_discipline_key = 2001 -- Huur CHV + 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_contract_status = 0 -- NIET Gesloten + AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_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 = -1 -- BTW-nummer (NL) + LEFT JOIN prs_kenmerklink btwvl + ON x.prs_bedrijf_key = btwvl.prs_link_key + AND btwvl.prs_kenmerklink_verwijder IS NULL + AND btwvl.prs_kenmerk_key = -1 -- BTW verlegd + LEFT JOIN cnt_kenmerkcontract vsov_kc + ON x.cnt_contract_key = vsov_kc.cnt_contract_key + AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vsov_kc.cnt_kenmerk_key = -1 -- VSOV + 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 = 401 -- 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 tar + ON tt_ud.fac_usrdata_code = TO_CHAR (tar.fac_usrtab_key) + AND SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1) = 'Huur' -- Huur-tarief + LEFT JOIN cnt_v_aanwezigcontract_plaats ccp + ON x.cnt_contract_key = ccp.cnt_contract_key + AND ccp.cnt_alg_plaats_code = 'R' -- Alleen Scope-ruimten! + LEFT JOIN alg_v_plaatsaanduiding_all pa + ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys + LEFT JOIN alg_v_aanwezigruimte rxo + ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key + LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc + ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key + AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc. + LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag + ON vvo_toeslag_kc.cnt_kenmerkcontract_waarde = TO_CHAR (vvo_toeslag.fac_usrdata_key) + LEFT JOIN cnt_kenmerkcontract korting_pct_kc + ON x.cnt_contract_key = korting_pct_kc.cnt_contract_key + AND korting_pct_kc.cnt_kenmerkcontract_verwijder IS NULL + AND korting_pct_kc.cnt_kenmerk_key = 403 -- Kortingsperc. + LEFT JOIN fac_v_aanwezigusrdata korting_pct + ON korting_pct_kc.cnt_kenmerkcontract_waarde = TO_CHAR (korting_pct.fac_usrdata_key) + LEFT JOIN cnt_kenmerkcontract korting_pm2 + ON x.cnt_contract_key = korting_pm2.cnt_contract_key + AND korting_pm2.cnt_kenmerkcontract_verwijder IS NULL + AND korting_pm2.cnt_kenmerk_key = 404 -- Korting per m2 + LEFT JOIN cnt_kenmerkcontract biss_kc1 + ON x.cnt_contract_key = biss_kc1.cnt_contract_key + AND biss_kc1.cnt_kenmerkcontract_verwijder IS NULL + AND biss_kc1.cnt_kenmerk_key = 409 -- Facilitair BISS + LEFT JOIN cnt_kenmerkcontract biss_kc2 + ON x.cnt_contract_key = biss_kc2.cnt_contract_key + AND biss_kc2.cnt_kenmerkcontract_verwijder IS NULL + AND biss_kc2.cnt_kenmerk_key = 411 -- Servicekosten BISS + UNION ALL -- Huur-vinkjes gezet! + SELECT '*CONCEPT*' fin_verkoopfactuur_id, + 'R' || TRIM (x.cnt_contract_nummer) po_nr, -- Regulier + TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO + 'CHV' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 4 posities! + 'CHV - ' || TRIM (SUBSTR (tar.fac_usrdata_omschr, 1, INSTR (tar.fac_usrdata_omschr, '-') - 1)) regel, -- Huur-vinkjes + 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.cnt_contract_korting, -- Korting % + x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = x.prs_bedrijf_key) + NULL contactpersoon, + x.adres, x.postcode, x.plaats, x.land, + x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, + --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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 + rxo.alg_ruimte_bruto_vloeropp aantal, -- Oppervlakte + tar.fac_usrdata_prijs tarief, -- Jaartarief per m2 + DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) vvo_toeslag, -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak) + 1 korting_pct, -- Kortingsperc. + 0 korting_pm2, -- Korting per m2 + pa.alg_onroerendgoed_type, + pa.alg_onroerendgoed_keys, + pa.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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + COALESCE (rxo.alg_ruimte_bruto_vloeropp, 0) * + DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak) + COALESCE (tar.fac_usrdata_prijs, 0) * + 1/12, 2) + mndnet, -- Netto maandbedrag (incl. kortingspercentage) + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + COALESCE (rxo.alg_ruimte_bruto_vloeropp, 0) * + DECODE (TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)), '8604', 1, COALESCE (vvo_toeslag.fac_usrdata_prijs, 0)) * -- VVO toeslagperc. (behalve igv. 8604=Schoonmaak) + COALESCE (tar.fac_usrdata_prijs, 0) * + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * + 1/12, 2) + mndbtw, -- BTW maandbedrag + TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)) grtboekrek, + TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key + NULL mld_melding_omschrijving + 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_looptijd_van lv, c.cnt_contract_looptijd_tot lt, + c.cnt_contract_korting, + b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, + 0.21 btw, + 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, + lp.maand, + sk.cnt_srtkenmerk_omschrijving + FROM lopendeperiode lp, + cnt_v_aanwezigcontract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg, + cnt_kenmerkcontract kc, + cnt_kenmerk k, + cnt_srtkenmerk sk + WHERE c.ins_discipline_key = 2001 -- Huur CHV + 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_contract_status = 0 -- NIET Gesloten + AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) + 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_kenmerk_verwijder IS NULL + AND k.cnt_kenmerk_key IN (406, 407, 408, 409, 410, 411, 412) -- Huur-vinkjes gezet! + AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_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 = -1 -- BTW-nummer (NL) + LEFT JOIN prs_kenmerklink btwvl + ON x.prs_bedrijf_key = btwvl.prs_link_key + AND btwvl.prs_kenmerklink_verwijder IS NULL + AND btwvl.prs_kenmerk_key = -1 -- BTW verlegd + LEFT JOIN cnt_kenmerkcontract vsov_kc + ON x.cnt_contract_key = vsov_kc.cnt_contract_key + AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vsov_kc.cnt_kenmerk_key = -1 -- VSOV + 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 = 401 -- 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 tar + ON tt_ud.fac_usrdata_code = TO_CHAR (tar.fac_usrtab_key) + AND UPPER (SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1)) = UPPER (x.cnt_srtkenmerk_omschrijving) + LEFT JOIN cnt_v_aanwezigcontract_plaats ccp + ON x.cnt_contract_key = ccp.cnt_contract_key + AND ccp.cnt_alg_plaats_code = 'R' -- Alleen Scope-ruimten! + LEFT JOIN alg_v_plaatsaanduiding_all pa + ON ccp.cnt_alg_plaats_key = pa.alg_onroerendgoed_keys + LEFT JOIN alg_v_aanwezigruimte rxo + ON ccp.cnt_alg_plaats_key = rxo.alg_ruimte_key + LEFT JOIN cnt_kenmerkcontract vvo_toeslag_kc + ON x.cnt_contract_key = vvo_toeslag_kc.cnt_contract_key + AND vvo_toeslag_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vvo_toeslag_kc.cnt_kenmerk_key = 402 -- VVO toeslagperc. + LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag + ON vvo_toeslag_kc.cnt_kenmerkcontract_waarde = TO_CHAR (vvo_toeslag.fac_usrdata_key) + LEFT JOIN cnt_kenmerkcontract korting_pct_kc + ON x.cnt_contract_key = korting_pct_kc.cnt_contract_key + AND korting_pct_kc.cnt_kenmerkcontract_verwijder IS NULL + AND korting_pct_kc.cnt_kenmerk_key = 403 -- Kortingsperc. + LEFT JOIN fac_v_aanwezigusrdata korting_pct + ON korting_pct_kc.cnt_kenmerkcontract_waarde = TO_CHAR (korting_pct.fac_usrdata_key) + UNION ALL -- Absolute jaarkorting! + SELECT '*CONCEPT*' fin_verkoopfactuur_id, + 'R' || TRIM (x.cnt_contract_nummer) po_nr, -- Regulier + TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO + 'CHV' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 4 posities! + 'CHV - ' || x.cnt_srtkenmerk_omschrijving 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.cnt_contract_korting, -- Korting % + x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = x.prs_bedrijf_key) + NULL contactpersoon, + x.adres, x.postcode, x.plaats, x.land, + x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, + --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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, -- Don't care + fac.safe_to_number (x.cnt_kenmerkcontract_waarde) tarief, -- Jaartarief per m2 + 1 vvo_toeslag, -- VVO toeslagperc. + 1 korting_pct, -- Kortingsperc. + 0 korting_pm2, -- Korting per m2 + NULL alg_onroerendgoed_type, + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (x.cnt_kenmerkcontract_waarde) * + 1/12, 2) + mndnet, -- Netto maandbedrag (incl. kortingspercentage) + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (x.cnt_kenmerkcontract_waarde) * + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * + 1/12, 2) + mndbtw, -- BTW maandbedrag + TRIM (SUBSTR (tar.fac_usrdata_code, 1, INSTR (tar.fac_usrdata_code, '/') - 1)) grtboekrek, + TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key + NULL mld_melding_omschrijving + 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_looptijd_van lv, c.cnt_contract_looptijd_tot lt, + c.cnt_contract_korting, + b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, + 0.21 btw, + 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, + lp.maand, + sk.cnt_srtkenmerk_omschrijving, + kc.cnt_kenmerkcontract_waarde + FROM lopendeperiode lp, + cnt_v_aanwezigcontract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg, + cnt_kenmerkcontract kc, + cnt_kenmerk k, + cnt_srtkenmerk sk + WHERE c.ins_discipline_key = 2001 -- Huur CHV + 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_contract_status = 0 -- NIET Gesloten + AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) + 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_kenmerk_verwijder IS NULL + AND k.cnt_kenmerk_key = 405 -- Absolute jaarkorting! + AND k.cnt_srtkenmerk_key = sk.cnt_srtkenmerk_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 = -1 -- BTW-nummer (NL) + LEFT JOIN prs_kenmerklink btwvl + ON x.prs_bedrijf_key = btwvl.prs_link_key + AND btwvl.prs_kenmerklink_verwijder IS NULL + AND btwvl.prs_kenmerk_key = -1 -- BTW verlegd + LEFT JOIN cnt_kenmerkcontract vsov_kc + ON x.cnt_contract_key = vsov_kc.cnt_contract_key + AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vsov_kc.cnt_kenmerk_key = -1 -- VSOV + 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 = 401 -- 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 tar + ON tt_ud.fac_usrdata_code = TO_CHAR (tar.fac_usrtab_key) + AND SUBSTR (tar.fac_usrdata_code, INSTR (tar.fac_usrdata_code, '/') + 1) = 'Huur' -- Huur-tarief + WHERE COALESCE (fac.safe_to_number (x.cnt_kenmerkcontract_waarde), 0) != 0 + UNION ALL -- Borg CHV/Parkeren CHV/Parkeren CMD! + SELECT '*CONCEPT*' fin_verkoopfactuur_id, + 'R' || TRIM (x.cnt_contract_nummer) po_nr, -- Regulier + TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO + DECODE (x.ins_discipline_key, 2004, 'CMD', 'CHV') || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 4 posities! + COALESCE (ks.prs_kostensoort_refcode, ks.prs_kostensoort_opmerking) regel, -- Borg CHV/Parkeren CHV/Parkeren CMD + 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.cnt_contract_korting, -- Korting % + x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = x.prs_bedrijf_key) + NULL contactpersoon, + x.adres, x.postcode, x.plaats, x.land, + x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, + --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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, + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) tarief, + 1 vvo_toeslag, -- VVO toeslagperc. + 1 korting_pct, -- Kortingsperc. + 0 korting_pm2, -- Korting per m2 + NULL alg_onroerendgoed_type, + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) * + 1/12, 2) + mndnet, -- Netto maandbedrag (incl. kortingspercentage) + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) * + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * + 1/12, 2) + mndbtw, -- BTW maandbedrag + TRIM (ks.prs_kostensoort_oms) grtboekrek, + TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key + NULL mld_melding_omschrijving + 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_looptijd_van lv, c.cnt_contract_looptijd_tot lt, + c.cnt_contract_korting, + b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, + 0.21 btw, + 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, + lp.maand + FROM lopendeperiode lp, + cnt_v_aanwezigcontract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg + WHERE c.ins_discipline_key IN (2002, 2003, 2004) -- Borg CHV/Parkeren CHV/Parkeren CMD + 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_contract_status = 0 -- NIET Gesloten + AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_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 = -1 -- BTW-nummer (NL) + LEFT JOIN prs_kenmerklink btwvl + ON x.prs_bedrijf_key = btwvl.prs_link_key + AND btwvl.prs_kenmerklink_verwijder IS NULL + AND btwvl.prs_kenmerk_key = -1 -- BTW verlegd + LEFT JOIN cnt_kenmerkcontract vsov_kc + ON x.cnt_contract_key = vsov_kc.cnt_contract_key + AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vsov_kc.cnt_kenmerk_key = -1 -- VSOV + LEFT JOIN cnt_discipline cd + ON x.ins_discipline_key = cd.ins_discipline_key + LEFT JOIN prs_kostensoort ks + ON cd.prs_kostensoort_key = ks.prs_kostensoort_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 (413, 415, 417) -- Aantal + LEFT JOIN cnt_kenmerkcontract bedrag + ON x.cnt_contract_key = bedrag.cnt_contract_key + AND bedrag.cnt_kenmerkcontract_verwijder IS NULL + AND bedrag.cnt_kenmerk_key IN (414, 416, 418) -- Bedrag + UNION ALL -- Deelnemers CMD! + SELECT '*CONCEPT*' fin_verkoopfactuur_id, + 'R' || TRIM (x.cnt_contract_nummer) po_nr, -- Regulier + TRIM (x.cnt_contract_nummer) cnt_contract_nummer, -- PO + 'CMD' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 4 posities! + 'CMD - ' || sd_ud.fac_usrdata_omschr regel, -- Deelnemers CMD + 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.cnt_contract_korting, -- Korting % + x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, TRIM (x.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = x.prs_bedrijf_key) + NULL contactpersoon, + x.adres, x.postcode, x.plaats, x.land, + x.prs_kostenplaats_key, x.prs_kostenplaats_nr, x.prs_kostenplaats_omschrijving, x.prs_kostenplaatsgrp_oms, + --x.prs_kostensoort_oms, x.prs_kostensoort_opmerking, x.prs_kostensoort_refcode, x.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'V', DECODE (x.btw, 0, '0', 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (x.btw, 0, 'Nul', 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (x.btw, 0, 0, 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, 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, + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) tarief, + 1 vvo_toeslag, -- VVO toeslagperc. + 1 korting_pct, -- Kortingsperc. + 0 korting_pm2, -- Korting per m2 + NULL alg_onroerendgoed_type, + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) * + 1/12, 2) + mndnet, -- Netto maandbedrag (incl. kortingspercentage) + 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)) * + --((100 - COALESCE (x.cnt_contract_korting, 0)) / 100) * + fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) * + fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) * + DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, x.btw) * + 1/12, 2) + mndbtw, -- BTW maandbedrag + TRIM (SUBSTR (sd_ud.fac_usrdata_code, 1, INSTR (sd_ud.fac_usrdata_code, '/') - 1)) grtboekrek, + TO_NUMBER (NULL) mld_melding_key, -- Correctiemelding-key + NULL mld_melding_omschrijving + 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_looptijd_van lv, c.cnt_contract_looptijd_tot lt, + c.cnt_contract_korting, + b.prs_bedrijf_key, b.prs_bedrijf_naam, b.prs_overeenkomst_nr, + 0.21 btw, + 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, + lp.maand + FROM lopendeperiode lp, + cnt_v_aanwezigcontract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg + WHERE c.ins_discipline_key = 2005 -- Deelnemers CMD + 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_contract_status = 0 -- NIET Gesloten + AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_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 = -1 -- BTW-nummer (NL) + LEFT JOIN prs_kenmerklink btwvl + ON x.prs_bedrijf_key = btwvl.prs_link_key + AND btwvl.prs_kenmerklink_verwijder IS NULL + AND btwvl.prs_kenmerk_key = -1 -- BTW verlegd + LEFT JOIN cnt_kenmerkcontract vsov_kc + ON x.cnt_contract_key = vsov_kc.cnt_contract_key + AND vsov_kc.cnt_kenmerkcontract_verwijder IS NULL + AND vsov_kc.cnt_kenmerk_key = -1 -- VSOV + LEFT JOIN cnt_discipline cd + ON x.ins_discipline_key = cd.ins_discipline_key + LEFT JOIN prs_kostensoort ks + ON cd.prs_kostensoort_key = ks.prs_kostensoort_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 = 419 -- Aantal + LEFT JOIN cnt_kenmerkcontract bedrag + ON x.cnt_contract_key = bedrag.cnt_contract_key + AND bedrag.cnt_kenmerkcontract_verwijder IS NULL + AND bedrag.cnt_kenmerk_key = 420 -- Bedrag + LEFT JOIN cnt_kenmerkcontract sd_kc + ON x.cnt_contract_key = sd_kc.cnt_contract_key + AND sd_kc.cnt_kenmerkcontract_verwijder IS NULL + AND sd_kc.cnt_kenmerk_key = 421 -- Soort deelnemer + LEFT JOIN fac_v_aanwezigusrdata sd_ud + ON sd_kc.cnt_kenmerkcontract_waarde = TO_CHAR (sd_ud.fac_usrdata_key) +; + +/* TODO Correctiemelding? + UNION ALL -- Alle correctiemeldingen (ook als contract inmiddels verlopen)! + SELECT '*CONCEPT*' fin_verkoopfactuur_id, + 'X' || TRIM (SUBSTR (c.cnt_contract_nummer, 1, INSTR (c.cnt_contract_nummer || '/', '/') - 1)) po_nr, -- Correctie + TRIM (c.cnt_contract_nummer) cnt_contract_nummer, -- PO + SUBSTR ('99' || fr.sortering, -3) sortering, -- Correctieregels onderaan (in dezelfde volgorde als de "echte" regels); 3 posities! + ' Correctie ' || fr.factuurregel || ' ' || pv.periode_van || ' - ' || pt.periode_tot regel, -- Zou consistent moeten zijn met contract! + 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, + c.cnt_contract_korting, -- Korting % + b.prs_bedrijf_key, b.prs_bedrijf_naam prs_debiteur_naam, TRIM (b.prs_overeenkomst_nr) debiteur_nr, + btwnr.prs_kenmerklink_waarde btw_nr, + --(SELECT MIN (TRIM (prs_contactpersoon_voorletters || ' ' || TRIM (prs_contactpersoon_tussenv || ' ' || prs_contactpersoon_naam))) + -- FROM prs_contactpersoon + -- WHERE prs_contactpersoon_verwijder IS NULL + -- AND prs_contactpersoon_titel = '*' -- Contactpersoon op facturen + -- AND prs_bedrijf_key = b.prs_bedrijf_key) + NULL 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, + kp.prs_kostenplaats_key, kp.prs_kostenplaats_nr, kp.prs_kostenplaats_omschrijving, kpg.prs_kostenplaatsgrp_oms, + --ks.prs_kostensoort_oms, ks.prs_kostensoort_opmerking, ks.prs_kostensoort_refcode, ksg.prs_kostensoortgrp_oms, + DECODE (btwvl.prs_kenmerklink_waarde, + '1', 'V', + DECODE (c.ins_discipline_key, + 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten + 11205, '0', -- UM [1025] + 11297, '0', -- Chemelot Ventures [1091] + 11306, '0', -- AMIBM(/UM) [1100] + DECODE (fr.factuurregel, 'CFF Rent', '0', 'H')), + 730, DECODE (b.prs_bedrijf_key, -- Werkplek + 11205, '0', -- UM [1025] + 11297, '0', -- Chemelot Ventures [1091] + 11306, '0', -- AMIBM(/UM) [1100] + 'H'), + 761, '0', -- OZB + 'H')) fin_btwtabelwaarde_code, + DECODE (btwvl.prs_kenmerklink_waarde, + '1', 'Verlegd', + DECODE (c.ins_discipline_key, + 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten + 11205, 'Nul', -- UM [1025] + 11297, 'Nul', -- Chemelot Ventures [1091] + 11306, 'Nul', -- AMIBM(/UM) [1100] + DECODE (fr.factuurregel, 'CFF Rent', 'Nul', 'Hoog')), + 730, DECODE (b.prs_bedrijf_key, -- Werkplek + 11205, 'Nul', -- UM [1025] + 11297, 'Nul', -- Chemelot Ventures [1091] + 11306, 'Nul', -- AMIBM(/UM) [1100] + 'Hoog'), + 761, 'Nul', -- OZB + 'Hoog')) fin_btwtabelwaarde_oms, + DECODE (btwvl.prs_kenmerklink_waarde, + '1', 0, + DECODE (c.ins_discipline_key, + 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten + 11205, 0, -- UM [1025] + 11297, 0, -- Chemelot Ventures [1091] + 11306, 0, -- AMIBM(/UM) [1100] + DECODE (fr.factuurregel, 'CFF Rent', 0, 21)), + 730, DECODE (b.prs_bedrijf_key, -- Werkplek + 11205, 0, -- UM [1025] + 11297, 0, -- Chemelot Ventures [1091] + 11306, 0, -- AMIBM(/UM) [1100] + 21), + 761, 0, -- OZB + 21)) fin_btwtabelwaarde_perc, + DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd, + lp.maand, + TO_CHAR (TO_DATE (lp.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin, + TO_CHAR (LAST_DAY (TO_DATE (lp.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde, + TO_CHAR (GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (lp.maand, 'yyyymm')), 'dd-mm-yyyy') dagbegin, + TO_CHAR (LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (lp.maand, 'yyyymm'))), 'dd-mm-yyyy') dageinde, + LAST_DAY (TO_DATE (lp.maand, 'yyyymm')) - TO_DATE (lp.maand, 'yyyymm') + 1 mndbes, -- Beschikbaar + LEAST (TRUNC (c.cnt_contract_looptijd_tot), LAST_DAY (TO_DATE (lp.maand, 'yyyymm'))) - GREATEST (TRUNC (c.cnt_contract_looptijd_van), TO_DATE (lp.maand, 'yyyymm')) + 1 mndbez, -- Bezet + TO_NUMBER (NULL) l_tarief, TO_NUMBER (NULL) h_tarief, TO_NUMBER (NULL) k_tarief, TO_NUMBER (NULL) o_tarief, TO_NUMBER (NULL) t_tarief, + NULL alg_onroerendgoed_type, TO_NUMBER (NULL) alg_onroerendgoed_keys, NULL alg_plaatsaanduiding, + TO_NUMBER (NULL) l_opp, TO_NUMBER (NULL) h_opp, TO_NUMBER (NULL) k_opp, TO_NUMBER (NULL) o_opp, TO_NUMBER (NULL) t_opp, + ROUND (cb.correctiebedrag, 2) + mndnet, -- Netto correctiebedrag + ROUND (DECODE (btwvl.prs_kenmerklink_waarde, + '1', 0, + DECODE (c.ins_discipline_key, + 621, DECODE (b.prs_bedrijf_key, -- Huurcontracten + 11205, 0, -- UM [1025] + 11297, 0, -- Chemelot Ventures [1091] + 11306, 0, -- AMIBM(/UM) [1100] + DECODE (fr.factuurregel, 'CFF Rent', 0, 0.21)), + 730, DECODE (b.prs_bedrijf_key, -- Werkplek + 11205, 0, -- UM [1025] + 11297, 0, -- Chemelot Ventures [1091] + 11306, 0, -- AMIBM(/UM) [1100] + 0.21), + 761, 0, -- OZB + 0.21)) * + cb.correctiebedrag, 2) + mndbtw, -- BTW correctiebedrag + COALESCE ( + ks.prs_kostensoort_refcode, + DECODE ( + UPPER (fr.factuurregel), -- Zou consistent moeten zijn met contract! + 'BIJDRAGE CHEF VAN DIENST', '8104', + 'BIJDRAGE HYGIËNISCH ONDERHOUD', '8105', + 'BIJDRAGE AFVAL', '8106', + 'BIJDRAGE GASSEN', '8107', + 'PARKING', '8112', + 'PUBLIC AMENITIES', '8113', + 'CFF RENT', '8130', + '8100')) + grtboekrek, + m.mld_melding_key, -- Correctiemelding-key + TRIM (m.mld_melding_omschrijving) mld_melding_omschrijving + FROM lopendeperiode lp, + mld_melding m, + mld_v_aanwezigkenmerkmelding km, + cnt_contract c, + prs_bedrijf b, + prs_kostenplaats kp, + prs_kostenplaatsgrp kpg, + cnt_discipline cd, + prs_kostensoort ks, + (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_link_key, prs_kenmerklink_waarde + FROM prs_kenmerklink + WHERE prs_kenmerklink_verwijder IS NULL AND prs_kenmerk_key = 1120) btwvl, -- BTW verlegd + (SELECT km.mld_melding_key, ud.fac_usrdata_code sortering, ud.fac_usrdata_omschr factuurregel + FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud + WHERE km.mld_kenmerk_key = 342 -- Factuurregel(groepering) + AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)) fr, + (SELECT mld_melding_key, mld_kenmerkmelding_waarde periode_van + FROM mld_v_aanwezigkenmerkmelding + WHERE mld_kenmerk_key = 343) pv, -- Periode van + (SELECT mld_melding_key, mld_kenmerkmelding_waarde periode_tot + FROM mld_v_aanwezigkenmerkmelding + WHERE mld_kenmerk_key = 344) pt, -- Periode tot + (SELECT mld_melding_key, fac.safe_to_number (mld_kenmerkmelding_waarde) correctiebedrag + FROM mld_v_aanwezigkenmerkmelding + WHERE mld_kenmerk_key = 345) cb -- Correctiebedrag + WHERE m.mld_stdmelding_key = 482 -- 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 = 341 -- Contractreferentie + AND km.mld_kenmerkmelding_waarde = TO_CHAR (c.cnt_contract_key) + AND c.cnt_contract_status = 0 -- NIET Gesloten + --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 + AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+) + AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) + AND c.ins_discipline_key = cd.ins_discipline_key + AND cd.prs_kostensoort_key = ks.prs_kostensoort_key(+) + AND c.cnt_prs_bedrijf_key = btwnr.prs_link_key(+) + AND c.cnt_prs_bedrijf_key = btwvl.prs_link_key(+) + AND m.mld_melding_key = fr.mld_melding_key + AND m.mld_melding_key = pv.mld_melding_key + AND m.mld_melding_key = pt.mld_melding_key + AND m.mld_melding_key = cb.mld_melding_key + ORDER BY prs_bedrijf_key, 1, 2, 3, 4, alg_onroerendgoed_type, alg_plaatsaanduiding -- TODO: Waarom fout op tabel-prefix??? +; + +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, + NULL 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 (vf.fin_verkoopfactuur_c1) aantal, + fac.safe_to_number (vf.fin_verkoopfactuur_c2) tarief, + fac.safe_to_number (vf.fin_verkoopfactuur_c3) vvo_toeslag, + fac.safe_to_number (vf.fin_verkoopfactuur_c4) korting_pct, + fac.safe_to_number (vf.fin_verkoopfactuur_c5) korting_pm2, + 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, + 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_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); + +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, + periode, + factuurnummer, + 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)??? + v.regel 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', + v.regel, + DECODE (fin_btwtabelwaarde_code, 'H', 'VH', 'L', 'VL', 'V', 'VBINEU_VERL', 'VN') + ORDER BY 1); + +CREATE OR REPLACE VIEW blcc_v_export_fact +( + result, + result_order +) +AS -- View bevat alleen inhoud op de dag na de 10e werkdag van de maand! + SELECT 'code' + || ';valuta' + || ';factuurdatum' + || ';periode' + || ';factuurnummer' + || ';vervaldatum' + || ';nummer' + || ';grtboekrek' + || ';rel/kpl' + || ';prj/activa' + || ';bedrag' + || ';debitcredit' + || ';omschrijving' + || ';btwcode', + 0 + FROM DUAL + WHERE FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag! + AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' + AND NOT EXISTS + (SELECT 1 + FROM mld_vrije_dagen + WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)) + 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_fact + WHERE fclt_x_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy-mm') + AND FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag! + AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' + AND NOT EXISTS + (SELECT 1 + FROM mld_vrije_dagen + WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1)) + ORDER BY 2; + +CREATE OR REPLACE PROCEDURE blcc_select_fact (p_applname IN VARCHAR2, + p_applrun IN VARCHAR2) +AS + -- Factureer/bevries verhuurcontractkosten en verwerk=AV alle eventuele correctiemeldingen! + CURSOR c1 + 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_actual v, mld_melding m + WHERE v.mld_melding_key = m.mld_melding_key(+) + ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering, v.regel, v.alg_plaatsaanduiding; + + -- Verstuur verkoopfactuur naar huurder. + CURSOR c2 + 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 + WHERE SUBSTR (vf.fin_verkoopfactuur_id, 5, 1) = '1' -- vf.fin_verkoopfactuur_xmlnode = 'contract' + AND vf.fin_verkoopfactuur_maand = TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyymm') + AND vf.fin_verkoopfactuurkop_key = vfk.fin_verkoopfactuurkop_key + AND vf.prs_bedrijf_key = b.prs_bedrijf_key + ORDER BY vf.fin_verkoopfactuur_id; + + 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_year_offset NUMBER (10); + 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; + + SELECT COUNT ( * ) + INTO v_holiday + FROM mld_vrije_dagen + WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (SYSDATE - 1); + + -- LET OP: Twinfield-export van verhuurcontracten (= boekingsgangen) draait + -- dagelijks na middernacht (begin van dag) en de verkoop wordt maandelijks + -- alleen in de nacht na 10e werkdag van de maand doorgezet. + -- IF nacht na 10e werkdag van de 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! + IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag! + AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6' + AND v_holiday = 0 + THEN + v_fact_count := 0; + v_amount_sum := 0; + v_old_bedrijf_key := -1; + v_old_po_nr := ''; + + -- Factureer/bevries verhuurcontractkosten en verwerk=AV alle eventuele + -- correctiemeldingen. + FOR rec IN c1 + LOOP + BEGIN + IF rec.prs_bedrijf_key != v_old_bedrijf_key OR rec.po_nr != v_old_po_nr + THEN + -- Bepaal max. sequence t/m voorgaande jaar (= aantal entries in + -- fin_verkoopfactuurkop-tabel). + SELECT COUNT ( * ) + INTO v_year_offset + FROM fin_verkoopfactuurkop vfk + WHERE SUBSTR (vfk.fin_verkoopfactuurkop_id, 5, 1) = '1' -- Boekstuknummers in formaat 1! + AND SUBSTR (vfk.fin_verkoopfactuurkop_id, 1, 4) < TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'yyyy'); + + -- Bepaal fin_verkoopfactuur_id=boekstuknr. tbv. BCC-verkoopboek + -- obv. sequence '01' en begin elk nieuw jaar weer bij 1 door te + -- corrigeren met de hierboven bepaalde offset. + SELECT fac_s_user01.NEXTVAL - v_year_offset INTO v_count FROM DUAL; + + v_factuur_id := TO_CHAR (ADD_MONTHS (SYSDATE, 1), 'YYYY') || '1' || SUBSTR ('0000' || TO_CHAR (v_count), -4); + 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; + + 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.cnt_contract_nummer || '/=' || 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, + rec.fin_btwtabelwaarde_code, + rec.fin_btwtabelwaarde_oms, + rec.fin_btwtabelwaarde_perc, + rec.fin_btwtabelwaarde_verlegd, + rec.maand, + rec.cnt_contract_korting, -- n1/kortingspercentage óf subsidiepercentage + rec.mld_melding_key, -- n2/correctiemelding + TO_NUMBER (NULL), -- n3 + TO_NUMBER (NULL), -- n4 + TO_NUMBER (NULL), -- n5 + TO_CHAR (rec.l_tarief) || 'x' || TO_CHAR (rec.l_opp), -- c1/jaartarief x oppervlakte + TO_CHAR (rec.h_tarief) || 'x' || TO_CHAR (rec.h_opp), -- c2/jaartarief x oppervlakte + TO_CHAR (rec.k_tarief) || 'x' || TO_CHAR (rec.k_opp), -- c3/jaartarief x oppervlakte + TO_CHAR (rec.o_tarief) || 'x' || TO_CHAR (rec.o_opp), -- c4/jaartarief x oppervlakte + TO_CHAR (rec.t_tarief) || 'x' || TO_CHAR (rec.t_opp), -- c5/jaartarief x oppervlakte + rec.alg_onroerendgoed_type || rec.alg_onroerendgoed_keys || '=' || rec.alg_plaatsaanduiding, -- c6 + rec.debiteur_nr || '=' || rec.btw_nr, -- c7 + --rec.contactpersoon, -- c8 + 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; + + 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 + COMMIT; + 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, 'FACT-freeze'); + COMMIT; + END; + END LOOP; + + fac.writelog (p_applname, 'S', 'FACT-verkoop/#regels: ' || TO_CHAR (v_fact_count), TO_CHAR (v_amount_sum)); + + -- Verstuur verkoopfactuur naar huurder. + FOR rec IN c2 + LOOP + BEGIN + v_errormsg := 'Fout toevoegen CUST01-noti'; + + 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_datum, + fac_notificatie_sender_email, + fac_notificatie_attachments) + VALUES (281, -- CUST01-noti + 2, -- Mail + DECODE ( -- To-adres + rec.prs_bedrijf_email, + NULL, 'accounting1@brightlands.com', + rec.prs_bedrijf_email || ';accounting1@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), + 'accounting1@brightlands.com', -- From-adres + '/../../Fplace5i/CUST/BLCC/export/PDF/' || 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; +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; + +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_fact_actual) + SELECT DISTINCT 'Verhuur', 'BCC Huurcontract niet gekoppeld aan FIN-plaats', + v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) + FROM periodegeg v, cnt_contract c + WHERE v.mld_melding_key IS NULL + AND v.cnt_contract_key = c.cnt_contract_key + AND c.ins_discipline_key = 621 -- Huurcontracten + AND v.alg_plaatsaanduiding NOT LIKE '%FIN%' + UNION ALL + SELECT DISTINCT 'Verhuur', 'BCC Huurcontract oppervlakte = 0', + xref + FROM ( SELECT v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']' xref, + SUM (COALESCE (l_opp, 0) + COALESCE (h_opp, 0) + COALESCE (k_opp, 0) + COALESCE (o_opp, 0) + COALESCE (t_opp, 0) ) oppervlakte + FROM periodegeg v, cnt_contract c + WHERE v.mld_melding_key IS NULL + AND v.cnt_contract_key = c.cnt_contract_key + AND c.ins_discipline_key = 621 -- Huurcontracten + GROUP BY v.cnt_contract_nummer_intern || DECODE (v.cnt_contract_versie, NULL, '', '.' || v.cnt_contract_versie) || ' [' || v.regel || ']') + WHERE oppervlakte = 0 + UNION ALL + 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(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 + AND v.regel NOT LIKE 'CFF%' + 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', 'Contractkorting >= 100%', + 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.cnt_contract_korting >= 100 + 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', 'Correctiebedrag = 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', 'Correctiemelding nog niet in conceptfactuur', + TO_CHAR (m.mld_melding_key) + FROM mld_melding m + WHERE m.mld_stdmelding_key = 482 -- Financiële correctie + AND m.mld_melding_status IN (0, 2, 3) -- Pending/Ingevoerd/Ingezien + 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 blcc_v_fact_actual + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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 -- NIET Gesloten + 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) +; +*/ ------ payload end ------ SET DEFINE OFF