ERP – Zeramento – Como a rotina de zeramento faz a consistência e o agrupamento em relação aos lançamentos contábeis e rateios
Dúvida
Como a rotina de zeramento faz a consistência e o agrupamento em relação aos lançamentos contábeis e rateios no módulo Gestão de Contabilidade?
Solução
A rotina de zeramento faz um agrupamento dos valores. É levado em consideração neste agrupamento os campos TEMRAT (lançamentos com rateio) e TEMAUX (lançamentos com composição auxiliar). Para melhor entendimento, será demonstrado através de um exemplo:
1. Na filial 1 existe um lançamento na conta 3030 cujo valor e o rateio estão zerados:
1.1 No zeramento da filial 1, a conta contábil, apesar de ter um lançamento zerado, ainda possui saldo a ser zerado:
1.2 O SELECT feito pela rotina nesse cenário da filial 1 é:
SELECT CODCCU, SUM(VLRRAT) AS VLRRAT FROM E640RAT WHERE CODEMP = 1 AND FILRAT = 1 AND DATLCT >= '01/01/2022' AND DATLCT <= '31/12/2022' AND CTARED = 3030 AND DEBCRE = 'C' AND SITRAT = 2 AND EXISTS ( SELECT 1 FROM E640LCT WHERE CODEMP = 1 AND CODFIL = 1 AND CTACRE = 3030 AND DATLCT >= '01/01/2022' AND DATLCT <= '31/12/2022' AND SITLCT = 2 AND ((TIPLCT=1) OR (TIPLCT=3)) AND TEMRAT = 1 AND TEMAUX = 0 AND NUMLCT = E640RAT.NUMLCT) GROUP BY CODCCU
Onde o resultado do agrupamento trouxe o VLRRAT zerado, pois com essa combinação de lançamentos, temos somente esse lançamento zerado:
2. Na filial 2 existe um lançamento na conta 5000 cujo valor está zerado, assim como o rateio:
2.1 No zeramento da filial 2, a conta apesar de ter um lançamento zerado, ainda possui saldo a ser zerado:
2.2 Ao processar, o zeramento é finalizado sem o erro:
2.3 O select feito pela rotina nesse cenário da filial 2 é:
SELECT CODCCU, SUM(VLRRAT) AS VLRRAT FROM E640RAT WHERE CODEMP = 1 AND FILRAT = 2 AND DATLCT >= '01/01/2022' AND DATLCT <= '31/12/2022' AND CTARED = 5000 AND DEBCRE = 'D' AND SITRAT = 2 AND EXISTS ( SELECT 1 FROM E640LCT WHERE CODEMP = 1 AND CODFIL = 2 AND CTADEB = 5000 AND DATLCT >= '01/01/2022' AND DATLCT <= '31/12/2022' AND SITLCT = 2 AND ((TIPLCT=1) OR (TIPLCT=3)) AND TEMRAT = 3 AND TEMAUX = 2 AND NUMLCT = E640RAT.NUMLCT) GROUP BY CODCCU
Onde o resultado trouxe um VLRRAT zerado e outro com valor, somando os dois fica o valor de 1600,00, por isso a rotina conseguiu processar o zeramento:
Importante:
Assim, o processamento correto do zeramento contábil dependerá da combinação desses selects e tabelas no momento de processar.