Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.508
  • Registro em

  • Última visita

  • Days Won

    766

Tudo que Daniel Simoes postou

  1. Minha nossa quanto texto... não fui capaz de achar o erro no meio dessa confusão.. Por favor evite postar arquivos dentro da Msg... uso o recurso de anexo (com zip)
  2. O problema é que a assinatura desse método provavelmente não será padronizada entre os fabricantes... Estou tentando ao máximo evitar escrever um código diferente para cada fabricante, o que faz sentido, pois a especificação é única.. Você pode implementar a chamada ao TimeOut fora do componente... ou ainda usar o programa da Dimep para programá-lo... afinal isso pode ser programado no Setup inicial do equipamento, e não precisa ser programado a cada inicialização do sistema..
  3. Esse pacote ainda não está preparado para rodar no Linux... Estou trabalhando em um amplo refactoring... https://svn.code.sf.net/p/acbr/code/branches/Daniel/ Devo fazer um teste com Linux em breve...
  4. Verifique se a impout32.dll está na mesma pasta do ACBrMonitor.exe Tente rodar o ACBrMonitor.exe como administrador...
  5. Qual é exatamente o modelo do teclado ? Como vc configura no ACBrMonitor ?
  6. Até onde eu sei, não... pode ser que no futuro o fisco crie algum WebService...
  7. Sim, favor testar com essa Unit em anexo... ACBrUtil.pas
  8. Obrigado pelo Bug Report... Estou preparando algumas alterações na ACBrUtil que devem agilizar essa transformação de valor... Veja: {----------------------------------------------------------------------------- Converte um Double para string, semelhante a FloatToStr(), porém garante que não haverá sepeador de Milhar e o Separador Decimal será igual a "SeparadorDecimal" ( o default é .(ponto)) ---------------------------------------------------------------------------- } function FloatToString(const AValue: Double; SeparadorDecimal: Char; AFormat: String): String; var DS, TS: Char; begin if EstaVazio(AFormat) then Result := FloatToStr(AValue) else Result := FormatFloat(AFormat, AValue); DS := {$IFDEF DELPHI15_UP}FormatSettings.{$ENDIF}DecimalSeparator; TS := {$IFDEF DELPHI15_UP}FormatSettings.{$ENDIF}ThousandSeparator; // Removendo Separador de milhar // Result := StringReplace(Result, TS, '', [rfReplaceAll]); // Verificando se precisa mudar Separador decimal // if DS <> SeparadorDecimal then Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]); end; Com ela, poderíamos chamar: FloatToString( Valor, '.', '0.00')
  9. Você precisa anexar um arquivo "ZIPado" O Retorno está correto... "20150306130226", o seu Debug confirma isso... Experimente essa nova versão de StoD() {----------------------------------------------------------------------------- Converte uma String no formato YYYYMMDDhhnnss para TDateTime ---------------------------------------------------------------------------- } function StoD( YYYYMMDDhhnnss: String) : TDateTime; begin YYYYMMDDhhnnss := trim( YYYYMMDDhhnnss ) ; Result := EncodeDateTime( StrToIntDef(copy(YYYYMMDDhhnnss, 1,4),0), // YYYY StrToIntDef(copy(YYYYMMDDhhnnss, 5,2),0), // MM StrToIntDef(copy(YYYYMMDDhhnnss, 7,2),0), // DD StrToIntDef(copy(YYYYMMDDhhnnss, 9,2),0), // hh StrToIntDef(copy(YYYYMMDDhhnnss,11,2),0), // nn StrToIntDef(copy(YYYYMMDDhhnnss,13,2),0), // ss 0 ); end;
  10. Realmente a modificação faz mais sentido com o IF... Não sei porque foi removida... pode até mesmo ser uma falha no Merge... Em todo caso, vou retornar com o IF conforme sugerido
  11. Aqui funciona normal... não temos relato de problema semelhante... Teste em outro ambiente.. pode ser algo na sua máquina, como por exemplo o AntiVirus
  12. Os Logs apontam que o ECF está recusando o comando enviado (NACK)... provavelmente algo está se corrompendo na transmissão... RX <- ACK = 6 Falha: 1 O problema não está relacionado com o Post da Bematech.... (lá era um erro de interpretação da resposta do ECF) Experimente baixar os buffers da porta serial
  13. Ola... obrigado pela colaboração... Analisando, percebi que poderíamos aplicar uma abordagem mais simples function TACBrECFEscECF.GetNumUltimoItem: Integer; begin try Result := RespostasComando.FieldByName('NumUltItem').AsInteger; except Result := 0; end ; end; Por favor verifique se funciona a contento... (nos meus testes deram certo)
  14. Ok, realmente o comando se aplica a todos os modelos superior a FS600... já enviei a correção para o SVN, muito obrigado...
  15. Não ajuda muito... preciso descobrir o que consta em "fsResposta.RetornoLst[17]" por favor anexe o LOG solicitado
  16. Realmente parece ser um problema de falha na comunicação com a Serial... Experimente trocar o cabo... ou ainda trocar o ECF de Lugar... Se os problema persistirem no ECF, o problema pode estar nele... Se persistirem no computador, podem estrar na Placa / Driver / PC
  17. Por favor anexe o LOG gerado pelo SATTeste.exe... Mostre um exemplo do seu retorno... Tenho o Delphi XE7, para testes... poste o passo a passo para a reprodução do problema
  18. Não acho uma boa (por enquanto)... a especificação SAT é padrão.. todos os fabricantes deveriam segui-la... Até o momento foi necessário poucos "workarounds"... um com a Kryptus e outro com o emulador do Fisco... Prevejo que no futuro, teremos, muitos equipamentos de SAT (muito mais do que fabricantes de ECF), e isso obrigaria a revisão dos fontes constantemente... Seria ideal, se no retorno da Consulta de Status, houvesse um campo que retorna o Fabricante e Modelo do SAT
  19. Verifique se você tem as DLLs mais atuais... https://www.softwareexpress.com.br/distri/aplicativos/clisitefwin32.zip
  20. Aguardando um posicionamento da Kryptus... http://satcfe.com.br/forums/topic/cancelamento-do-ultimo-cupom-nao-e-processado/#post-476
  21. Continuo sem compreender o que você quer dizer... Fiz um teste com o emulador de SAT do fisco, e o retorno foi correto... Veja: -- 08:59:45:720 - numeroSessao: 504263 - Comando: ConsultarStatusOperacional NumeroSessao: 504263 - Resposta:504263|10000|Resposta com Sucesso.|||123456789|DHCP|127.127.127.100|22:d9:d0:45:17:02|255.255.000.000|127.127.127.100|127.127.127.100|127.127.127.100|CONECTADO|ALTO|1000.00|10.00|20150306085945|00.00.03|0.06|35150211111111111111591234567890000042166394|35150211111111111111591234567890000017356193|20150306085945|20150306085945|20150203|20170123|0 NSERIE.........: 123456789 LAN_MAC........: 22:d9:d0:45:17:02 STATUS_LAN.....: CONECTADO NIVEL_BATERIA..: ALTO MT_TOTAL.......: 1000.00 MT_USADA.......: 10.00 DH_ATUAL.......: 06/03/2015 08:59:45 VER_SB.........: 00.00.03 VER_LAYOUT.....: 0.06 ULTIMO_CFe.....: 35150211111111111111591234567890000042166394 LISTA_INICIAL..: 35150211111111111111591234567890000017356193 LISTA_FINAL....: DH_CFe.........: 06/03/2015 08:59:45 DH_ULTIMA......: 06/03/2015 08:59:45 CERT_EMISSAO...: 03/02/2015 CERT_VENCIMENTO: 23/01/2017 ESTADO_OPERACAO: DESBLOQUEADO
  22. Não é o caso... ambas as DLLs são necessárias... além as DLLs do PinPad: libemv.dll, libseppemv.dll
  23. Dependendo do WebService que você usar, é necessário informar uma "ChaveDeAcesso" que pode ser obtida com o provedor do WebService (O webservices do correios não precisa dessa chave)
  24. Gabiarra não... Workaround... Vou pensar a respeito, e ver a melhor maneira de implementar...
  25. Talvez você possa comparar se o último CCF é igual ao ultimo COO... isso significaria que o que está aberto É um cupom fiscal (não testei)
×
×
  • 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.