Ir para conteúdo
  • Cadastre-se

Matheus de Oliveira

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Posts postados por Matheus de Oliveira

  1. Em 09/09/2019 at 16:17, José M. S. Junior disse:

    Boa tarde @Matheus de Oliveira

    Adicionado parte das alterações ao SVN, obrigado pela contribuição...

    Quanto a leitura da ocorrência, qual o motivo para ler sempre as 10 posições do campo dentro do FOR, visto que a cada laço deve considerar apenas duas posições da ocorrência? Se aplicar a mesmo solução existente no Banco Bradesco por exemplo não resolveria? 

    Se possível anexe o arquivo de retorno para um melhor entendimento do problema...

    Bom dia @José M. S. Junior

    Realmente, são 2 posições, peço desculpas, pois olhei a unit aqui que enviei, provavelmente é a que fiz um teste e errei na hora de enviar. Novamente para você analisar a linha 561 e 565 novamente. Obrigado e peço desculpas novamente.

    ACBrBancoBancoob.pas

    • Curtir 1
  2. Boa tarde pessoal, eu estava com um problema com o Retorno do SICOOB, onde ao ler um retorno com uma Ocorrência 25-Protestado e Baixado (Baixa por Ter Sido Protestado), estava identificando como 02-CONFIRMAÇÃO ENTRADA TÍTULO. Após fazer a correção, identifiquei outro problema, um com o Motivo, fiz a correção também.

    Linhas: 561, 565, 1311, 1432, 1473.

    Se tiver como dar um commit. 😃👍

    ACBrBancoBancoob.pas

  3. 1 hora atrás, EMBarbosa disse:

    Vocês conseguem analisar o motivo disso acontecer?

    Única coisa que analisei debugando, foi que a função fsDevice.BytesParaLer da função LeSerial() , não recebe mais bytes da balança, a não ser que faz uma requisição novamente pela função LePeso(). Por que pelo que eu entendi a função fsDevice.BytesParaLer, fica escutando a porta da balança para pegar os bytes do peso, a não ser que estou errado. Quando faz uma nova requisição ele retorna os bytes, depois ele para de escutar a porta, somente se fazer uma nova requisição para ela retornar, e assim por diante. E como eu não entendo muito de dessa função de leitura serial, eu não consegui achar o erro, só onde está a falta de informação.

  4. Em 11/08/2016 at 14:47, EMBarbosa disse:

    Não entendi... onde então está o problema?

    Se colocar um timer requisitando o LePeso(), a função fsDevice.BytesParaLer da função LeSerial() retorna valores, mas se checar somente a Opção MonitorarBalanca a função fsDevice.BytesParaLer da função LeSerial() não retorna nada e é ai que está o problema.

  5. EMBarbosa, fiz um Debug e percebi que não é o MonitorarBalanca o problema, pois a função LeSerial fica lendo toda hora com o fsTimer, como esperado, mas o fsDevice.BytesParaLer fica retornando Zero.

    procedure TACBrBAL.LeSerial(Sender: TObject);  { Chamado pelo Timer interno }
    begin
      fsTimer.Enabled := False ;  { Desliga o Timer para evitar chamadas Recursivas }
    
      { Está ativo ? Tem dados esperando na porta Serial ? }
      if fsDevice.Ativo then
      begin
         if (fsDevice.BytesParaLer > 0) then
         begin
            fsBAL.LeSerial( 500 ) ;
            if Assigned( fsOnLePeso ) then
               fsOnLePeso( UltimoPesoLido, UltimaResposta ) ;
         end ;
      end ;
      
      fsTimer.Enabled := True ;
    end;

    Unit ACBrBAL.pas

  6. Desculpa, agora corrigi no Trunk2 também, o problema que está deixando 2 casas decimais para combustíveis e são 3 casas decimais, ai onde é 1,999, fica 2,00 na impressão.

    Segue o código e o fonte.

    LinhaItem := Trim(Prod.cProd)+' '+
                     Descricao+' '+
                     FormatFloatBr(Prod.qCom, ACBrSATExtrato.Mask_qCom)+' '+
                     Trim(Prod.uCom)+' X '+
                     FormatFloatBr(Prod.vUnCom, IfThen(Prod.EhCombustivel, '#,###,##0.000', ACBrSATExtrato.Mask_vUnCom))+' ';

    De

    LinhaItem := Trim(Prod.cProd)+' '+
                     Descricao+' '+
                     FormatFloatBr(Prod.qCom, ACBrSATExtrato.Mask_qCom)+' '+
                     Trim(Prod.uCom)+' X '+
                     FormatFloatBr(Prod.vUnCom, ACBrSATExtrato.Mask_vUnCom)+' ';

    Para

    LinhaItem := Trim(Prod.cProd)+' '+
                     Descricao+' '+
                     FormatFloatBr(Prod.qCom, ACBrSATExtrato.Mask_qCom)+' '+
                     Trim(Prod.uCom)+' X '+
                     FormatFloatBr(Prod.vUnCom, IfThen(Prod.EhCombustivel, '#,###,##0.000', ACBrSATExtrato.Mask_vUnCom))+' ';

    Linha: 593 - ACBrSATExtratoFortesFr.pas

    ACBrSATExtratoFortesFr.dfm

    ACBrSATExtratoFortesFr.pas

  7. Tem um problema nas casas decimais do valor unit. na impressão do Fortes quando é Combustível.

    Não sei se já corrigiram, pois atualizei recentemente e está com esse problema, mas já corrigi.

    De

    LinhaItem := Trim(Prod.cProd)+' '+
                     Descricao+' '+
                     DFeUtil.FormatFloat(Prod.qCom, ACBrSATExtrato.Mask_qCom)+' '+
                     Trim(Prod.uCom)+' X '+
                     DFeUtil.FormatFloat(Prod.vUnCom, ACBrSATExtrato.Mask_vUnCom)+' ';
    

    Para

    LinhaItem := Trim(Prod.cProd)+' '+
                     Descricao+' '+
                     DFeUtil.FormatFloat(Prod.qCom, ACBrSATExtrato.Mask_qCom)+' '+
                     Trim(Prod.uCom)+' X '+
                     DFeUtil.FormatFloat(Prod.vUnCom, DFeUtil.SeSenao(Prod.EhCombustivel, '#,###,##0.000', ACBrSATExtrato.Mask_vUnCom))+' ';

    Linha: 598 - ACBrSATExtratoFortesFr.pas

    ACBrSATExtratoFortesFr.pas

×
×
  • 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.