Bom Dia Caros Amigos da Comunidade,
Estou com um grande problema para gerar os Balancete da empresa, quando
coloco gerar, ele chega a levar um dia inteiro pra gerar o relatório de
um mês, preciso de uma luz, e ver por onde começa pra poder diminuir
esse tempo.
Segue Função do Balancete.
--Function: adempiere.acctbalance(numeric, numeric, numeric)
-- DROP FUNCTION adempiere.acctbalance(numeric, numeric, numeric);
CREATE OR REPLACE FUNCTION adempiere.acctbalance(
p_account_id numeric,
p_amtdr numeric,
p_amtcr numeric)
RETURNS numeric AS
$BODY$
DECLARE
v_balance NUMERIC;
v_AccountType C_ElementValue.AccountType%TYPE;
v_AccountSign C_ElementValue.AccountSign%TYPE;
BEGIN
v_balance := p_AmtDr - p_AmtCr;
--
IF (p_Account_ID > 0) THEN
SELECT AccountType, AccountSign
INTO v_AccountType, v_AccountSign
FROM C_ElementValue
WHERE C_ElementValue_ID=p_Account_ID;
-- DBMS_OUTPUT.PUT_LINE('Type=' || v_AccountType || ' - Sign='
|| v_AccountSign);
-- Natural Account Sign
IF (v_AccountSign='N') THEN
IF (v_AccountType IN ('A','E')) THEN
v_AccountSign := 'D';
ELSE
v_AccountSign := 'C';
END IF;
-- DBMS_OUTPUT.PUT_LINE('Type=' || v_AccountType || ' -
Sign=' || v_AccountSign);
END IF;
/* COMENTADO POR PABLO - CORREÇÃO DE SALDOS DO BALANCETE
-- Debit Balance
IF (v_AccountSign = 'C') THEN
v_balance := p_AmtCr - p_AmtDr;
END IF;
*/
END IF;
--
RETURN v_balance;
EXCEPTION WHEN OTHERS THEN
-- In case Acct not found
RETURN p_AmtDr - p_AmtCr;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION adempiere.acctbalance(numeric, numeric, numeric)
OWNER TO adempiere;
--
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral