Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1273 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde Pessoal, 

  Analisando o manual EFD-ICMS/IPI – Versão 3.0.6, identifiquei na página 307 o seguinte:

Para o Perfil A os registros C180 e C181, operações de entrada, até então pode ser informado no meu entendimento, porém no arquivo ACBrEFDBloco_C_Class, nos métodos "TBloco_C.WriteRegistroC180()" e "TBloco_C.WriteRegistroC181()", temos a seguinte validação:

if FBloco_0.Registro0000.IND_PERFIL in [pfPerfilA] then
  Check(False, 'O RegistroC181, não deve ser gerado em movimentações de saída, no %s, conforme ATO COTEPE 09/08', ['PerfilA']);

Gostaria de ver se alguém mais teve o mesmo entendimento. Se sim, poderíamos passar o objeto RegC100 para os métodos "TBloco_C.WriteRegistroC180()" e "TBloco_C.WriteRegistroC181()", e verificar se é uma operação de saída e for perfil A, levantamos a exceção!

LogoACBr_02.png.d3c72a4756f896a387e063fd64ed6646.png Frederico Westphalen - RS
pbnew.com.br  
[email protected]  
55 3744 - 3880  
Postado

Boa tarde Juliomar,

  Concordo! Efetuei esses tratamentos pelos códigos "RS" nos métodos TBloco_C.WriteRegistroC181() e TBloco_C.WriteRegistroC185() por causa do Validador do SPED ICMS/IPI, em alguns casos dependendo do código não pode ser enviado o valor 0 (zero), e sim o caractere delimitador. Pelo fato de estar corrido acabei fazendo o tratamento diretamente nos métodos. Uma solução seria alterarmos essas propriedades para o tipo Variant, com isso possibilitamos efetuar o tratamento pela aplicação.

Efetuei uma melhoria nesses métodos, segue em anexo o arquivo.

ACBrEFDBloco_C_Class.pas

LogoACBr_02.png.d3c72a4756f896a387e063fd64ed6646.png Frederico Westphalen - RS
pbnew.com.br  
[email protected]  
55 3744 - 3880  
  • 2 semanas depois ...
  • 2 semanas depois ...
  • Consultores
Postado
Em 25/01/2021 at 15:35, Rômulo da Costa de Souza disse:

Boa tarde Juliomar,

  Concordo! Efetuei esses tratamentos pelos códigos "RS" nos métodos TBloco_C.WriteRegistroC181() e TBloco_C.WriteRegistroC185() por causa do Validador do SPED ICMS/IPI, em alguns casos dependendo do código não pode ser enviado o valor 0 (zero), e sim o caractere delimitador. Pelo fato de estar corrido acabei fazendo o tratamento diretamente nos métodos. Uma solução seria alterarmos essas propriedades para o tipo Variant, com isso possibilitamos efetuar o tratamento pela aplicação.

Efetuei uma melhoria nesses métodos, segue em anexo o arquivo.

ACBrEFDBloco_C_Class.pas 150 kB · 2 downloads

Muito obrigado pela contribuição. Realmente a validação dos registros C180 e C181 estavam incompletos.
Fiz a implementação das validações baseada nela.

Subi as alterações relacionadas a isso para o SVN na Revisão  21368. Mas não subi nenhuma das outras alterações.

Sobre a questão de campos que podem tanto ficar vazios ou serem preenchidos com algum valor nulo (como zero ou espaço). O padrão dos componentes atualmente é usar como tipo de campo "Variant". Caso queira enviar correções nesse sentido, peço que por favor inicie um novo tópico. Pode ter uma ideia de implementar analisando o Registro C815.

Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 2 semanas depois ...
Postado
Em 15/02/2021 at 15:18, EMBarbosa disse:

Muito obrigado pela contribuição. Realmente a validação dos registros C180 e C181 estavam incompletos.
Fiz a implementação das validações baseada nela.

Subi as alterações relacionadas a isso para o SVN na Revisão  21368. Mas não subi nenhuma das outras alterações.

Sobre a questão de campos que podem tanto ficar vazios ou serem preenchidos com algum valor nulo (como zero ou espaço). O padrão dos componentes atualmente é usar como tipo de campo "Variant". Caso queira enviar correções nesse sentido, peço que por favor inicie um novo tópico. Pode ter uma ideia de implementar analisando o Registro C815.

Queira por favor atualizar, testar e reportar qualquer problema.

Mais uma vez obrigado.

Bom dia,

  Certo, quando atualizarmos os fontes farei o teste, e logo em seguido devolvo o feedback!

Obrigado!

LogoACBr_02.png.d3c72a4756f896a387e063fd64ed6646.png Frederico Westphalen - RS
pbnew.com.br  
[email protected]  
55 3744 - 3880  
  • 3 meses depois ...
Postado

Boa tarde @EMBarbosa,

  Atualizei meus fontes, estou na revisão 21927, identifiquei a mudança do método LFill() pelo DFill(), nos métodos WriteRegistroC181() e WriteRegistroC185(), porém foi definido o parâmetro do decimal com o valor zero(0). Peço que ignore a linha 1246 do método WriteRegistroC100().

   Apenas para comentar essa troca do método LFill() pelo DFill(), pode ser que em alguns casos funcione. Porém a definição de gerar com o valor em branco ou zerado, para alguns campos depende do código do motivo da restituição, acredito que a melhor solução seria extrair essa definição do valor do campo para fora do componente. Quem sabe definir essas propriedades como Variant, conforme foi comentado  anteriormente.

image.thumb.png.1d4d2509520d8ff7f7dc3f42fbe04c84.png

 

Obrigado pela Atenção!

ACBrEFDBloco_C_Class.pas

LogoACBr_02.png.d3c72a4756f896a387e063fd64ed6646.png Frederico Westphalen - RS
pbnew.com.br  
[email protected]  
55 3744 - 3880  
  • Consultores
  • Solution
Postado
Em 26/05/2021 at 18:04, Rômulo da Costa de Souza disse:

Boa tarde @EMBarbosa,

  Atualizei meus fontes, estou na revisão 21927, identifiquei a mudança do método LFill() pelo DFill(), nos métodos WriteRegistroC181() e WriteRegistroC185(), porém foi definido o parâmetro do decimal com o valor zero(0). Peço que ignore a linha 1246 do método WriteRegistroC100().

ACBrEFDBloco_C_Class.pas 148 kB · 0 downloads

Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
Subi as alterações para o SVN na Revisão  21980.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.

 

Em 26/05/2021 at 18:04, Rômulo da Costa de Souza disse:

Apenas para comentar essa troca do método LFill() pelo DFill(), pode ser que em alguns casos funcione. Porém a definição de gerar com o valor em branco ou zerado, para alguns campos depende do código do motivo da restituição, acredito que a melhor solução seria extrair essa definição do valor do campo para fora do componente. Quem sabe definir essas propriedades como Variant, conforme foi comentado  anteriormente.

A saída é realmente mudar esses campos que podem ou não ser vazios para Variant. Existem outros campos assim.

Se desejar fazer a implementação fique a vontade que vamos avaliar.

Mais uma vez obrigado.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 1273 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.