Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

Como conseguir a chave de acesso? (CONTINGÊNCIA "teOffLine")


  • Este tópico foi criado há 1087 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Recommended Posts

Não consigo gerar o xml, e por fim também não a chave de emissão (vi muitos tópicos, porém os mesmos sem resposta)

Obs.: Sem modo de contingência passa normalmente
 

         ACBRNFCe.NotasFiscais.GerarNFe;
         ACBRNFCe.NotasFiscais.Assinar;
          ACBRNFCe.NotasFiscais.Validar;
          cStatus := 0;
          ChaveNFCE := ACBRNFCe.NotasFiscais.Items[0].NFe.infNFe.Id;
          NumeroNFCe := strtoint(vAux);
 

     ACBRDANFENFCe.FastFile := 'C:\SISTEMA\PDV\Schemas\DANFeNFCe.fr3';
      if FileExists(frmPrincipal.LerINi(sConfiguracoes, 'PDV',
        'CAMINHO_LOGO', '')) then
        ACBRDANFENFCe.Logo := frmPrincipal.LerINi(sConfiguracoes, 'PDV',
          'CAMINHO_LOGO', '');
      ACBRDANFENFCe.Detalhado := true;
      ACBRDANFENFCe.vTroco := ed_troco.value;

      ACBRDANFENFCe.Impressora := edImpressora;
      ACBRDANFENFCe.DescricaoViaEstabelec := edDescEsta;
      ACBRDANFENFCe.EspessuraBorda := edMargem;
      ACBRDANFENFCe.MargemDireita := edMargDir;
      ACBRDANFENFCe.MargemEsquerda := edMargEsq;
      ACBRDANFENFCe.MargemSuperior := edMargSup;
      ACBRDANFENFCe.MargemInferior := edMarginf;
      ACBRDANFENFCe.MostrarPreview := edPreview;
      ACBRNFCe.NotasFiscais.Imprimir;
      ACBRNFCe.NotasFiscais.clear;
 

 

Link to comment
Share on other sites

  • Consultores

Certo então não poste em todos e aguarde aqui em um único a resposta pra ti.

Usou o exemplo do svn ? se sim como reproduzir ? os passos as configurações, o SO

Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Link to comment
Share on other sites

3 horas atrás, Juliomar Marchetti disse:

Certo então não poste em todos e aguarde aqui em um único a resposta pra ti.

Usou o exemplo do svn ? se sim como reproduzir ? os passos as configurações, o SO

Não encontrei o exemplo de NFC-e em contingência...

Configurações passo assim, fui vendo em tópicos.

         if frmmodulo.qrconfigpdv.fieldbyname('CONTINGENCIA').asinteger = 1 then
          begin
               Ide.tpEmis := teOffLine;
             Ide.dhCont := date;
             Ide.xJust  := 'Problemas técnicos no envio da nota fiscal do consumidor eletrônico';

             frmmodulo.ACBRNFCe.Configuracoes.Geral.FormaEmissao :=teOffLine ;
             frmmodulo.ACBRDANFENFCe.ViaConsumidor := false;//imprime uma via pro estabelecimanto
             frmmodulo.ACBRDANFENFCe.NumCopias := 2; //imprime duas vias
           end
          else
          begin
               Ide.tpEmis := teNormal;
           end;

 

O resto de todas as configurações são iguais ao exemplo para poder emitir NFC-e normal, porém quando ele entra em modo "teOffLine" ele não gera um XML

Link to comment
Share on other sites

Zildo, no nosso sistema, fazemos assim. Veja se te ajuda:

