FCLT#63760: Automatisch opdrachten aanmaken ook in de workflow.
svn path=/Database/trunk/; revision=49829
This commit is contained in:
118
BES/BES_PAC.SRC
118
BES/BES_PAC.SRC
@@ -73,6 +73,10 @@ AS
|
||||
RETURN varchar2;
|
||||
PROCEDURE remove(p_bes_bestelling_key IN NUMBER);
|
||||
PROCEDURE remove_opdr(p_bes_opdr_key IN NUMBER);
|
||||
FUNCTION bes_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
|
||||
RETURN NUMBER;
|
||||
FUNCTION bes_besteed_budget_agb (p_kp_key IN NUMBER)
|
||||
RETURN NUMBER;
|
||||
END bes;
|
||||
/
|
||||
|
||||
@@ -2244,6 +2248,120 @@ AS
|
||||
fac.remove_tracking('bestelopdr', p_bes_opdr_key);
|
||||
END;
|
||||
|
||||
FUNCTION bes_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
|
||||
RETURN NUMBER
|
||||
AS
|
||||
l_budgetbesteld NUMBER := 0;
|
||||
BEGIN
|
||||
-- Besteed budget van meegegeven persoon dit jaar voor de meegegeven discipline i.v.m. Persoons Gebonden Budget (PGB).
|
||||
-- Eventueel uitgezonderd (huidige) bestellingkey bes_key en meldingopdrachtkey opdr_key.
|
||||
-- De discipline instelling disc_params_pgb moet 1 of 3 zijn. Afhankelijk van deze instelling roep je de pgb of agb versie aan. Hier opnieuw controleren is niet nodig.
|
||||
-- Totaalbedrag van eerdere bestellingen en meldingopdrachten dit jaar van de besteller en behandelaar i.v.m. Persoons Gebonden Budget (PGB).
|
||||
SELECT COALESCE(SUM(totaalbedrag), 0) - COALESCE(SUM(korting), 0) + COALESCE(SUM(levkosten), 0) budgetbesteld
|
||||
INTO l_budgetbesteld
|
||||
FROM (SELECT SUM(totaalbedrag) totaalbedrag
|
||||
, SUM(b.bes_bestelling_korting) korting
|
||||
, SUM(b.bes_bestelling_levkosten) levkosten
|
||||
FROM (SELECT SUM (boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_prijs) totaalbedrag
|
||||
, b.bes_bestelling_key
|
||||
FROM bes_bestelling b
|
||||
, bes_bestelling_item bi
|
||||
, bes_bestelopdr_item boi
|
||||
, bes_bestelopdr bo
|
||||
, bes_srtdeel isd
|
||||
, bes_srtgroep isg
|
||||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND bi.bes_srtdeel_key = isd.bes_srtdeel_key
|
||||
AND isd.bes_srtgroep_key = isg.bes_srtgroep_key
|
||||
AND b.prs_perslid_key = p_prs_key
|
||||
AND isg.ins_discipline_key = p_disc_key
|
||||
-- Alleen bestellingopdrachten in de behandelings fase (In bestelling (Bevestigd)(4)) en in de gereed fase (Geleverd(6) en Verwerkt(7)).
|
||||
-- Afgewezen(1), In behandeling(3), Ter bevestiging(5) en Geannuleerd(8) doen niet mee in de bepaling van geraamde en definitieve kosten.
|
||||
AND bo.bes_bestelopdr_status IN (4, 6, 7)
|
||||
AND b.bes_bestelling_datum >= TRUNC (SYSDATE, 'YEAR')
|
||||
GROUP BY b.bes_bestelling_key) tot
|
||||
, bes_bestelling b
|
||||
WHERE b.bes_bestelling_key = tot.bes_bestelling_key);
|
||||
RETURN l_budgetbesteld;
|
||||
END;
|
||||
|
||||
FUNCTION bes_besteed_budget_agb (p_kp_key IN NUMBER)
|
||||
RETURN NUMBER
|
||||
AS
|
||||
l_budgetbesteld NUMBER := 0;
|
||||
l_kp_limietperiode NUMBER (1);
|
||||
l_periode VARCHAR2 (4);
|
||||
BEGIN
|
||||
-- Besteed budget van meegegeven persoon afgelopen periode i.v.m. Afdelings Gebonden Budget (AGB).
|
||||
-- Eventueel uitgezonderd (huidige) bestellingkey bes_key en meldingopdrachtkey opdr_key.
|
||||
-- De discipline instelling disc_params_pgb moet 1 of 3 zijn. Afhankelijk van deze instelling roep je de pgb of agb versie aan. Hier opnieuw controleren is niet nodig.
|
||||
-- Totaalbedrag van eerdere bestellingen en meldingopdrachten van afgelopen periode van de besteller en behandeaar i.v.m. Afdelings Gebonden Budget (AGB).
|
||||
|
||||
-- Limietperiode kostenplaats (prs_kostenplaats_limietperiode): 0(of NULL)=geen(oneindig) (default), 1=maand, 2=jaar.
|
||||
IF p_kp_key > 0
|
||||
THEN
|
||||
-- Er is een kostenplaats gevonden.
|
||||
-- De limiet periode van de kostenplaatsgroep overruled die van de kostenplaats indien ingevuld.
|
||||
SELECT CASE COALESCE(kg.prs_kostenplaatsgrp_limperiode, 0) -- Indien kostenplaats geen kostenplaatsgroep heeft dan ook "Geen" en eigen limietperiode van de kostenplaats nemen.
|
||||
WHEN 0 -- Geen.
|
||||
THEN k.prs_kostenplaats_limietperiode
|
||||
ELSE kg.prs_kostenplaatsgrp_limperiode -- Maand of Jaar.
|
||||
END limietperiode
|
||||
INTO l_kp_limietperiode
|
||||
FROM prs_kostenplaats k
|
||||
, prs_kostenplaatsgrp kg
|
||||
WHERE k.prs_kostenplaatsgrp_key = kg.prs_kostenplaatsgrp_key(+)
|
||||
AND k.prs_kostenplaats_key = p_kp_key;
|
||||
|
||||
IF l_kp_limietperiode = 1
|
||||
THEN
|
||||
l_periode := 'MM'; -- Maandelijks budget.
|
||||
ELSIF l_kp_limietperiode = 2
|
||||
THEN
|
||||
l_periode := 'YYYY'; -- Jaarlijks budget.
|
||||
ELSE
|
||||
l_periode := NULL;
|
||||
END IF;
|
||||
|
||||
SELECT COALESCE(SUM(totaalbedrag), 0) - COALESCE(SUM(korting), 0) + COALESCE(SUM(levkosten), 0) budgetbesteld
|
||||
INTO l_budgetbesteld
|
||||
FROM (SELECT SUM(totaalbedrag) totaalbedrag
|
||||
, SUM(b.bes_bestelling_korting) korting
|
||||
, SUM(b.bes_bestelling_levkosten) levkosten
|
||||
FROM (SELECT SUM (boi.bes_bestelopdr_item_aantal * boi.bes_bestelopdr_item_prijs) totaalbedrag
|
||||
, b.bes_bestelling_key
|
||||
FROM bes_bestelling b
|
||||
, bes_bestelling_item bi
|
||||
, bes_bestelopdr_item boi
|
||||
, bes_bestelopdr bo
|
||||
, bes_srtdeel bsd
|
||||
, bes_srtgroep bsg
|
||||
, bes_discipline bd
|
||||
, bes_disc_params bdp
|
||||
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
|
||||
AND bi.bes_bestelopdr_item_key = boi.bes_bestelopdr_item_key
|
||||
AND boi.bes_bestelopdr_key = bo.bes_bestelopdr_key
|
||||
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
|
||||
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
|
||||
AND bsg.ins_discipline_key = bd.ins_discipline_key
|
||||
AND bsg.ins_discipline_key = bdp.bes_ins_discipline_key
|
||||
AND bdp.bes_disc_params_pgb IN (2, 3) -- Alleenn agb meetellen: 2 = Alleen agb, 3 = Beiden, pgb en agb.
|
||||
AND b.prs_kostenplaats_key = p_kp_key
|
||||
-- Alleen bestellingopdrachten in de behandelings fase (In bestelling (Bevestigd)(4)) en in de gereed fase (Geleverd(6) en Verwerkt(7)).
|
||||
-- Afgewezen(1), In behandeling(3), Ter bevestiging(5) en Geannuleerd(8) doen niet mee in de bepaling van geraamde en definitieve kosten.
|
||||
AND bo.bes_bestelopdr_status IN (4, 6, 7)
|
||||
AND ((l_kp_limietperiode IS NOT NULL AND b.bes_bestelling_datum >= TRUNC (SYSDATE, l_periode))
|
||||
OR (l_kp_limietperiode IS NULL)) -- De eerste van de deze maand of 1 januari dit jaar
|
||||
GROUP BY b.bes_bestelling_key) tot
|
||||
, bes_bestelling b
|
||||
WHERE b.bes_bestelling_key = tot.bes_bestelling_key);
|
||||
END IF;
|
||||
|
||||
RETURN l_budgetbesteld;
|
||||
END;
|
||||
|
||||
END bes;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user