Ir para conteúdo
  • Cadastre-se

dev botao

Registro C500 - Mensagem de Erro de validação Notas Fiscais de Energia Elétrica Eletrônicas (NF3e) (Modelo 66)


leandro.ledo
Ver Solução Respondido por Alexandre de Paula,
  • Este tópico foi criado há 338 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Ao gerar o registro C500, com documento do tipo Entrada Modelo 66 estão aparecendo as seguintes mensagens de validação:

Registro C500 : O código do modelo "66" não está na lista de valores válidos "[06, 28, 29]" !
Registro C500 : Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), os valores válidos são "[01, 02, 03, 04, 05, 06, 07, 08]". Se o modelo for 29 (água canalizada), o valor deve constar da Tabela 4.4.2 do Ato COTEPE/ICMS nº 09, de 18 de abril de 2008. !

Adicionei o teste abaixo no arquivo ACBrEFDBloco_C_Class.pas, no procedimento WriteRegistroC500:

 

      if UmRegC500.COD_MOD <> '66' then
      Begin
        // COD_MOD
        Check(MatchText(UmRegC500.COD_MOD, ['06', '28', '29']), 'Registro C500 : O código do modelo "%s" não está na lista de valores válidos "%s" !',
                                                     [UmRegC500.COD_MOD, '[06, 28, 29]']);
        // COD_CONS
        Check(funChecaCOD_CONS(UmRegC500.COD_MOD, UmRegC500.COD_CONS), 'Registro C500 : Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), ' +
                                                  'os valores válidos são "%s". Se o modelo for 29 (água canalizada), o valor deve ' +
                                                  'constar da Tabela 4.4.2 do Ato COTEPE/ICMS nº 09, de 18 de abril de 2008. !',
                                                  ['[01, 02, 03, 04, 05, 06, 07, 08]']);
      End;

 

Se alguém puder, verificar a possibilidade de incluir nos fontes..

ACBrEFDBloco_C_Class.pas

Editado por leandro.ledo
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...

estou com a mesma situação, mas acho que o mais adequado seria corrigir a validação e incluir o modelo 66 para o registro c500. de acordo com o que está no manual atualmente:

Campo 05 (COD_MOD) - Valores válidos: [06, 28, 29, 66] - Ver tabela reproduzida na subseção 1.4 deste guia

Também tive que fazer uma alteração na função "funChecaCOD_CONS" da unit ACBrTXTUtils Que estava setando o padrão do result como false quando na verdade o padrão deveria ser True, pois o campo COD_CONS não deve ser preenchido quando o modelo for 66

Fiz as modificações e vou colocar as units em anexo.

ACBrTXTUtils.pas ACBrEFDBloco_C_Class.pas

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn

TK-3918

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia @murilojcosta,

Poderia nos informar qual a versão da documentação utilizada para podermos validar?
Com as suas alterações você conseguiu enviar o arquivo?

Obrigado.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
13 minutos atrás, murilojcosta disse:

a documentação que vi foi a que está atualmente no repositório do acbr

Ótimo.. essa parte era apenas uma confirmação mesmo. estamos seguindo por ela também.

em relação ao envio, vc fez a geração com a sua alteração e conseguiu transmitir corretamente? Pergunto porque estamos validando também o layout do registro gerado.

Obrigado mais uma vez.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, Alexandre de Paula disse:

Ótimo.. essa parte era apenas uma confirmação mesmo. estamos seguindo por ela também.

em relação ao envio, vc fez a geração com a sua alteração e conseguiu transmitir corretamente? Pergunto porque estamos validando também o layout do registro gerado.

Obrigado mais uma vez.

Por enquanto só validamos no validador mesmo e deu tudo certo. Transmissão de fato será só mês que vem.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Contribuição adicionada ao repositório SVN na revisão 29509.

