Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.758
  • Registro em

  • Última visita

  • Days Won

    767

Tudo que Daniel Simoes postou

  1. Envie a correção sugerida para o SVN
  2. Acho que não precisamos de duas comparações... O problema é que o código atual não remove os espaços do parâmetro informado pelo usuário... Por favor tente dessa maneira: function TACBrCNIEE.BuscarECF(const AMarca, AModelo, AVersaoSB: String; const RemoveEspacos: Boolean): TACBrCNIEERegistro; var I: Integer; Marca, Modelo, VersaoSB: String; MarcaAtual, ModeloAtual, VersaoAtual: String; begin // abrir a tabela se estiver fechada if Cadastros.Count <= 0 then begin if not Self.AbrirTabela then raise EACBrCNIEE.Create('Não foi possível abrir a tabela de CNIEE.'); end; Marca := AnsiUpperCase(AMarca); Modelo := AnsiUpperCase(AModelo); VersaoSB := AnsiUpperCase(ACBrUtil.OnlyNumber(AVersaoSB)); if RemoveEspacos then begin Marca := StringReplace(Marca, ' ', '', [rfReplaceAll]); Modelo := StringReplace(Modelo, ' ', '', [rfReplaceAll]); VersaoSB := StringReplace(VersaoSB, ' ', '', [rfReplaceAll]); end; Result := nil; for I := 0 to Cadastros.Count - 1 do begin MarcaAtual := AnsiUpperCase(Cadastros[I].DescrMarca); ModeloAtual := AnsiUpperCase(Cadastros[I].DescrModelo); VersaoAtual := AnsiUpperCase(ACBrUtil.OnlyNumber(Cadastros[I].Versao)); if RemoveEspacos then begin MarcaAtual := StringReplace(MarcaAtual, ' ', '', [rfReplaceAll]); ModeloAtual := StringReplace(ModeloAtual, ' ', '', [rfReplaceAll]); VersaoAtual := StringReplace(VersaoAtual, ' ', '', [rfReplaceAll]); end; if (MarcaAtual = Marca) and (ModeloAtual = Modelo) and (VersaoAtual = VersaoSB) then begin Result := Cadastros[I]; Exit; end; end; end;
  3. Com SAT, NFCe ou ECF você precisará de um sistema... A meu ver o ECF é uma escolha segura para o seu caso... pois poderá ser utilizado até o fim da memória fiscal... Se o SAT existisse seria o melhor... (pois ele pode trabalhar off-line de forma autônoma) O NFCe em SP, tem como contingência apenas o SAT... então aqui em SP o NFCe sem o SAT não vinga... (aqui em SP não é permitida a contingência off-line da NFCe em até 24 horas) Sem falar que o prazo de aprovação de uma NFCe pode chegar até 30 segundos (tempo esse tido como considerado razoável pelo governo)
  4. Certeza que você está passando as informações de Conta e Título sempre da mesma maneira ? Se for ACBrMonitor, poderia anexar os .INIs que geraram esses boletos ?
  5. Anexe o LOG gerado pelo ACBrECF e se possível o LOG gerado pelas DLLs
  6. Nunca tente gravar algo direto no "C:\" use um subdiretório do seu programa por exemplo...
  7. A Bematech está prometendo o mesmo driver que hoje existe para a MP4200 para a MP4000... Mas não tenho ideia do prazo de lançamento... Acho que você pode tentar acessar a porta do Windows diretamente... Veja esses Posts:
  8. Notei que os fontes anexados estão com muitas diferenças do original... Provavelmente passaram por algum processo de formatação... Fica muito difícil de saber o que foi modificado... infelizmente não posso aplicar as modificações...
  9. Subindo as DLLs para o SVN... Muito obrigado pelo retorno...
  10. A Bematech em Linux não usa os mesmos métodos da DLL O código para Linux na Bematech é completamente diferente e não está implementado corretamente ou testado...
  11. Sem o log com o erro fica quase impossível saber onde verificar nos fontes...
  12. Acredito que isso seja feito entre Lojista e Operadora... O Lojista deve ter um numero de atendimento na operadora...
  13. Sinceramente acredito que o código em Linux para Bematech esteja defasado e não totalmente implementado.... A muito tempo eu não faço testes com ele.. A dificuldade principal é que o os comandos da DLL (para Windows) não estão disponíveis no Linux
  14. Até o momento não tive nenhuma comunicação da Bematech
  15. Poste um trecho maior do LOG... não consta no LOG a exata mensagem de erro..
  16. Acredito que as adaptações sejam mais em relação as Units... mas é necessário verificar se a "Synapse" é compatível com o FireMonkey e as plataformas que ele suporta
  17. A velocidade está correta em 115.200, caso contrário vc não obteria comunicação nenhuma... Pode ser que o TimeOut esteja baixo (deixe em 10), ou ainda problemas na porta serial...
  18. A função atual possui o parâmetro RemoverEspacos que deveria ser respeitada
  19. Porque quase todos os sistemas usam essa forma de comunicação com a Impressora.. e havendo a emulação, não precisariam ser ajustados... A titulo de exemplo, vale lembrar que até hoje quase todos os Gerenciadores padrão seguem o modelo do TEF discado (troca de arquivos), apesar de usarem conexões por IP @wandersonkd Você deve solicitar o roteiro de homologação para Impressora NÃO fiscal... (que é 10x mais simples)
  20. Seu código atual é incompatível com a implementação atual... não podemos aproveitar...
  21. Pelo que entendi do outro tópico a modificação já foi efetuada... bastando ao usuário informar True para a propriedade RemoveEspacos.. é isso mesmo ?
  22. É uma ideia... mas acho que primeiro você deveria estudar o roteiro de homologação com Impressoras não fiscais da Software Express... para saber exatamente onde modificar...
  23. Em que se resume sua modificação ?
  24. Vc está pisando em terreno novo... acho que poucos (ou ninguém) tenha tentado fazer o que vc está tentando... Leve em conta que o ACBrTEFD foi projetado para trabalhar com um ECF... e por isso ele dispara eventos perguntando informações ao ECF ou disparando comandos de impressão... Cabe a você interpretar esses comandos e leituras de informações de forma a "EMULAR" um ECF para o ACBrTEFD seguir o fluxo dele... Está nos nossos planos criar um modelo de ecfVirtual, que poderá se conectar a um TECFVirtualNFCe... quando isso existir, o componente ACBrECF será capaz de criar uma NFCe através dos comandos tradicionais existentes para o ECF... mas até lá.... vc precisará criar sua própria lógica de Emulação ou dispensar o o ACBrTEFD
  25. Você precisará emular elas ou simplesmente não fazer nada quando se tratar de uma NFCe
×
×
  • 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.

The popup will be closed in 10 segundos...