DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Você também pode acessá-lo através de Créditos DevMedia.  Clique aqui para saber mais!


Video: Arquivo de Movimento por ECF - Curso PAF - ECF com Delphi 7 e Dlls dos fabricantes - Aplicação Completa - Parte 23

Neste vídeo aula vamos criar um dos mais trabalhosos arquivos do menu fiscal, que é o “MOVIMENTO POR ECF”. Neste arquivo, como o próprio nome diz, tem informações de tudo que foi movimentado no ECF.

Tempo: 28:53

 

Resumo: Neste vídeo aula vamos criar um dos mais trabalhosos arquivos do menu fiscal, que é o “MOVIMENTO POR ECF”. Neste arquivo, como o próprio nome diz, tem informações de tudo que foi movimentado no ECF. Este arquivo é composto por 7 registros que vão do R01 ao R07, onde o R01 trata das informações do modelo, tipo, serial e outras informações do ECF. Nos registros R02 e R03 tem informações da redução Z. Os registros R04 e R05 com informações dos cupons fiscais. O R06 com informações de documentos emitidos e por fim o R07 que tem informações das formas de pagamento usadas.

 

Metodologia de desenvolvimento do exemplo: Aplicação Windows

 

Tecnologias utilizadas: Delphi 7, Firebird 2.1.

 

Exemplos construídos: Criação da rotina para gerar o arquivo de Movimento por ECF.

 

Palavras chaves: PAF-ECF, TEF, ASSINATURA EAD, HOMOLOGAÇÃO.





    32 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



William De Carvalho Brazilino
Antes de mais nada, qro parabenizar pelos post, no qual mto tem m ajudado, foi uma luz na luz do tunel. Mas apenas ficou faltando a implementação da coleta dos dados da Redução z para as tabelas 60M e 60A. abcs !
[há +1 ano] - Responder

 

[autor] Luis Carlos Godinho
Olá William!
 
Neste artigo eu falo sobre este ponto do sistema. Na realidado eu utilizo os comando da impressora para gerar as informações em arquivos TXT, e posteriormente realizo a leitura deste arquivo, gravando os dados nas devidas tabelas.
 
 
Comandos 60M:
 
Bematech_FI_RelatorioTipo60Mestre()
Daruma_FI_RelatorioTipo60Mestre()
ECF_RelatorioTipo60Mestre()
Elgin_RelatorioTipo60Mestre()
 
Comandos 60A:
 
Bematech_FI_RelatorioTipo60Analitico()
Daruma_FI_RelatorioTipo60Analitico()
ECF_RelatorioTipo60Analitico()
Elgin_RelatorioTipo60Analitico()
 
Abs!
[há +1 ano] - Responder
 

Cleiton Maciel
Bom dia Luis, teria como você anexa algum arquivo txt da
rotina MovimentacaoECF, pra eu dar uma olhada.

Por que seguindo o layout para montar o R05 no item
17 Totalizador parcial

Código do totalizador relativo ao produto ou serviço conforme tabela.

Código determinado pela Secretaria da Fazenda conforme a Tabela de Códigos de Totalizadores Parciais.

parece que você saltou esse.

Fiquei sem enteder essa tabela e de como preencher isso..

Abraço.
[há +1 ano] - Responder

 

[autor] Luis Carlos Godinho
Olá!

Não tenho como anexa o arquivo, mas Veja no linl abaixo:

http://www.fazenda.gov.br/confaz/confaz/atos/atos_cotepe/2008/ac006_08.htm

No Anexo VI no subitem 7.3.1.2 - Campo 07: Tabela de Códigos dos Totalizadores Parciais.

Abs!
[há +1 ano] - Responder
 

Acomais Ltda
Fala Godinho!
entendi que as tabelas 60A e 60M você alimenta lendo os arquivos que a impressora retorna.
você não implementou isso no sistema paf? nao achei.
onde encontro o layout desses arquivos que a impressora gera?
valeu!!

Fernando.
[há +1 ano] - Responder

 

[autor] Luis Carlos Godinho
Olá!

Veja no link abaixo na parte do registro R02 e R03. Há outros comando que podem ser usados para fazer esta rotina. Eu preferi usar estes.

http://www.devmedia.com.br/post-15465-Tutorial-PAF-ECF-Versao-0103-Gerando-arquivo-de-Movimento-por-ECF.html

Abs.!
[há +1 ano] - Responder
 

