BRCF#87236 Scope automatisch overzetten van contracten naar relatiebeheer

svn path=/Database/trunk/; revision=68995
This commit is contained in:
Erik Groener
2025-05-13 09:56:58 +00:00
parent 0f20741d9b
commit 79cef4d2ad

View File

@@ -1794,8 +1794,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_alg_gebouw_key alg_v_allonrgoed_gegevens.alg_gebouw_key%TYPE;
l_alg_verdieping_key alg_v_allonrgoed_gegevens.alg_verdieping_key %TYPE;
l_alg_ruimte_key alg_v_allonrgoed_gegevens.alg_ruimte_key%TYPE;
l_alg_type alg_v_allonrgoed_gegevens.alg_type%TYPE;
l_prs_dienst_key NUMBER;
l_prs_bedrijf_key prs_v_aanwezigbedrijf.prs_bedrijf_key%TYPE;
l_cnt_contract_key cnt_contract.cnt_contract_key%TYPE;
l_aantal NUMBER;
l_bdl_tijdsduur prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.tijdsduur%TYPE;
l_bdl_eenheid prs_bedrijfdienstlocatie.prs_bdl_t_uitvoertijd.eenheid%TYPE;
@@ -1899,9 +1901,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, mto.mld_typeopdr_fvs
, mto.mld_typeopdr_gvs
, mto.mld_typeopdr_isofferte
, mld_typeopdr_kosten
, mld_typeopdr_kosten_verplicht
, mld_typeopdr_slamode
, mto.mld_typeopdr_kosten
, mto.mld_typeopdr_kosten_verplicht
, mto.mld_typeopdr_slamode
INTO l_mld_typeopdr_key
, l_mld_typeopdr_fvs
, l_mld_typeopdr_gvs
@@ -2043,9 +2045,11 @@ CREATE OR REPLACE PACKAGE BODY mld AS
SELECT g.alg_gebouw_key
, g.alg_verdieping_key
, g.alg_ruimte_key
, g.alg_type
INTO l_alg_gebouw_key
, l_alg_verdieping_key
, l_alg_ruimte_key
, l_alg_type
FROM alg_v_allonrgoed_gegevens g
WHERE g.alg_onroerendgoed_keys = l_mld_alg_onroerendgoed_keys;
END IF;
@@ -2066,7 +2070,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF l_prs_dienst_key IS NOT NULL
THEN
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw)
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via prs_bedrijfdienstlocatie
IF l_alg_gebouw_key IS NOT NULL
THEN
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2081,10 +2085,13 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND ((bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL)
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL))
AND ( ( bdl.alg_gebouw_key = l_alg_gebouw_key
OR bdl.alg_gebouw_key IS NULL
)
AND ( bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
)
AND bdl.mld_autoorder = 1;
ELSIF l_mld_alg_locatie_key IS NOT NULL
THEN
@@ -2100,8 +2107,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
, prs_v_aanwezigbedrijf b
WHERE bdl.prs_bedrijf_key = b.prs_bedrijf_key
AND bdl.prs_dienst_key = l_prs_dienst_key
AND (bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL)
AND ( bdl.alg_locatie_key = l_mld_alg_locatie_key
OR bdl.alg_locatie_key IS NULL
)
AND bdl.mld_autoorder = 1;
ELSE
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
@@ -2126,6 +2134,56 @@ CREATE OR REPLACE PACKAGE BODY mld AS
THEN
l_prs_bedrijf_key := NULL;
END IF;
--
-- Controleer of er <20><>n bedrijf is dat deze dienst levert (op deze locatie/dit gebouw) via cnt_contract_plaats
IF l_aantal <> 1
THEN
IF l_mld_alg_onroerendgoed_keys IS NOT NULL
THEN
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_onroerendgoed_keys
AND cp.cnt_alg_plaats_code = l_alg_type
AND c.prs_dienst_key = l_prs_dienst_key;
ELSE
SELECT MIN(c.cnt_prs_bedrijf_key) cnt_prs_bedrijf_key
, MIN(cp.cnt_contract_key) cnt_contract_key
, COUNT(DISTINCT c.cnt_prs_bedrijf_key) aantal
INTO l_prs_bedrijf_key
, l_cnt_contract_key
, l_aantal
FROM cnt_contract c
, cnt_contract_plaats cp
, cnt_disc_params cd
WHERE cp.cnt_contract_key = c.cnt_contract_key
AND cd.cnt_ins_discipline_key = c.ins_discipline_key
AND SYSDATE BETWEEN c.cnt_contract_looptijd_van
AND c.cnt_contract_looptijd_tot
AND c.cnt_contract_verwijder IS NULL
AND cd.cnt_srtcontract_type IN (3,5)
AND cp.cnt_alg_plaats_key = l_mld_alg_locatie_key
AND cp.cnt_alg_plaats_code = 'L'
AND c.prs_dienst_key = l_prs_dienst_key;
END IF;
IF l_aantal <> 1
THEN
l_prs_bedrijf_key := NULL;
l_cnt_contract_key := NULL;
END IF;
END IF;
END IF;
IF l_prs_bedrijf_key IS NULL
THEN
@@ -2252,6 +2310,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld_opdr_bedrijfopdr_volgnr,
mld_typeopdr_key,
mld_uitvoerende_keys,
cnt_contract_key,
prs_perslid_key,
prs_kostenplaats_key,
prs_kostensoort_key,
@@ -2267,6 +2326,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
mld.bepaalopdrmeldingvolgnr(p_melding_key),
l_mld_typeopdr_key,
l_prs_bedrijf_key,
l_cnt_contract_key,
CASE
WHEN l_haswrite = 1
THEN l_prs_perslid_key