Alex Heinen Postado Segunda as 18:26 Postado Segunda as 18:26 (editado) Boa tarde, Encontrei um caso nos eventos do CT-e que pode causar problemas no cancelamento quando o CNPJ é informado com máscara. Na unit ACBrCTe.EnvEvento, procedure Gerar_InfEvento, na linha 759, a forma de preencher a variável sDoc foi alterada. Antes: sDoc := OnlyNumber(Evento[Idx].InfEvento.CNPJ); Agora: sDoc := RemoverLiteralChave(Evento[Idx].InfEvento.CNPJ); Logo em seguida existe a validação: if Length(sDoc) = 14 then O problema é que, caso Evento[Idx].InfEvento.CNPJ esteja formatado (por exemplo, 18.899.945/0001-52), a função RemoverLiteralChave não remove a máscara, retornando o valor exatamente como foi informado. Com isso, Length(sDoc) deixa de ser 14 e o código acaba tratando o documento como CPF, gerando a tag <CPF> no XML em vez de <CNPJ>, o que resulta na rejeição pela SEFAZ. Ao analisar a função RemoverLiteralChave, observei que ela foi projetada para remover prefixos textuais (como em chaves iniciadas por "CTe" ou "NFe"), e não para sanitizar CPF/CNPJ. Na minha opinião, o comportamento anterior era o mais adequado quando cnpj era numérico agora, poderia ser utilizada a função OnlyAlphaNum (da unit ACBrUtil.Strings) para garantir que o documento contenha apenas os dígitos antes da validação. Essa alteração foi introduzida na revisão 46791. Segue em anexo o arquivo com a alteração proposta. ACBrCTe.EnvEvento.pas Editado Segunda as 18:34 por Alex Heinen
Consultores juliomar.marchetti Postado Terça as 01:11 Consultores Postado Terça as 01:11 Se for esse o caso então temos um grande problema pois em todos os locais se validar está assim. Creio que essa parte de validar o que passar seria do sistema e não do componente. no componente só deveria repassar. Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Consultores Solution Alexandre.Paula Postado Terça as 09:51 Consultores Solution Postado Terça as 09:51 Bom dia Alex, Obrigado pela observação e contribuição. A correção foi realizada. Apenas para informação estamos usando a função OnlyCPFCNPJAlphaNum para incluir a validação dos novos CNPJ alfanuméricos. At revision: 47168 1 Alexandre de Paula Gerente de Projetos Ajude o Projeto ACBr crescer - Assine o Clube PRO (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Alex Heinen Postado Terça as 13:20 Autor Postado Terça as 13:20 Bom Dia, @Alexandre de Paula, @Juliomar Marchetti Já peguei a alteração na revisão está ok, não tinha visto essa função OnlyCPFCNPJAlphaNum. Pode fechar a thread. Obrigado. 1
Consultores juliomar.marchetti Postado Terça as 13:32 Consultores Postado Terça as 13:32 Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br 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 !!
Recommended Posts