FCLT#63760 Sommige meldingen hebben geen locatie/adres, daarvoor nu 'NO_DATA_FOUND' afgevangen en tevens zoeken we dan nog even of er mogelijk maar 1 bedrijf is die deze dienst ongescoped levert (om uitvoerende te bepalen), mld_stdmelding_vereisdienst niet nodig en dienst in de 1ste query ophalen.
svn path=/Database/trunk/; revision=52219
This commit is contained in:
@@ -1390,7 +1390,6 @@ 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_mld_stdmelding_vereisdienst mld_stdmelding.mld_stdmelding_vereisdienst%TYPE;
|
||||
l_prs_dienst_key NUMBER;
|
||||
l_prs_bedrijf_key prs_v_aanwezigbedrijf.prs_bedrijf_key%TYPE;
|
||||
l_aantal NUMBER;
|
||||
@@ -1419,6 +1418,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
, m.mld_melding_omschrijving
|
||||
, m.mld_melding_onderwerp
|
||||
, k.prs_kostenplaats_fiat
|
||||
, sm.prs_dienst_key
|
||||
, mdp.mld_disc_params_bestellimiet
|
||||
INTO l_autoorder
|
||||
, l_prs_perslid_key
|
||||
@@ -1434,6 +1434,7 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
, l_mld_melding_omschrijving
|
||||
, l_mld_melding_onderwerp
|
||||
, l_prs_kostenplaats_fiat
|
||||
, l_prs_dienst_key
|
||||
, l_mld_disc_params_bestellimiet
|
||||
FROM mld_melding m
|
||||
, mld_stdmelding sm
|
||||
@@ -1595,15 +1596,23 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
THEN
|
||||
-- Daarvoor zijn plaatsgegevens relevant.
|
||||
-- Eerst kijken of er een locatie key bepaald kan worden.
|
||||
SELECT mld_alg_locatie_key
|
||||
, mld_adres_key
|
||||
, mld_alg_onroerendgoed_keys
|
||||
INTO l_mld_alg_locatie_key
|
||||
, l_mld_adres_key
|
||||
, l_mld_alg_onroerendgoed_keys
|
||||
FROM mld_melding
|
||||
WHERE mld_melding_key = p_melding_key
|
||||
AND (mld_alg_locatie_key IS NOT NULL OR mld_adres_key IS NOT NULL);
|
||||
BEGIN
|
||||
SELECT mld_alg_locatie_key
|
||||
, mld_adres_key
|
||||
, mld_alg_onroerendgoed_keys
|
||||
INTO l_mld_alg_locatie_key
|
||||
, l_mld_adres_key
|
||||
, l_mld_alg_onroerendgoed_keys
|
||||
FROM mld_melding
|
||||
WHERE mld_melding_key = p_melding_key
|
||||
AND (mld_alg_locatie_key IS NOT NULL OR mld_adres_key IS NOT NULL);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN -- Geen locatie of adres
|
||||
l_mld_alg_locatie_key := NULL;
|
||||
l_mld_adres_key := NULL;
|
||||
l_mld_alg_onroerendgoed_keys := NULL;
|
||||
END;
|
||||
|
||||
IF l_mld_alg_locatie_key IS NULL AND l_mld_adres_key IS NOT NULL
|
||||
THEN
|
||||
@@ -1640,18 +1649,9 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
-- of een afdeling die een parent van ons is.
|
||||
-- De controles kunnen hier overgeslagen worden en kan de prs bedrijf_key direct bepalen.
|
||||
|
||||
SELECT ms.mld_stdmelding_vereisdienst
|
||||
, ms.prs_dienst_key
|
||||
INTO l_mld_stdmelding_vereisdienst
|
||||
, l_prs_dienst_key
|
||||
FROM mld_stdmelding ms
|
||||
, prs_dienst pd
|
||||
WHERE mld_stdmelding_key = l_mld_stdmelding_key
|
||||
AND pd.prs_dienst_key(+) = ms.prs_dienst_key;
|
||||
|
||||
IF l_prs_dienst_key IS NOT NULL
|
||||
THEN
|
||||
-- Controleer of er een/<EFBFBD><EFBFBD>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)
|
||||
IF l_alg_gebouw_key IS NOT NULL
|
||||
THEN
|
||||
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
|
||||
@@ -1686,6 +1686,21 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
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);
|
||||
ELSE
|
||||
SELECT MIN(bdl.prs_bedrijf_key) prs_bedrijf_key
|
||||
, COUNT(DISTINCT bdl.prs_bedrijf_key) aantal
|
||||
, MIN(bdl.prs_bdl_t_uitvoertijd.tijdsduur) tijdsduur
|
||||
, MIN(bdl.prs_bdl_t_uitvoertijd.eenheid) eenheid
|
||||
INTO l_prs_bedrijf_key
|
||||
, l_aantal
|
||||
, l_bdl_tijdsduur
|
||||
, l_bdl_eenheid
|
||||
FROM prs_bedrijfdienstlocatie bdl
|
||||
, 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 IS NULL
|
||||
AND bdl.alg_locatie_key IS NULL; -- Bestaat er dan misschien maar 1 bedrijf voor deze dienst zonder loc/geb scope ?
|
||||
END IF;
|
||||
-- Indien dienst vereist en aantal is 0, dan is de dienst niet beschikbaar voor deze locatie/dit gebouw.
|
||||
-- Indien aantal groter is dan 0, dan kan ik geen goede keuze maken.
|
||||
|
||||
Reference in New Issue
Block a user