Ir para conteúdo
  • Cadastre-se

Edson Fernandes

Membros
  • Total de ítens

    77
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por Edson Fernandes

  1. Apliquei modificações no método GravarXML que devem chamar o método GerarXML (se necessário)

    unction NotaFiscal.GravarXML(NomeArquivo: String; PathArquivo: String): Boolean;
    begin
      FNomeArq := CalcularNomeArquivoCompleto(NomeArquivo, PathArquivo);
    
      if EstaVazio(FXMLOriginal) then
        GerarXML;
    
      Result := TACBrNFe(TNotasFiscais(Collection).ACBrNFe).Gravar(FNomeArq, FXMLOriginal);
    end;   

     

    Daniel, pelo que eu consegui entender, o código que você mexeu verifica se já foi criado ou não o xml antes de gravar e caso não tenha sido criado, ele cria. Porém, aqui deu a mesma mensagem de erro e para que funcione eu tive que chamar dessa forma (conforme o amigo Ricardo mencionou anteriormente:

      ACBrNFe1.NotasFiscais.Items[0].GerarXML();
      ACBrNFe1.NotasFiscais.Items[0].GravarXML();
     

    A propósito, atualizei o ACBR usando o trunk2 hoje de manhã (07/09/2015) e uso delphi 2010.

    Muito obrigado

  2. Olá, boa noite. Atualizei os componentes para o trunk2 (gostei muito porque até para usuários leigos igual a mim se torna um pouco mais fácil de entender o código) e ao testar o demo do acbrboleto percebi que quando eu seto as propriedades do componente "cedente.tipoinscricao' = 'pfisica' e insiro um cpf no campo "CNPJCPF", ao se compilar o projeto, na hora de abrir já me vem uma mensagem dizendo que o "CNPJ deve conter 14 dígitos (apenas números). Alguem poderia testar pra ver se aparece o mesmo erro? Sei que é meio incomum um CPF emitir boletos, mas tenho alguns clientes que o fazem. Muito Obrigado.

    COMPONENTE_PREENCHIDO.txt

  3. Uso delphi 2010.

    Boa tarde, instalei o pacote do fortes ce que foi atualizado pelo Regys e ao tentar instalar os componentes me aparece: "Embarcadero Delphi for Win32 compiler version 21.0
    Copyright (c) 1983,2009 Embarcadero Technologies, Inc.
    C:\Componentes Delphi\COMPO RAR\ESPECIFICO_XE\fortesreport-ce-master\Source\RLReport.pas(27) Fatal: F1026 File not found: 'Qt.dcu'
    Compilation failure" alguém sabe do que se trata a unit "qt"?  <== o delphi foi instalado agora, o único componente que instalei é o fortes ce e estou no momento tentando instalar o acbr. Muito Obrigado.

  4. Pessoal, estou tentando migrar para o trunk2, uso o delphi 2010, porem ao tentar instalar usando o aplicativo "ACBrInstall_Trunk2", ao se marcar os relatórios do fortes me vem a mensagem: Embarcadero Delphi for Win32 compiler version 21.0
    Copyright (c) 1983,2009 Embarcadero Technologies, Inc.
    ACBr_NFeDanfeRL.dpk(78) Fatal: E2202 Required package 'FortesReportCE_Win32_D2010_vcl' not found  ====coloquei so o fim, acho que da pra entender. Me desculpem se isso já esta explicado em outro lugar mas não achei. O problema é que fui no github e peguei a versão do fortes que tem lá, no entanto não consta em "https://github.com/fortesinformatica/fortesreport-ce"  o package "'FortesReportCE_Win32_D2010_vcl'". Como faço agora? 

  5. Olá, mais uma vez estou aqui torrando a paciência do administrador com um problema que me ocorre: Após atualizar o ACBR, eu sempre tenho que modificar a função "validarcpf" por conta de que me aparece uma mensagem dizendo que o CPF deve conter 11 dígitos. Já tentei resolver de tudo que é jeito mas não dou conta. Gostaria que fosse feito um teste observando o meu cenário: Minha conta no banco é pessoa física e penso que seja por isso que da o erro, acho que o acbr esta preparado pra processar o retorno de pessoa jurídica. Em anexo, está o arquivo que peguei do banco, enquanto eu não alterar a unit "ACBRVALIDADOR.PAS" não processa o retorno. Muito Obrigado.

    73143130.rar

  6. Olá Valdir, apanhei muito e a única forma que encontrei pra resolver foi calcular o hash do qrcode na mão mesmo. Sei que não é a forma correta, mas da pra usar como saída até que volte a funcionar normalmente. No início, eu calculava dessa forma que você esta usando, mas depois de uma atualização do componente, parou de funcionar. Pra resolver temporariamente, voltei a usar o "modo primitivo", mas quebra um galho.

    *Note que dentro da unit acbrDanfceFortesFr.pas, ao invés de deixar ele calcular o hash usando o procedimento do componente, eu usei esta rotina de calculo do qrcode antes de chamar o procedimento de impressão pra que seje gerado um arquivo bitmap contendo o qrcode em forma de uma foto (imagem). Acredito que o problema esteja em "NotaUtil.GetUrlQrCode". Se precisar, chama no Skype.

    qrcode.txt

    ACBrDANFCeFortesFr.pas

  7. Bom dia Juliana, bom, essa foi a forma que eu encontrei aqui pra conseguir contornar o problema. A questão é que não somos nós os usuários quem passa o cpf para a rotina ValidarCPF, mas sim o próprio componente acbrboleto. No meu caso, o retorno é do banco sicredi e não testei com outro banco, mas o que da a entender é que a rotina que faz a leitura do campo CNPJ/CPF no arquivo de retorno do banco está preparada para pegar um CNPJ (14 caracteres) e no meu caso, minha conta que esta como cedente no banco utiliza meu CPF.

  8. Bom dia. Juliana, isso mesmo, os valores não batem. Esta linha digitável foi gerada antes de atualizar o ACBR:

    748-X 74893.10008 01323.208189 08731.431055 1 62110000025764  <== com esta eu consigo recolher lá no banco

     

    e esta depois de atualizar:

    748-X 74893.11428 01323.208189 08731.431089 2 62110000025764 <== esta aqui não

    ================================================================

  9. Eu também tenho o mesmo problema, gerei um boleto com a versão anterior, passa normal no banco. Ao se gerar o mesmo boleto, com as mesmas configurações (igual) com a versão atual, o código de barras muda. Pra resolver isso, eu tive que alterar a unit acbrboleto.pas 

    ***** pessoal, eu sou bem novato nessa parte de mexer em componente, perdoem os modos "medonhos".

    //////////////////////////

    no cabeçalho da unit...

     

       public
         constructor Create(ACBrBoleto:TACBrBoleto);
         destructor Destroy; override;

         property ACBrBoleto        : TACBrBoleto read fACBrBoleto;

         property con_linhadigitavel    : String      read fcon_linhadigitavel    write fcon_linhadigitavel;    //<===pra guardar a linha digitavel
         property con_codbarras    : String      read fcon_codbarras    write fcon_codbarras;              //<===== pra guardar o código de barras

    ////////////////////////////////////////////////////////////

     

    no objeto tacbrtitulo:

     

      { TACBrTitulo }

      TACBrTitulo = class
      private
        fInstrucao1        : String;
        fInstrucao2        : String;
        fInstrucao3        : String;
        fLocalPagamento    : String;
        fcon_linhadigitavel:string; //gambiarra conectiva
        fcon_codbarras:string; //gambiarra conectiva

     

    ...

    *********************************************

    com isso, obtive dois novos campos dentro do titulo: con_CodBarras e con_LinhaDigitavel.

     

    na hora de gerar o titulo (criar o boleto) eu seto os valores dos dois campos novos:

     

    ** procedure ...gerarboleto

    begin

          Titulo := ACBrBoleto1.CriarTituloNaLista;
          with Titulo do
          begin

            //la no fim, depois de informar a parcela, valor, data, etc...

            con_CodBarras      := acbrboleto1.Banco.MontarCodigoBarras( Titulo );
            con_LinhaDigitavel := acbrboleto1.Banco.MontarLinhaDigitavel( con_CodBarras,Titulo );

      ...

     

      ...

    end;

     

    **********************************************************

    pronto, guardei os dois campos e na hora de gerar o relatório, eu peço via código pra preencher os campos usando os valores obtidos na hora da geração do titulo

     

    ////////// acbrboletofcfortesfr.pas

     

    procedure TACBrBoletoFCFortesFr.RLBand2BeforePrint(Sender: TObject;
       var PrintIt: boolean);
    //Var
    //  CodBarras, LinhaDigitavel : String;
    begin
      with fBoletoFC.ACBrBoleto do
      begin
         //CodBarras      := Banco.MontarCodigoBarras( Titulo ); //<=== isso monta o código errado
         //LinhaDigitavel := Banco.MontarLinhaDigitavel( CodBarras,Titulo ); //<== isso monta o código errado

         imgBanco3.Picture.Assign(imgBanco2.Picture);
         fBoletoFC.CarregaLogo( imgBanco3.Picture, Banco.Numero );
         txtNumeroBanco3.Caption         := txtNumeroBanco2.Caption;
         txtLocalPagamento3.Lines.Text   := lblLocalPagto.Lines.Text;
         txtDataVencimento3.Caption      := txtDataVencimento2.Caption;
         txtNomeCedente3.Caption         := txtNomeCedente2.Caption;
         txtEndCedente1.Caption          := txtEndCedente.Caption  ;
         txtCodigoCedente3.Caption       := txtCodigoCedente2.Caption;
         txtDataDocumento3.Caption       := txtDataDocumento2.Caption;
         txtNumeroDocumento3.Caption     := txtNumeroDocumento2.Caption;
         txtEspecie3.Caption             := txtEspecie2.Caption;
         txtAceite3.Caption              := txtAceite2.Caption;
         txtDataProcessamento3.Caption   := txtDataProcessamento2.Caption;
         txtNossoNumero3.Caption         := txtNossoNumero2.Caption;
         txtUsoBanco3.Caption            := txtUsoBanco2.Caption;
         txtCarteira3.Caption            := txtCarteira2.Caption;
         txtEspecieDoc3.Caption          := txtEspecieDoc2.Caption;
         txtValorDocumento3.Caption      := txtValorDocumento2.Caption;
         txtNomeSacado3.Caption          := txtNomeSacado2.Caption;
         txtEnderecoSacado3.Caption      := txtEnderecoSacado2.Caption;
         txtCidadeSacado3.Caption        := txtCidadeSacado2.Caption;
         txtCpfCnpjSacado3.Caption       := txtCpfCnpjSacado2.Caption;

         imgCodigoBarra.Caption          := titulo.con_CodBarras; //<== isso foi a gambiarra
         txtLinhaDigitavel.Caption       := titulo.con_LinhaDigitavel; //<== gambiarra
         txtInstrucoes3.Lines.Text       := txtInstrucoes2.Lines.Text;
       end;
    end;

     

    *********** pessoal, mas uma vez, me desculpem pela bagunça, mas aqui funciona. se precisarem, eu posto as units pra que sejam comparadas

  10. Olá, tenho um problema já faz tempo ao se processar o retorno do banco 748 - Sicredi. Sempre que tento processar o retorno do banco, me é mostrada a mensagem "CPF deve ter 11 dígitos. (Apenas Números)".

    Para contornar este problema, tenho que fazer uma alteração na unit "acbrvalidador.pas" que está dentro da pasta acbr\fontes\diversos.

     

    ********************************************************

    Procedure TACBrValidador.ValidarCPF ;
    Var DV1, DV2 : AnsiString ;
    begin
      if fsAjustarTamanho then
         fsDocto := padR( fsDocto, 11, '0') ;

      //assumo que se tiver maior que 11 caracteres, veio um cpf do estilo banco sicredi que preenche com zeros a esquerda até completar 14 caracteres
        if Length( fsDocto ) > 11 then
        fsDocto:=copy(fsDocto,4,11);  //<==== peço pra olhar da posição 4 pra frente
      if (Length( fsDocto ) <> 11) or ( not StrIsNumber( fsDocto ) ) then
    //  if (Length( fsDocto ) <> 11) then
      begin
         fsMsgErro := 'CPF deve ter 11 digitos. (Apenas numeros)' ;
         exit
      end ;

      if pos(fsDocto,'11111111111.22222222222.33333333333.44444444444.55555555555.'+
             '66666666666.77777777777.88888888888.99999999999.00000000000') > 0 then
      begin
         fsMsgErro := 'CPF inválido !' ;
         exit ;
      end ;

      Modulo.MultiplicadorInicial := 2  ;
      Modulo.MultiplicadorFinal   := 11 ;
      Modulo.FormulaDigito        := frModulo11 ;
      Modulo.Documento := copy(fsDocto, 1, 9) ;
      Modulo.Calcular ;
      DV1 := IntToStr( Modulo.DigitoFinal ) ;

      Modulo.Documento := copy(fsDocto, 1, 9)+DV1 ;
      Modulo.Calcular ;
      DV2 := IntToStr( Modulo.DigitoFinal ) ;

      fsDigitoCalculado := DV1+DV2 ;

      if (DV1 <> fsDocto[10]) or (DV2 <> fsDocto[11]) then
      begin
         fsMsgErro := 'CPF inválido.' ;

         if fsExibeDigitoCorreto then
            fsMsgErro := fsMsgErro + '.. Digito calculado: '+fsDigitoCalculado ;
      end ;
    end;

    ********************************************************

    Funciona beleza, mas sempre que atualizo o acbr tenho problemas. Obrigado!

  11. Boa Tarde amigos.

     

    Estamos tentando instalar o NFCE no nosso primeiro cliente em modo de produção, mas estou com uma dificuldade para fazer o cancelamento da nota.

     

    O Sefaz do Amazonas está me retornando o seguinte erro "A data do evento nao pode ser maior que a data do processamento". Em homologação estou enviando para o Sefaz do RS e o cancelamento está ocorrendo normalmente.

     

    Obrigado

    Você já verificou a hora do seu computador pra ver se está com o mesmo horário de Manaus?

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