YKPN#88528 KPN functionaliteit is conditioneel gemaakt in de generieke factuurimport functie
svn path=/Customer/trunk/; revision=68838
This commit is contained in:
140
VBXX/vbxx.sql
140
VBXX/vbxx.sql
@@ -670,7 +670,9 @@ AS
|
||||
v_factuur_totaal fin_factuur.fin_factuur_totaal%TYPE;
|
||||
v_perslid_naam_goedkeur VARCHAR2 (100);
|
||||
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||||
v_regio_key alg_regio.alg_regio_key%TYPE;
|
||||
v_funccodegk_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE;
|
||||
v_kenmerk_fg alg_onrgoedkenmerk.alg_onrgoedkenmerk_waarde%TYPE;
|
||||
v_contract_key NUMBER(10);
|
||||
v_contract_mngr_key NUMBER(10);
|
||||
v_funccodegk VARCHAR2(10);
|
||||
@@ -682,11 +684,71 @@ AS
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
BEGIN
|
||||
-- Nu bepalen we de locatie van de factuur. Adh daarvan kunnen we bepalen wie hier rechten op heeft.
|
||||
v_errorhint := 'Bepaal locatie.';
|
||||
SELECT l.alg_locatie_key, d.alg_regio_key
|
||||
INTO v_locatie_key, v_regio_key
|
||||
FROM ( SELECT fc.fin_factuur_key, MIN (cs.cnt_alg_plaats_key) alg_gebouw_key
|
||||
FROM fin_factuur fc, cnt_contract_plaats cs
|
||||
WHERE fc.cnt_contract_key = cs.cnt_contract_key
|
||||
AND cnt_alg_plaats_code = 'G'
|
||||
AND cnt_contract_plaats_verwijder IS NULL
|
||||
GROUP BY fc.fin_factuur_key
|
||||
UNION ALL
|
||||
SELECT fo.fin_factuur_key, og.alg_gebouw_key
|
||||
FROM fin_factuur fo,
|
||||
mld_opdr o1,
|
||||
mld_melding m1,
|
||||
alg_v_allonroerendgoed og
|
||||
WHERE fo.mld_opdr_key = o1.mld_opdr_key
|
||||
AND o1.mld_melding_key = m1.mld_melding_key
|
||||
AND m1.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||||
UNION ALL
|
||||
SELECT fb.fin_factuur_key, MIN (g1.alg_gebouw_key) alg_gebouw_key
|
||||
FROM fin_factuur fb,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi,
|
||||
bes_bestelling b,
|
||||
alg_gebouw g1
|
||||
WHERE fb.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||||
AND b.mld_adres_key_lev = g1.mld_adres_key
|
||||
GROUP BY fb.fin_factuur_key) fg,
|
||||
alg_gebouw g,
|
||||
alg_locatie l,
|
||||
alg_district d
|
||||
WHERE fg.alg_gebouw_key = g.alg_gebouw_key
|
||||
AND g.alg_locatie_key = l.alg_locatie_key
|
||||
AND l.alg_district_key = d.alg_district_key
|
||||
AND fg.fin_factuur_key = p_factuur_key;
|
||||
|
||||
v_errorhint := 'Bepaal de instelling of we gaan goedkeuren op deze locatie.';
|
||||
BEGIN
|
||||
SELECT FLX.getflex ('ALG',
|
||||
k.alg_kenmerk_key,
|
||||
v_regio_key,
|
||||
'E',1)
|
||||
INTO v_kenmerk_fg
|
||||
FROM alg_kenmerk k
|
||||
WHERE alg_kenmerk_code = 'FACT_AUTO_GOEDKEUREN';
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_kenmerk_fg := 0;
|
||||
END;
|
||||
|
||||
-- Als er een match was op de factuur hoeven we niets te doen. We laten alleen facturen goedkeuren als er een mismatch
|
||||
-- in het verplichtingsbedrag is en het factuurbedrag.
|
||||
IF vbxx.matchfactuur(p_factuur_key) <> -1 AND 1=0 -- Voorlopig besloten dat alle facturen gecontroleerd moeten worden.
|
||||
IF vbxx.matchfactuur(p_factuur_key) <> -1 AND v_kenmerk_fg = 1 -- Als de factuur matched en 'Facturen zonder afwijking automatisch goedkeuren' staat aan bij de regio
|
||||
THEN
|
||||
RETURN;
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 5
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
-- Voeg tracking toe dat de factuur automatisch is goedgekeurd.
|
||||
fac.trackaction('FINGOE', p_factuur_key, NULL, NULL, NULL);
|
||||
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Bepaal factuurbedrag en goedkeurder.';
|
||||
@@ -734,40 +796,6 @@ AS
|
||||
AND t.prs_perslid_key = v_perslid_key_goedkeur
|
||||
AND t.fac_tracking_refkey = p_factuur_key;
|
||||
|
||||
-- Nu bepalen we de locatie van de factuur. Adh daarvan kunnen we bepalen wie hier rechten op heeft.
|
||||
v_errorhint := 'Bepaal locatie.';
|
||||
SELECT alg_locatie_key
|
||||
INTO v_locatie_key
|
||||
FROM ( SELECT fc.fin_factuur_key, MIN (cs.cnt_alg_plaats_key) alg_gebouw_key
|
||||
FROM fin_factuur fc, cnt_contract_plaats cs
|
||||
WHERE fc.cnt_contract_key = cs.cnt_contract_key
|
||||
AND cnt_alg_plaats_code = 'G'
|
||||
AND cnt_contract_plaats_verwijder IS NULL
|
||||
GROUP BY fc.fin_factuur_key
|
||||
UNION ALL
|
||||
SELECT fo.fin_factuur_key, og.alg_gebouw_key
|
||||
FROM fin_factuur fo,
|
||||
mld_opdr o1,
|
||||
mld_melding m1,
|
||||
alg_v_allonroerendgoed og
|
||||
WHERE fo.mld_opdr_key = o1.mld_opdr_key
|
||||
AND o1.mld_melding_key = m1.mld_melding_key
|
||||
AND m1.mld_alg_onroerendgoed_keys = og.alg_onroerendgoed_keys
|
||||
UNION ALL
|
||||
SELECT fb.fin_factuur_key, MIN (g1.alg_gebouw_key) alg_gebouw_key
|
||||
FROM fin_factuur fb,
|
||||
bes_bestelopdr_item boi,
|
||||
bes_bestelling_item bi,
|
||||
bes_bestelling b,
|
||||
alg_gebouw g1
|
||||
WHERE fb.bes_bestelopdr_key = boi.bes_bestelopdr_key
|
||||
AND boi.bes_bestelopdr_item_key = bi.bes_bestelopdr_item_key
|
||||
AND bi.bes_bestelling_key = b.bes_bestelling_key
|
||||
AND b.mld_adres_key_lev = g1.mld_adres_key
|
||||
GROUP BY fb.fin_factuur_key) fg,
|
||||
alg_gebouw g
|
||||
WHERE fg.alg_gebouw_key = g.alg_gebouw_key AND fg.fin_factuur_key = p_factuur_key;
|
||||
|
||||
v_errorhint := 'Bepaal kenmerk_key van FUNCCODEGK.';
|
||||
SELECT k.fin_kenmerk_key
|
||||
INTO v_funccodegk_kenmerk_key
|
||||
@@ -5864,21 +5892,26 @@ BEGIN
|
||||
AND f.fin_factuur_verwijder IS NULL
|
||||
AND f.fin_factuur_key <> rec.fin_factuur_key;
|
||||
|
||||
-- De beheerder van het contract gaat als eerste goedkeurder ingevuld worden.
|
||||
-- Tenminste als deze rechten heeft op WEB_FINGOE
|
||||
SELECT MAX(prs_perslid_key_eig)
|
||||
INTO v_perslid_key_beh
|
||||
FROM cnt_contract c, fac_v_webgebruiker g, fac_functie f
|
||||
WHERE c.prs_perslid_key_beh = g.prs_perslid_key
|
||||
AND g.fac_functie_key = f.fac_functie_key
|
||||
AND f.fac_functie_code = 'WEB_FINGOE'
|
||||
AND cnt_contract_key = rec.cnt_contract_key;
|
||||
|
||||
IF v_perslid_key_beh IS NOT NULL
|
||||
-- Bij YKPN wordt de beheerder van het contract als eerste goedkeurder aangewezen.
|
||||
-- Voor de andere omgevingen wordt dit in het fin_set_approver proces uitgezocht.
|
||||
IF vbxx.get_user = 'YKPN'
|
||||
THEN
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
-- De beheerder van het contract gaat als eerste goedkeurder ingevuld worden.
|
||||
-- Tenminste als deze rechten heeft op WEB_FINGOE
|
||||
SELECT MAX(prs_perslid_key_beh)
|
||||
INTO v_perslid_key_beh
|
||||
FROM cnt_contract c, fac_v_webgebruiker g, fac_functie f
|
||||
WHERE c.prs_perslid_key_beh = g.prs_perslid_key
|
||||
AND g.fac_functie_key = f.fac_functie_key
|
||||
AND f.fac_functie_code = 'WEB_FINGOE'
|
||||
AND cnt_contract_key = rec.cnt_contract_key;
|
||||
|
||||
IF v_perslid_key_beh IS NOT NULL
|
||||
THEN
|
||||
UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||||
WHERE fin_factuur_key = rec.fin_factuur_key;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
@@ -5894,7 +5927,12 @@ BEGIN
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding);
|
||||
|
||||
END;
|
||||
vbxx.fin_set_approver(rec.fin_factuur_key);
|
||||
|
||||
-- Bij YKPN gaan we nog niet het generieke proces af trappen.
|
||||
IF vbxx.get_user <> 'YKPN'
|
||||
THEN
|
||||
vbxx.fin_set_approver(rec.fin_factuur_key);
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||||
|
||||
Reference in New Issue
Block a user