Agradecemos mais uma vez a contribuição @leandro.ledo e @murilojcosta!!!
 

  • Curtir 2
Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Dei uma revisada nas alterações e no meu entendimento a função funChecaCOD_CONS na unit ACBrTXTUtils não vai validar corretamente. Pelo o que eu entendi no manual o campo COD_CONS nem deve ser informado quando o tipo for 66. A função funChecaCOD_CONS Começa por padrão com result False, e depois testa o conteudo informado no COD_CONS de acordo com o tipo. Mas como o tipo 66 o conteudo do COD_CONS sempre vai ser passado como vazio, então do jeito que ficou iria estar validando errado. O que eu fiz foi somente alterar o Result padrão pra True e caso for dos modelos 06, 28 ou 29 ai sim valida se o conteudo é correto. se for o 66 nem deveria entrar nessa validacao pq ele não é preenchido.

image.png.0509c90c3a5f2176404d0a0dcae7adeb.png

função no repositório:

begin
   Result := False;
   // Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), os valores válidos são [01, 02, 03, 04, 05, 06, 07, 08]
   if MatchText(COD_MOD, ['06', '28', '66']) then
   begin
      Result := MatchText(COD_CONS, ListaEnergia);
   end
   else
   // Se o modelo for 29 (água  canalizada), o valor deve constar da Tabela 4.4.2
   if MatchText(COD_MOD, ['29']) then
   begin
      Result := MatchText(COD_CONS, ListaAgua);
   end;
end;

função que eu modifiquei:

begin
   Result := True;
   // Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), os valores válidos são [01, 02, 03, 04, 05, 06, 07, 08]
   if MatchText(COD_MOD, ['06', '28']) then
   begin
      Result := MatchText(COD_CONS, ListaEnergia);
   end
   else
   // Se o modelo for 29 (água  canalizada), o valor deve constar da Tabela 4.4.2
   if MatchText(COD_MOD, ['29']) then
   begin
      Result := MatchText(COD_CONS, ListaAgua);
   end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Sugestões favor anexar as units modificadas.

7 minutos atrás, murilojcosta disse:

Dei uma revisada nas alterações e no meu entendimento a função funChecaCOD_CONS na unit ACBrTXTUtils não vai validar corretamente. Pelo o que eu entendi no manual o campo COD_CONS nem deve ser informado quando o tipo for 66. A função funChecaCOD_CONS Começa por padrão com result False, e depois testa o conteudo informado no COD_CONS de acordo com o tipo. Mas como o tipo 66 o conteudo do COD_CONS sempre vai ser passado como vazio, então do jeito que ficou iria estar validando errado. O que eu fiz foi somente alterar o Result padrão pra True e caso for dos modelos 06, 28 ou 29 ai sim valida se o conteudo é correto. se for o 66 nem deveria entrar nessa validacao pq ele não é preenchido.

image.png.0509c90c3a5f2176404d0a0dcae7adeb.png

função no repositório:

begin
   Result := False;
   // Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), os valores válidos são [01, 02, 03, 04, 05, 06, 07, 08]
   if MatchText(COD_MOD, ['06', '28', '66']) then
   begin
      Result := MatchText(COD_CONS, ListaEnergia);
   end
   else
   // Se o modelo for 29 (água  canalizada), o valor deve constar da Tabela 4.4.2
   if MatchText(COD_MOD, ['29']) then
   begin
      Result := MatchText(COD_CONS, ListaAgua);
   end;
end;

função que eu modifiquei:

begin
   Result := True;
   // Se o modelo for 06 (energia elétrica) ou 28 (gás canalizado), os valores válidos são [01, 02, 03, 04, 05, 06, 07, 08]
   if MatchText(COD_MOD, ['06', '28']) then
   begin
      Result := MatchText(COD_CONS, ListaEnergia);
   end
   else
   // Se o modelo for 29 (água  canalizada), o valor deve constar da Tabela 4.4.2
   if MatchText(COD_MOD, ['29']) then
   begin
      Result := MatchText(COD_CONS, ListaAgua);
   end;
end;

 

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde @murilojcosta,

Fizemos uma nova atualização no SVN na rev. 29707.

Por favor, atualize seus fontes, reinstale os componentes e teste novamente para verificar se está tudo correto.

Se puder nos reportar os resultados agradecemos e obrigado mais uma vez pela contribuição!

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 338 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...