Acomais Ltda
Olá Godinho,
acho que não entendeu o que perguntei, vou tentar explicar melhor: vi no link que você postou como gerar os arquivos 60M e 60A por comandos da impressora. ok isso eu já consegui.
porem em qual parte do sistema você gera essa rotina de ler esses arquivos gerados e incluir nas suas tabelas de 60M e 60A?
foi isso que não achei, também não sei o layout desses arquivos para poder capturar. help!!
abraço!
Fernando.
[há +1 ano] - Responder
 

[autor] Luis Carlos Godinho
Olá!

Os dados são retirados da Redução-Z, consequentemente, eu uso adicionar a rotina para capturar e gravar os dados imediatamente apos a emissão.
Devo apenas salientar que no caso da impressora epson, os dados deverão ser capturados antes da emissão da redução.

Abs!
[há +1 ano] - Responder
 

Acomais Ltda
certo, esse codigo após a redução z que você processa os arquivos 60 nas tabelas, estão no seu projeto paf?
[há +1 ano] - Responder
 

[autor] Luis Carlos Godinho
Olá!

Se os código no qual se refere, forem os do projetos, acredito que não tenham, pois não tratei esta parte diretamente no PAF.
Mas de qualquer forma é muito simples. Os cidados comandos do arquivo que lhe informei, geram um arquivo TXT com todas as informações necessárias. Basta fazer a leitura deste arquivo TXT, capturando os dados e gravando no banco.

Abs!
[há +1 ano] - Responder
 

Acomais Ltda
ok vou dar uma procurada, agora a ultima duvida desse tema :P

a impressora não emite uma redução Z automaticamente caso ninguem emita no dia anterior? como fica pra processar essa informação que não foi disparada por mim?

valeu!!
[há +1 ano] - Responder
 

[autor] Luis Carlos Godinho
Olha! No meu sistema aqui, eu disponibilizo uma tela para o usuário cadastrar manual, caso tenha algum problema na captura automatizada.

Abs!
[há +1 ano] - Responder
 

Acomais Ltda
Fala Godinho, acabei de terminar essa implementação, mas ficou uma duvida no ar: essas informações do R1 ao R7 são sempre referentes ao ECF plugado ou de todos os ECF que o sistema utiiza? não vi filtro por ECF no seu código por isso a duvida.
[há +1 ano] - Responder
 

[autor] Luis Carlos Godinho
Olá!

Acredito que seja pelo ECF plugado, pelo menos foi a forma que fiz. Mas por via de dúvidas, adicione as duas opções.

Abs!
[há +1 ano] - Responder
 

Acomais Ltda
Aquele campo TERMINAL que você cria nas tabelas, não seria para indicar o ecf utilizado?
ou acha melhor criar uma tabela ECF, onde eu grave o serial de cada impressora da empresa e faça um relacionamento com essas tabelas?
[há +1 ano] - Responder
 

[autor] Luis Carlos Godinho
Sim, o campo terminal é para identificar o Caixa para estabelecimentos que tem mais de um.
Com relação a tabela, você terá que analizar o que fica melhor no seu aplicativo.

Abs!
[há +1 ano] - Responder
 

José Bernardo
Bom dia,

Estou desenvolvendo um aplicativo para sped fiscal, e preciso pegar as informações das reduções Z e dos cupons fiscais das impressoras, fiz o download do seu aplicativo,para gerar os registros R2 R3,você utilizar dados previamente salvos em uma tabela,como você salvar esses dados?

Nesse tópico você explica

http://www.devmedia.com.br/post-15465-Tutorial-PAF-ECF-Versao-0103-Gerando-arquivo-de-Movimento-por-ECF.html

mas eu não consegui entender,

você não poderia disponibilizar essa parte do aplicativo como um post de aula?

lá você diz :


Para gerar o registro 60M:



Bematech_FI_RelatorioTipo60Mestre()

Daruma_FI_RelatorioTipo60Mestre()

ECF_RelatorioTipo60Mestre()

Elgin_RelatorioTipo60Mestre()



Para gerar o registro 60A:



Bematech_FI_RelatorioTipo60Analitico()

Daruma_FI_RelatorioTipo60Analitico()

ECF_RelatorioTipo60Analitico()

Elgin_RelatorioTipo60Analitico()

o que eu faço com essas funções?

------------------------------------------------------
[há +1 ano] - Responder

 

