BSSC#55692 Facturatieproces (eenmalige tweak tbv. Parkeren CMD)

svn path=/Customer/trunk/; revision=59401
This commit is contained in:
Maarten van der Heide
2023-03-01 21:52:10 +00:00
parent e2e9dc17cd
commit 6c9c50367f

View File

@@ -1409,13 +1409,9 @@ AS
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 (TO_DATE (x.maand, 'yyyymm'), 'dd-mm-yyyy') mndbegin,
TO_CHAR (LAST_DAY (TO_DATE (x.maand, 'yyyymm')), 'dd-mm-yyyy') mndeinde,
'01-03-2023' dagbegin, -- TODO:Eenmalige tweak!
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
@@ -1424,14 +1420,12 @@ AS
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))) *
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)) *
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))) *
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) *
@@ -1466,36 +1460,6 @@ AS
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
@@ -2350,9 +2314,9 @@ AS
--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!
DECODE (x.cnt_contract_key, 1576, '01-04-2023', '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!
DECODE (x.cnt_contract_key, 1576, '01-04-2023', '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
@@ -2362,13 +2326,13 @@ AS
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))) *
ROUND ((DECODE (x.cnt_contract_key, 1576, 0, 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))) *
ROUND ((DECODE (x.cnt_contract_key, 1576, 0, 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) *
@@ -2619,7 +2583,6 @@ AS
SELECT '[' || v.refid || '|' || v.prs_debiteur_naam || '|' || v.regel || '] ' aanduiding,
v.*
FROM bssc_v_fact_actual v
WHERE v.grtboekrek = '8115' -- TODO:Eenmalige tweak!
ORDER BY v.prs_bedrijf_key, v.po_nr, v.sortering, v.regel, v.alg_plaatsaanduiding;
-- Verstuur verkoopfactuur naar huurder.
@@ -6791,52 +6754,48 @@ AS
-- Rapportage ter controle facturatie van contracten per maand (of niet).
CREATE OR REPLACE VIEW BSSC_V_RAP_CNT_FIN_MND
AS
WITH lopendeperiode
AS (SELECT COALESCE (MAX (TO_CHAR (LAST_DAY (fac.safe_to_date (fin_verkoopfactuur_maand, 'yyyymm')) + 1, 'yyyymm')), '202301') maand
FROM fin_verkoopfactuur)
SELECT x.maand,
x.debiteurnaam,
x.contractsoort_key,
x.contractsoort,
x.cnt_contract_key,
x.contractnummer,
x.cnt_contract_looptijd_van,
x.cnt_contract_looptijd_tot,
SELECT f.maand,
f.stroom,
f.prs_debiteur_naam debiteurnaam,
COALESCE (cd.ins_discipline_key, sm.mld_stdmelding_key)
refsoort_key,
COALESCE (cd.ins_discipline_omschrijving, sm.mld_stdmelding_omschrijving)
refsoort,
f.refkey,
f.refid,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot,
f.fin_verkoopfactuur_id,
f.mndnet totaal
FROM (SELECT TO_CHAR (p.maand, 'yyyymm') maand,
b.prs_bedrijf_naam debiteurnaam,
cd.ins_discipline_key contractsoort_key,
cd.ins_discipline_omschrijving contractsoort,
c.cnt_contract_key,
c.cnt_contract_nummer_intern || '/' || COALESCE (c.cnt_contract_versie, '0') contractnummer,
c.cnt_contract_looptijd_van,
c.cnt_contract_looptijd_tot
FROM ( SELECT ADD_MONTHS (fac.safe_to_date ('01-01-2023', 'dd-mm-yyyy'), LEVEL - 1) maand
FROM lopendeperiode lp
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2023', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20230101', 'yyyymmdd')
AND fac.safe_to_date (lp.maand || '01', 'yyyymmdd')
CONNECT BY LEVEL <= 240) p,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
cnt_discipline cd
WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2001, 2003, 2004, 2005)
AND c.cnt_contract_status = 0 -- Definitief
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand) x -- Tot-datum > begin te factureren maand
LEFT JOIN
( SELECT maand, refkey, refid, beschrijving, fin_verkoopfactuur_id, SUM (mndnet) mndnet
FROM bssc_v_fact_actual
GROUP BY maand, refkey, refid, beschrijving, fin_verkoopfactuur_id
UNION ALL
SELECT maand, refkey, refid, beschrijving, fin_verkoopfactuur_id, SUM (mndnet) mndnet
FROM bssc_v_fact_frozen
GROUP BY maand, refkey, refid, beschrijving, fin_verkoopfactuur_id) f
ON x.maand = f.maand AND x.cnt_contract_key = f.refkey
WHERE f.mndnet != 0
;
FROM ( SELECT maand, 'Contract' stroom, prs_debiteur_naam, refkey, refid, beschrijving, fin_verkoopfactuur_id,
SUM (mndnet) mndnet
FROM bssc_v_fact_frozen
GROUP BY maand, 'Contract', prs_debiteur_naam, refkey, refid, beschrijving, fin_verkoopfactuur_id
UNION ALL
SELECT maand, 'Contract' stroom, prs_debiteur_naam, refkey, refid, beschrijving, fin_verkoopfactuur_id,
SUM (mndnet) mndnet
FROM bssc_v_fact_actual
GROUP BY maand, 'Contract', prs_debiteur_naam, refkey, refid, beschrijving, fin_verkoopfactuur_id
UNION ALL
SELECT maand, 'Melding' stroom, prs_debiteur_naam, mld_melding_key refkey, TO_CHAR (mld_melding_key) refid, regel_oms beschrijving, fin_verkoopfactuur_id,
SUM (mndnet) mndnet
FROM bssc_v_addd_frozen
WHERE mld_melding_key IS NOT NULL
GROUP BY maand, 'Melding', prs_debiteur_naam, mld_melding_key, TO_CHAR (mld_melding_key), regel_oms, fin_verkoopfactuur_id
UNION ALL
SELECT maand, 'Melding' stroom, prs_debiteur_naam, mld_melding_key refkey, TO_CHAR (mld_melding_key) refid, regel_oms beschrijving, fin_verkoopfactuur_id,
SUM (mndnet) mndnet
FROM bssc_v_addd_actual
WHERE mld_melding_key IS NOT NULL
GROUP BY maand, 'Melding', prs_debiteur_naam, mld_melding_key, TO_CHAR (mld_melding_key), regel_oms, fin_verkoopfactuur_id) f
LEFT JOIN cnt_v_aanwezigcontract c
ON f.stroom = 'Contract' AND f.refkey = c.cnt_contract_key
LEFT JOIN cnt_discipline cd
ON c.ins_discipline_key = cd.ins_discipline_key
LEFT JOIN mld_melding m
ON f.stroom = 'Melding' AND f.refkey = m.mld_melding_key
LEFT JOIN mld_stdmelding sm
ON m.mld_stdmelding_key = sm.mld_stdmelding_key;
-- Rapportage tbv. interne facturatie van CMD aan CHV (betaald door CHV aan CMD)!
CREATE OR REPLACE VIEW BSSC_V_RAP_CMD2CHV