Ir para conteúdo
  • Cadastre-se

dev botao

Registros C180 e C181


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

Recommended Posts

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  
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Fiquei na dúvida  linha 2340

não está meio confuso o tratamento? e não estamos levando regras em que o software deve de agir e não o componente

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

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  
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Moderadores

Olá

volto a dizer que não concordo em colocar regra de negocio componente , deixar aberto para que pessoa faça o correto

falo desses dois trechos abaixo

image.png

image.png

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

  • 2 semanas depois ...
  • Consultores
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.
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
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  
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

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  
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
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.
Link para o comentário
Compartilhar em outros sites

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