Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    29.351
  • Registro em

  • Última visita

  • Days Won

    781

Tudo que Daniel Simoes postou

  1. Esses DUnit FPCUnit são uma mão na roda... Apliquei uma correção para o problema de arredondamento do LFILL... Trata-se de um velho problema do Delphi, quando usando Trunc com expressões e não variáveis... Por sorte na ACBrUtil já existe um método para esse problema... o TruncFix Também notei um pequeno problema nos testes: LFillExtendedSeisCasas_UmBilionesimoDouble_Retorno e LFillExtendedSeisCasas_UmBilionesimoExtended_Retorno
  2. Nem todas balanças possuem esse recurso... E as que possuem precisa ser configuradas para tal... Ou seja, você precisa configurar a balança, usando utilitário (ou instruções) do fabricante, para que ela envie o peso, assim que o mesmo estiver estável...
  3. Por favor leia essa página: http://acbr.sourceforge.net/drupal/?q=node/37
  4. Obrigado pela ajuda Elton, Com a ajuda dos novos UnitTestes ficou evidente que temos problemas na TACBrTXTClass... (também será mais simples de corrigi-los)
  5. Mais algumas melhorias: Demo do ACBrSAT atualizado em:
  6. Programa Demo do SAT atualizado em:
  7. Após receber um SAT da Dimep, pude fazer novos testes... e implementei as seguintes melhorias: Lembram que o SAT da Dimep é compatível com o ACBrSAT, usando o modelo satDinamico_stdcall
  8. Tentei testar com o emulador, mas o mesmo não permite Download da MF... Analisando os fontes, notei que uma possível causa do erro, seria o fato da aplicação .EXE não ter direitos de escrita, na pasta onde ela está instalada, pois o comando abaixo, deverá tentar criar o arquivo "ACBr.MF" na pasta da aplicação... Veja: ......... FileMF := 'ACBr.MF'; // fazer primeiro o download da MF GravaLog( ' xECF_DownloadMF' ); Resp := xECF_DownloadMF(FileMF); if (Resp <> 1) then raise EACBrECFERRO.Create( ACBrStr( 'Erro ao executar ECF_DownloadMF.'+sLineBreak+ DescricaoErroDLL(Resp) ));
  9. Apliquei uma possível correção no SVN... Aparentemente o problema é no Sw.Básico do ECF, que não detecta a sequencia corretamente...
  10. Seria muito difícil implementar isso no método atual, pela passagem de parâmetros... pois quebraria a compatibilidade de todas as classes existentes... Essas informações não podem ser ajustadas em algum .INI da DLL ?
  11. 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)
  12. Maravilha... Se não for muito incomodo, poderia adicionar o novo Log após aplicada a correção ?
  13. 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
  14. 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...
  15. 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;
  16. http://www.projetoacbr.com.br/forum/index.php?/forum-3/announcement-2-novo-caminho-para-o-c%C3%B3digo-fonte-do-acbr-no-sourceforge/
  17. Verifique se o problema ocorre sempre no mesmo ponto... Se você conseguir reproduzi-lo no ECFTeste, podemos debugar...
  18. Erro 500 geralmente indica problemas com Proxy
  19. 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 ;
  20. 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=
  21. Seus fontes estão atualizados ?? No exemplo tem uma aba que faz exatamente isso... gera e transmite uma NFCe
  22. 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.
  23. Você acha que é possível implementar usando o ACBrTCP (synapse) ?
  24. O processo é o mesmo para qualquer impressora de Rede do Windows... Favor acessar: (mude "localhost" para o IP da máquina)
×
×
  • 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...