Пример #1
0
        /// <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());
        }
Пример #2
0
        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;
        }
Пример #3
0
 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);
            }
        }
Пример #5
0
 /// <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));
 }
Пример #6
0
 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;
 }
Пример #8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="uf"></param>
 /// <returns></returns>
 public static DFeSiglaUF ToSiglaUF(this DFeCodUF uf)
 {
     return((DFeSiglaUF)Enum.Parse(typeof(DFeSiglaUF), uf.ToString()));
 }