Ir para conteúdo
  • Cadastre-se

dev botao

Implementação De Leitura Do Arquivo Sped Pelo Componente


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

Recommended Posts

Bom dia pessoal.

 

Estamos precisando implementar a leitura de um arquivo SPED, mas o componente ainda não tem essa funcionalidade disponível.

 

Gostaria de saber se já tem alguém fazendo esse desenvolvimento, para que possa ajudar ou implementar tudo mesmo.

 

Estou precisando somente a leitura dos blocos 0200, c400, c405, c410, c420, c460 e c490 ... ou seja, basicamente leitura de produtos e cupons fiscais.

Mas acredito que desenvolvendo esses blocos, depois ficaria mais fácil para outras pessoas contribuirem para implementação do resto.

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

Acredito que a principal utilização seria integração de sistemas.

 

No meu caso específico eu tenho uma mesma empresas com dois sistemas diferentes, quero importar os dados do outro sistema para integrar com o meu, e então gerar um arquivo único do SPED, assim como ter um controle único de informações de vendas... por razões contratuais eles não podem trocar o outro sistema.

Acredito ser muito melhor desenvolver isto no layout do SPED do que implementar um layout específico.

 

Outro exemplo, seria possível importar dados de uma impressora fiscal para o sistema, pois a maioria gera dados no layout do SPED.

 

Acredito que tenha outras situações onde isto poderia ser útil, estou dando apenas dois exemplos.

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

Eu comecei a fazer a implementação da leitura. Gostaria que alguém do ACBR possa me confirmar se esta de acordo com a estrutura do ACBR.

 

Não foi implementado a leitura de todos os blocos ainda, se alguém tiver interesse em auxiliar é bastante simples implementar a leitura de cada bloco

 

Por enquanto só implementei a leitura de alguns registros 0200, c400, c405, c410, c420, c460 e c490 (os quais estou precisando no momento)

Não implementei nenhuma rotina de validação da estrutura ou dos dados em si

Implementei um log de erros com exceptions não tratadas

 

Alterações:

ACBRSpedFiscal implementei uma rotina para carregar o arquivo, e os blocos

ACBREFDBlocos: implementei algumas rotinas que estavam faltando do StrTo para os tipos específicos do ACBRSped

ACBrEFDBlocos.pas

ACBrSpedFiscal.pas

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Guilherme não deu muito pra ver o que foi feito, pois utilizou algum formatador de código deixando quase toda as duas units diferente do ACBr!

Tem como fazer a alteração mas sem usar o formatador e anexar a unit pra que possa olhar?

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

Acabei fazendo umas alterações da forma que implementei o código de carregamento, para ficar mais organizado.

 

Por enquanto só mudei o código do bloco 0.

Aproveitei para terminar a leitura de todos dados do bloco 0, pois não eram muitos.

 

Se estiver bom assim, faço a alteração para os outros blocos.

ACBrEFDBloco_0_Class.pas

ACBrEFDBlocos.pas

ACBrSpedFiscal.pas

  • Curtir 1

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Ola Guilherme, você implementou mais blocos ai? Estou precisando dos C e D... Se ja tivesse seria uma boa ajuda... Estou com um cliente que possui um sistema q gera o SPED com a ECF errada, a ideia seria pegar o SPED(txt) retirar o erro e adicionar os dados da ECF correta.

 

Estou implementando o C100, C110, C140, C141, C170, C190, caso tenha alguma coisa ai avisa... Depois posto minha unit...

Editado por Fabiano Bok
Link para o comentário
Compartilhar em outros sites

Eu fiz umas melhorias na lógica, e implementei o Bloco 0 completamente, mas não tive tempo para modificar o bloco C ainda.

 

Pega aqui a última versão, tu vai ver que é bem simples de adicionar os outros blocos, depois que entender a lógica.

 

Qualquer dúvida estou a disposição.

ACBrEFDBloco_0_Class.pas

ACBrEFDBlocos.pas

ACBrSpedFiscal.pas

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

Ola Guilherme, nao consegui implementar os blocos por inteiro, mas estao dentro da logica. Fiz apenas os blocos que eu preciso mais urgente... Ja testei aqui e funcionou...

 

Segue anexos os arquivos...

 

Qualquer duvida estou a disposição... 

ACBrEFDBloco_C_Class.pas

ACBrEFDBloco_D_Class.pas

ACBrEFDBlocos.pas

ACBrSpedFiscal.pas

Editado por Fabiano Bok
Link para o comentário
Compartilhar em outros sites

  • 7 meses depois ...

Acredito que é melhor criar uma class separada para leitura do arquivo e assim carregar o componente em um .PAS separado, assim você não perdem as atualizações que acontecerão nesse período no componente. 

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...
  • Consultores

Estou fazendo correções para poder enviar esse código ao SVN.

Alguém mais tem alguma alteração e gostaria compartilhar?

[]'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

  • Consultores

Estou fazendo alguns testes para incorporar. Mas só vão entrar os blocos acima anexados.

[]'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

  • 3 semanas depois ...
  • Consultores

Com as alterações dos tipos dos registros feito algum tempo atrás e as alterações para variant que implementamos esse mês, o código ficou bem confuso.

Acho que vou gastar mais tempo que pensei nisso. Como não me é prioridade ter essa funcionalidade, talvez demore um pouco mais.

 

Quem tiver necessidade talvez esteja interessado em ajudar para acelerar o passo. Neste caso, fique a vontade em dizer.

[]'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 meses depois ...

Vocês estão indo pelo lado errado, citei em um post acima que deve ser criado uma camada intermediária, onde essa recebe uma propriedade do tipo do componente e essa camada faz a varredura e implementação dos registros lidos no componente linkado a essa propriedade.

 

Da forma que ta não vai.

 

A Estrutura deve segui o mesmo padrão que está hoje, ou seja deve existir um class para cada registro a ser lido:

 

ACBrEFDBloco_0_Load.pas
ACBrEFDBloco_C_Load.pas

ACBrEFDBloco_G_Load.pas
ACBrEFDBloco_H_Load.pas

Etc...

  • Curtir 1

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Estou no momento fazendo o seguinte:

 

Se houvesse um modo de fazer como o componente deste tópico seria melhor.

No mais, se você tentar conciliar o código anexo no fórum com o código atual do componente vai ver que há muitas modificações em especial nas conversões de tipo para string e vice versa. Então está muito difícil de separar... foi por esses motivos que eu não consegui colocar pra funcionar, testar e enviar ao SVN.

  • 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

Esse sim Elton esta bem mais padronizado dentro do padrão ACBr, só acho que depois é rever os nomes da Units para seguir o mesmo padrão tb.

  • Curtir 1

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

boa tarde

cheguei a olhar o que o Elton falou logo que foi postado 

mas achei meio inviável pois assim temos que manter além do componente do Sped o load também

acho que poderia ser feito bem diferente mas como não tenho tempo para fazer a implementação agora vou deixar a cargo de vocês

mas se mexer um pouco mais dava para fazer o load direto no componente já existente e somente ele ler conforme a gente implementar os registros no componente principal

  • Curtir 1
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

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