
ivan
Membros Pro-
Total de ítens
149 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que ivan postou
-
Bom dia.... Nosso PAF é certificado em TEF Discado e a certificação foi feita remotamente com a Seven-PDV.... Tenho um cliente que pediu para uma empresa instalar o TEF para a empresa dele e instalaram o TEF da Direção.... Isto deveria funcionar ou eu tenho que ter a aplicação certificada para o TEF da Direção ? Obrigado Ivan
-
Olá Régys... Entendo. É que as informações sobre este componente estão bem espalhadas... e está um pouco complicado encontrar as informações; Seria muito melhor ser estivesse num sub fórum da NF-e. Ficaria mais organizado. Mas, é apenas minha opinião ! Obrigado Abraços Ivan
-
Bom... Eu gostaria apenas de sugerir a criação de um fórum sobre NF-e de serviços... Abraço Ivan
-
Como no XML havia os 28 ítens... então qualquer programa que gere o Danfe a partir do XML irá gerar com 28 ítens. Att, Ivan
-
Não posso postar o arquivo XML inteiro, mas segue a parte que trata dos ítens, tanto do XML quanto do Danfe em anexo Att Ivan itens_xml.txt
-
Exatamente... Exemplo: No arquivo XML: Cinto A verde qtde: 1 valor: R$ 1,00 Cinto A azul qtde: 1 valor: R$ 1,00 Cinto B amarelo qtde: 2 valor: R$ 2,00 Cinto B branco qtde: 5 valor: R$ 5,00 No Danfe: Cinto A qtde: 2 valor R$ 2,00 Cinto B qtde: 7 valor R$ 7,00 No danfe, tanto a quantidade quanto os demais campos os valores fechavam
-
Olá pessoal... Tenho um cliente que recebeu uma NF do seu fornecedor. No arquivo XML constava 28 ítens. No Danfe estava impresso apenas 7 ítens. Estes 7 ítens no Danfe estavam agrupando produtos que no XML estavam separados por cor. Já pesquisei muito sobre isto e não encontrei legislação que informe algo contra isto. O sistema que gerou a NF-e é de uma mega empresa de ERP, a Totvs. Alguem conhece alguma legislação que valida esta situação ? Eu não sabia que o Danfe pode ser diferente do arquivo XML. Att, Ivan
-
ok ! []´s Ivan
-
Olá Daniel ! Eu faço o mesmo cálculo que você. Inclusive os fabricantes fazem desta forma também. O que muda é onde jogar o resto da diferença entre soma do rateio do desconto e o desconto real concedido ao final do cupom. Analisando as informações dos fabricantes, se entendi direito, na Daruma joga-se a diferença na alíquota de maior valor. Já na Bematech joga-se a diferença na alíquota de maior valor acumulado. Eu tenho feito de forma que este resto seja aplicado ao ítem de maior valor do cupom. Este é o problema que eu tenho, pois não consigo fazer fechar 100% cfe. o ECF. Não sei se chega a ser exatamente um problema já que o SPED Fiscal acaba fechando nos valores. Apenas gostaria de conhecer como os outros desenvolvedores estão fazendo para saber se estou no caminho certo. Daruma: http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/STKs/Como_a_impressora_faz_o_rateio_de_imposto_nas_aliquotas.pdf Bematech: http://partners.bematech.com.br/2011/04/edicao-64-rateio-no-ecf/ []´s Ivan
-
Estou com um problema a respeito do rateio do desconto ou acréscimo que são concedidos na finalização do cupom. Para gerar corretamente o SPED Fiscal, tenho que saber como o ECF calcula este rateio. Para minha surpresa, cada marca tem uma forma de calcular isto. Alguém de vocês já utiliza este cálculo para geração correta do SPED ? (registros C425 no perfil B e C470 no perfil A) []´s Ivan
-
Companheiros da jornada do PAF ! A aplicação dos novos requisitos 01.10 começará em janeiro de 2012. Link para a nova especificação obrigatória apartir de 07/01/2012: http://www.fazenda.gov.br/confaz/confaz/atos/atos_cotepe/2011/ac051-11.htm fonte: http://www.inf.furb.br/lqs/site/ []´s Ivan
-
Olá Juliomar... Bom.. Quando fiz os testes com a Elgin, só funcionava na porta COM1. Eles estavam com problemas na DLL e iriam lançar outra versão. Talvez já tenham feito isto. Você precisa mesmo de 3 dll's: elgin.dll, leitura.dll e ato17.dll; Altere o arquivo ELGIN.INI, setando a porta correta; Bom.. espero que tenha ajudado! []´s Ivan ps: Só para constar: O suporte da Elgin é muito bom .. fiquei impressionado com o atendimento deles.
-
Bem.. na verdade é bem simples... Eu configuro num arquivo .INI a velocidade. Quando entro no sistema, leio o arquivo de configurações e seto a propriedade do componente ACBR. Exemplo de arquivo PAF.INI [PAF] ECF_PORTA=COM1 ECF_BAUD=115200 Faça uma função que leia estas declarações e então configure as propriedades no componente ACBrECF antes de conectar. ACBrECF1.Porta := ECF_PORTA; // Variável resultante da leitura do arquivo .INI ACBrECF1.Device.Baud := ECF_BAUD; Esta é apenas uma das formas de se fazer isto. []s Ivan
-
Bom dia.. Já instalei algumas destas ... sempre em 115200kpbs... funciona certinho com o Acbr. []´s Ivan
-
Grande Daniel ! Seguem funções corrigidas: procedure TACBrECFFiscNET.ArquivoMFD_DLL(ContInicial, ContFinal: Integer; NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet; Finalidade: TACBrECFFinalizaArqMFD; TipoContador: TACBrECFTipoContador); Var iRet : Integer; PortaSerial, ModeloECF, NumFab : String; CooIni, CooFim, Prop, ArqTmp : String ; OldAtivo : Boolean ; cFinalidade:String; begin NumFab := NumSerie; ModeloECF := SubModeloECF; CooIni := IntToStrZero( ContInicial, 6 ) ; CooFim := IntToStrZero( ContFinal, 6 ) ; Prop := IntToStr( StrToIntDef( UsuarioAtual, 1) ) ; PortaSerial := fpDevice.Porta ; LoadDLLFunctions; OldAtivo := Ativo; try Ativo := False; if pos(fsMarcaECF, 'urano') > 0 then begin if (Finalidade = finMF) then cFinalidade := 'MF' else if (Finalidade = finTDM) then cFinalidade := 'TDM' else cFinalidade := 'MFD'; ArqTmp := ExtractFilePath( NomeArquivo ) + 'ACBr.TDM' ; if FileExists( NomeArquivo ) then DeleteFile( NomeArquivo ) ; iRet := xDLLReadLeMemorias( PAnsiChar(PortaSerial), PAnsiChar(ArqTmp), PAnsiChar(NumFab), '1'); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar DLLReadLeMemorias.' + sLineBreak + 'Cod.: '+ IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; iRet := xDLLATO17GeraArquivo( PAnsiChar( ArqTmp ), PAnsiChar( NomeArquivo ), PAnsiChar( CooIni ), PAnsiChar( CooFim ), 'C', '1', PAnsiChar( cFinalidade ) ); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar DLLATO17GeraArquivo.' + sLineBreak + 'Cod.: '+ IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; end else if pos(fsMarcaECF, 'dataregis|termoprinter') > 0 then begin iRet := xGera_PAF( PAnsiChar( PortaSerial ) , PAnsiChar( ModeloECF ), PAnsiChar( NomeArquivo ), PAnsiChar( CooIni ), PAnsiChar( CooFim ) ); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar Gera_PAF.'+sLineBreak+ 'Cod.: '+IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; if not FileExists( NomeArquivo ) then raise Exception.Create( ACBrStr( 'Erro na execução de Gera_PAF.'+sLineBreak+ ': "'+NomeArquivo + '" não gerado' )) end else if (fsMarcaECF = 'elgin') then begin AbrePortaSerialDLL(fpDevice.Porta, ExtractFilePath(NomeArquivo)); ArqTmp := ExtractFilePath( NomeArquivo ) + 'Memoria.tdm' ; iRet := xElgin_LeMemoriasBinario( ArqTmp, NumFab, true ); if (iRet <> 1) then raise Exception.Create(ACBrStr('Erro ao executar Elgin_LeMemoriasBinario.'+sLineBreak+ 'Cod.: ' + IntToStr(iRet))) ; if not FilesExists( ArqTmp ) then raise Exception.Create(ACBrStr('Erro na execução de Elgin_LeMemoriasBinario.'+sLineBreak+ 'Arquivo binário não gerado!')); iRet := xElgin_GeraArquivoATO17Binario( ArqTmp, NomeArquivo, CooIni, CooFim, 'C', Prop, 'MF'); if (iRet <> 1) then raise Exception.Create(ACBrStr('Erro ao executar Elgin_GeraArquivoATO17Binario.'+sLineBreak+ 'Cod.: ' + IntToStr(iRet))) ; xElgin_FechaPortaSerial(); end else raise Exception.Create( ACBrStr( 'ArquivoMFD_DLL por COO ainda não Implementado para: '+fsMarcaECF ) ) ; finally Ativo := OldAtivo ; end; end; e procedure TACBrECFFiscNET.ArquivoMFD_DLL(DataInicial, DataFinal: TDateTime; NomeArquivo: AnsiString; Documentos: TACBrECFTipoDocumentoSet; Finalidade: TACBrECFFinalizaArqMFD); Var iRet : Integer; PortaSerial, ModeloECF, NumFab, ArqTmp, Prop : String; DiaIni, DiaFim : AnsiString; OldAtivo : Boolean; cFinalidade:String; begin NumFab := NumSerie; ModeloECF := SubModeloECF; PortaSerial := fpDevice.Porta; Prop := IntToStr( StrToIntDef( UsuarioAtual, 1) ) ; LoadDLLFunctions; OldAtivo := Ativo; try Ativo := False; if pos(fsMarcaECF, 'urano') > 0 then begin if (Finalidade = finMF) then cFinalidade := 'MF' else if (Finalidade = finTDM) then cFinalidade := 'TDM' else cFinalidade := 'MFD'; ArqTmp := ExtractFilePath( NomeArquivo ) + 'ACBr.TDM' ; if FileExists( NomeArquivo ) then DeleteFile( NomeArquivo ) ; DiaIni := FormatDateTime('yyyymmdd', DataInicial); DiaFim := FormatDateTime('yyyymmdd', DataFinal); iRet := xDLLReadLeMemorias( PAnsiChar( PortaSerial ), PAnsiChar( ArqTmp ), PAnsiChar( NumFab ), '1'); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar DLLReadLeMemorias.' + sLineBreak + 'Cod.: '+ IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; iRet := xDLLATO17GeraArquivo( PAnsiChar( ArqTmp ), PAnsiChar( NomeArquivo ), PAnsiChar( DiaIni ), PAnsiChar( DiaFim ), 'M', '1', PAnsiChar( cFinalidade ) ); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar DLLATO17GeraArquivo.' + sLineBreak + 'Cod.: '+ IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; end else if pos(fsMarcaECF, 'dataregis|termoprinter') > 0 then begin DiaIni := FormatDateTime('dd/mm/yyyy', DataInicial); DiaFim := FormatDateTime('dd/mm/yyyy', DataFinal); iRet := xGera_AtoCotepe1704_Periodo_MFD( PAnsiChar( PortaSerial ), PAnsiChar( ModeloECF ), PAnsiChar( NomeArquivo ), PAnsiChar( DiaIni ), PAnsiChar( DiaFim ) ); if iRet <> 0 then raise Exception.Create( ACBrStr( 'Erro ao executar Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+ 'Cod.: '+IntToStr(iRet) + ' - ' + GetErroAtoCotepe1704(iRet) )) ; if not FileExists( NomeArquivo ) then raise Exception.Create( ACBrStr( 'Erro na execução de Gera_AtoCotepe1704_Periodo_MFD.'+sLineBreak+ 'Arquivo: "'+NomeArquivo + '" não gerado' )) end else if (fsMarcaECF = 'elgin') then begin DiaIni := FormatDateTime('yyyymmdd', DataInicial); DiaFim := FormatDateTime('yyyymmdd', DataFinal); AbrePortaSerialDLL( PortaSerial, ExtractFilePath(NomeArquivo) ); ArqTmp := ExtractFilePath( NomeArquivo ) + 'Memoria.tdm' ; iRet := xElgin_LeMemoriasBinario( ArqTmp, NumFab, true ); if (iRet <> 1) then raise Exception.Create(ACBrStr('Erro ao executar Elgin_LeMemoriasBinario.'+sLineBreak+ 'Cod.: ' + IntToStr(iRet))) ; if not FilesExists( ArqTmp ) then raise Exception.Create(ACBrStr('Erro na execução de Elgin_LeMemoriasBinario.'+sLineBreak+ 'Arquivo binário não gerado!')); iRet := xElgin_GeraArquivoATO17Binario( ArqTmp, NomeArquivo, DiaIni, DiaFim, 'D', Prop, 'MF'); if (iRet <> 1) then raise Exception.Create(ACBrStr('Erro ao executar Elgin_GeraArquivoATO17Binario.'+sLineBreak+ 'Cod.: ' + IntToStr(iRet))) ; xElgin_FechaPortaSerial(); end else raise Exception.Create( ACBrStr( 'ArquivoMFD_DLL por período ainda não Implementado para: '+fsMarcaECF ) ) ; finally Ativo := OldAtivo ; end ; end;
-
Bom dia... Consegui uma ECF K-Fiscal, da Elgin para testar no nosso PAF. Então o único problema que tivemos foi que o arquivo gerado pela função "PafMF_LMFC_Cotepe1704" gera um arquivo com TDM no lugar de MF. Confome o roteiro para o PAF, o tipo de arquivo tem que ser MF. Então o pessoal do suporte da Elgin me passou que teríamos que alterar um parâmetro na chamada da DLL. Tem que ser assim: iRet := xElgin_GeraArquivoATO17Binario( ArqTmp, NomeArquivo, CooIni, CooFim, 'C', Prop, 'MF'); Observe o parâmetro MF no lugar do TDM que havia antes. Isto serve tanto para a função por DATA quanto por COO. []´s Ivan
-
Hmm.. me parece que o valor do produto, "33,17" é o que está atrapalhando a execução da função. []´s Ivan
-
Hmm.. me parece que o valor do produto, "33,17" é o que está atrapalhando a execução da função.
-
Olá...Talvez alguem já tenha passado por esta situação. Ao tentar gerar o LMFC - Ato Cotepe 17/04 com a funcao ACBrECF1.PafMF_LMFC_Cotepe1704(EditInicial.Date, EditFinal.Date, PathArquivo) Ocorre a mensagem de erro : Erro:1 ao abrir a Porta com EPSON_Serial_Abrir_Porta(38400,6) Aparentemente a porta serial continua aberta, mas com a Daruma isto não ocorre. Ivan
-
Observe o tópico: Talvez lhe ajude.
-
Bem... Eu resolvi de forma bem simples isto... Na hora de cadastrar a impressora no banco de dados do sistema eu gravo um campo(flag) que informa se o PAF deve imprimir ou não um leitura da memória fiscal quando for o primeiro dia de operação do mês. []´s Ivan
-
Novos prazos de entrega para o Sped Fiscal PIS/cofins
um tópico no fórum postou ivan Legislação Fiscal e Tributária
-
SAC - Suporte ACBr Comercial
ivan replied to André Ferreira de Moraes's tópico in Dúvidas Gerais sobre o ACBr
Acredito que foram relatadas opções interessantes neste tópico até o momento. Creio que o Daniel não irá conseguir agradar a todos. Chegará a hora em que será tomada a decisão e talvez não acertarão num primeiro momento. Não conheço o Daniel pessoalmente e nem outros membros que fazem do ACBr este grande conjunto de ferramentas. Eu já cheguei a ajudar em alguma coisa, poucas linhas de código, comparado ao que representa hoje o ACBr. Usei muito mais do que ajudei e acredito que esta seja a situação da grande maioria aqui. A única coisa que tenho visto nestes 5 anos que tenho usado os componentes é que o Daniel sempre teve decisões, observações e opiniões sempre bem equilibradas. Tenho certeza de que não será diferente agora. E então eu só gostaria de deixar o meu apoio ao Daniel para que seja qual for a decisão que for tomada, de que forma será o suporte, qual for o valor cobrado, estaremos apoiando por que tenho certeza de que o ACBr vale cada centavo que eu for investir e lhe dará chance de lhe elevar para um patamar ainda mais alto. Quando mexe no bolso dói. Devemos olhar como investimento e não como despesa. Teremos retorno sobre isto, tenho certeza. A qualidade do ACBr irá melhorar ainda mais e isto irá refletir diretamente nos produtos que estaremos colocando no mercado. Quanto mais empresas/pessoas aderirem melhor será para todos. E não me importo se por acaso o Daniel ganhar muito dinheiro com isto, pois o esforço que já teve neste projeto o torna merecedor disto. Eu espero sim que ele ganhe o suficiente para poder dedicar mais do seu tempo para o projeto. Já para aqueles que não quiserem, continuará sendo como é hoje: muito bom ! []'s Ivan -
Estou com uma Bematech MP-20 FI II R aqui... não estou conseguindo rodar com o ACBr. Pelo que pesquisei esta impressora é para restaurantes. Uma das coisas que acontece é que abro o cupom normalmente e então para por aí.. Não consigo sequer cancelar o cupom. Este modelo também não consta na lista de ECF compatível, somente o modelo sem o R no final. Alguem saberia me dizer se este ECF poderia funcionar com o ACBR ? []'s Ivan
-
SAC - Suporte ACBr Comercial
ivan replied to André Ferreira de Moraes's tópico in Dúvidas Gerais sobre o ACBr
Daniel... eu acho muito bacana a ideia. Somos uma pequena empresa, com poucos clientes, mas o ACBr já nos ajudou muito e então eu acho válido e coerente o valor. Vale cada centavo. Para nós o plano adequado seria os R$ 120,00 mensais. Eu mesmo, já havia começado no mês passado a doar R$ 100,00 mensais por iniciativa própria, mas esta idéia do suporte é melhor pra nós. Peço que envie o contrato para mim. Abs, e vamos em frente ! Ivan