Compare commits
5 Commits
a25392c7d5
...
DB32
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5de466dd2 | ||
|
|
8fb1f625d3 | ||
|
|
1852fc278e | ||
|
|
279b4d4e90 | ||
|
|
a50c638d04 |
2
FCLT.NMK
2
FCLT.NMK
@@ -62,7 +62,7 @@ PROJEXE=z:\Project\FACILITOR\BUILD
|
||||
##
|
||||
CURRENTVERSION=31
|
||||
NEXTVERSION=32
|
||||
FILEVERSION=a
|
||||
FILEVERSION=c
|
||||
NEXTCAREVERSION=32
|
||||
NEXTROOT=DB$(NEXTVERSION)$(FILEVERSION)
|
||||
CURRENTUPDATE=DB$(CURRENTVERSION)to$(NEXTVERSION)
|
||||
|
||||
@@ -653,15 +653,29 @@ AS
|
||||
-- Keurt een ingevoerde factuur (onvoorwaardelijk) goed of (als rejecttoo) af op basis van de matchingscriteria
|
||||
PROCEDURE matchandsetfactuur (pfactuur_key IN NUMBER, prejecttoo IN BOOLEAN)
|
||||
IS
|
||||
lgoedkeurder fin_factuur.prs_perslid_key_goedkeur%TYPE;
|
||||
BEGIN
|
||||
CASE fin.matchfactuur (pfactuur_key)
|
||||
WHEN 1
|
||||
THEN
|
||||
IF fac.getsetting('fin_enable_goedkeuren') <> 0
|
||||
IF fac.getsetting('fin_enable_goedkeuren') = 0 -- validation unavailable
|
||||
THEN
|
||||
fin.setfactuurstatus (pfactuur_key, 6, NULL);
|
||||
ELSIF fac.getsetting('fin_enable_goedkeuren') = 2 -- validation required
|
||||
THEN
|
||||
fin.setfactuurstatus (pfactuur_key, 5, NULL);
|
||||
ELSE
|
||||
fin.setfactuurstatus (pfactuur_key, 6, NULL);
|
||||
ELSE -- validation optional (fin_enable_goedkeuren = 1)
|
||||
SELECT f.prs_perslid_key_goedkeur
|
||||
INTO lgoedkeurder
|
||||
FROM fin_factuur f
|
||||
WHERE fin_factuur_key = pfactuur_key;
|
||||
|
||||
IF lgoedkeurder IS NULL
|
||||
THEN
|
||||
fin.setfactuurstatus (pfactuur_key, 6, NULL);
|
||||
ELSE
|
||||
fin.setfactuurstatus (pfactuur_key, 5, NULL);
|
||||
END IF;
|
||||
END IF;
|
||||
WHEN -1
|
||||
THEN
|
||||
|
||||
@@ -254,6 +254,8 @@ AS
|
||||
-- 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
|
||||
-- dat kan zijn omdat je het niet voor jezelf mag (can_selfapprove) of
|
||||
-- omdat je een lager niveau al gefiatteerd hebt
|
||||
-- Geef -1 mee als je niemand wilt excluden
|
||||
FUNCTION getfiatteur (pkostenplaats_key IN NUMBER,
|
||||
pexcludekey IN NUMBER,
|
||||
@@ -285,7 +287,7 @@ AS
|
||||
-- lkpverantwkey 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
|
||||
IF pexcludekey > 0 AND lkpverantwkey <> pexcludekey THEN
|
||||
SELECT COUNT(prs_perslid_key)
|
||||
INTO lexcludeisvervanger
|
||||
FROM prs_collega
|
||||
@@ -295,17 +297,18 @@ AS
|
||||
dbms_output.put_line('ExcludeIsVervanger: '||lexcludeisvervanger);
|
||||
lmethode := fac.getSetting('prs_approvemethod');
|
||||
dbms_output.put_line('Approvemethod: '||lmethode);
|
||||
IF lmethode = 3 THEN
|
||||
dbms_output.put_line('Ondergrens: '||pondergrens);
|
||||
|
||||
IF lmethode = 3 THEN -- ook profiel budgethouder controleren
|
||||
lkpverantwlimiet := prs.getprofiellimiet (lkpverantwkey, pdisckey);
|
||||
dbms_output.put_line('Zijn limiet: '||lkpverantwlimiet);
|
||||
IF (lkpverantwlimiet < pondergrens) -- lkpverantwkey != -1 is impliciet in die limiet
|
||||
THEN -- het profiel van deze budgethouder is niet genoeg
|
||||
lkpverantwkey := -1; -- niet meer interessant wie dit was
|
||||
END IF;
|
||||
END IF;
|
||||
dbms_output.put_line('Ondergrens: '||pondergrens);
|
||||
IF (lmethode = 3 AND lkpverantwlimiet >= pondergrens) -- lkpverantwkey != -1 is impliciet in die limiet
|
||||
THEN
|
||||
-- het profiel van de budgethouder is genoeg
|
||||
RETURN lkpverantwkey;
|
||||
END IF;
|
||||
IF (lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1 OR (lmethode = 3 AND lkpverantwlimiet < pondergrens))
|
||||
|
||||
IF (lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1)
|
||||
AND (lmethode = 2 OR lmethode = 3)
|
||||
-- doorloop de boom naar boven, met allerlei aannames
|
||||
THEN
|
||||
@@ -322,7 +325,9 @@ 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)
|
||||
-- Zolang nog geen goede en we kunnen hogerop
|
||||
WHILE (lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1)
|
||||
AND parentafdkey IS NOT NULL
|
||||
LOOP
|
||||
SELECT COALESCE (k.prs_perslid_key, -1), prs_afdeling_parentkey
|
||||
INTO lkpverantwkey, parentafdkey
|
||||
@@ -331,16 +336,29 @@ AS
|
||||
AND a.prs_afdeling_verwijder IS NULL
|
||||
AND a.prs_afdeling_key = parentafdkey;
|
||||
dbms_output.put_line('Volgende budgethouder: '||lkpverantwkey);
|
||||
IF lmethode = 3 THEN
|
||||
|
||||
IF lmethode = 3 THEN -- ook profiel budgethouder controleren
|
||||
lkpverantwlimiet := prs.getprofiellimiet (lkpverantwkey, pdisckey);
|
||||
dbms_output.put_line('Zijn limiet: '||lkpverantwlimiet);
|
||||
dbms_output.put_line('Zijn limiet B: '||lkpverantwlimiet);
|
||||
IF (lkpverantwlimiet < pondergrens)
|
||||
THEN -- het profiel van deze budgethouder is niet genoeg
|
||||
lkpverantwkey := -1; -- niet meer interessant wie dit was
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF pexcludekey > 0 AND lkpverantwkey <> pexcludekey THEN
|
||||
SELECT COUNT(prs_perslid_key)
|
||||
INTO lexcludeisvervanger
|
||||
FROM prs_collega
|
||||
WHERE prs_perslid_key_alt = pexcludekey
|
||||
AND prs_perslid_key = lkpverantwkey;
|
||||
END IF;
|
||||
END LOOP;
|
||||
-- nu heb ik er een of kan ik er geen vinden
|
||||
END IF;
|
||||
dbms_output.put_line('Gevonden budgethouder voor de kpgroep-tak: '||lkpverantwkey);
|
||||
-- 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)
|
||||
IF lkpverantwkey = -1 OR lkpverantwkey = pexcludekey OR lexcludeisvervanger = 1
|
||||
THEN
|
||||
-- vindt de kostenplaatsGROEPverantwoordelijke van altijd de meegegeven kp
|
||||
BEGIN
|
||||
@@ -357,7 +375,7 @@ AS
|
||||
RETURN -1;
|
||||
END;
|
||||
END IF;
|
||||
dbms_output.put_line('Volgende budgethouder: '||lkpverantwkey);
|
||||
dbms_output.put_line('Resultaat budgethouder: '||lkpverantwkey);
|
||||
RETURN lkpverantwkey;
|
||||
END;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user