23912 - O valor '- XX,XX' definido para o lançamento está negativo.
Problema: Descrição do Problema: Na integração contábil ocorre a seguinte mensagem de erro: O valor '-3.580,80' definido para o lançamento está negativo.
Rotina / Tela: F645CTB - Controladoria / Gestão de Contabilidade / Contabilidade / Integrações Contábeis
Solução:
Exemplo:
O valor da nota é 10.000,00 e os impostos são ICMS 1.700,00, PIS 165,00 e COFINS 760,00.
A nota fiscal possui vários rateios nos itens e possui um item lançados.
A forma de contabilização busca via regra o valor dos Rateios e busca dos itens os impostos para diminuir conforme regra em anexo.
Rotina / Tela: F645CTB - Controladoria / Gestão de Contabilidade / Contabilidade / Integrações Contábeis
Solução:
Solução: Verificando na regra parcial, a mesma faz cursor na tabela de itens corretamente, porém não faz o cálculo da proporção dos impostos em relação ao percentual do rateio.
Ajustamos a regra para o cenário atual conforme os exemplos disponibilizados no Ajuda da tela F048FCT (https://documentacao.senior.com.br/gestaoempresarialerp/5.8.11/index.htm#menu_cadastros/f048fct_regras.htm):
===============================================
Definir Cursor Cur_E440ipc;
Definir Alfa vcodsnf;
VCodEmp=E440Rat.CodEmp;
VCodFil=E440Rat.CodFil;
VCodFor=E440Rat.CodFor;
VNumNfc=E440Rat.NumNfc;
VCodSnf=E440Rat.CodSnf;
VSeqIpc=E440Rat.SeqIpc;
Cur_E440ipc.Sql Select VlrIcm, VlrPis, VlrCor,VlrLiq from E440IPC Where /
CodEmp = :VCodEmp And /
CodFil = :VCodFil And /
CodFor = :VCodFor And /
NumNfc = :VNumNfc And /
CodSnf = :VCodSnf And /
SeqIpc = :VSeqIpc;
Cur_E440ipc.AbrirCursor();
vVlrIcm=1;
vVlrPis=1;
vVlrCor=1;
vVlrLiq=1;
Se (Cur_E440ipc.Achou)
Inicio
vVlrIcm = Cur_E440ipc.VlrIcm;
vVlrPis = Cur_E440ipc.VlrPis;
vVlrCor = Cur_E440ipc.VlrCor;
vVlrLiq = Cur_E440ipc.VlrLiq;
Fim;
Se (GerTabNum[3] = 0)
Inicio
GerTabNum[3] = 1 ;
GerTabNum[1] = 0;
GerTabNum[2] = 0;
Fim
Cur_E440ipc.FecharCursor();
GerTabNum[1] = GerTabNum[1] + e440rat.vlrrat;
vlrdif = 0;
VVlrbas1 = vvlrbas1-((e440rat.vlrcta*((vVlrIcm+vVlrPis+vVlrCor)/vvlrliq))*(e440rat.perrat/100));
arredondarvalor(vvlrbas1,2);
GerTabNum[2] = GerTabNum[2] + vvlrbas1;
totrat = GerTabNum[1];
arredondarvalor(vvlrliq,2);
arredondarvalor(totrat,2);
se (vvlrliq = totrat)
Inicio
vlrdif = vvlrbru - GerTabNum[2];
GerTabNum[3] = 0;
Fim;
difaux = vlrdif;
se (vlrdif < 0)
vlrdif = (vlrdif * (-1));
se ((vlrdif > 0) e (vlrdif < 3))
vvlrbas1 = vvlrbas1 + difaux;
===============================================