/// <summary> /// Gera a chave do documento fiscal /// </summary> /// <param name="ufEmitente">UF do emitente do DF-e</param> /// <param name="dataEmissao">Data de emissão do DF-e</param> /// <param name="cnpjEmitente">CNPJ do emitente do DF-e</param> /// <param name="modelo">Modelo do DF-e</param> /// <param name="serie">Série do DF-e</param> /// <param name="numero">Numero do DF-e</param> /// <param name="tipoEmissao">Tipo de emissão do DF-e. Informar inteiro conforme consta no manual de orientação do contribuinte para o DF-e</param> /// <param name="cNf">Código numérico que compõe a Chave de Acesso. Número gerado pelo emitente para cada DF-e</param> /// <returns>Retorna a chave DFe</returns> public static string Gerar(DFeCodUF ufEmitente, DateTime dataEmissao, string cnpjEmitente, int modelo, int serie, long numero, DFeTipoEmissao tipoEmissao, int cNf) { var chave = new StringBuilder(); chave.Append(ufEmitente.GetValue()) .Append(dataEmissao.ToString("yyMM")) .Append(cnpjEmitente) .Append(modelo.ToString("D2")) .Append(serie.ToString("D3")) .Append(numero.ToString("D9")) .Append(tipoEmissao.GetValue()) .Append(cNf.ToString("D8")); var calcDigito = new CalcDigito { Documento = chave.ToString() }; calcDigito.CalculoPadrao(); calcDigito.Calcular(); chave.Append(calcDigito.DigitoFinal); return(chave.ToString()); }
internal ChaveDFe(DFeCodUF ufEmitente, DateTime dataEmissao, string cnpjEmitente, int modelo, int serie, long numero, DFeTipoEmissao tipoEmissao, int cNumerico) { var chave = new StringBuilder(); chave.Append(ufEmitente.GetDFeValue()) .Append(dataEmissao.ToString("yyMM")) .Append(cnpjEmitente) .Append(modelo.ToString("D2")) .Append(serie.ToString("D3")) .Append(numero.ToString("D9")) .Append(tipoEmissao.GetDFeValue()) .Append(cNumerico.ToString("D8")); var calcDigito = new CalcDigito { FormulaDigito = CalcDigFormula.Modulo11, Documento = chave.ToString(), MultiplicadorInicial = 2, MultiplicadorFinal = 9 }; calcDigito.Calcular(); chave.Append(calcDigito.DigitoFinal); Chave = chave.ToString(); Digito = calcDigito.DigitoFinal; }
public DistribuicaoDFeServiceClient(CTeConfig config, DFeCodUF uf, X509Certificate2 certificado = null) : base(config, CTeServiceManager.GetServiceAndress(config.Geral.VersaoDFe, uf.ToSiglaUF(), TipoServicoCTe.CTeConsultaCadastro, config.Geral.FormaEmissao, config.WebServices.Ambiente), "http://www.portalfiscal.inf.br/cte/wsdl/CTeDistribuicaoDFe/cteDistDFeInteresse", "http://www.portalfiscal.inf.br/cte/wsdl/CTeDistribuicaoDFe", config.WebServices.UF, certificado, "cteDistDFeInteresse") { Schema = SchemaCTe.DistDFeInt; }
/// <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); } }
/// <summary> /// Gera a chave do documento fiscal /// </summary> /// <param name="ufEmitente">UF do emitente do DF-e</param> /// <param name="dataEmissao">Data de emissão do DF-e</param> /// <param name="cnpjEmitente">CNPJ do emitente do DF-e</param> /// <param name="modelo">Modelo do DF-e</param> /// <param name="serie">Série do DF-e</param> /// <param name="numero">Numero do DF-e</param> /// <param name="tipoEmissao">Tipo de emissão do DF-e. Informar inteiro conforme consta no manual de orientação do contribuinte para o DF-e</param> /// <param name="cNumerico">Código numérico que compõe a Chave de Acesso. Número gerado pelo emitente para cada DF-e</param> /// <returns>Retorna a chave DFe</returns> public static ChaveDFe Gerar(DFeCodUF ufEmitente, DateTime dataEmissao, string cnpjEmitente, int modelo, int serie, long numero, DFeTipoEmissao tipoEmissao, int cNumerico) { return(new ChaveDFe(ufEmitente, dataEmissao, cnpjEmitente, modelo, serie, numero, tipoEmissao, cNumerico)); }
public ConsultaCadastroServiceClient(CTeConfig config, DFeCodUF uf, X509Certificate2 certificado = null) : base(config, CTeServiceManager.GetServiceAndress(config.Geral.VersaoDFe, uf.ToSiglaUF(), TipoServicoCTe.CTeConsultaCadastro, config.Geral.FormaEmissao, config.WebServices.Ambiente), certificado) { Schema = SchemaCTe.ConsCad; }
/// <summary> /// Initializes a new instance of the <see cref="CTeConfigWebServices"/> class. /// </summary> internal CTeConfigWebServices(ACBrCTe parent) : base(parent) { uf = DFeCodUF.MS; }
/// <summary> /// /// </summary> /// <param name="uf"></param> /// <returns></returns> public static DFeSiglaUF ToSiglaUF(this DFeCodUF uf) { return((DFeSiglaUF)Enum.Parse(typeof(DFeSiglaUF), uf.ToString())); }