BSSC#55692 Facturatieproces (Parkeren CMD weer terug naar nacht na 1e werkdag)

svn path=/Customer/trunk/; revision=59080
This commit is contained in:
Maarten van der Heide
2023-02-09 14:42:23 +00:00
parent b4f4c2cdfe
commit c22ff20ad2

View File

@@ -1425,10 +1425,10 @@ 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,
DECODE (x.cnt_contract_key, 1524, '01-02-2023', 1542, '01-02-2023', '01-01-2023') mndbegin, -- TODO:Eenmalige tweak!
'28-02-2023' mndeinde, -- TODO:Eenmalige tweak!
DECODE (x.cnt_contract_key, 1524, '01-02-2023', 1542, '01-02-2023', '01-01-2023') dagbegin, -- TODO:Eenmalige tweak!
'28-02-2023' dageinde, -- TODO:Eenmalige tweak!
'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,
@@ -1436,14 +1436,14 @@ 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,
DECODE (x.cnt_contract_key, 1524, 1, 1542, 1, 2) * -- TODO:Eenmalige tweak!
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 (((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)
DECODE (x.cnt_contract_key, 1524, 1, 1542, 1, 2) * -- TODO:Eenmalige tweak!
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 (((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) *
@@ -1464,8 +1464,7 @@ AS
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
'202303' maand -- TODO:Eenmalige tweak!
lp.maand
FROM lopendeperiode lp,
cnt_v_aanwezigcontract c,
prs_bedrijf b,
@@ -1474,10 +1473,38 @@ AS
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 TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (TO_DATE ('202303' || '01', 'yyyymmdd')) -- Van-datum < einde te factureren maand/TODO:Eenmalige tweak!
AND c.cnt_contract_looptijd_tot > TO_DATE ('202303' || '01', 'yyyymmdd') -- Tot-datum > begin te factureren maand/TODO:Eenmalige tweak!
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(+)
@@ -1644,7 +1671,7 @@ AS
fac.safe_to_number (vf.fin_verkoopfactuur_n2) aantal,
fac.safe_to_number (vf.fin_verkoopfactuur_n3) bedrag,
fac.safe_to_number (vf.fin_verkoopfactuur_n4) vvo_toeslag,
vf.fin_verkoopfactuur_n2 regel_key,
vf.fin_verkoopfactuur_n5 regel_key,
SUBSTR (vf.fin_verkoopfactuur_c6, 1, 1) alg_onroerendgoed_type,
fac.safe_to_number (SUBSTR (vf.fin_verkoopfactuur_c6, 2, INSTR (vf.fin_verkoopfactuur_c6, '=') - 1)) alg_onroerendgoed_keys,
SUBSTR (vf.fin_verkoopfactuur_c6, INSTR (vf.fin_verkoopfactuur_c6, '=') + 1) alg_plaatsaanduiding,
@@ -1712,10 +1739,9 @@ BEGIN
-- 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 TO_CHAR (SYSDATE, 'dd') = '15' -- TODO:Weer terug naar nacht na 1e werkdag van de maand!
--IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag van de maand!
-- AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
-- AND v_holiday = 0
IF TO_CHAR (SYSDATE, 'dd') = '03' -- TODO:Eenmalige tweak en weer terug naar nacht na 1e werkdag van de maand!
IF FAC.count_work_days (TRUNC (SYSDATE, 'mm') - 1, SYSDATE - 1) = 1 -- Nacht na 1e werkdag van de maand!
AND TO_CHAR (SYSDATE - 1, 'd') BETWEEN '2' AND '6'
AND v_holiday = 0
THEN
v_fact_count := 0;
v_amount_sum := 0;
@@ -1818,7 +1844,7 @@ BEGIN
rec.aantal, -- n2/aantal
rec.bedrag, -- n3/bedrag
rec.vvo_toeslag, -- n4/vvo_toeslag
TO_NUMBER (NULL), -- n5
rec.regel_key, -- n5/regel_key
NULL, -- c1
NULL, -- c2
NULL, -- c3
@@ -1985,7 +2011,7 @@ AS
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- In behandeling/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND km.mld_kenmerk_key IN (861, 862) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
@@ -2081,7 +2107,7 @@ AS
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- In behandeling/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND km.mld_kenmerk_key IN (861, 862) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
@@ -2177,7 +2203,7 @@ AS
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- In behandeling/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND km.mld_kenmerk_key IN (861, 862) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
@@ -2273,7 +2299,7 @@ AS
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- In behandeling/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND km.mld_kenmerk_key IN (861, 862) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
@@ -2369,7 +2395,7 @@ AS
AND m.prs_perslid_key_voor = pf.prs_perslid_key
AND m.mld_melding_status IN (4, 5) -- In behandeling/Afgemeld
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key IN (861, 861) -- Factuurreferentie CHV/CMD
AND km.mld_kenmerk_key IN (861, 862) -- Factuurreferentie CHV/CMD
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = vf.fin_verkoopfactuurkop_key
AND NOT EXISTS (SELECT 1 FROM fin_verkoopfactuur WHERE fin_verkoopfactuurkop_key = vf.fin_verkoopfactuurkop_key AND fin_verkoopfactuur_key < vf.fin_verkoopfactuur_key)
AND vf.prs_bedrijf_key = b.prs_bedrijf_key
@@ -6006,9 +6032,9 @@ AS
SELECT maand,
prs_debiteur_naam,
fin_verkoopfactuur_id factuurnummer,
vvo,
huur,
verv_toeslag,
vvo,
CASE
WHEN vvo = 0
THEN