BSSC#55692 Facturatieproces (contracten niet automatisch gefactureerd)

svn path=/Customer/trunk/; revision=59289
This commit is contained in:
Maarten van der Heide
2023-02-23 14:02:29 +00:00
parent 56d0af744c
commit 8702c2f61f

View File

@@ -693,6 +693,931 @@ AS
AND p.prs_perslid_key = pf.prs_perslid_key;
-- BSSC#55692: Facturatie verhuur (M2 en meer)!
CREATE OR REPLACE VIEW bssc_v_fact_manual
AS
WITH lopendeperiode AS (SELECT TO_CHAR (SYSDATE, 'yyyymm') maand
FROM fin_verkoopfactuur)
SELECT '*CONCEPT*' fin_verkoopfactuur_id, -- Huur!
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Huur' regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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,
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
jbw.cnt_kenmerk_key regel_key,
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)) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 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)) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 0.21)), 2)
mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
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 = 962 -- Huur (per maand)
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
UNION ALL -- Vervangende toeslag op huur!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0002' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Vervangende toeslag' regel, -- Vervangende toeslag
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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,
'0' fin_btwtabelwaarde_code,
'Nul' fin_btwtabelwaarde_oms,
0 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, -- Of 1?
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
(verv_toeslag_ud.fac_usrdata_prijs - 1) aantal, -- Vervangend toeslagperc.
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) bedrag, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
verv_toeslag.cnt_kenmerk_key regel_key,
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)) *
(verv_toeslag_ud.fac_usrdata_prijs - 1) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 2)
mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
'8417' grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
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 = 962 -- Huur (per maand)
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
LEFT JOIN cnt_kenmerkcontract verv_toeslag
ON x.cnt_contract_key = verv_toeslag.cnt_contract_key
AND verv_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag.cnt_kenmerk_key = 642 -- Vervangende toeslag
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag_ud
ON fac.safe_to_number (verv_toeslag.cnt_kenmerkcontract_waarde) = verv_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
AND verv_toeslag_ud.fac_usrdata_prijs > 1
UNION ALL -- VVO bij facturatie (zodat historisch bewaard)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Huur' regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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_opp_alt1 aantal, -- VVO
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) bedrag, -- Huurprijs m2/p.j.
vvo_toeslag_ud.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagpercentage
962 regel_key,
pa.alg_onroerendgoed_type, pa.alg_onroerendgoed_keys, pa.alg_plaatsaanduiding,
0 mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
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 tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag
ON x.cnt_contract_key = vvo_toeslag.cnt_contract_key
AND vvo_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag.cnt_kenmerk_key = 402 -- VVO toeslagpercentage
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag_ud
ON fac.safe_to_number (vvo_toeslag.cnt_kenmerkcontract_waarde) = vvo_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
AND ccp.cnt_alg_plaats_key IS NOT NULL
UNION ALL -- M2 correctie bij facturatie (zodat historisch bewaard)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'0001' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Huur' regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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 (correctie_m2.cnt_kenmerkcontract_waarde) aantal, -- VVO-correctie
fac.safe_to_number (tarief.cnt_kenmerkcontract_waarde) bedrag, -- Huurprijs m2/p.j.
vvo_toeslag_ud.fac_usrdata_prijs vvo_toeslag, -- VVO toeslagpercentage
962 regel_key,
'C' alg_onroerendgoed_type, -1 alg_onroerendgoed_keys, 'Correctie' alg_plaatsaanduiding,
0 mndnet, -- Netto maandbedrag
0 mndbtw, -- BTW maandbedrag
DECODE (oh.cnt_kenmerkcontract_waarde, '921', '8417', '8400') grtboekrek,
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
LEFT JOIN cnt_kenmerkcontract correctie_m2
ON x.cnt_contract_key = correctie_m2.cnt_contract_key
AND correctie_m2.cnt_kenmerkcontract_verwijder IS NULL
AND correctie_m2.cnt_kenmerk_key = 701 -- Correctie m2
LEFT JOIN cnt_kenmerkcontract tarief
ON x.cnt_contract_key = tarief.cnt_contract_key
AND tarief.cnt_kenmerkcontract_verwijder IS NULL
AND tarief.cnt_kenmerk_key = 861 -- Huurprijs m2/p.j.
LEFT JOIN cnt_kenmerkcontract vvo_toeslag
ON x.cnt_contract_key = vvo_toeslag.cnt_contract_key
AND vvo_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND vvo_toeslag.cnt_kenmerk_key = 402 -- VVO toeslagpercentage
LEFT JOIN fac_v_aanwezigusrdata vvo_toeslag_ud
ON fac.safe_to_number (vvo_toeslag.cnt_kenmerkcontract_waarde) = vvo_toeslag_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
AND correctie_m2.cnt_kenmerkcontract_waarde IS NOT NULL
UNION ALL -- Overige maandbedragen!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
SUBSTR ('000' || TO_CHAR (jbw_k.cnt_kenmerk_volgnummer), -4)|| TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - ' || jbw_k.cnt_kenmerk_omschrijving regel, -- Huur
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 21)) fin_btwtabelwaarde_perc,
--DECODE (btwvl.prs_kenmerklink_waarde, '1', 1, TO_NUMBER (NULL)) fin_btwtabelwaarde_verlegd,
'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, -- Maandbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
jbw.cnt_kenmerk_key regel_key,
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)) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde), 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)) *
fac.safe_to_number (jbw.cnt_kenmerkcontract_waarde) *
0.21, 2)
mndbtw, -- BTW maandbedrag
DECODE (jbw.cnt_kenmerk_key,
'963', '8403', -- ICT
'964', '8402', -- Facilitaire kosten
'965', '8401', -- Servicekosten
'966', '8406', -- Schoonmaak
'982', '8424', -- Koffieautomaten
'983', '8425', -- Duty manager
'9999')
grtboekrek, -- Hardcoded?
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2001 -- Huur CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 1001 -- Geen automatische facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.cnt_contract_key = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key = 870 -- Start facturatie op
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 641 -- Onbelaste huurder
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 (963, 964, 965, 966, 982, 983) -- Overige maandbedragen
LEFT JOIN cnt_kenmerk jbw_k
ON jbw.cnt_kenmerk_key = jbw_k.cnt_kenmerk_key
AND jbw_k.cnt_kenmerk_verwijder IS NULL
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
UNION ALL -- Parkeren CHV (vooruit)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
COALESCE (ks.prs_kostensoort_refcode, ks.prs_kostensoort_opmerking) regel, -- Parkeren CHV
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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 (oh.cnt_kenmerkcontract_waarde, '921', '0', 'H')) fin_btwtabelwaarde_code,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 'Verlegd', DECODE (oh.cnt_kenmerkcontract_waarde, '921', 'Nul', 'Hoog')) fin_btwtabelwaarde_oms,
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) *
DECODE (btwvl.prs_kenmerklink_waarde, '1', 0, DECODE (oh.cnt_kenmerkcontract_waarde, '921', 0, 0.21)) *
1/12, 2)
mndbtw, -- BTW maandbedrag
--DECODE (oh.cnt_kenmerkcontract_waarde, '921', '9999', '8404') grtboekrek,
TRIM (ks.prs_kostensoort_oms) grtboekrek, -- 8404
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2003 -- Parkeren CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 864 -- Geen automatische facturatie
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 = 415 -- 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 = 416 -- Bedrag
LEFT JOIN cnt_kenmerkcontract oh
ON x.cnt_contract_key = oh.cnt_contract_key
AND oh.cnt_kenmerkcontract_verwijder IS NULL
AND oh.cnt_kenmerk_key = 1041 -- Onbelaste huurder
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
UNION ALL -- Vervangende toeslag op Parkeren CHV (vooruit)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CHV' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9902' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CHV - Vervangende toeslag' regel, -- Vervangende toeslag
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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,
'0' fin_btwtabelwaarde_code,
'Nul' fin_btwtabelwaarde_oms,
0 fin_btwtabelwaarde_perc,
TO_NUMBER (NULL) fin_btwtabelwaarde_verlegd, -- Of 1?
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) * (verv_toeslag_ud.fac_usrdata_prijs - 1) bedrag, -- Jaarbedrag * Vervangend toeslagperc.
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
verv_toeslag.cnt_kenmerk_key regel_key,
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)) *
fac.safe_to_number (aantal.cnt_kenmerkcontract_waarde) *
fac.safe_to_number (bedrag.cnt_kenmerkcontract_waarde) * (verv_toeslag_ud.fac_usrdata_prijs - 1) *
1/12, 2)
mndnet, -- Netto maandbedrag (incl. kortingspercentage)
0 mndbtw, -- BTW maandbedrag
--'9999' grtboekrek,
TRIM (ks.prs_kostensoort_oms) grtboekrek, -- 8404
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (chvnr.prs_kenmerklink_waarde) debiteur_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,
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1221) chvnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2003 -- Parkeren CHV
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = chvnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 864 -- Geen automatische facturatie
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 = 415 -- 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 = 416 -- Bedrag
LEFT JOIN cnt_kenmerkcontract verv_toeslag
ON x.cnt_contract_key = verv_toeslag.cnt_contract_key
AND verv_toeslag.cnt_kenmerkcontract_verwijder IS NULL
AND verv_toeslag.cnt_kenmerk_key = 1042 -- Vervangende toeslag
LEFT JOIN fac_v_aanwezigusrdata verv_toeslag_ud
ON fac.safe_to_number (verv_toeslag.cnt_kenmerkcontract_waarde) = verv_toeslag_ud.fac_usrdata_key
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
AND verv_toeslag_ud.fac_usrdata_prijs > 1
UNION ALL -- Parkeren CMD (vooruit)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
COALESCE (ks.prs_kostensoort_refcode, ks.prs_kostensoort_opmerking) regel, -- Parkeren CMD
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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,
'01-03-2023' mndbegin, -- TODO:Eenmalige tweak!
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
'01-03-2023' dagbegin, -- TODO:Eenmalige tweak!
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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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)) *
ROUND ((1 + ((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))) *
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)) *
ROUND ((1 + ((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))) *
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, -- 8115
TO_NUMBER (NULL) mld_melding_key -- Correctiemelding-key
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (cmdnr.prs_kenmerklink_waarde) debiteur_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,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2004 -- Parkeren CMD
AND c.cnt_contract_status = 0 -- Definitief
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 b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)
UNION ALL --TODO:Eenmalige tweak voor contracten t/m maart 2023 lopen!
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (cmdnr.prs_kenmerklink_waarde) debiteur_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,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2004 -- Parkeren CMD
AND c.cnt_contract_status = 0 -- Definitief
--AND c.cnt_contract_key IN (1482, 1486)
AND TRUNC (c.cnt_contract_looptijd_van) <= TO_DATE ('202303' || '01', 'yyyymmdd') -- Van-datum <= 01-03-2023/TODO:Eenmalige tweak!
AND TRUNC (c.cnt_contract_looptijd_tot) = TO_DATE ('202303' || '31', 'yyyymmdd') -- Tot-datum = 31-03-2023/TODO:Eenmalige tweak!
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 865 -- Geen automatische facturatie
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 = 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 = 418 -- Bedrag
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
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
UNION ALL -- Deelnemers CMD (achteraf)!
SELECT '*CONCEPT*' fin_verkoopfactuur_id,
'CMD' || TRIM (x.cnt_contract_nummer) po_nr, -- PO
'9901' || TO_CHAR (x.ins_discipline_key) sortering, -- Sorteren op (eigen) discipline_key; 8 posities!
'CMD - ' || sd_ud.fac_usrdata_omschr regel, -- Deelnemers CMD
NULL aanvrager, -- !!!
NULL regel_oms, -- !!!
TO_CHAR (SYSDATE, 'dd-mm-yyyy') factuurdatum, TO_CHAR (SYSDATE + 30, 'dd-mm-yyyy') vervaldatum,
'contract' xmlnode,
x.cnt_contract_key refkey, -- !!!
x.cnt_contract_nummer_intern || '/' || COALESCE (x.cnt_contract_versie, '0') refid, -- !!!
x.lv,
x.prs_bedrijf_key, x.prs_bedrijf_naam prs_debiteur_naam, x.debiteur_nr,
x.cnt_contract_omschrijving beschrijving,
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) bedrag, -- Jaarbedrag
TO_NUMBER (NULL) vvo_toeslag, -- VVO toeslagpercentage
bedrag.cnt_kenmerk_key regel_key,
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)) *
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)) *
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
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_looptijd_van lv, c.cnt_contract_looptijd_tot lt,
b.prs_bedrijf_key, b.prs_bedrijf_naam, TRIM (cmdnr.prs_kenmerklink_waarde) debiteur_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,
TO_CHAR (ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2), 'yyyymm') maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = 1220) cmdnr,
prs_kostenplaats kp,
prs_kostenplaatsgrp kpg
WHERE c.ins_discipline_key = 2005 -- Deelnemers CMD
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < ADD_MONTHS (LAST_DAY (TO_DATE (lp.maand || '01', 'yyyymmdd')), -2) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > ADD_MONTHS (TO_DATE (lp.maand || '01', 'yyyymmdd'), -2) -- Tot-datum > begin te factureren maand
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_key = cmdnr.prs_link_key(+)
AND c.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)) x
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 gaf
ON x.cnt_contract_key = gaf.cnt_contract_key
AND gaf.cnt_kenmerkcontract_verwijder IS NULL
AND gaf.cnt_kenmerk_key = 863 -- Geen automatische facturatie
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
ON x.cnt_contract_key = sd.cnt_contract_key
AND sd.cnt_kenmerkcontract_verwijder IS NULL
AND sd.cnt_kenmerk_key = 421 -- Soort deelnemer
LEFT JOIN fac_v_aanwezigusrdata sd_ud
ON fac.safe_to_number (sd.cnt_kenmerkcontract_waarde) = sd_ud.fac_usrdata_key
WHERE gaf.cnt_kenmerkcontract_waarde IS NOT NULL -- Handmatig!
;
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')), '202301') maand
@@ -6128,7 +7053,6 @@ AS
-- Rapportage van contracten die niet automatisch worden gefactureerd!
CREATE OR REPLACE VIEW BSSC_V_RAP_AUTOM_FACT_UIT
(
--hide_f_sortering,
eerstvolgendefactuur,
debiteurnaam,
contractsoort,
@@ -6136,8 +7060,7 @@ CREATE OR REPLACE VIEW BSSC_V_RAP_AUTOM_FACT_UIT
totaalbedrag
)
AS
SELECT --fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy'),
fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
SELECT fac.safe_to_date (volg_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy')
eerstvolgendefactuur,
x.prs_debiteur_naam debiteurnaam,
x.ins_discipline_omschrijving contractsoort,
@@ -6145,21 +7068,17 @@ AS
x.mndnet totaalbedrag
FROM ( SELECT x.refkey, x.prs_debiteur_naam, cd.ins_discipline_omschrijving, x.refid,
SUM (mndnet) mndnet
FROM bssc_v_fact_actual x, cnt_contract c, cnt_discipline cd
FROM bssc_v_fact_manual x, cnt_contract c, cnt_discipline cd
WHERE x.xmlnode = 'contract'
AND x.refkey = c.cnt_contract_key
AND c.ins_discipline_key = cd.ins_discipline_key
GROUP BY x.refkey, x.prs_debiteur_naam, cd.ins_discipline_omschrijving, x.refid) x
LEFT JOIN cnt_kenmerkcontract autom_fact
ON x.refkey = autom_fact.cnt_contract_key
AND autom_fact.cnt_kenmerkcontract_verwijder IS NULL
AND autom_fact.cnt_kenmerk_key IN (863, 864, 865, 1001) -- Geen automatisch facturatie
LEFT JOIN cnt_kenmerkcontract start_fact
ON x.refkey = start_fact.cnt_contract_key
AND start_fact.cnt_kenmerkcontract_verwijder IS NULL
AND start_fact.cnt_kenmerk_key IN (866, 868, 869, 870) -- Start facturatie op
WHERE autom_fact.cnt_kenmerkcontract_waarde = '1'
AND fac.safe_to_date (start_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') >= TRUNC (SYSDATE);
LEFT JOIN cnt_kenmerkcontract volg_fact
ON x.refkey = volg_fact.cnt_contract_key
AND volg_fact.cnt_kenmerkcontract_verwijder IS NULL
AND volg_fact.cnt_kenmerk_key IN (866, 868, 869, 1021) -- Volgende factuur
--WHERE fac.safe_to_date (volg_fact.cnt_kenmerkcontract_waarde, 'dd-mm-yyyy') >= TRUNC (SYSDATE)
;
------ payload end ------