HEIN#67252 -- Preventief onderhoud facturen direct naar de goedkeurder.
svn path=/Customer/trunk/; revision=51954
This commit is contained in:
@@ -41,6 +41,8 @@ AS
|
||||
p_tag IN VARCHAR2,
|
||||
p_value IN VARCHAR2);
|
||||
|
||||
PROCEDURE fin_set_approver (p_factuur_key IN NUMBER);
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -266,6 +268,91 @@ AS
|
||||
|| xml.char_to_html(p_value)
|
||||
|| '</' || p_tag || '>');
|
||||
END;
|
||||
|
||||
PROCEDURE fin_set_approver (p_factuur_key IN NUMBER)
|
||||
AS
|
||||
v_count NUMBER;
|
||||
v_perslid_key_goedkeur fin_factuur.prs_perslid_key_goedkeur%TYPE;
|
||||
v_factuur_statuses_key fin_factuur.fin_factuur_statuses_key%TYPE;
|
||||
v_factuur_totaal fin_factuur.fin_factuur_totaal%TYPE;
|
||||
v_perslid_naam_goedkeur VARCHAR2 (100);
|
||||
v_opdr_key mld_opdr.mld_opdr_key%TYPE;
|
||||
v_contract_key cnt_contract.cnt_contract_key%TYPE;
|
||||
v_bestelopdr_key bes_bestelopdr.bes_bestelopdr_key%TYPE;
|
||||
v_srtdiscipline_key ins_tab_discipline.ins_srtdiscipline_key%TYPE;
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
BEGIN
|
||||
v_count := 0;
|
||||
|
||||
v_errorhint := 'Bepaal type factuur';
|
||||
-- Laten we eens eerst kijken of we het over een contract of een opdracht hebben
|
||||
SELECT mld_opdr_key, cnt_contract_key, bes_bestelopdr_key, fin_factuur_statuses_key, fin_factuur_totaal
|
||||
INTO v_opdr_key, v_contract_key, v_bestelopdr_key, v_factuur_statuses_key, v_factuur_totaal
|
||||
FROM fin_factuur
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
-- We kennen op dit moment nog geen functionaliteit voor contracten en bestelopdrachten
|
||||
IF v_opdr_key IS NOT NULL
|
||||
THEN
|
||||
|
||||
IF v_factuur_statuses_key = 2 -- ingevoerd
|
||||
THEN
|
||||
-- Opdrachten voor preventief onderhoud worden niet door de locatieverantwoordelijke
|
||||
-- personen goedgekeurd. Deze gaan direct naar Joost
|
||||
|
||||
v_errorhint := 'Controleer rechten opdracht';
|
||||
SELECT d.ins_srtdiscipline_key,
|
||||
f.prs_perslid_key_goedkeur,
|
||||
pf.prs_perslid_naam_friendly
|
||||
INTO v_srtdiscipline_key,
|
||||
v_perslid_key_goedkeur,
|
||||
v_perslid_naam_goedkeur
|
||||
FROM mld_opdr o, fin_factuur f, prs_v_perslid_fullnames_all pf,
|
||||
mld_melding m, mld_stdmelding std, ins_tab_discipline d
|
||||
WHERE f.mld_opdr_key = o.mld_opdr_key
|
||||
AND o.mld_melding_key = m.mld_melding_key
|
||||
AND m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND f.fin_factuur_key = p_factuur_key
|
||||
AND f.prs_perslid_key_goedkeur = pf.prs_perslid_key;
|
||||
|
||||
IF v_srtdiscipline_key = 41 -- preventief onderhoud
|
||||
THEN
|
||||
-- Als status van de factuur nog ingevoerd is dan zetten we de status naar Ter goedkeuring (5)
|
||||
v_errorhint := 'Zet de status naar Ter Goedkeuring';
|
||||
fac.trackaction (
|
||||
'FINFOK',
|
||||
p_factuur_key,
|
||||
3,
|
||||
NULL,
|
||||
'Expliciete goedkeuring door aangewezen goedkeurder: '
|
||||
|| v_perslid_naam_goedkeur);
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_statuses_key = 5
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
/* UPDATE fin_factuur
|
||||
SET prs_perslid_key_goedkeur = v_perslid_key_beh
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
*/
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.writelog ('YASK.fin_set_approver', 'E', v_errormsg || ' (' || p_factuur_key || ')' , v_errorhint);
|
||||
END;
|
||||
|
||||
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user