[autor] Luis Carlos Godinho
Olá!

Este comandos irão gerar um arquivo no formato txt. Após gerado, bastará copiar os dados do arquivo para a tabela no banco de dados.

Abs!
[há +1 ano] - Responder
 

José Bernardo
Estou sem acesso ao Delphi hoje mas a função Bematech_FI_RelatorioTipo60Mestre() não recebe nada como parâmetro,onde é salvo esse arquivo?

já as funções
Daruma_FI_RelatorioTipo60Mestre()

ECF_RelatorioTipo60Mestre()

Elgin_RelatorioTipo60Mestre()

eu não consegui acessar,

Cada uma gera uma parte diferente do arquivo?
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Olá!

Sugiro que baixe o manual da DLL no site da bematech. Lá você encontrará todos os exemplos de uso.

Verifique no arquivo Bemafi32.ini que deverá estar na pasta windows/system32. Nele tem as configurações necessárias.

Abs!
[há +1 mês] - Responder
 

José Bernardo
Ok, fiz o que você falou agora estou conseguindo entender melhor.

Mas pelo que eu entendi o algoritmo para pegar os cupons fiscais quando é executado só retorna dados referentes ao ultimo cupom emitido.ser for realmente isso,como faço para pegar informações referentes a vários cupons?

---------------------------------------------------------
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Não sei se entende sua questão. Mas referente a redução Z. os comando acima irão gerar dados do registro 60M e 60A necessários para gerar o sintegra. `
Para pegar dados de registro 60D ou 60I, você poderá pegar a informação de COO inicial e final, gerados no arquivo do 60M (Mestre) para localizar os cupons referentes as vendas do dia.

Abs!
[há +1 mês] - Responder
 

José Bernardo
Sobre a redução Z eu já consegui pegar as informações necessárias.
Deixa eu lhe explicar estou desenvolvendo um aplicativo de sped fiscal,o meu programa não realiza vendas, ou seja eu só preciso pegar as informações referentes ao cupons fiscais no fim do mês.
Você disse que eu deveria pegar o numero de COO inicial e final para localizar os cupons, que função eu uso para localizar os cupons e pegar todas as informações referentes a esses cupons e seus produtos?
Pelo que eu entendi o seu programa gera salvar esses dados na hora de venda.
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Não irá funcionar por este caminho. As informações que estou te passando é referente ao PAF, ou seja, dia a dia o PAF deverá armazenar os dados das reduções, dai fica fácil capturar os dados de banco e montar o que precisa.
No caso de SPED você já deverá ter isso no banco de dados, pois eu particularmente desconheço como capturar a redução do mes inteiro via impressora.

Abs!
[há +1 mês] - Responder
 

José Bernardo
Ok, você captura os dados dia a dia,
Mas como eu pego todas as informações dos cupons do dia, sem ser necessariamente o último cupom?
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Através da redução Z.
Esta é o resumo do movimento (Cupons fiscais, e outros) diário.

Abs!
[há +1 mês] - Responder
 

José Bernardo
Se eu não me engano as reduções Z só trazem as totalizações dia a dia,mas não detalham os cupons e seus respectivos produtos.
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
O processo normal para recuperar os dados dos cupons é via redução.
Fora isso, você terá que ver com o fabricante uma possíbilidade de recuperar a MFD do equipamento.

Abs!
[há +1 mês] - Responder
 

José Bernardo
pesuisei e achei uma função propria para o sped,mas em uma versão nova da dlls atualizei,mas como faço para a função pode ser usada,tipo as funções que estão na unit uDecBematech do seu projeto?
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Neste caso é programação. Você tem que declarar a unit uDecEpson na unit que ira usar.
[há +1 mês] - Responder
 

José Bernardo
Eu tenho que criar a unit udecepson?
por que a unit udebematech ja veio no seu projeto,e nao a da epson?
[há +1 mês] - Responder
 

[autor] Luis Carlos Godinho
Olha, isso é questão de programação. Fica a seu critério fazer como achar melhor.

[há +1 mês] - Responder
 



Publicidade
Curso Online
Autor
Luis Carlos Godinho

Programador formado em 1995, pela ETEIT – Escola técnica da UNIVALE. Atualmente trabalhando com a plataforma Delphi. Tem se dedicado nos últimos anos, ao desenvolvimento de aplicações PAF-ECF, SPED fiscal e NFe.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03