Ir para conteúdo
  • Cadastre-se

karlouchoa

Membros
  • Total de ítens

    105
  • Registro em

  • Última visita

Posts postados por karlouchoa

  1. Amigos,

    Estou passando todos os valores corretamente para os parâmetros, de acordo com o manual de especificações técnicas do Danfe NFC e mesmo assim meu qr code não consegue encontrar a nota pelo visualizador disponibilizado pela SEFAZ.

     

    O interessante é que passei todos os valores mostrados no manual para o meu gerador e tentei gerar o Hash para ver se geraria o mesmo Hash do Manual e não gerou, será que meu gerador de Hash está errado?

     

    Meu código é este:

     

      try
            f_pdv.ACBrNFe1.Enviar(vNumLote,True,Sincrono);

        begin
          passou:=true;

     

          chNfe := f_pdv.ACBrNFe1.NotasFiscais.Items[0].NFe.procnfe.chNFe;
          digest:= f_pdv.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.digVal;
          protocolo:= f_pdv.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt;

     

          q.close;
          q.SQL.Text:='update t_nfs '+
          ' set NrProtocol = :Protocolo, '+
        //  '     NrRecibo  = :Recibo, '+
          '     IDNota = :IdNota, '+
          '     Env = ''S'' '+
          ' where numnf = :nf '+
          '  and modelo = 65 '+
          '  and serie = :serie ' +
          '  and cdemp = :emp ';
          q.ParamByName('nf').AsString := numnf;
          q.ParamByName('emp').AsString := f_menu.Empresa;
          q.ParamByName('serie').AsString := inttostr(f_menu.serie);
          q.ParamByName('Protocolo').AsString:=Protocolo;
      //    q.ParamByName('Recibo').AsString:=Recibo;
          q.ParamByName('IdNota').AsString:=ChNFe;
          q.Prepare;
          q.ExecSQL;

        end;
      except
      begin
            passou:=false;
            showmessage('Nota Fiscal Gerada em Contingência!');
      end;
      end;

     

      urlqrcode:='chNfe='+
      ChNFe+
      '&nVersao=100'+
      '&tpAmb='+f_pdv.TipoAmb+
      iif(cdcli = t_config.getCodcons,'','&cDest='+f_pdv.DestCNPJCPF)+
      '&dhEmi='+datahora+
      '&vNF='+TrocaVirgPPto(tiraponto(floattostr(valornf)))+
      '&vICMS='+TrocaVirgPPto(tiraponto(floattostr(VLIcms)))+
      '&digVal='+digest+' '+
      '&cIdToken=000001'+f_menu.Nrtoken;

     

    { // Já tentei assim
      if passou then
      begin
        with TACBrEAD.Create(nil) do
        try
          urlqrcode := CalcularHash(urlqrcode, dgstSHA1);
        finally
          Free;
        end;
      end;

    }

     

    // Agora faço assim
      if passou then
      begin
        with TACBrEAD.Create(nil) do
        try
          urlqrcode := CalcularHash(UTF8Encode(urlqrcode), dgstSHA1);
        finally
          Free;
        end;
      end;

     

       HashQrCode:= StrToHex(urlqrcode);  // aqui fique com uma dúvida pois não ficou muito claro no manual se precisa

    // converter o HasQrCode para Hexa ou não. De qualquer forma testei sem converter também e mesmo assim não consultou no  

    // aplicativo de consulta

     

      urlqrcode:='http://sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp? '+
      'chNfe='+
      ChNFe+
      '&nVersao=100'+
      '&tpAmb='+f_pdv.TipoAmb+
      iif(cdcli = t_config.getCodcons,'','&cDest='+f_pdv.DestCNPJCPF)+
      '&dhEmi='+datahora+
      '&vNF='+TrocaVirgPPto(tiraponto(floattostr(valornf)))+
      '&vICMS='+TrocaVirgPPto(tiraponto(floattostr(VLIcms)))+
      '&digVal='+digest+' '+
      '&cIdToken=000001'+
      '&cHashQRCode='+HashQrCode;

     

    // Uma outra observação é que estou gerando o QRCode pelo google. com o procedimento abaixo:

     

     

    procedure TF_CancItemOuCupom.CriaQRCode;  // aproveitei um form existente que estava em desuso
    var
      ImageStream: TMemoryStream;
      PngImage: TPngImage;
    begin
      f_danfenfc.qrImage2.Picture := nil;
      ImageStream := TMemoryStream.Create;
      PngImage := TPngImage.Create;
      try
        try
            GetQrCode(300,300,
            TQrImage_ErrCorrLevel(2), urlqrcode,
            ImageStream);
          if ImageStream.Size > 0 then
          begin
            ImageStream.Position := 0;
            PngImage.LoadFromStream(ImageStream);
            f_danfenfc.qrImage2.Picture.Assign(PngImage);
          end;
        except
          on E: exception do
            ShowMessage(E.Message);
        end;
      finally
        ImageStream.Free;
        PngImage.Free;
      end;

    end;

     

     

     

    Alguem pode me ajudar amigos?

  2. Senhores  estou tentando gerar o QR Code da NFC. Confesso que até aquí entendendo muito pouco sobre o assunto.

     

    Minhas Dúvidas:

     

    1) Vale a pena usar o google para gerar o QR Code? Neste Caso eu não consigo gerar o código em contingência, quando  da ausência de sinal de internet - o QR Code não é obrigatório mesmo em contingência?.

     

    2) Baixei o Han-Soft 2D Barcodes como indicado em alguns posts aqui, mas percebí que elé é uma versão trial. Como faço para adquirir, ou comprar uma versão definitiva?

     

    3) Ainda na utilização do   Han-Soft 2D Barcodes, fiquei com uma dúvida na linha :

     

       "with TfrxPictureView(frxReport1.FindObject('Picture1')).Picture.Bitmap do"

     

    P.S.: Eu não soube direcionar para o meu projeto. Formulário do Delphi:  F_DanfeNFC e Componente Imagem : QRImage2.

     

    4) De que propriedade do componente ACBrNFe1 eu deverei buscar o "Digest Value" da NFC?

     

    5) Como faço para formatar a data e hora de emissão no formato exigido do manual?

     

    6) Qual código eu uso para converter estes valores em Hexadecimal?

     

    e finalmente ...

     

    7) como calcular o código hash sha1 destas informações?

     

     

    Senhores, desculpem-me, estou meio perdido no assunto. 

     

    Preciso mesmo da ajuda de vocês, obrigado!
     

     

  3. Amigos,

     

    Consegui gerar e enviar o NFC. Como faço para imprimir um Danfe Agora? Tenho que criar um?

     

    Aproveitando...

     

    Outra perguntinha, como faço para enviar notas sem me preocupar com a sequencia de numeração? tendo em vista que estarei gerando estes NFC's através de vários PDV's não posso me preocupar com numero de nota nao é? ou estou enganado?

     

    p.s.: Cada PDV possui um banco de dados independente, pelos quais são gerados de tempos em tempos um arquivo contendo as informacoes das vendas geradas por cada ponto. Neste cenário, se cada PDV gerar um numero de Nota NFC, teremos muitas mensagens de duplicidades de NFC's enviados.

     

    Obrigado.

     

  4. Sim NFE consigo. Deixa eu explicar uma coisa...

     

    Para a emissão da NFE, aquí em Manaus, não precisamos informar nada além das informações do certificado digital,

     

    Mas para a emissão do NFC, eu percebí ao testar uma ferramenta gratuita disponibilizada no próprio site da SEFAZ que esta disponibiliza um token que juntamente com o certificado digital faz a autenticacao do emissor.

     

    Na aplicacao gratuita eu tenho um campo em um form onde eu coloco o numero do token. Como estou testando agora a emissão pelo ACBR nao me atentei para o fato de que no ACBr eu não ví onde informar o numero deste token.

     

    Existe este parametro no acbr?  em que propriedade do componente eu preciso informá-lo?

     

    Obrigado.

  5. Olá meu querido,

     

    nao fiz o teste da nfe, por que minha aplicacao ainda emite nfe por outro componente. Depois do NFC pelo ACBr, eu irei passar o procedimento da NFE tambem.

     

     

    Mas o status do serviço consigo receber positivamente e tambem o acesso ao DTE no site da SEFAZ normalmente.

     

    Obrigado.

  6. Bom dia senhores,

     

    Preciso de uma ajudinha para parametrizar a procedure GravarConfiguracao...

     

    criei uma chave no registro do windows e pretendo retirar da chave o valores da procedure...

     

    Neste momento minha duvida é o onde encontro o caminho do certificado.

     

     

    Alguem pode me ajudar?

     

     

     

  7. Olá Isaque,

     

    Já fiz isto que vc esta recomendando. Inclusive neste momento estou testando em uma nova instalação do Delphi 2010. Fiz anteriormente a remoção total das instalações do delphi 2010 e delphi 2007 que estavam na maquina (Inclusive excluindo as pastas de program files  e as chaves de registro).

     

    Estou com o Fortes Report, Rave Report 7.7  instalados.

     

    A única diferença no que você recomendou é a versão do meu QuickReport, vc recomendou 5.02 e eu estou com 5.04.2.

     

    Você acha que devo remove-la e tentar encontrar a 5.02?

     

     

    Obrigado.

  8. Olá Juliomar, blz?

     

    Meu nobre eu lí o artigo do nosso amigo Isaque e fiz a configuração sugerida por ele nas minhas duas versões do Delphi nesta máquina.

     

    Mas continuo com erro citado acima

     

    Ao compilar recebo a msg de : "[DCC Error] sswin32.inc(1074): E2010 Incompatible types: 'PSockAddr' and 'Pointer'"

     

    e o debug do delphi para na funçao abaixo:

     

    function Bind(s: TSocket; const addr: TVarSin): Integer;
    begin
      Result := ssBind(s, @addr, SizeOfVarSin(addr));
    end;

     

    que me parece fazer parte de uma unit chamada: sswin32.inc

     

     

    Ao tentar executar um Build recebo a msg de "[DCC Error] qrpdffilt.pas(1398): E2010 Incompatible types: 'Array' and 'Char'" e/ou "[DCC Warning] qrpdffilt.pas(1500): W1047 Unsafe code '@ operator''"

     

    Parando o debug na linha :

     

    K:=MultiByteToWideChar(CodePage, 0, PansiChar(charString), 255, @charCodes, 255);

     

    da procedure abaixo:

     

          procedure SetEncoding;
          var
            encodestr: string;
            I,
            K: Integer;
          begin
            // custom encoding
            //encodestr := CZECH_ENC;
            encodestr:=FCustomEncodings.Value(PDFFontName);
            if encodestr<>'' then begin
              encoding:=' <</Type/Encoding /Differences [ '+encodestr+' ]>>';
              Exit;
            end;
            // get the encoding string
            case TmpCanvas.Font.Charset of
                   BALTIC_CHARSET: CodePage:=1257;
              CHINESEBIG5_CHARSET: CodePage:=950;
               EASTEUROPE_CHARSET: CodePage:=1250;
                   GB2312_CHARSET: CodePage:=936;
                    GREEK_CHARSET: CodePage:=1253;
                      OEM_CHARSET: CodePage:=CP_OEMCP;
                  RUSSIAN_CHARSET: CodePage:=1251;
                 SHIFTJIS_CHARSET: CodePage:=932;
                  TURKISH_CHARSET: CodePage:=1254;
                   HEBREW_CHARSET: CodePage:=1255;
                   ARABIC_CHARSET: CodePage:=1256;
                     THAI_CHARSET: CodePage:=874;
               VIETNAMESE_CHARSET: CodePage:=1258;
            else
                CodePage:=1252;
            end;
            charString:='';
                  for I := 1 to 255 do charString:=charString+AnsiChar(Chr(I));  // TF
            K:=MultiByteToWideChar(CodePage, 0, PansiChar(charString), 255, @charCodes, 255);
            if K<>0 then
            begin
              encoding:=' <</Type/Encoding /Differences [ '+IntToStr(PDFFont.FirstChar+2)+' ';
              for I := 1 to 255 do // loop in charcodes
              begin
                if I<PDFFont.FirstChar then Continue;
                Found:=False;
                for K := 0 to High(UniGlyphs) do
                begin
                  if charCodes=UniGlyphs[K].ID then
                  begin
                    encoding:=encoding+'/'+UniGlyphs[K].Name;
                    Found:=True;
                    Break;
                  end;
                end;
                if not Found then
                begin
                    encoding:=encoding+'/space'
                {
                  if charCodes<256 then
                    encoding:=encoding+'/space'
                  else
                    encoding := encoding + '/uni' + WordToHex(charCodes);
                    }
                end;
              end;
              encoding:=encoding+']';
            end
            else
            begin
              encoding:=encoding+'/BaseEncoding /WinAnsiEncoding';
            end;
            encoding:=encoding+'>>';
          end;
     

    P.S.: Este procedimento esta na unit QRPDFFilt.

     

     

    Por via das dúvidas eu instalei o Delphi 2010 isoladamente em uma nova maquina (sem nenhuma outra versão do Delphi). Consegui compilar todos os pacotes do ACBrInstall com exceção do  pacote ACBr_BoletoFC_Quick.dpk, neste tive que descomentar uma linha na cláusula uses {webfilters}, ou algo assim, após este procedimento todos os pacotes instalaram sem problema algum.

     

    Ainda assim recebi a mesma msg de erro, tanto na compilação como no Build, o que me dá a certeza de o problema não eram as duas versões do delphi na mesma máquina.

     

    Amigão, você pode me dar alguma outra dica? preciso muito passar esta etapa.

     

     

    Obs.: o Erro ao compilar só aparece quando adiciono ao meu projeto o Componente TACBrNFe. quando retiro ele e suas classes do projeto este erro na compilação deixa de aparecer. O erro do Build continua mesmo assim.

  9. Neste momento nao tenho mais o delphi 7 instalado na maquina.

     

    Tenho o Delphi 2007 onde compilo um projeto de Emissão de Nota fiscal Eletronica que fiz antes de conhecer o projeto ACBr e

    o delphi 2010 onde estou tentando compilar o meu programa de retaguarda (Compras, Estoque, Vendas, Entregras, Pagar e Receber) e caixa, onde pretendo inserir a NFC-e.

     

    Obrigado.

  10. Senhores, sou novo por aquí, antes de tentar o usar o Componente ACBrNfe2 eu compilava meu projeto no delphi 7.

     

    Como tive dificuldades para encontrar o quickreport 5 para esta versao do delphi, e por isso nao conseguia compilar de jeito nenhum meu projeto, resolvi compilar o projeto no delphi 2010, já com quick report 5, fortes report, qrbarcode e tudo o mais...

     

    Pensei que conseguiria compilar no delphi 2010... puro engano:

     

    Ao compilar recebo a msg de : "[DCC Error] sswin32.inc(1074): E2010 Incompatible types: 'PSockAddr' and 'Pointer'"

     

    e o debug do delphi para na funçao abaixo:

     

    function Bind(s: TSocket; const addr: TVarSin): Integer;
    begin
      Result := ssBind(s, @addr, SizeOfVarSin(addr));
    end;

     

    que me parece fazer parte de uma unit chamada: sswin32.inc

     

     

    Ao tentar executar um Build recebo a msg de "[DCC Error] qrpdffilt.pas(1398): E2010 Incompatible types: 'Array' and 'Char'" e/ou "[DCC Warning] qrpdffilt.pas(1500): W1047 Unsafe code '@ operator''"

     

    Parando o debug na linha :

     

    K:=MultiByteToWideChar(CodePage, 0, PansiChar(charString), 255, @charCodes, 255);

     

    da procedure abaixo:

     

          procedure SetEncoding;
          var
            encodestr: string;
            I,
            K: Integer;
          begin
            // custom encoding
            //encodestr := CZECH_ENC;
            encodestr:=FCustomEncodings.Value(PDFFontName);
            if encodestr<>'' then begin
              encoding:=' <</Type/Encoding /Differences [ '+encodestr+' ]>>';
              Exit;
            end;
            // get the encoding string
            case TmpCanvas.Font.Charset of
                   BALTIC_CHARSET: CodePage:=1257;
              CHINESEBIG5_CHARSET: CodePage:=950;
               EASTEUROPE_CHARSET: CodePage:=1250;
                   GB2312_CHARSET: CodePage:=936;
                    GREEK_CHARSET: CodePage:=1253;
                      OEM_CHARSET: CodePage:=CP_OEMCP;
                  RUSSIAN_CHARSET: CodePage:=1251;
                 SHIFTJIS_CHARSET: CodePage:=932;
                  TURKISH_CHARSET: CodePage:=1254;
                   HEBREW_CHARSET: CodePage:=1255;
                   ARABIC_CHARSET: CodePage:=1256;
                     THAI_CHARSET: CodePage:=874;
               VIETNAMESE_CHARSET: CodePage:=1258;
            else
                CodePage:=1252;
            end;
            charString:='';
                  for I := 1 to 255 do charString:=charString+AnsiChar(Chr(I));  // TF
            K:=MultiByteToWideChar(CodePage, 0, PansiChar(charString), 255, @charCodes, 255);
            if K<>0 then
            begin
              encoding:=' <</Type/Encoding /Differences [ '+IntToStr(PDFFont.FirstChar+2)+' ';
              for I := 1 to 255 do // loop in charcodes
              begin
                if I<PDFFont.FirstChar then Continue;
                Found:=False;
                for K := 0 to High(UniGlyphs) do
                begin
                  if charCodes=UniGlyphs[K].ID then
                  begin
                    encoding:=encoding+'/'+UniGlyphs[K].Name;
                    Found:=True;
                    Break;
                  end;
                end;
                if not Found then
                begin
                    encoding:=encoding+'/space'
                {
                  if charCodes<256 then
                    encoding:=encoding+'/space'
                  else
                    encoding := encoding + '/uni' + WordToHex(charCodes);
                    }
                end;
              end;
              encoding:=encoding+']';
            end
            else
            begin
              encoding:=encoding+'/BaseEncoding /WinAnsiEncoding';
            end;
            encoding:=encoding+'>>';
          end;
     

    P.S.: Este procedimento esta na unit QRPDFFilt.

     

     

     

    Por favor, este sao meus primeiros passos na utilização do Componente ACBR. Eu preciso implantar em minha aplicação a tal da NFe-C.

     

    Preciso de uma ajudinha dos amigos.

     

    Obrigado.

     

  11.  Ola amigos,

     

    quando tento instalar o ACBrInstall recebo a msg acima:

     

    "Erro ao compilar o pacote ACBrBoletoFC_Quick.dpk"

     

    quando abro o dpk pelo Delphi 2010 e tento instalar ele sozinho eu recebo a msg de

     

    [DCC Fatal Error] ACBrBoletoFCQuickFr.pas(50): F1026 File not found: 'RLFilters.dcu'

     

    alguém pode me ajudar?

     

     

    P.s.: todos os outros pacotes compilam com sucesso.

     

     

    Obrigado.

  12. Senhores,

     

    Estou usando o Delphi 2010 com QuickReport 5.0.

     

    Instalei o ACbrInstall como administrador e tudo funcionou perfeitamente, com todos os pacotes compilados com sucesso.

     

    Mas, quando fui compilar o meu projeto, recebi uma mensagem de erro nesta função...

     

    function Bind(s: TSocket; const addr: TVarSin): Integer;
    begin
      Result := ssBind(s, @addr, SizeOfVarSin(addr));
    end;

     

    que fica dentro do projeto ACBR (sswinsic32.inc), com esta mensagem:

     

    [DCC Error] sswin32.inc(1074): E2010 Incompatible types: 'PSockAddr' and 'Pointer'

     

    Alguém pode me dar uma ajudinha aí? estou tentando comecar o desenvolvimento para a NFC-e.

     

    Desde já,

     

    Muito Obrigado, valeu!

×
×
  • 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...
The popup will be closed in 10 segundos...