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)


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

Recommended Posts

Postado (editado)

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
  • 2 meses depois ...
Postado

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
  • Administradores
Postado

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

  • Consultores
Postado

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

 

 

Postado
Em 16/05/2023 at 08:13, Alexandre de Paula disse:

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.

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

  • Consultores
Postado
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

 

 

Postado
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
  • Consultores
  • Solution
Postado

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

 

 

  • 2 semanas depois ...
Postado

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;

 

  • Moderadores
Postado

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_Transparent-02.png
 

 

  • Consultores
Postado

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

 

 

  • Este tópico foi criado há 531 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.