UWVA#36431 Passend mandaat opzoeken in organisatieboom savepoint

svn path=/Database/trunk/; revision=34962
This commit is contained in:
Jos Groot Lipman
2017-08-16 14:01:38 +00:00
parent 2de38b9662
commit dbd008f16b
3 changed files with 121 additions and 116 deletions

View File

@@ -40,6 +40,10 @@ AS
FUNCTION getfactuurkostenplaats (pfactuur_key IN NUMBER)
RETURN NUMBER;
FUNCTION getfiatteur (pfactuur_key IN NUMBER,
pexcludekey IN NUMBER DEFAULT NULL)
RETURN NUMBER;
FUNCTION sprintf (ps IN VARCHAR2 , p_factuur_key IN NUMBER) RETURN VARCHAR2;
END fin;
/
@@ -904,6 +908,7 @@ AS
END;
-- zoek de kostenplaats van een (gekoppelde) factuur op
-- Bij voorkeur niet meer gebruiken sinds v2017.2
FUNCTION getfactuurkostenplaats (pfactuur_key IN NUMBER)
RETURN NUMBER
IS
@@ -948,6 +953,62 @@ AS
RETURN kpkey;
END;
-- zoek de fiatteur van een (gekoppelde) factuur op
-- -1 als niet gevonden
FUNCTION getfiatteur (pfactuur_key IN NUMBER,
pexcludekey IN NUMBER DEFAULT NULL)
RETURN NUMBER
IS
c_key fin_factuur.cnt_contract_key%TYPE;
b_key fin_factuur.bes_bestelopdr_key%TYPE;
o_key fin_factuur.mld_opdr_key%TYPE;
ftot fin_factuur.fin_factuur_totaal%TYPE;
ftotb fin_factuur.fin_factuur_totaal_btw%TYPE;
kpkey prs_kostenplaats.prs_kostenplaats_key%TYPE;
ldisckey ins_tab_discipline.ins_discipline_key%TYPE;
kskey prs_kostensoort.prs_kostensoort_key%TYPE;
linclbtw prs_kostensoort.prs_kostensoort_btw%TYPE;
lbedrag fin_factuur.fin_factuur_totaal%TYPE;
BEGIN
SELECT mld_opdr_key, cnt_contract_key, bes_bestelopdr_key, fin_factuur_totaal, fin_factuur_totaal_btw
INTO o_key, c_key, b_key, ftot, ftotb
FROM fin_factuur
WHERE fin_factuur_key = pfactuur_key;
CASE
WHEN b_key IS NOT NULL
THEN
SELECT MAX (b.prs_kostenplaats_key)
INTO kpkey
FROM bes_bestelopdr_item boi, bes_bestelling_item bbi, bes_bestelopdr bo, bes_bestelling b
WHERE bbi.bes_bestelling_key = b.bes_bestelling_key
AND boi.bes_bestelopdr_item_key = bbi.bes_bestelopdr_item_key
AND bo.bes_bestelopdr_key = boi.bes_bestelopdr_key
AND boi.bes_bestelopdr_key = b_key;
WHEN c_key IS NOT NULL
THEN
SELECT c.prs_kostenplaats_key
INTO kpkey
FROM cnt_contract c
WHERE cnt_contract_key = c_key;
WHEN o_key IS NOT NULL
THEN
SELECT COALESCE (o.prs_kostenplaats_key, m.prs_kostenplaats_key)
INTO kpkey
FROM mld_opdr o, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key AND mld_opdr_key = o_key;
ELSE
RETURN -1;
END CASE;
IF linclbtw = 1 THEN
lbedrag := ftot + ftotb;
ELSE
lbedrag := ftot;
END IF;
RETURN prs.getfiatteur(kpkey, pexcludekey, lbedrag, ldisckey);
END;
FUNCTION sprintf (ps IN VARCHAR2 , p_factuur_key IN NUMBER)
RETURN VARCHAR2

View File

@@ -36,7 +36,7 @@ CREATE_VIEW(fac_v_noti_finreminder,0)
AS
SELECT 'FININF',
'',
prs.getkpverantwoordelijke (fin.getfactuurkostenplaats (f.fin_factuur_key), fac.getSetting('prs_approvemethod'), -1) budgethouder,
fin.getfiatteur(f.fin_factuur_key) budgethouder,
'Fiatteringsverzoek voor '
|| COUNT (f.fin_factuur_key)
|| DECODE (COUNT (f.fin_factuur_key), 1, ' factuur.', ' facturen.'),
@@ -45,10 +45,10 @@ AS
NULL,
NULL
FROM fin_factuur f
WHERE prs.getkpverantwoordelijke (fin.getfactuurkostenplaats (f.fin_factuur_key), fac.getSetting('prs_approvemethod'), -1) <> -1 -- die kan ik geen bericht sturen
WHERE fin.getfiatteur(f.fin_factuur_key) <> -1 -- die kan ik geen bericht sturen
AND f.fin_factuur_statuses_key = 2
AND f.fin_factuur_verwijder IS NULL
GROUP BY prs.getkpverantwoordelijke (fin.getfactuurkostenplaats (f.fin_factuur_key), fac.getSetting('prs_approvemethod'), -1);
GROUP BY fin.getfiatteur(f.fin_factuur_key);
-- Vooralsnog placeholders, moeten aangepast worden
CREATE_VIEW(fin_v_api_facturen, 1) AS SELECT * from fin_factuur;
@@ -156,11 +156,9 @@ AS
f.fin_factuur_opmerking,
(SELECT p.prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all p
WHERE prs_perslid_key = budgethouder)
WHERE prs_perslid_key = fin.getfiatteur(f.fin_factuur_key))
budgethouder
FROM (SELECT prs.getkpverantwoordelijke (prs_kostenplaats_key, 2, -1) budgethouder, f.*
FROM (SELECT fin.getfactuurkostenplaats (f.fin_factuur_key) prs_kostenplaats_key, f.*
FROM fin_factuur f) f) f,
FROM fin_factuur f,
prs_kostenplaats k,
mld_opdr o,
mld_melding m,
@@ -172,7 +170,7 @@ AS
bes_bestelopdr bo,
prs_kostensoort ks,
fin_factuur_statuses fs
WHERE f.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
WHERE fin.getfactuurkostenplaats(f.fin_factuur_key) = k.prs_kostenplaats_key(+)
AND f.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND f.mld_opdr_key = o.mld_opdr_key(+)
AND o.mld_melding_key = m.mld_melding_key(+)