/// <summary> /// Processa retorno /// </summary> /// <param name="xmlRecebido"></param> /// <param name="enviNFe"></param> /// <param name="contingencia">True, enviado em contingência</param> /// <returns></returns> private RetAutorz RetornoProcessamento(string xmlRecebido, enviNFe enviNFe, bool contingencia) { var xmlRecebidoTratado = Utils.ObterNodeDeStringXml("retEnviNFe", xmlRecebido); var retorno1 = Utils.ConverterXMLParaClasse <retEnviNFe>(xmlRecebidoTratado); _processadas++; if (retorno1.protNFe == null) { _rejeitadas++; } if (retorno1.protNFe != null) { if (StatusSefaz.ListarCodigo.All(n => retorno1.protNFe.infProt.cStat != n.Key)) { _rejeitadas++; } } var xmlEnviado = Utils.ObterStringXML(enviNFe); var retorno2 = new RetAutorz(retorno1, xmlRecebidoTratado, _processadas, _rejeitadas, xmlEnviado, contingencia); SalvarArquivoLoteRecebidos(retorno2); return(retorno2); }
/// <summary> /// Salvar arquivo Xml recebidos /// </summary> private void SalvarArquivoLoteRecebidos(RetAutorz retornoNfeAutorizacao) { if (!_emisorEmissorServicoConfig.SalvarArquivoRetorno) { return; } //SalvarArquivo if (string.IsNullOrWhiteSpace(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml)) { throw new InvalidOperationException("Informe um diretório válido."); } var nomeArq = $"{_idlote}-rec.xml"; var caminho = Path.Combine(_emisorEmissorServicoConfig.DiretorioArquivoRetornoXml, "Autorizacoes", "Recebidos"); Utils.EscreverArquivo(caminho, nomeArq, retornoNfeAutorizacao.XmlRecebido); }