BLCC#87078 Rap/Contractscope-mutaties per jaar (bugfix)

svn path=/Customer/trunk/; revision=68623
This commit is contained in:
Maarten van der Heide
2025-04-01 20:52:29 +00:00
parent 8706ddf38a
commit 88530ddc97

View File

@@ -22443,63 +22443,86 @@ AS
WITH
alg_freeze
AS
(SELECT freeze_datum,
alg_ruimte_key,
gebouwcode,
ruimtenummer,
vvo,
huur_contract,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=') - 1))
(SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1) + 1),
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1) + 1) || '.', '.') - 1)
huur_contract_nr,
vvo_overeenkomst,
gebouwclusternaam,
lhkotc_class_code
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 0
UNION ALL
SELECT freeze_datum,
alg_ruimte_key,
gebouwcode,
ruimtenummer,
vvo,
huur_contract,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1) + 1), '=') - 1))
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 2) + 1),
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 2) + 1) || '.', '.') - 1)
huur_contract_nr,
vvo_overeenkomst,
gebouwclusternaam,
lhkotc_class_code
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 1
UNION ALL
SELECT freeze_datum,
alg_ruimte_key,
gebouwcode,
ruimtenummer,
vvo,
huur_contract,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 2) + 1),
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 2) + 1), '=') - 1))
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 3) + 1),
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 3) + 1) || '.', '.') - 1)
huur_contract_nr,
vvo_overeenkomst,
gebouwclusternaam,
lhkotc_class_code
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 1
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (huur_contract, 1, INSTR (huur_contract, '=', 1, 1) - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 1) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 1) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 2) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2
UNION ALL
SELECT TRUNC (freeze_datum, 'mm') freeze_datum,
alg_ruimte_key, gebouwcode, gebouwclusternaam, ruimtenummer, lhkotc_class_code,
vvo, vvo_overeenkomst,
fac.safe_to_number (SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 2) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, ',', 1, 2) + 1), '=') - 1))
huur_contract_key,
SUBSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 3) + 1),
1,
INSTR (SUBSTR (huur_contract, INSTR (huur_contract, '=', 1, 3) + 1) || '.', '.') - 1)
huur_contract_nr
FROM blcc_alg_freeze
WHERE freeze_datum > fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy')
AND REGEXP_COUNT (huur_contract, ',') = 2)
@@ -22582,18 +22605,15 @@ AS
FROM DUAL
WHERE ADD_MONTHS (fac.safe_to_date ('01-01-2024', 'dd-mm-yyyy'), LEVEL - 1) BETWEEN fac.safe_to_date ('20240101', 'yyyymmdd') AND TRUNC (ADD_MONTHS (SYSDATE, 2))
CONNECT BY LEVEL <= 240) p,
(SELECT * FROM cnt_v_aanwezigcontract_plaats WHERE cnt_alg_plaats_code = 'R') cp,
alg_freeze baf
WHERE c.ins_discipline_key = cd.ins_discipline_key
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND cd.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
--AND c.cnt_contract_status = 0 -- Definitief/TODO:Of gesloten???
AND c.cnt_prs_bedrijf_key = b.prs_bedrijf_key
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND c.cnt_contract_key = cp.cnt_contract_key -- Alleen contracten met scope!
--AND TO_CHAR (p.maand, 'yyyy-mm') = baf.huur_maand
AND TRUNC (p.maand, 'mm') = TRUNC (baf.freeze_datum, 'mm')
AND cp.cnt_alg_plaats_key = baf.alg_ruimte_key
AND p.maand = baf.freeze_datum
AND baf.huur_contract_key = c.cnt_contract_key
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
c.cnt_contract_nummer_intern,
@@ -22631,19 +22651,20 @@ AS
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND TRUNC (ADD_MONTHS (p.maand, 1), 'mm') = TRUNC (baf.freeze_datum, 'mm') -- Ruimten volgende maand!
AND c.cnt_contract_nummer_intern = baf.huur_contract_nr
AND ADD_MONTHS (p.maand, 1) = baf.freeze_datum -- Ruimten volgende maand!
AND baf.huur_contract_nr = c.cnt_contract_nummer_intern
AND NOT EXISTS -- Nog niet in scope deze maand!
(SELECT 1
FROM alg_freeze
WHERE huur_contract_nr = baf.huur_contract_nr
AND TRUNC (freeze_datum, 'mm') = TRUNC (p.maand, 'mm')
WHERE freeze_datum = p.maand
AND huur_contract_nr = baf.huur_contract_nr
AND alg_ruimte_key = baf.alg_ruimte_key)
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
baf.gebouwcode) y
ON x.cnt_contract_key = y.cnt_contract_key
AND x.maand = y.maand
AND x.gebouwcode = y.gebouwcode
LEFT JOIN -- In scope deze maand en volgende maand niet meer!
( SELECT TO_CHAR (p.maand, 'yyyy-mm') maand, -- Deze maand verwijderd!
c.cnt_contract_key,
@@ -22669,24 +22690,25 @@ AS
WHERE c.ins_discipline_key IN (2122, 2123) -- LA/LA CRF
AND TRUNC (c.cnt_contract_looptijd_van) < LAST_DAY (p.maand) -- Van-datum < einde te factureren maand
AND c.cnt_contract_looptijd_tot > p.maand
AND TRUNC (p.maand, 'mm') = TRUNC (baf.freeze_datum, 'mm') -- Ruimten deze maand!
AND c.cnt_contract_key = baf.huur_contract_key
AND p.maand = baf.freeze_datum -- Ruimten deze maand!
AND baf.huur_contract_nr = c.cnt_contract_nummer_intern
AND EXISTS -- Volgende maand loopt contract nog!
(SELECT 1
FROM alg_freeze
WHERE huur_contract_nr = baf.huur_contract_nr
AND TRUNC (freeze_datum, 'mm') = TRUNC (ADD_MONTHS (p.maand, 1), 'mm'))
WHERE freeze_datum = ADD_MONTHS (baf.freeze_datum, 1)
AND huur_contract_nr = baf.huur_contract_nr)
AND NOT EXISTS -- Niet meer in scope volgende maand!
(SELECT 1
FROM alg_freeze
WHERE huur_contract_nr = baf.huur_contract_nr
AND TRUNC (freeze_datum, 'mm') = TRUNC (ADD_MONTHS (p.maand, 1), 'mm')
WHERE freeze_datum = ADD_MONTHS (baf.freeze_datum, 1)
AND huur_contract_nr = baf.huur_contract_nr
AND alg_ruimte_key = baf.alg_ruimte_key)
GROUP BY TO_CHAR (p.maand, 'yyyy-mm'),
c.cnt_contract_key,
baf.gebouwcode) z
ON x.cnt_contract_key = z.cnt_contract_key
AND x.maand = z.maand
AND x.gebouwcode = z.gebouwcode
LEFT JOIN cnt_kenmerkcontract oic
ON x.cnt_contract_key = oic.cnt_contract_key
AND oic.cnt_kenmerkcontract_verwijder IS NULL