Ir para conteúdo
  • Cadastre-se

ivan

Membros Pro
  • Total de ítens

    149
  • Registro em

  • Última visita

Tudo que ivan postou

  1. ivan

    Tef Direção

    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
  2. 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
  3. Bom... Eu gostaria apenas de sugerir a criação de um fórum sobre NF-e de serviços... Abraço Ivan
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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.
  12. 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
  13. Bom dia.. Já instalei algumas destas ... sempre em 115200kpbs... funciona certinho com o Acbr. []´s Ivan
  14. 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;
  15. 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
  16. Hmm.. me parece que o valor do produto, "33,17" é o que está atrapalhando a execução da função. []´s Ivan
  17. Hmm.. me parece que o valor do produto, "33,17" é o que está atrapalhando a execução da função.
  18. 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
  19. ivan

    Erro no ACBrEAD

    Observe o tópico: Talvez lhe ajude.
  20. 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
  21. 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
  22. 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
  23. 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
×
×
  • 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.