if(autorizacao.Result.CStat == 103) //103 = Lote Recebido com Sucesso
{
#region Finalizar através da consulta do recibo.
autorizacao.RetConsSitNFes.Clear(); //Zerar pois é um novo envio de NFe
var xmlRec = new ConsReciNFe
{
Versao = "4.00",
TpAmb = TipoAmbiente.Homologacao,
NRec = autorizacao.Result.InfRec.NRec
};
var configRec = new Configuracao
{
TipoDFe = TipoDFe.NFe,
CertificadoDigital = CertificadoSelecionado
};
var retAutorizacao = new Unimake.Business.DFe.Servicos.NFe.RetAutorizacao(xmlRec, configRec);
retAutorizacao.Executar();
autorizacao.RetConsReciNFe = retAutorizacao.Result;
if(autorizacao.Result.ProtNFe != null)
{
//Gravar o XML de distribuição se a nota foi autorizada ou denegada
switch(autorizacao.Result.ProtNFe.InfProt.CStat)
{
case 100: //Autorizado o uso da NF-e
case 110: //Uso Denegado
case 150: //Autorizado o uso da NF-e, autorização fora de prazo
case 205: //NF-e está denegada na base de dados da SEFAZ [nRec:999999999999999]
case 301: //Uso Denegado: Irregularidade fiscal do emitente
case 302: //Uso Denegado: Irregularidade fiscal do destinatário
case 303: //Uso Denegado: Destinatário não habilitado a operar na UF
autorizacao.GravarXmlDistribuicao(@"c:\testenfe\");
var docProcNFe = autorizacao.NfeProcResult.GerarXML();
MessageBox.Show(autorizacao.NfeProcResult.NomeArquivoDistribuicao);
break;
default: //NF Rejeitada
autorizacao.GravarXmlDistribuicao(@"c:\testenfe\");
break;
}
}
#endregion
}
Veja que logo após fazer a consulta do recibo (retAutorizacao.Executar()) eu faço tratamentos do cStat para ver se está autorizado, se tiver, gravo o XML de distribuição.