UWVA#36431 fix
svn path=/Database/trunk/; revision=35091
This commit is contained in:
@@ -249,11 +249,10 @@ AS
|
||||
--
|
||||
-- Levert de kostenplaatsgroepverantwoordelijke op indien geen goede budgethouder
|
||||
-- wordt gevonden
|
||||
-- Levert -1 op indien er geen gevonden wordt.
|
||||
-- pmethode geeft .. inderdaad, waarbij
|
||||
-- prs_approvemethod geeft methode aan:
|
||||
-- methode 1 = 2-laagsmethode via kp - kpngroep
|
||||
-- methode 2 = n-laagsmethode via afdelingsboom
|
||||
-- methode 3 = als 2 maar houd rekening met de profiel van de fiatteur
|
||||
-- methode 2 = 2-laagsmethode via afdelingsboom tot gedefinieerde budgethouder en dan kpgroep
|
||||
-- methode 3 = als 2 maar houd rekening met de profiel van de budgethouders tov pondergrens
|
||||
-- Met pexcludekey kan een perslid_key worden opgegeven die je niet wilt
|
||||
-- Geef -1 mee als je niemand wilt excluden
|
||||
FUNCTION getfiatteur (pkostenplaats_key IN NUMBER,
|
||||
@@ -263,6 +262,7 @@ AS
|
||||
)
|
||||
RETURN NUMBER
|
||||
IS
|
||||
lkpbudgethouder prs_perslid.prs_perslid_key%TYPE;
|
||||
lkpverantwkey prs_perslid.prs_perslid_key%TYPE;
|
||||
lexcludeisvervanger NUMBER;
|
||||
lkpverantwlimiet fac_profiel.fac_profiel_limiet%TYPE;
|
||||
@@ -271,8 +271,9 @@ AS
|
||||
lmethode NUMBER;
|
||||
BEGIN
|
||||
BEGIN
|
||||
lkpverantwkey := -1;
|
||||
SELECT COALESCE (prs_perslid_key, -1)
|
||||
INTO lkpverantwkey
|
||||
INTO lkpbudgethouder
|
||||
FROM prs_kostenplaats
|
||||
WHERE prs_kostenplaats_key = pkostenplaats_key;
|
||||
EXCEPTION
|
||||
@@ -281,7 +282,7 @@ AS
|
||||
-- kostenplaats bestaat niet
|
||||
RETURN -1;
|
||||
END;
|
||||
|
||||
-- lkpbudgethouder is (mits gedefinieerd) de budgethouder van de kp. Het is nog niet gezegd of dit de gevraagde fiatteur is
|
||||
-- Is de meegegeven pexcludekey wellicht een vervanger van kostenplaatsverantwoordelijke van de kostenplaats?
|
||||
-- Zo ja, dan is in dat geval lkpverantwkey de pexcludekey
|
||||
IF pexcludekey > 0 THEN
|
||||
@@ -293,9 +294,9 @@ AS
|
||||
END IF;
|
||||
lmethode := fac.getSetting('prs_approvemethod');
|
||||
IF lmethode = 3 THEN
|
||||
lkpverantwlimiet := prs.getprofiellimiet (lkpverantwkey, pdisckey);
|
||||
lkpverantwlimiet := prs.getprofiellimiet (lkpbudgethouder, pdisckey);
|
||||
END IF;
|
||||
IF (lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1) AND (lmethode = 2 OR lmethode = 3)
|
||||
IF (lkpbudgethouder = -1 OR lkpbudgethouder = pexcludekey OR lexcludeisvervanger = 1 OR (lmethode = 3 AND lkpverantwlimiet < pondergrens)) AND (lmethode = 2 OR lmethode = 3)
|
||||
-- doorloop de boom naar boven, met allerlei aannames
|
||||
THEN
|
||||
-- waar hoort deze kp bij?
|
||||
@@ -310,7 +311,6 @@ AS
|
||||
-- kp is niet aan een afdeling gerelateerd, dan weet ik het met deze methode niet
|
||||
RETURN -1;
|
||||
END;
|
||||
|
||||
WHILE lkpverantwkey = -1 AND parentafdkey IS NOT NULL AND (lmethode <> 3 OR lkpverantwlimiet < pondergrens)
|
||||
LOOP
|
||||
SELECT COALESCE (k.prs_perslid_key, -1), prs_afdeling_parentkey
|
||||
@@ -325,7 +325,6 @@ AS
|
||||
END LOOP;
|
||||
-- nu heb ik er een of kan ik er geen vinden
|
||||
END IF;
|
||||
|
||||
-- Nu: als ik methode 1 heb, of methode 2 niemand opleverde (ondanks afdelingskostenplaats): de kpngroepverantwoordelijke
|
||||
IF lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1 OR (lmethode = 3 AND lkpverantwlimiet < pondergrens)
|
||||
THEN
|
||||
@@ -344,7 +343,6 @@ AS
|
||||
RETURN -1;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
RETURN lkpverantwkey;
|
||||
END;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user