Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

Implementação De Leitura Do Arquivo Sped Pelo Componente


Guilherme Lanius
  • Este tópico foi criado há 1889 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 to comment
Share on other sites

  • Consultores

Até o momento não.

Mas qual seria a ideia ? por que carregar o arquivo no componente?

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • Consultores

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
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other 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

  • Like 1

MGWare Tecnologia LTDA

Link to comment
Share on other sites

  • 4 weeks later...

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

Edited by Fabiano Bok
Link to comment
Share on other 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 to comment
Share on other 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

Edited by Fabiano Bok
Link to comment
Share on other sites

  • 7 months later...

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 to comment
Share on other sites

  • 5 months later...
  • 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
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other sites

  • Consultores

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

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other sites

  • 3 weeks later...
  • 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
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other sites

  • 2 months later...

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

  • Like 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 to comment
Share on other 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.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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 to comment
Share on other 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.

  • Like 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 to comment
Share on other sites

  • Consultores

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

  • Like 1
Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.