Ir para conteúdo
  • Cadastre-se

dev botao

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


  • Este tópico foi criado há 2066 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 para o comentário
Compartilhar em outros sites

  • Moderadores

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
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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