Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Olá pessoal, tudo bem?

Depois que atualizei o ACBR para a revisão 42300 do dia 20/10/2025 começaram a ser apresentados alertas na validação de notas com ICMS monofásico.

Ao avaliar o problema, peguei como base a montagem da tag "pDIF" do grupo ICMS53. No meu sistema, configurei com 90, sendo que no XML monta "90.0000". Com isso, está tendo um alerta de que o campo tem o tamanho maior do que o preenchido.

Lá no ACBrNFe.XmlWriter.pas temos o trecho que monta a tag "pDif" no grupo do ICMS53 (Monofásico):

xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'pDif',
  01, 5, 0, NFe.Det[i].Imposto.ICMS.pDif, DSC_PDIF));

Nesse caso, o ACBr vai validar que o tamanho máximo do valor desse campo seja 5. Mas lá na NT, o tamanho do campo é "3v2-4", onde eu entendo que sejam 3 inteiros e de 2 a 4 decimais, podendo o tamanho do campo chegar até 7, e não 5.

image.thumb.png.13f304bc26eb253728f4320d42051b39.png

Nesse caso, não teria que fazer o mesmo tratamento que temos na montagem da tag "pICMS" por exemplo? Onde o tipo do campo é "FormatoValor4ou2" e o tamanho é montado dinamicamente:

xmlNode.AppendChild(AddNode(FormatoValor4ou2,
  'N16', 'pICMS', 01, IfThen(FpUsar_tcDe4, 07, 05), 1,
  NFe.Det[i].Imposto.ICMS.pICMS, DSC_PICMS));

Ou ainda na montagem da tag "pIBSUF"? Onde o tipo continua sendo "tcDe4" mas o tamanho está fixo em 7, permitindo 3 inteiras e 4 decimais:

Result.AppendChild(AddNode(tcDe4, 'UB18', 'pIBSUF', 1, 7, 1,
  IBSUF.pIBSUF, DSC_PIBSUF));

Me parece que isso resolveria. 

Só que não vi nenhuma modificação nisso recentemente, mas após atualizar o ACBr começou a apresentar essa validação de alerta quando tenho um pDif de 10% ou maior. Aí não estou entendendo como antes não estava apresentando esse alerta.

Alguém consegue me dizer se minha análise está errada e o que preciso fazer pra validar corretamente uma nota com pDif maior ou igual a 10%?

Vale lembrar que o pDif é só um exemplo, mas temos outros campos das 4 CST's do ICMS monofásico que também estão assim.

Estou anexando um XML que não consigo autorizar e também a NT em que me baseei para a análise.

Desde já agradeço pela ajuda.

NT2023.001v1.60-Tributação monofásica dos combustíveis.pdf 41251113284396000198550020000003121381083205-nfe.xml

  • 2 semanas depois ...
  • Consultores
Postado

Chegou a aplicar uma das mudanças e tentar emitir ?

viu se continuou o alerta?

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Olá Juliomar!

Sim, alterei o tamanho dos campos conforme o tamanho máximo que o manual permite. Com isso deixou de exibir os alertas e a nota foi autorizada.

Porém, percebi que foi feita uma modificação hoje mesmo pelo Ítalo, que corrige uma das tags (pDif). Então vou deixar aqui o trecho que código que modifiquei para que possa ser validado qual a melhor alternativa:

      case NFe.Det[i].Imposto.ICMS.CST of

        cst02 :
        begin
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'qBCMono',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'adRemICMS',
            01, 07, 1, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS));
          xmlNode.AppendChild(AddNode(tcDe2, 'N17', 'vICMSMono',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO));
        end;

        cst15 :
        begin
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'qBCMono',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'adRemICMS',
            01, 07, 1, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS));
          xmlNode.AppendChild(AddNode(tcDe2, 'N17', 'vICMSMono',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'qBCMonoReten',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMonoReten, DSC_QBCMONORETEN));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'adRemICMSReten',
            01, 07, 1, NFe.Det[i].Imposto.ICMS.adRemICMSReten, DSC_ADREMICMSRETEN));
          xmlNode.AppendChild(AddNode(tcDe2, 'N17', 'vICMSMonoReten',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMonoReten, DSC_VICMSMONORETEN));

          if NFe.Det[i].Imposto.ICMS.qBCMono <> 0 then
          begin
            xmlNode.AppendChild(AddNode(tcDe2, 'N15', 'pRedAdRem',
              01, 05, 1, NFe.Det[i].Imposto.ICMS.pRedAdRem, DSC_PREDADREM));
            xmlNode.AppendChild(AddNode(tcStr, 'N33b', 'motRedAdRem',
              01, 01, 1, motRedAdRemToStr(nfe.Det[i].Imposto.ICMS.motRedAdRem), DSC_MOTREDADREM));
          end;
        end;

        cst53 :
        begin
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'qBCMono',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'adRemICMS',
            01, 07, 0, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS));
          xmlNode.AppendChild(AddNode(tcDe2, 'N15', 'vICMSMonoOp',
            01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMonoOp, DSC_VICMSMONOOP));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'pDif',
            01, 07, 0, NFe.Det[i].Imposto.ICMS.pDif, DSC_PDIF));
          xmlNode.AppendChild(AddNode(tcDe2, 'N43', 'vICMSMonoDif',
            01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMonoDif, DSC_VICMSMONODIF));
          xmlNode.AppendChild(AddNode(tcDe2, 'N39', 'vICMSMono',
            01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO));
        end;

        cst61 :
        begin
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'qBCMonoRet',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMonoRet, DSC_QBCMONORET));
          xmlNode.AppendChild(AddNode(tcDe4, 'N15', 'adRemICMSRet',
            01, 07, 1, NFe.Det[i].Imposto.ICMS.adRemICMSRet, DSC_ADREMICMSRET));
          xmlNode.AppendChild(AddNode(tcDe2, 'N17', 'vICMSMonoRet',
            01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMonoRet, DSC_VICMSMONORET));
        end;
      end;

Qualquer dúvida estou à disposição!

  • Consultores
Postado

no caso anexe sua unit

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 5 meses depois ...

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...