25 lines
699 B
PL/PgSQL
25 lines
699 B
PL/PgSQL
CREATE OR REPLACE FUNCTION invoiceWriteOff
|
|
(
|
|
p_C_Invoice_ID NUMERIC
|
|
)
|
|
RETURNS numeric AS $body$
|
|
DECLARE
|
|
v_Amount NUMERIC;
|
|
v_ClientId C_Invoice.AD_Client_ID%TYPE;
|
|
custom_function AD_SysConfig.Value%TYPE;
|
|
command VARCHAR(1000);
|
|
BEGIN
|
|
SELECT AD_Client_ID INTO v_ClientId FROM C_Invoice WHERE C_Invoice_ID=p_C_Invoice_ID;
|
|
custom_function := get_Sysconfig('PAYSELECTION_CUSTOM_INVOICEWRITEOFF_FUNCTION', '', v_ClientId, 0);
|
|
IF LENGTH(custom_function) > 0
|
|
THEN
|
|
command := 'SELECT '||custom_function||'('||p_C_Invoice_ID||')';
|
|
EXECUTE command INTO v_Amount;
|
|
ELSE
|
|
v_Amount := 0;
|
|
END IF;
|
|
RETURN v_Amount;
|
|
END;
|
|
$body$ LANGUAGE plpgsql STABLE;
|
|
|