/// <summary> /// Retorna a url do serviço de acordo com os dados passados. /// </summary> /// <param name="versao">Versão da CTe</param> /// <param name="uf">UF do serviço</param> /// <param name="tipo">Tipo de serviço</param> /// <param name="tipoEmissao"></param> /// <param name="ambiente">Ambiente</param> /// <returns></returns> /// <exception cref="ArgumentOutOfRangeException"></exception> public static string GetServiceAndress(CTeVersao versao, DFeSiglaUF uf, TipoServicoCTe tipo, DFeTipoEmissao tipoEmissao, DFeTipoAmbiente ambiente) { switch (tipo) { case TipoServicoCTe.DistribuicaoDFe: switch (ambiente) { case DFeTipoAmbiente.Homologacao: return(""); default: return(""); } default: var service = Servicos[versao, tipoEmissao]; Guard.Against <ACBrException>(service == null, "Versão ou tipo de emissão não encontrada no arquivo de serviços."); return(service[ambiente, uf]?[tipo]); } }
/// <summary> /// Consulta o cadastro do contribuinte. /// </summary> /// <param name="uf"></param> /// <param name="ufConsulta"></param> /// <param name="cpfCNPJ"></param> /// <param name="IE"></param> /// <returns></returns> public DFeConsultaCadastroResposta ConsultaCadastro(DFeSiglaUF uf, DFeCodUF ufConsulta, string cpfCNPJ, string IE) { Guard.Against <ArgumentNullException>(!Enum.IsDefined(typeof(DFeCodUF), uf), nameof(uf)); Guard.Against <ArgumentNullException>(cpfCNPJ.IsEmpty() && IE.IsEmpty(), nameof(IE)); lock (serviceLock) { var request = new StringBuilder(); request.Append("<ConsCad xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"2.00\">"); request.Append("<infCons>"); request.Append("<xServ>CONS-CAD</xServ>"); request.Append($"<UF>{uf.GetDFeValue()}</UF>"); if (cpfCNPJ.IsEmpty()) { request.Append($"<IE>{IE}</IE>"); } else { request.Append(cpfCNPJ.IsCNPJ() ? $"<CNPJ>{cpfCNPJ}</CNPJ>" : $"<CPF>{cpfCNPJ}</CPF>"); } request.Append("</infCons>"); request.Append("</ConsCad>"); var dadosMsg = request.ToString(); ValidateMessage(dadosMsg); var doc = new XmlDocument(); doc.LoadXml(dadosMsg); var cabecalho = new DFeWsCabecalho { CUf = ufConsulta.GetDFeValue().ToInt32(), VersaoDados = "2.00" }; var inValue = new ConsultaCadastroRequest(cabecalho, doc); var retVal = Channel.ConsultaCadastro(inValue); var retorno = new DFeConsultaCadastroResposta(dadosMsg, retVal.Result.OuterXml, EnvelopeSoap, RetornoWS); return(retorno); } }
public DFeServiceEnvironment <TTIpo> this[DFeTipoAmbiente ambiente, DFeSiglaUF uf] { get { return(Ambientes?.SingleOrDefault(x => x.Ambiente == ambiente && x.UF == uf)); } }
/// <summary> /// /// </summary> /// <param name="uf"></param> /// <returns></returns> public static DFeCodUF ToCodeUf(this DFeSiglaUF uf) { return((DFeCodUF)Enum.Parse(typeof(DFeCodUF), uf.ToString())); }