SCHG#87582: Probleem bij aanmaak periodieke onderhoudsmeldingen wagenpark.

svn path=/Database/trunk/; revision=68002
This commit is contained in:
Maykel Geerdink
2025-02-17 11:57:17 +00:00
parent 186b65d424
commit b669376d49

View File

@@ -125,21 +125,54 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
CURSOR c_taak_naar_ter_uitvoering
IS
-- Ingeplande taken.
SELECT idsc.ins_deelsrtcontrole_key,
idsc.ins_deel_key,
idsc.ins_srtcontrole_key,
idsc.ins_scenario_key,
xcp.mld_stdmelding_key,
sm.mld_stdmelding_default_disc,
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = alg.alg_gebouw_key)) prs_kostenplaats_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT alg.alg_gebouw_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)))
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT wpg.alg_gebouw_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)))
ELSE
NULL
END prs_kostenplaats_key,
xcp.ins_srtcontrole_omschrijving,
xcp.ins_srtcontrole_info,
isd.ins_srtdeel_omschrijving,
alg.alg_locatie_key,
alg.alg_onroerendgoed_keys,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_locatie_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_locatie_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_locatie_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_onroerendgoed_keys FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_ruimte_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_onroerendgoed_keys,
CASE
WHEN (SELECT COUNT(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
@@ -153,9 +186,8 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
END nextdate
FROM ins_deelsrtcontrole idsc,
ins_v_defined_inspect_xcp xcp,
ins_deel d,
ins_v_deelenonderdeel d,
ins_srtdeel isd,
alg_v_allonroerendgoed alg,
mld_stdmelding sm
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND xcp.ins_deel_key = idsc.ins_deel_key
@@ -163,8 +195,7 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key
AND d.ins_deel_key = idsc.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND d.ins_alg_ruimte_key = alg.alg_onroerendgoed_keys(+)
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_type IN ('T', 'R', 'P', 'W', 'A')
AND TRUNC(idsc.ins_deelsrtcontrole_plandatum, 'dd') <= TRUNC(SYSDATE, 'dd')
AND (xcp.ins_srtcontrole_eind IS NULL OR xcp.ins_srtcontrole_eind > SYSDATE)
AND d.ins_deel_verwijder IS NULL
@@ -174,21 +205,54 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
AND xcp.ctr_ismjob = 0
AND xcp.mld_stdmelding_key IS NOT NULL
UNION
-- Berekende taken t.o.v. de laatste inspectie (met historie).
SELECT NULL ins_deelsrtcontrole_key,
idsc.ins_deel_key,
idsc.ins_srtcontrole_key,
idsc.ins_scenario_key,
xcp.mld_stdmelding_key,
sm.mld_stdmelding_default_disc,
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = alg.alg_gebouw_key)) prs_kostenplaats_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT alg.alg_gebouw_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)))
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
COALESCE(xcp.prs_kostenplaats_key,
(SELECT prs_kostenplaats_key
FROM alg_gebouw
WHERE alg_gebouw_key = (SELECT wpg.alg_gebouw_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)))
ELSE
NULL
END prs_kostenplaats_key,
xcp.ins_srtcontrole_omschrijving,
xcp.ins_srtcontrole_info,
isd.ins_srtdeel_omschrijving,
alg.alg_locatie_key,
alg.alg_onroerendgoed_keys,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_locatie_key FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_locatie_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_locatie_key,
CASE
WHEN d.ins_alg_ruimte_type IN ('T', 'R')
THEN
(SELECT alg.alg_onroerendgoed_keys FROM alg_v_allonroerendgoed alg WHERE alg.alg_onroerendgoed_keys = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('W')
THEN
(SELECT wpg.alg_ruimte_key FROM prs_v_werkplek_gegevens wpg WHERE wpg.prs_werkplek_key = d.ins_alg_ruimte_key)
WHEN d.ins_alg_ruimte_type IN ('P', 'A')
THEN
NULL
END alg_onroerendgoed_keys,
CASE
WHEN (SELECT COUNT(ins_deelsrtcontrole_key)
FROM ins_deelsrtcontrole idsc2
@@ -202,9 +266,8 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
END nextdate
FROM ins_deelsrtcontrole idsc,
ins_v_defined_inspect_xcp xcp,
ins_deel d,
ins_v_deelenonderdeel d,
ins_srtdeel isd,
alg_v_allonroerendgoed alg,
mld_stdmelding sm
WHERE xcp.ins_srtcontrole_key = idsc.ins_srtcontrole_key
AND xcp.ins_deel_key = idsc.ins_deel_key
@@ -212,8 +275,7 @@ CREATE OR REPLACE PACKAGE BODY ctr AS
AND xcp.mld_stdmelding_key = sm.mld_stdmelding_key
AND d.ins_deel_key = idsc.ins_deel_key
AND d.ins_srtdeel_key = isd.ins_srtdeel_key
AND d.ins_alg_ruimte_key = alg.alg_onroerendgoed_keys(+)
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_type IN ('T', 'R', 'P', 'W', 'A')
AND TRUNC(ins.nextcyclusdate(idsc.ins_deel_key, idsc.ins_srtcontrole_key, 1, 1), 'dd') <= TRUNC(SYSDATE, 'dd')
AND (xcp.ins_srtcontrole_eind IS NULL OR xcp.ins_srtcontrole_eind > SYSDATE)
AND d.ins_deel_verwijder IS NULL