//-- Tenta realizar o envio normal
     ... 
     TControllerNota_Fiscal_Cabecalho.SalvarChaveAcesso(vIDRecibo, ChaveNF, '65');
      try
        //-- Salva a chave de acesso on-line e o recibo dentro do EnviarNFe
        EnviarNFe(vIDRecibo, false, true);
        EnvioOK := true;
        TControllerNota_Fiscal_Cabecalho.SalvarXML(vIDRecibo, '65', ACBrNFe.NotasFiscais.Items[0].XML);
        TControllerNota_Fiscal_Cabecalho.SalvarStatus(vIDRecibo, 100, '65');
        Result := vIDRecibo;

        //-- Imprime o comprovante da venda ---------------------//
        if (configIni.OpcaoImprimirCupom) and (MensagemDlg('Imprimir Cupom ' + its(vIDRecibo) + '?') = mrNo) then
          MessageDLG('Venda registrada com sucesso. Cupom: ' + its(vIDRecibo), mtInformation, [mbOK], 0)
        else begin
          try
            ACBrNFe.NotasFiscais[0].Imprimir;
          except
            MessageDLG('Caso a impressão esteja ilegível ou faltando informação,'+#13#10+ 'solicite a reimpressão', mtInformation, [mbOK], 0);
          end;
        end;
      except
        On E:Exception do begin
         if (pos('12007', E.Message.ToUpper) > 0)  then CodigoErro := 12007 // erro de conexão
         else if (pos('12002', E.Message.ToUpper) > 0)  then CodigoErro := 12002 // timeout
         else if (pos('12029', E.Message.ToUpper) > 0)  then CodigoErro := 12029 // limite de tempo de conexão
         else if (pos('ERRO NAO CATALOGADO', E.Message.ToUpper) > 0) then CodigoErro:= 00000;// erros de tratamento do webservice 12029 seria o Buraco Negro."
         EnvioOK := false;
        end;
      end;

      //-- Quando for envio offline, está imprimindo? Conferir...
      //-- Não conseguiu enviar a NFCe OnLine. Emite a NFCe em modo OffLine. -//
      //------------------------------------------------------------------------
      if not EnvioOK then begin
        EnviarNFCeOffLine(vIDRecibo, CodigoErro);
        Result := vIDRecibo;
      end;

 

//-- Caso não consiga enviar normal, tenta em contingencia

procedure TFCaixa.EnviarNFCeOffLine(const IDNFCe, CodigoErro: integer);
var
  vChaveNF, DtContingencia, NumeroNotaNova: String;
  aux, IDNotaNova: integer;
begin
  ACBrNFe.NotasFiscais.Items[0].NFe.Ide.tpEmis := teOffLine;
  ACBrNFe.NotasFiscais.Items[0].NFe.Ide.xJust  := 'Problema na conexão com a internet no estabelecimento.';
  ACBrNFe.NotasFiscais.Items[0].NFe.Ide.dhCont := ACBrNFe.NotasFiscais.Items[0].NFe.Ide.dEmi;
  ACBrNFe.Configuracoes.Geral.FormaEmissao     := TpcnTipoEmissao(teOffLine);

  case CodigoErro of
    12002, //-- timeout
    12007: //-- sem internet
    begin
      IDNotaNova := IDNFCe;
    end;

    //12007,
    0,     //-- outros erros. Buraco negro
    12029: //-- limite de tempo de conexão
    begin
      //-- Seta o Status da nota antiga para 5-Aguardando Cancelar Junto a Sefaz
      TControllerNota_Fiscal_Cabecalho.SalvarStatus(IDNFCe, 5, '65');

      //-- UpdateCopyNotaFiscalVenda
      //-- Salva a Nota Novamente com novo número
      //-- Da nota antiga está ficando apenas o cabeçalho e os itens
      //-- Os outros dados foram passados para a nota nova. Por isso, não precisa de extornar a nota antiga completamente
      IDNotaNova := TControllerNota_Fiscal_Cabecalho.CopiarNotaFiscal(IDNFCe, '65');
      if IDNotaNova <= 0 then begin
        ShowMessage('Não foi possível realizar a venda em modo offline. Se o problema persistir, contate o suporte técnico.');
        exit;
      end;

      NumeroNotaNova := TControllerNota_Fiscal_Cabecalho.ObterCampoNota(IDNotaNova, '65', 'Numero');
      NumeroNotaNova := StringReplace(NumeroNotaNova, '"','',[rfReplaceAll]);
      ACBrNFe.NotasFiscais.Items[0].NFe.Ide.nNF := sti(NumeroNotaNova);
    end;
  end;

  //-- Emite off-line, pois já temos certeza que não foi enviada ---------//
  ACBrNFe.NotasFiscais.GerarNFe;  //-- gera o xml corretamente
  ACBrNFe.NotasFiscais.Assinar;   //-- assina utilizando o certificado
  ACBrNFe.NotasFiscais.Validar;   //-- valida o xml perante os schemas

  //-- Salva a chave da nota na base de dados ----------------------------//
  vChaveNF := copy(ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.ID,4,44);
  TControllerNota_Fiscal_Cabecalho.SalvarChaveAcesso(IDNotaNova, vChaveNF, '65');
  TControllerNota_Fiscal_Cabecalho.SalvarXML(IDNotaNova, '65', ACBrNFe.NotasFiscais.Items[0].XML);

 

Link to comment
Share on other sites

  • Este tópico foi criado há 1087 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.