PROR#75644 Afwijkende SLA tijden bij ruimte functie (klaar..)

svn path=/Database/trunk/; revision=60352
This commit is contained in:
Peter Feij
2023-05-09 17:47:27 +00:00
parent b16b7b169f
commit cdb4f550a0

View File

@@ -3151,12 +3151,12 @@ CREATE OR REPLACE PACKAGE BODY mld AS
l_mldsrtterrein_uitvtijd_object mld_stdmsrtterrein.mld_stdmsrtterrein_t_uitvtijd%TYPE := MLD_T_UITVOERTIJD(NULL, NULL); -- contructor initialisatie
BEGIN
SELECT mld_stdmelding_regime,
COALESCE(CASE prio
WHEN 1 THEN mld_stdmelding_t_uitvtijd_pr1
WHEN 2 THEN mld_stdmelding_t_uitvtijd_pr2
WHEN 4 THEN mld_stdmelding_t_uitvtijd_pr4
ELSE mld_stdmelding_t_uitvoertijd
END, mld_stdmelding_t_uitvoertijd), -- gegarandeerd gevuld
CASE prio
WHEN 1 THEN mld_stdmelding_t_uitvtijd_pr1
WHEN 2 THEN mld_stdmelding_t_uitvtijd_pr2
WHEN 4 THEN mld_stdmelding_t_uitvtijd_pr4
ELSE mld_stdmelding_t_uitvoertijd
END, -- gegarandeerd gevuld
mld_stdmelding_t_uitvoertijd, -- standaard uitvoertijd
mld_stdmelding_afhankelijk
INTO v_mld_stdmelding_regime,
@@ -3166,18 +3166,32 @@ CREATE OR REPLACE PACKAGE BODY mld AS
FROM mld_stdmelding msm
WHERE msm.mld_stdmelding_key = stdm_key;
-- Als je geen afwijkende uitvoertijd voor de prio hebt, dan is het die van Normaal
-- Dit is een vangnet, die prio had eigenlijk niet voor kunnen komen.
IF prio <> 3 AND v_uitvoertijd_object.tijdsduur IS NULL
THEN
v_uitvoertijd_object := v_uitvoertijd_object_s;
END IF;
IF v_mld_stdmelding_afhankelijk = 1 AND ins_key IS NOT NULL
THEN
-- is er een objectafhankelijke SLA? Dan geldt die ongeacht de prio
SELECT d.ins_deel_t_uitvoertijd
INTO l_insdeel_uitvoertijd_object
FROM ins_deel d
WHERE d.ins_deel_key = ins_key;
v_uitvoertijd_object.tijdsduur := COALESCE(l_insdeel_uitvoertijd_object.tijdsduur, v_uitvoertijd_object_s.tijdsduur);
-- als er geen object-overrule gedefinieerd is, dan WERD de standaard-normaleprio-sla gebruikt,
-- wat imho onjuist is, dat moet de standaard-betreffendeprio-sla zijn (een kritieke melding op
-- een object waarvoor niks speciaals geldt is een normale kritieke melding)
-- daarom aangepast, geen klachten over gehad, maar niettemin beter..
-- mag weg: v_uitvoertijd_object.tijdsduur := COALESCE(l_insdeel_uitvoertijd_object.tijdsduur, v_uitvoertijd_object_s.tijdsduur);
v_uitvoertijd_object.tijdsduur := COALESCE(l_insdeel_uitvoertijd_object.tijdsduur, v_uitvoertijd_object.tijdsduur);
IF l_insdeel_uitvoertijd_object.tijdsduur IS NOT NULL
THEN
v_uitvoertijd_object.eenheid := l_insdeel_uitvoertijd_object.eenheid;
ELSE
v_uitvoertijd_object.eenheid := v_uitvoertijd_object_s.eenheid;
-- mag weg: v_uitvoertijd_object.eenheid := v_uitvoertijd_object_s.eenheid;
v_uitvoertijd_object.eenheid := v_uitvoertijd_object.eenheid; -- en dat is dan op zich overbodig
END IF;
END IF;
@@ -3198,9 +3212,17 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF l_alg_type = 'T'
THEN
BEGIN
SELECT st.alg_srtterreinsec_t_uitvtijd,
sst.mld_stdmsrtterrein_t_uitvtijd,
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime -- optioneel nog srtterreinsector-afhankelijk afwijkend regime.
SELECT DECODE (prio,
1, st.alg_srtterreinsec_t_uitv_pr1,
2, st.alg_srtterreinsec_t_uitv_pr2,
3, st.alg_srtterreinsec_t_uitvtijd,
4, st.alg_srtterreinsec_t_uitv_pr4),
DECODE (prio,
1, sst.mld_stdmsrtterrein_t_uitv_pr1,
2, sst.mld_stdmsrtterrein_t_uitv_pr2,
3, sst.mld_stdmsrtterrein_t_uitvtijd,
4, sst.mld_stdmsrtterrein_t_uitv_pr4),
COALESCE(sst.mld_stdmsrtterrein_regime, v_mld_stdmelding_regime) regime -- geen srtterreinsector-afhankelijk afwijkend regime.
INTO l_srtterrein_uitvoertijd_object,
l_mldsrtterrein_uitvtijd_object,
v_mld_stdmelding_regime
@@ -3217,9 +3239,17 @@ CREATE OR REPLACE PACKAGE BODY mld AS
END;
ELSE
BEGIN
SELECT alg_srtgebouw_t_uitvoertijd,
ssg.mld_stdmsrtgebouw_t_uitvtijd,
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime -- optioneel nog srtgebouw-afhankelijk afwijkend regime.
SELECT DECODE (prio,
1, sg.alg_srtgebouw_t_uitvoer_pr1,
2, sg.alg_srtgebouw_t_uitvoer_pr2,
3, sg.alg_srtgebouw_t_uitvoertijd,
4, sg.alg_srtgebouw_t_uitvoer_pr4),
DECODE (prio,
1, ssg.mld_stdmsrtgebouw_t_uitv_pr1,
2, ssg.mld_stdmsrtgebouw_t_uitv_pr2,
3, ssg.mld_stdmsrtgebouw_t_uitvtijd,
4, ssg.mld_stdmsrtgebouw_t_uitv_pr4),
COALESCE(ssg.mld_stdmsrtgebouw_regime, v_mld_stdmelding_regime) regime -- geen srtgebouw-afhankelijk afwijkend regime.
INTO l_srtgebouw_uitvoertijd_object,
l_mldsrtgebouw_uitvtijd_object,
v_mld_stdmelding_regime
@@ -3238,9 +3268,17 @@ CREATE OR REPLACE PACKAGE BODY mld AS
IF l_alg_type = 'R'
THEN
BEGIN
SELECT sr.alg_srtruimte_t_uitvoertijd,
ssr.mld_stdmsrtruimte_t_uitvtijd,
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime) -- optioneel nog srtruimte-afhankelijk afwijkend regime.
SELECT DECODE (prio,
1, sr.alg_srtruimte_t_uitvoer_pr1,
2, sr.alg_srtruimte_t_uitvoer_pr2,
3, sr.alg_srtruimte_t_uitvoertijd,
4, sr.alg_srtruimte_t_uitvoer_pr4),
DECODE (prio,
1, ssr.mld_stdmsrtruimte_t_uitv_pr1,
2, ssr.mld_stdmsrtruimte_t_uitv_pr2,
3, ssr.mld_stdmsrtruimte_t_uitvtijd,
4, ssr.mld_stdmsrtruimte_t_uitv_pr4),
COALESCE(ssr.mld_stdmsrtruimte_regime, v_mld_stdmelding_regime) -- geen srtruimte-afhankelijk afwijkend regime.
INTO l_srtruimte_uitvoertijd_object,
l_mldsrtruimte_uitvtijd_object,
v_mld_stdmelding_regime
@@ -3304,9 +3342,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
COALESCE (alg_ruimte_werkdagen, alg_gebouw_werkdagen)
INTO v_beginuur, v_einduur, v_werkdagen
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = l_ruimte_key;
WHERE r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_ruimte_key = l_ruimte_key;
ELSE
-- alg_key zal een gebouw, verdieping of terrein zijn.
-- de tijden van het gebouw gelden of uren opleveren.