Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.622
  • Registro em

  • Última visita

  • Days Won

    767

Posts postados por Daniel Simoes

  1. Acho que não... os tipos mais modificados são ShortDateFormat e DecimalSeparator

     

    Se no D7 pudermos modificar:

    ShortDateFormat ->  FormatSettings.ShortDateFormat

    DecimalSeparator -> FormatSettings.DecimalSeparator

     

    acho que resolve o problema, e de quebra removemos vários Warnings da compilação...   (Vou testar)

  2. Uma possível correção seria:

     

    {$IFDEF DELPHIXE_UP}FormatSettings.{$ENDIF}ShortDateFormat := 'dd/mm/yy' ;
    {$IFDEF DELPHIXE_UP}FormatSettings.{$ENDIF}DateSeparator := '/' ;

     

    Em muitos lugares o código existente poderia ser substituído por uma chamada a ACBrUtil.StringToDateTime

     

    Mesmo assim daria um trabalho insano...

  3. Pode ser isso... no XE2, mudou o tratamento a todos "FormatSettings"...

     

    Pelo que analisei rapidamente... em vários pontos do código podem haver problemas... pois em vários momentos é usada a modificação de ShortDateFormat

  4. Qual a versão do seu Delphi ?

     

    O que vc está fazendo já é (ou deveria ser) feito pela function ACBrUtil.StringToDateTime

     

    
    Function StringToDateTime( const DateTimeString : String;
       const Format : String = '') : TDateTime ;
     Var
        OldShortDateFormat, AStr : String ;
    begin
      OldShortDateFormat := ShortDateFormat ;
      try
         if Format <> '' then
            ShortDateFormat := Format ;
    
         AStr := Trim( StringReplace(DateTimeString,'/',DateSeparator, [rfReplaceAll])) ;
         AStr := StringReplace(AStr,':',TimeSeparator, [rfReplaceAll]) ;
    
         Result := StrToDateTime( AStr ) ;
      finally
         ShortDateFormat := OldShortDateFormat ;
      end ;
    end ;
    
    
  5. Apliquei a seguinte modificação nos fontes do SVN:

     

    Data: 21/01/2013
    -- ACBrECFSwedaSTX --
    [+] Adicionada leitura dos registradores: NumCFC, NumGNFC, NumCFD, NumNCN (por DSA)

     

    Por favor atualize e teste...

  6. Regys, o link que vc passou está quebrado. Gostaria de ler seu artigo.

     

    Daniel, então eu terei que pegar as informações de DadosReducaoZ antes da RZ e de DadosUltimaReducaoZ depois da RZ para finalmente mesclar e gravar na minha base, certo?

     

    Sim, tomando o cuidado para desprezar as informações inválidas (que o ECF não retornou) em DadosUltimaReducaoZ

  7. Você deve usar a leitura de DadosReducaoZ instantes antes de emitir a Z... e está correto o procedimento de somar 1 ao CRZ e COO

    Esse método é mais seguro, pois ele lê cada registrador/totalizador individualmente

     

    Após a Z todos os registrador/totalizador são todos zerados.. então chamar DadosReducaoZ não funcionará... Após a Z use DadosUltimaReducaoZ.

    Esse método usa comando específico do ECF para retornar em um "linguição de dados" as informações da última Z emitida... Porém, a informação retornada depende muito de cada fabricante... e muitos dos registradores/totalizadores não são retornados, por isso eles são preenchidos na Classe como "-1" ou "" (vazio)

     

    O ideal é usar ambos os métodos... e fazer uma mesclagem com as informações de ambos, dando preferência a informação de DadosUltimaReducaoZ (caso ela exista)

  8. Vc programou o evento ACBrTEFD1.OnComandaECFSubtotaliza  ? 

     

    Estude (com muita atenção) os fontes do TEFDDemo... Veja o exemplo abaixo...

     

    Observe que ele recebe o Desconto que foi enviado pelo TEF (DescAcre),  que deve ser aplicado na Subtotalização do cupom, juntamente com o Seu Desconto (se houver)  (MeuDescAcres no exemplo abaixo)

     

    procedure TForm1.ACBrTEFD1ComandaECFSubtotaliza(DescAcre: Double;
       var RetornoECF: Integer);
    Var
       Est : TACBrECFEstado ;
       MeuAcresDesc : Double ;
    begin
      Memo1.Lines.Add('ComandaECFSubtotaliza: DescAcre: ' + FormatFloat('0.00',DescAcre) );
    
      MeuAcresDesc := StringToFloatDef( edValorDescAcre.Text, 0 );
      try
        Est := ACBrECF1.Estado;
    
        if Est = estNaoFiscal then
           ACBrECF1.SubtotalizaNaoFiscal( DescAcre + MeuAcresDesc, 'Projeto ACBr|http://acbr.sf.net' )
        else
           ACBrECF1.SubtotalizaCupom( DescAcre + MeuAcresDesc, 'Projeto ACBr|http://acbr.sf.net' );
    
        { Remove o Desconto pois já foi aplicado, caso contrário iria influenciar o
          retorno de ineSubTotal }
        edValorDescAcre.Text := '0,00';
        RetornoECF := 1 ;
      except
        RetornoECF := 0 ;
      end;
    end;
    
    
  9. Os novos ECFs possuem Arredondamento por Item...

     

    Tente:

    ACBrECF1.ArredondaItemMFD := True   (antes de vender o Item)

     

    Se o ECF não suportar nenhuma maneira de arredondamento... Tente:

    ACBrECF1.ArredondaPorQtd := True  (observe que essa propriedade altera a QTD enviada para o ECF)

  10. Qual o nome do contador exatamente ? Se for o CCF ele está implementado sim, em ecfSwedaSTX

     

    function TACBrECFSwedaSTX.GetNumCCF: String;
    begin
      Result := Trim(copy( RetornaInfoECF( 'A4' ), 21, 6)) ;
    end;
    
    
  11. link para baixar a firmware ppla esta corrompido, preciso urgente desta firm ppla para os214 plus, me ajudem obrigado

     

     

    Segue a dica do Fabio...

     

    Entrei em contato com o suporte da Argox, e eles me enviaram um arquivo que "baixa" a PPLA para a impressora.

    Estou enviando ele em anexo.

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