Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.476
  • Registro em

  • Última visita

  • Days Won

    766

Tudo que Daniel Simoes postou

  1. Você pode usar a propriedade: ACBrECF.Arredonda : Boolean, para saber se esse ECF Trunca ou Arredonda... Use o método ACBrUtil.RoundABNT() para promover o arredondamento idêntico ao praticado pelo ECF (que difere um pouco do RoundTo() do Delphi)
  2. Maravilha... Se não for muito incomodo, poderia adicionar o novo Log após aplicada a correção ?
  3. O problema ocorre porque neste ECF, há um caracter [ETX] (ou #3) programado no Cabeçalho... Por isso o ACBrECF encerra a leitura da Serial, porém o ECF ainda está enviando dados... A correção proposta nesse Patch (em anexo), é manter o ACBrECF aguardando por 1 segundo, para ter certeza de que não há mais nada a ser lido na Serial Index: ACBrECFBematech.pas =================================================================== --- ACBrECFBematech.pas (revision 7944) +++ ACBrECFBematech.pas (working copy) @@ -1057,7 +1057,11 @@ if (Length(Retorno) >= 2) and (copy(Retorno,1,2) <> #0+#0) then // Retornou Erro, não virá ETX Result := True else - Result := (pos(ETX, RightStr(Retorno,6)) > 0) + begin + Result := (pos(ETX, RightStr(Retorno,6)) > 0) ; + if Result then + Result := not fpDevice.Serial.CanReadEx(1000); // Aguarda por 1 seg sem dados + end; Poderia aplicar o Patch e verificar se o problema é corrigido ? ACBrECFBematech.pas.patch.zip
  4. O problema parece estar na chamada do método LeituraMemoriaFiscalSerial... Aparentemente o componente está concluindo a leitura antes de todos os dados serem enviados do ECF... E com isso, o ECF fica indisponível para os próximos comandos... (por isso os erros de Transmissão e ECF fora de linha) Vou debugar essa rotina e verificar o que está ocorrendo...
  5. O problema é que essa tabela é específica do SiTef... e nos outros GPs essa propriedade não seria preenchida corretamente... Veja o exemplo em TEFDDemo, usando o método "LeInformacao" procedure TForm1.ACBrTEFD1DepoisConfirmarTransacoes( RespostasPendentes: TACBrTEFDRespostasPendentes); var I : Integer; begin for I := 0 to RespostasPendentes.Count-1 do begin with RespostasPendentes[I] do begin Memo1.Lines.Add('Confirmado: '+Header+' ID: '+IntToStr( ID ) ); memo1.Lines.Add('Desconto: '+ FormatFloat('###,###,##0.00',Desconto)); memo1.Lines.Add('Saque: '+ FormatFloat('###,###,##0.00',Saque)); Memo1.Lines.Add( 'Rede: ' + Rede + ' NSU: ' + NSU + ' Valor: '+ FormatFloat('###,###,##0.00',ValorTotal)) ; Memo1.Lines.Add('Campo 11: ' + LeInformacao(11,0).AsString ); end; end; end;
  6. http://www.projetoacbr.com.br/forum/index.php?/forum-3/announcement-2-novo-caminho-para-o-c%C3%B3digo-fonte-do-acbr-no-sourceforge/
  7. Verifique se o problema ocorre sempre no mesmo ponto... Se você conseguir reproduzi-lo no ECFTeste, podemos debugar...
  8. Erro 500 geralmente indica problemas com Proxy
  9. O ACBrECF chama o comando de Fechar o Relatório Gerencial ou CDC internamente e em situações pontuais... mas de forma controlada... Ou seja... ele não deixa o Exception vazar... veja: procedure TACBrECFBematech.CancelaCupom; ........ if TemRel then begin try FechaRelatorio ; { Fecha relatorio se ficou algum aberto (só por garantia)} except // Exceçao silenciosa, pois a Impressora pode nao estar em Estado end ; // de Relatorio. end ;
  10. De qual estado você está falando ? Checou os serviços no portal nacional ? http://www.nfe.fazenda.gov.br/portal/disponibilidade.aspx?versao=0.00&tipoConteudo=Skeuqr8PQBY=
  11. Seus fontes estão atualizados ?? No exemplo tem uma aba que faz exatamente isso... gera e transmite uma NFCe
  12. Desculpe-me acho que não fui muito claro... A pergunta é... Rodar o programa do fabricante, para o mesmo périodo que você está solicitando, e no mesmo ECF, funciona ? A ideia é testar se há movimento válido nesse período, pois o erro indica: - 8 = Erro na geração do arquivo ou não há movimento na data.
  13. Você acha que é possível implementar usando o ACBrTCP (synapse) ?
  14. O processo é o mesmo para qualquer impressora de Rede do Windows... Favor acessar: (mude "localhost" para o IP da máquina)
  15. Não compreendi a necessidade da correção... Pois da maneira que está implementado... Toda e qualquer exceção é capturada e suprimida (exceção muda) procedure TACBrECFEpson.EnviaPAF ; begin if fsPAF1+fsPAF2 <> '' then begin try EpsonComando.Comando := '0A23' ; EpsonComando.AddParamString( fsPAF1 ); EpsonComando.AddParamString( fsPAF2 ); EnviaComando ; except end ; end ; end ;
  16. O ACBr é OpenSource... Você poderia analisar ambos os fontes e propor uma correção nos fontes do "ACBrSuframa.pas"
  17. Obrigado pelo retorno... Apenas complementando... Será necessária a presença das DLLs do OpenSSL na mesma pasta do seu .EXE
  18. A mensagem do fornecedor indica que não há movimento na data informada... - 8 = Erro na geração do arquivo ou não há movimento na data. Já tentou com o programa aplicativo do Fabricante ?
  19. Você pode fazer o seu próprio Fork do ACBr... e mantê-lo como quiser...
  20. Você pode verificar o Estado do ECF... se for estVenda, é porque o Cupom foi aberto com sucesso...
  21. Bom saber que time do Fortes está se reestruturando... Na verdade esse processo tem o apoio de alguns dos desenvolvedores do ACBr... Ou seja, SIM, devemos ajustar os pacotes para os nomes oficiais...
  22. Por favor anexe o Log
  23. Sergio, Seu nome de usuário é curioso... "acbrdesenv1"... Fiquei na dúvida, você faz parte dos usuários com direito a commit nos fontes ?
  24. Se você usa: DataIni = '01/11/2014' DataFim = '30/11/2014' sFile = 'SPED_000000000004122014153355.txt' ecf.ACBrECF.ArquivoMFD_DLL(DataIni, DataFim, sFile, [docTodos], finSPED); Isso não é compatível com: Procedure ArquivoMFD_DLL( DataInicial, DataFinal : TDateTime; NomeArquivo : AnsiString; Documentos : TACBrECFTipoDocumentoSet = [docTodos]; Finalidade: TACBrECFFinalizaArqMFD = finMFD ) ; overload ; Por favor tente reproduzir o mesmo problema com o Projeto ECFTeste
×
×
  • 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.