YASK#87785 Notificatie voor offerte verzoeken toegevoegd.
svn path=/Customer/trunk/; revision=68311
This commit is contained in:
137
VBXX/vbxx.sql
137
VBXX/vbxx.sql
@@ -671,6 +671,8 @@ AS
|
||||
v_perslid_naam_goedkeur VARCHAR2 (100);
|
||||
v_locatie_key alg_locatie.alg_locatie_key%TYPE;
|
||||
v_funccodegk_kenmerk_key fin_kenmerk.fin_kenmerk_key%TYPE;
|
||||
v_contract_key NUMBER(10);
|
||||
v_contract_mngr_key NUMBER(10);
|
||||
v_funccodegk VARCHAR2(10);
|
||||
v_new_funccodegk VARCHAR2(10);
|
||||
v_ggk_bedrag NUMBER(12,2);
|
||||
@@ -689,15 +691,35 @@ AS
|
||||
|
||||
v_errorhint := 'Bepaal factuurbedrag en goedkeurder.';
|
||||
-- De goedkeurder gebruiken we later om te kijken of deze de factuur al heeft goedgekeurd
|
||||
SELECT fin_factuur_statuses_key, fin_factuur_totaal, prs_perslid_key_goedkeur
|
||||
INTO v_factuur_statuses_key, v_factuur_totaal, v_perslid_key_goedkeur
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
SELECT f.fin_factuur_statuses_key, f.fin_factuur_totaal, f.prs_perslid_key_goedkeur, f.cnt_contract_key, c.prs_perslid_key_eig
|
||||
INTO v_factuur_statuses_key, v_factuur_totaal, v_perslid_key_goedkeur, v_contract_key, v_contract_mngr_key
|
||||
FROM fin_factuur f, cnt_contract c
|
||||
WHERE f.cnt_contract_key = c.cnt_contract_key(+)
|
||||
AND fin_factuur_key = p_factuur_key;
|
||||
|
||||
-- Bij contracten gaat deze eerst langs de contract eigenaar.
|
||||
-- Nu kijken we of deze wel rechten op FINGOE heeft. Anders kan deze niet de goedkeurder worden.
|
||||
-- Dan volgen we maar het normale pad en moet de Facility manager goedkeuren.
|
||||
IF v_contract_mngr_key IS NOT NULL
|
||||
THEN
|
||||
SELECT count(*)
|
||||
INTO v_count
|
||||
FROM fac_v_webgebruiker g, fac_functie f
|
||||
WHERE g.prs_perslid_key = v_contract_mngr_key
|
||||
AND g.fac_functie_key = f.fac_functie_key
|
||||
AND f.fac_functie_code = 'WEB_FINGOE';
|
||||
|
||||
-- Als de factuurstatus ingevoerd is hoeven we nog niets te doen. De factuur moet eerst gefiatteerd worden door iemand
|
||||
IF v_count = 0
|
||||
THEN
|
||||
v_contract_mngr_key := NULL;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Als de factuurstatus incompleet of ingevoerd is hoeven we nog niets te doen. De factuur moet eerst gefiatteerd worden door iemand
|
||||
-- met FINBOF rechten.
|
||||
IF v_factuur_statuses_key = 2 -- ingevoerd
|
||||
-- Dat geldt echter niet voor contracten die goedgekeurd moeten worden. Deze worden automatisch naar status ter goedkeuring gezet
|
||||
-- en de contracteigenaar moet dan als eerste goedkeuren.
|
||||
IF v_factuur_statuses_key = 3 OR (v_factuur_statuses_key = 2 AND v_contract_mngr_key IS NULL) -- incompleet of ingevoerd
|
||||
THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
@@ -756,7 +778,9 @@ AS
|
||||
v_funccodegk := FLX.getflex ('FIN', v_funccodegk_kenmerk_key, p_factuur_key);
|
||||
dbms_output.put_line ('v_funccodegk:' || v_funccodegk);
|
||||
|
||||
CASE WHEN v_funccodegk IS NULL THEN v_ggk_bedrag := 15000; v_new_funccodegk := 'WEB_USER61';
|
||||
-- De contracteigenaar moet altijd als eerste de factuur goedkeuren ongeacht het bedrag. Hier gebruiken we WEB_FINGOE voor
|
||||
CASE WHEN v_funccodegk IS NULL AND v_contract_mngr_key IS NOT NULL THEN v_ggk_bedrag := 0; v_new_funccodegk := 'WEB_FINGOE';
|
||||
WHEN v_funccodegk IS NULL OR v_funccodegk = 'WEB_FINGOE' THEN v_ggk_bedrag := 15000; v_new_funccodegk := 'WEB_USER61';
|
||||
WHEN v_funccodegk = 'WEB_USER61' THEN v_ggk_bedrag := 50000; v_new_funccodegk := 'WEB_USER62';
|
||||
WHEN v_funccodegk = 'WEB_USER62' THEN v_ggk_bedrag := 100000; v_new_funccodegk := 'WEB_USER63';
|
||||
WHEN v_funccodegk = 'WEB_USER63' THEN v_ggk_bedrag := 300000; v_new_funccodegk := 'WEB_USER64';
|
||||
@@ -771,8 +795,14 @@ AS
|
||||
|
||||
IF v_factuur_totaal > v_ggk_bedrag
|
||||
THEN
|
||||
-- Nu de volgende in de reeks uitnodigen
|
||||
v_perslid_key_goedkeur := vbxx.get_first_aut_user(v_locatie_key, v_new_funccodegk);
|
||||
-- Als het om de eerste goedkeuring op een contract gaat dan moet deze eerst naar de contracteigenaar
|
||||
IF v_funccodegk IS NULL and v_contract_mngr_key IS NOT NULL
|
||||
THEN
|
||||
v_perslid_key_goedkeur := v_contract_mngr_key;
|
||||
ELSE
|
||||
-- Nu de volgende in de reeks uitnodigen
|
||||
v_perslid_key_goedkeur := vbxx.get_first_aut_user(v_locatie_key, v_new_funccodegk);
|
||||
END IF;
|
||||
dbms_output.put_line ('v_perslid_key_goedkeur: ' || v_perslid_key_goedkeur);
|
||||
|
||||
v_errorhint := 'Set status en goedkeurder';
|
||||
@@ -4070,6 +4100,89 @@ AS
|
||||
AND sn.fac_srtnotificatie_code = 'CUST91';
|
||||
|
||||
|
||||
--
|
||||
-- Notificatie naar de personen die offertes mogen goedkeuren in het geval de laatste offerte van
|
||||
-- een melding recentelijk is afgemeld. We notificeren mensen met ORDOAP en ORDBOF rechten omdat ORDOAP
|
||||
-- rechten geen plaats scope hebben worden ook de ORDBOF leesrechten meegenomen.
|
||||
-- We kijken naar meldingen waar geen openstaande offerteopdracht is.
|
||||
CREATE OR REPLACE VIEW vbxx_v_noti_offerte_goedk
|
||||
(
|
||||
sender,
|
||||
receiver,
|
||||
text,
|
||||
code,
|
||||
key,
|
||||
xkey
|
||||
)
|
||||
AS
|
||||
WITH
|
||||
oap_rechten
|
||||
AS
|
||||
(SELECT gg.prs_perslid_key, ins_discipline_key, gr.fac_gebruiker_alg_level_read alg_level_read
|
||||
FROM fac_functie f,
|
||||
fac_groeprechten gr,
|
||||
fac_groep g,
|
||||
fac_gebruikersgroep gg
|
||||
WHERE f.fac_functie_code = 'WEB_ORDBOF'
|
||||
AND f.fac_functie_key = gr.fac_functie_key
|
||||
AND gr.fac_groep_key = g.fac_groep_key
|
||||
AND g.fac_groep_key = gg.fac_groep_key
|
||||
AND (gg.prs_perslid_key, gr.ins_discipline_key) IN
|
||||
(SELECT gg1.prs_perslid_key, gr1.ins_discipline_key
|
||||
FROM fac_functie f1,
|
||||
fac_groeprechten gr1,
|
||||
fac_groep g1,
|
||||
fac_gebruikersgroep gg1
|
||||
WHERE f1.fac_functie_code = 'WEB_ORDOAP'
|
||||
AND f1.fac_functie_key = gr1.fac_functie_key
|
||||
AND gr1.fac_groep_key = g1.fac_groep_key
|
||||
AND g1.fac_groep_key = gg1.fac_groep_key)),
|
||||
ftracking
|
||||
AS
|
||||
( SELECT o.mld_melding_key
|
||||
FROM fac_tracking ft,
|
||||
fac_srtnotificatie fsn,
|
||||
mld_opdr o,
|
||||
mld_typeopdr ot
|
||||
WHERE fsn.fac_srtnotificatie_key = ft.fac_srtnotificatie_key
|
||||
AND fac_tracking_refkey = o.mld_opdr_key
|
||||
AND o.mld_typeopdr_key = ot.mld_typeopdr_key
|
||||
AND ot.mld_typeopdr_isofferte = 1
|
||||
AND fac_srtnotificatie_code = 'ORDAFM'
|
||||
AND ft.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
|
||||
- fac_notificatie_job_interval / 24
|
||||
FROM fac_notificatie_job
|
||||
WHERE fac_notificatie_job_view = 'VBXX_V_NOTI_OFFERTE_GOEDK')
|
||||
AND (SELECT fac_notificatie_job_nextrun
|
||||
FROM fac_notificatie_job
|
||||
WHERE fac_notificatie_job_view = 'VBXX_V_NOTI_OFFERTE_GOEDK')
|
||||
AND o.mld_statusopdr_key = 6
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM mld_opdr o2, mld_typeopdr ot2
|
||||
WHERE o2.mld_typeopdr_key = ot2.mld_typeopdr_key
|
||||
AND ot2.mld_typeopdr_isofferte = 1
|
||||
AND o2.mld_statusopdr_key = 5
|
||||
AND o.mld_melding_key = o2.mld_melding_key)
|
||||
GROUP BY o.mld_melding_key)
|
||||
SELECT NULL,
|
||||
oap.prs_perslid_key,
|
||||
'Offerte(s) m.b.t. melding ' || m.mld_melding_key || ' zijn afgemeld en dienen beoordeeld te worden',
|
||||
'CUST92',
|
||||
m.mld_melding_key,
|
||||
NULL
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding std,
|
||||
oap_rechten oap,
|
||||
ftracking ft2,
|
||||
fac_v_my_locations ml
|
||||
WHERE m.mld_melding_key = ft2.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = oap.ins_discipline_key
|
||||
AND alg_level_read = ml.niveau
|
||||
AND ml.prs_perslid_key = oap.prs_perslid_key
|
||||
AND ml.alg_locatie_key = m.mld_alg_locatie_key;
|
||||
|
||||
--
|
||||
-- INKOOPFACTUREN RICHTING EXACT
|
||||
--
|
||||
@@ -4881,7 +4994,7 @@ AS
|
||||
nietdoorbelasten,
|
||||
o.mld_opdr_key,
|
||||
l.alg_district_key,
|
||||
l.alg_locatie_key fclt_x_locatie,
|
||||
l.alg_locatie_key fclt_3d_locatie_key,
|
||||
COALESCE(kso.prs_kostensoort_oms, ksm.prs_kostensoort_oms) opdracht_nen_code,
|
||||
COALESCE(kso.prs_kostensoort_refcode, ksm.prs_kostensoort_refcode) opdracht_nen_exact_code,
|
||||
COALESCE(kso.prs_kostensoort_opmerking, ksm.prs_kostensoort_opmerking) opdracht_nen_omschrijving,
|
||||
@@ -5747,7 +5860,7 @@ BEGIN
|
||||
|
||||
-- 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)
|
||||
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
|
||||
@@ -5775,6 +5888,7 @@ BEGIN
|
||||
fac.trackaction ('FINUPD', rec.fin_factuur_key, v_perslid_key, NULL, v_aanduiding);
|
||||
|
||||
END;
|
||||
vbxx.fin_set_approver(rec.fin_factuur_key);
|
||||
END LOOP;
|
||||
|
||||
-- We gaan nu beginnen met het verder verwerken van de factuur..
|
||||
@@ -5870,6 +5984,7 @@ BEGIN
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user