Пример #1
0
 private static Classes.NFe GetNf(int numero, ModeloDocumento modelo, VersaoServico versao)
 {
     Classes.NFe nf = new Classes.NFe {
         infNFe = GetInf(numero, modelo, versao)
     };
     return(nf);
 }
Пример #2
0
        protected virtual ide GetIdentificacao(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            var ide = new ide
            {
                cUF     = Estado.SE,
                natOp   = "VENDA",
                indPag  = IndicadorPagamento.ipVista,
                mod     = modelo,
                serie   = 1,
                nNF     = numero,
                tpNF    = TipoNFe.tnSaida,
                cMunFG  = 2802908,
                tpEmis  = _configuracoes.CfgServico.tpEmis,
                tpImp   = TipoImpressao.tiRetrato,
                cNF     = "1234",
                tpAmb   = _configuracoes.CfgServico.tpAmb,
                finNFe  = FinalidadeNFe.fnNormal,
                verProc = "3.000"
            };

            if (ide.tpEmis != TipoEmissao.teNormal)
            {
                ide.dhCont = DateTime.Now.ToString(versao == VersaoServico.ve310 ? "yyyy-MM-ddTHH:mm:sszzz" : "yyyy-MM-ddTHH:mm:ss");
                ide.xJust  = "TESTE DE CONTIGÊNCIA PARA NFe/NFCe";
            }

            #region V2.00

            if (versao == VersaoServico.ve200)
            {
                ide.dEmi    = DateTime.Today.ToString("yyyy-MM-dd"); //Mude aqui para enviar a nfe vinculada ao EPEC, V2.00
                ide.dSaiEnt = DateTime.Today.ToString("yyyy-MM-dd");
            }

            #endregion

            #region V3.00

            if (versao != VersaoServico.ve310)
            {
                return(ide);
            }
            ide.idDest = DestinoOperacao.doInterna;
            ide.dhEmi  = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"); //Mude aqui para enviar a nfe vinculada ao EPEC, V3.10
            if (ide.mod == ModeloDocumento.NFe)
            {
                ide.dhSaiEnt = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");
            }
            else
            {
                ide.tpImp = TipoImpressao.tiNFCe;
            }
            ide.procEmi  = ProcessoEmissao.peAplicativoContribuinte;
            ide.indFinal = ConsumidorFinal.cfConsumidorFinal; //NFCe: Tem que ser consumidor Final
            ide.indPres  = PresencaComprador.pcPresencial;    //NFCe: deve ser 1 ou 4

            #endregion

            return(ide);
        }
Пример #3
0
        protected virtual infNFe GetInf(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            var infNFe = new infNFe
            {
                versao = Auxiliar.VersaoServicoParaString(versao),
                ide    = GetIdentificacao(numero, modelo, versao),
                emit   = GetEmitente(),
                dest   = GetDestinatario(versao),
                total  = GetTotal(versao),
                transp = GetTransporte()
            };

            if (infNFe.ide.mod == ModeloDocumento.NFe & versao == VersaoServico.ve310)
            {
                infNFe.cobr = GetCobranca(); //V3.00 Somente
            }
            if (infNFe.ide.mod == ModeloDocumento.NFCe)
            {
                infNFe.pag = GetPagamento(); //NFCe Somente
            }
            for (var i = 0; i < 1; i++)
            {
                infNFe.det.Add(GetDetalhe(i));
            }

            return(infNFe);
        }
Пример #4
0
        protected virtual dest GetDestinatario(VersaoServico versao, ModeloDocumento modelo)
        {
            var dest = new dest(versao)
            {
                CNPJ = "99999999000191",
                //CPF = "99999999999",
            };

            if (modelo == ModeloDocumento.NFe)
            {
                dest.xNome     = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL"; //Obrigatório para NFe e opcional para NFCe
                dest.enderDest = GetEnderecoDestinatario();                                    //Obrigatório para NFe e opcional para NFCe
            }

            //if (versao == VersaoServico.ve200)
            //    dest.IE = "ISENTO";
            if (versao == VersaoServico.ve200)
            {
                return(dest);
            }

            dest.indIEDest = indIEDest.NaoContribuinte; //NFCe: Tem que ser não contribuinte V3.00 Somente
            dest.email     = "*****@*****.**";         //V3.00 Somente
            return(dest);
        }
        protected virtual dest GetDestinatario(VersaoServico versao, ModeloDocumento modelo)
        {
            // TODO: CPF na nota?
            var dest = new dest(versao)
            {
                CPF       = "07506178966",
                xNome     = nfeEmitadaHomolog,
                indIEDest = indIEDest.NaoContribuinte,
                email     = "*****@*****.**"
            };

            //if (modelo == ModeloDocumento.NFe)
            //{
            //    dest.xNome = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL"; //Obrigatório para NFe e opcional para NFCe
            //    dest.enderDest = GetEnderecoDestinatario(); //Obrigatório para NFe e opcional para NFCe
            //}

            ////if (versao == VersaoServico.ve200)
            ////    dest.IE = "ISENTO";
            //if (versao == VersaoServico.ve200) return dest;

            //dest.indIEDest = indIEDest.NaoContribuinte; //NFCe: Tem que ser não contribuinte V3.00 Somente
            //dest.email = "*****@*****.**"; //V3.00 Somente
            return(dest);
        }
Пример #6
0
        protected virtual Classes.NFe GetNf(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            var nf = new Classes.NFe {
                infNFe = GetInf(numero, modelo, versao)
            };

            return(nf);
        }
Пример #7
0
 public EnderecoServico(ServicoNFe servicoNFe, VersaoServico versaoServico, TipoAmbiente tipoAmbiente, TipoEmissao tipoEmissao, Estado estado, ModeloDocumento modeloDocumento, string url)
 {
     ServicoNFe      = servicoNFe;
     VersaoServico   = versaoServico;
     TipoAmbiente    = tipoAmbiente;
     TipoEmissao     = tipoEmissao;
     Estado          = estado;
     Url             = url;
     ModeloDocumento = modeloDocumento;
 }
Пример #8
0
 public EnderecoServico(ServicoNFe servicoNFe, VersaoServico versaoServico, TipoAmbiente tipoAmbiente, TipoEmissao tipoEmissao, Estado estado, ModeloDocumento modeloDocumento, string url)
 {
     ServicoNFe = servicoNFe;
     VersaoServico = versaoServico;
     TipoAmbiente = tipoAmbiente;
     TipoEmissao = tipoEmissao;
     Estado = estado;
     Url = url;
     ModeloDocumento = modeloDocumento;
 }
Пример #9
0
 public ConfigInutiliza(string cnpj, short serie, long numeroInicial, long numeroFinal, int ano,
                        string justificativa, ModeloDocumento modeloDocumento = ModeloDocumento.CTe)
 {
     Cnpj            = cnpj;
     Serie           = serie;
     NumeroInicial   = numeroInicial;
     NumeroFinal     = numeroFinal;
     Ano             = ano;
     Justificativa   = justificativa;
     ModeloDocumento = modeloDocumento;
 }
Пример #10
0
 protected ServCancTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, int idlote,
                            ICollection <EventoBuilder> eventoBuilder, VersaoServico versao, ModeloDocumento modelo = ModeloDocumento.NFe)
 {
     _certificadoDigital         = certificado ?? throw new ArgumentNullException(nameof(certificado));
     _emisorEmissorServicoConfig = emissorServicoConfig ?? throw new ArgumentNullException(nameof(emissorServicoConfig));
     _servicoBase    = new ServHttpSoapBase(emissorServicoConfig, certificado, NomeServico);
     _versao         = versao;
     _modelo         = modelo;
     _idlote         = idlote;
     _eventosBuilder = eventoBuilder;
 }
Пример #11
0
        public static string ModeloDocumentoParaString(ModeloDocumento modelo)
        {
            switch (modelo)
            {
            case ModeloDocumento.NFe:
                return("NF-e");

            case ModeloDocumento.NFCe:
                return("NFC-e");
            }
            return(null);
        }
 /// <summary>
 ///     Inicializa objeto
 /// </summary>
 /// <param name="emissorServicoConfig">Configuração do Emissor</param>
 /// <param name="certificado">Certificado Digital</param>
 /// <param name="versao">Versao do Serviço</param>
 /// <param name="modelo"></param>
 protected ServConsStatTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, VersaoServico versao,
                                ModeloDocumento modelo = ModeloDocumento.NFe)
 {
     if (certificado == null)
     {
         throw new ArgumentNullException(nameof(certificado));
     }
     _emisorEmissorServicoConfig = emissorServicoConfig ?? throw new ArgumentNullException(nameof(emissorServicoConfig));
     _servicoBase = new ServHttpSoapBase(emissorServicoConfig, certificado, NomeServico);
     _versao      = versao;
     _modelo      = modelo;
 }
Пример #13
0
 protected ServInutTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, string cnpj, int ano,
                            ModeloDocumento modelo, VersaoServico versao, int serie, int numeroInicial, int numeroFinal, string justificativa)
 {
     _emisorEmissorServicoConfig = emissorServicoConfig;
     _certificadoDigital         = certificado;
     _cnpj          = cnpj;
     _ano           = ano;
     _modelo        = modelo;
     _serie         = serie;
     _numeroInicial = numeroInicial;
     _numeroFinal   = numeroFinal;
     _justificativa = justificativa;
     _versao        = versao;
 }
Пример #14
0
 /// <summary>
 ///     Inicializa objeto
 /// </summary>
 /// <param name="emissorServicoConfig">Configuração do Emissor</param>
 /// <param name="certificado">Certificado Digital</param>
 /// <param name="documento">Chave ou Xml Nfe bem formado</param>
 /// <param name="doc">Tipo de documento a ser pesquisado</param>
 /// <param name="versao">Versao do Serviço</param>
 /// <param name="modelo"></param>
 protected ServConsProtTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, string documento,
                                DocumentoProtocolo doc, VersaoServico versao, ModeloDocumento modelo = ModeloDocumento.NFe)
 {
     if (certificado == null)
     {
         throw new ArgumentNullException(nameof(certificado));
     }
     _emisorEmissorServicoConfig = emissorServicoConfig ?? throw new ArgumentNullException(nameof(emissorServicoConfig));
     _servicoBase = new ServHttpSoapBase(emissorServicoConfig, certificado, NomeServico);
     _chaveNfe    = documento ?? throw new ArgumentNullException(nameof(documento));
     _xmlNfe      = documento;
     _documento   = doc;
     _versao      = versao;
     _modelo      = modelo;
 }
Пример #15
0
        protected virtual det GetDetalhe(int i, CRT crt, ModeloDocumento modelo)
        {
            var det = new det
            {
                nItem   = i + 1,
                prod    = GetProduto(i + 1),
                imposto = new imposto
                {
                    vTotTrib = 0.17m,
                    ICMS     = new ICMS
                    {
                        TipoICMS =
                            crt == CRT.SimplesNacional
                                ? InformarCSOSN(Csosnicms.Csosn102)
                                : InformarICMS(Csticms.Cst00, VersaoServico.ve310)
                    },

                    COFINS =
                        new COFINS
                    {
                        TipoCOFINS = new COFINSOutr {
                            CST = CSTCOFINS.cofins99, pCOFINS = 0, vBC = 0, vCOFINS = 0
                        }
                    },
                    PIS = new PIS {
                        TipoPIS = new PISOutr {
                            CST = CSTPIS.pis99, pPIS = 0, vBC = 0, vPIS = 0
                        }
                    }
                }
            };

            if (modelo == ModeloDocumento.NFe) //NFCe não aceita grupo "IPI"
            {
                det.imposto.IPI = new IPI()
                {
                    cEnq    = 999,
                    TipoIPI = new IPITrib()
                    {
                        CST = CSTIPI.ipi00, pIPI = 5, vBC = 1, vIPI = 0.05m
                    }
                }
            }
            ;
            //det.impostoDevol = new impostoDevol() { IPI = new IPIDevolvido() { vIPIDevol = 10 }, pDevol = 100 };

            return(det);
        }
Пример #16
0
        private void GeranNfe(VersaoServico versaoServico, ModeloDocumento modelo)
        {
            try
            {
                #region Gerar NFe

                var numero = Funcoes.InpuBox("Criar e Enviar NFe", "Número da Nota:");
                if (string.IsNullOrEmpty(numero))
                {
                    throw new Exception("O Número deve ser informado!");
                }

                _nfe = GetNf(Convert.ToInt32(numero), modelo, versaoServico);
                _nfe.Assina();
                //Descomente a linha abaixo se a SEFAZ de sua UF já habilitou a NT2015.002
                _nfe.infNFeSupl = new infNFeSupl()
                {
                    qrCode = EnderecadorDanfeNfce.ObterUrlQrCode(_nfe, _configuracoes.ConfiguracaoDanfeNfce)
                };
                _nfe.Valida();

                #endregion

                ExibeNfe();

                var dlg = new SaveFileDialog
                {
                    FileName   = _nfe.infNFe.Id.Substring(3),
                    DefaultExt = ".xml",
                    Filter     = "Arquivo XML (.xml)|*.xml"
                };
                var result = dlg.ShowDialog();
                if (result != true)
                {
                    return;
                }
                var arquivoXml = dlg.FileName;
                _nfe.SalvarArquivoXml(arquivoXml);
            }
            catch (Exception ex)
            {
                if (!string.IsNullOrEmpty(ex.Message))
                {
                    Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK);
                }
            }
        }
Пример #17
0
        /// <summary>
        /// Identificação para NFe v4.0
        /// </summary>
        /// <param name="config"></param>
        /// <param name="cNf"></param>
        /// <param name="natOp"></param>
        /// <param name="indPag"></param>
        /// <param name="mod"></param>
        /// <param name="serie"></param>
        /// <param name="nNf"></param>
        /// <param name="dEmi"></param>
        /// <param name="dSaiEnt"></param>
        /// <param name="dhEmi"></param>
        /// <param name="dhSaiEnt"></param>
        /// <param name="tpNf"></param>
        /// <param name="idDest"></param>
        /// <param name="tpImp"></param>
        /// <param name="tpEmis"></param>
        /// <param name="finNFe"></param>
        /// <param name="indFinal"></param>
        /// <param name="indPres"></param>
        /// <param name="versaoProcesso"></param>
        public IdentificacaoNFe40(Configurar config,
                                  string cNf, string natOp,
                                  ModeloDocumento mod, int serie, long nNf, DateTime dEmi,
                                  DateTime dSaiEnt, DateTimeOffset dhEmi, DateTimeOffset dhSaiEnt,
                                  TipoNFe tpNf, DestinoOperacao idDest, TipoImpressao tpImp,
                                  TipoEmissao tpEmis, FinalidadeNFe finNFe, ConsumidorFinal indFinal,
                                  PresencaComprador indPres, string versaoProcesso, DateTime?dhCont = null, string xJust = "")
        {
            var ide = new ide
            {
                cUF      = config.EmissorConfig.Estado,
                cNF      = cNf,
                natOp    = natOp,
                mod      = mod,
                serie    = serie,
                nNF      = nNf,
                dEmi     = dEmi,
                dSaiEnt  = dSaiEnt,
                dhEmi    = dhEmi,
                dhSaiEnt = dhSaiEnt,
                tpNF     = tpNf,
                idDest   = idDest,
                cMunFG   = config.EmissorConfig.Emitente.enderEmit.cMun,
                tpImp    = tpImp,
                tpEmis   = tpEmis,
                tpAmb    = config.EmissorConfig.Ambiente,
                finNFe   = finNFe,
                indFinal = indFinal,
                indPres  = indPres,
                verProc  = versaoProcesso
            };

            if (dhCont != null)
            {
                ide.dhCont = dhCont.Value;
            }
            if (xJust != null)
            {
                ide.xJust = xJust;
            }

            SetIde(ide);
        }
Пример #18
0
        private void GeranNfe(VersaoServico versaoServico, ModeloDocumento modelo)
        {
            try
            {
                #region Gerar NFe

                var numero = Funcoes.InpuBox(this, "Criar e Enviar NFe", "Número da Nota:");
                if (String.IsNullOrEmpty(numero))
                {
                    throw new Exception("O Número deve ser informado!");
                }

                _nfe = GetNf(Convert.ToInt32(numero), modelo, versaoServico);
                _nfe.Assina().Valida();

                #endregion

                ExibeNfe();

                var dlg = new SaveFileDialog
                {
                    FileName   = _nfe.infNFe.Id.Substring(3),
                    DefaultExt = ".xml",
                    Filter     = "Arquivo XML (.xml)|*.xml"
                };
                var result = dlg.ShowDialog();
                if (result != true)
                {
                    return;
                }
                var arquivoXml = dlg.FileName;
                _nfe.SalvarArquivoXml(arquivoXml);
            }
            catch (Exception ex)
            {
                if (!String.IsNullOrEmpty(ex.Message))
                {
                    Funcoes.Mensagem(ex.Message, "Erro", MessageBoxButton.OK);
                }
            }
        }
Пример #19
0
        private ConfiguracaoServico ConfiguraServico(Estado uf, ModeloDocumento mod,
                                                     NFe.Classes.Informacoes.Identificacao.Tipos.TipoAmbiente ta, TipoEmissao te, int timeOut,
                                                     SecurityProtocolType spt, ConfiguracaoCertificado certificate)
        {
            var cfgServico = NFe.Utils.ConfiguracaoServico.Instancia;

            cfgServico.ModeloDocumento          = mod;
            cfgServico.tpAmb                    = ta;
            cfgServico.tpEmis                   = te;
            cfgServico.TimeOut                  = timeOut;
            cfgServico.ProtocoloDeSeguranca     = spt;
            cfgServico.Certificado              = certificate;
            cfgServico.VersaoNFeDistribuicaoDFe = VersaoServico.ve100;
            cfgServico.VersaoRecepcaoEventoManifestacaoDestinatario = VersaoServico.ve100;
            cfgServico.VersaoNfeDownloadNF = VersaoServico.ve310;
            cfgServico.cUF = uf;
            cfgServico.DiretorioSchemas   = Constants.SchemasPath;
            cfgServico.DiretorioSalvarXml = Constants.DfeAppPath;

            _configServico = cfgServico;
            return(_configServico);
        }
Пример #20
0
        private static infNFe GetInf(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            infNFe infNFe = new infNFe
            {
                versao = versao.VersaoServicoParaString(),
                ide    = GetIdentificacao(numero, modelo, versao),
                emit   = GetEmitente(),
                dest   = GetDestinatario(versao, modelo),
                transp = GetTransporte()
            };

            for (int i = 0; i < 5; i++)
            {
                infNFe.det.Add(GetDetalhe(i, infNFe.emit.CRT, modelo));
            }

            infNFe.total = GetTotal(versao, infNFe.det);

            if (infNFe.ide.mod == ModeloDocumento.NFe & (versao == VersaoServico.Versao310 || versao == VersaoServico.Versao400))
            {
                infNFe.cobr = GetCobranca(infNFe.total.ICMSTot); //V3.00 e 4.00 Somente
            }

            if (infNFe.ide.mod == ModeloDocumento.NFCe || (infNFe.ide.mod == ModeloDocumento.NFe & versao == VersaoServico.Versao400))
            {
                infNFe.pag = GetPagamento(infNFe.total.ICMSTot, versao); //NFCe Somente
            }

            if (infNFe.ide.mod == ModeloDocumento.NFCe & versao != VersaoServico.Versao400)
            {
                infNFe.infAdic = new infAdic()
                {
                    infCpl = "Troco: 10,00"
                };                                                          //Susgestão para impressão do troco em NFCe
            }

            return(infNFe);
        }
Пример #21
0
        protected virtual infNFe GetInf(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            var infNFe = new infNFe
            {
                versao = Auxiliar.VersaoServicoParaString(versao),
                ide    = GetIdentificacao(numero, modelo, versao),
                emit   = GetEmitente(),
                dest   = GetDestinatario(versao, modelo),
                transp = GetTransporte()
            };

            for (var i = 0; i < NFCe.lstProd.Count; i++)
            {
                infNFe.det.Add(GetDetalhe(i, infNFe.emit.CRT, modelo));
            }

            infNFe.total = GetTotal(versao, infNFe.det);

            if (infNFe.ide.mod == ModeloDocumento.NFe & versao == VersaoServico.ve310)
            {
                infNFe.cobr = GetCobranca(infNFe.total.ICMSTot); //V3.00 Somente
            }
            if (infNFe.ide.mod == ModeloDocumento.NFCe)
            {
                infNFe.pag = GetPagamento(infNFe.total.ICMSTot); //NFCe Somente
            }
            if (infNFe.ide.mod == ModeloDocumento.NFCe)
            {
                infNFe.infAdic = new infAdic()
                {
                    infCpl = "Troco: 10,00"
                }
            }
            ;                                                               //Susgestão para impressão do troco em NFCe

            return(infNFe);
        }
Пример #22
0
 public static int ModeloDocumentoParaInt(this ModeloDocumento modelo)
 {
     return((int)modelo);
 }
Пример #23
0
        /// <summary>
        ///     Inutiliza uma faixa de números
        /// </summary>
        /// <param name="cnpj"></param>
        /// <param name="ano"></param>
        /// <param name="modelo"></param>
        /// <param name="serie"></param>
        /// <param name="numeroInicial"></param>
        /// <param name="numeroFinal"></param>
        /// <param name="justificativa"></param>
        /// <returns>Retorna um objeto da classe RetornoNfeInutilizacao com o retorno do serviço NfeInutilizacao</returns>
        public RetornoNfeInutilizacao NfeInutilizacao(string cnpj, int ano, ModeloDocumento modelo, int serie, int numeroInicial, int numeroFinal, string justificativa)
        {
            var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.NfeInutilizacao, _cFgServico.VersaoNfeInutilizacao);

            #region Cria o objeto wdsl para consulta

            var ws = CriarServico(ServicoNFe.NfeInutilizacao, TipoRecepcaoEvento.Nenhum);

            ws.nfeCabecMsg = new nfeCabecMsg
            {
                cUF         = _cFgServico.cUF,
                versaoDados = versaoServico
            };

            #endregion

            #region Cria o objeto inutNFe

            var pedInutilizacao = new inutNFe
            {
                versao  = versaoServico,
                infInut = new infInutEnv
                {
                    tpAmb  = _cFgServico.tpAmb,
                    cUF    = _cFgServico.cUF,
                    ano    = ano,
                    CNPJ   = cnpj,
                    mod    = modelo,
                    serie  = serie,
                    nNFIni = numeroInicial,
                    nNFFin = numeroFinal,
                    xJust  = justificativa
                }
            };

            var numId = String.Concat((int)pedInutilizacao.infInut.cUF, pedInutilizacao.infInut.ano,
                                      pedInutilizacao.infInut.CNPJ, (int)pedInutilizacao.infInut.mod, pedInutilizacao.infInut.serie.ToString().PadLeft(3, '0'),
                                      pedInutilizacao.infInut.nNFIni.ToString().PadLeft(9, '0'), pedInutilizacao.infInut.nNFFin.ToString().PadLeft(9, '0'));
            pedInutilizacao.infInut.Id = "ID" + numId;

            pedInutilizacao.Assina();

            #endregion

            #region Valida, Envia os dados e obtém a resposta

            var xmlInutilizacao = pedInutilizacao.ObterXmlString();
            Validador.Valida(ServicoNFe.NfeInutilizacao, TipoRecepcaoEvento.Nenhum, _cFgServico.VersaoNfeInutilizacao, xmlInutilizacao);
            var dadosInutilizacao = new XmlDocument();
            dadosInutilizacao.LoadXml(xmlInutilizacao);

            SalvarArquivoXml(numId + "-ped-inu.xml", xmlInutilizacao);

            var retorno          = ws.Execute(dadosInutilizacao);
            var retornoXmlString = retorno.OuterXml;
            var retInutNFe       = new retInutNFe().CarregarDeXmlString(retornoXmlString);

            SalvarArquivoXml(numId + "-inu.xml", retornoXmlString);

            return(new RetornoNfeInutilizacao(pedInutilizacao.ObterXmlString(), retInutNFe.ObterXmlString(), retornoXmlString, retInutNFe));

            #endregion
        }
Пример #24
0
 /// <summary>
 /// Obtém os dados de um documento constante no Portal.
 /// </summary>
 public async Task <Documento> ConsultaDocumento(ModeloDocumento modelo, string id)
 {
     return(await ConsultaDocumento(CodigoModelo(modelo), id));
 }
Пример #25
0
 /// <summary>
 /// Para continuar uma busca da listagem dos documentos.
 /// </summary>
 public async Task <ListagemDocumentos> ContinuaListagem(ModeloDocumento modelo, string token)
 {
     return(await ContinuaListagem(CodigoModelo(modelo), token));
 }
Пример #26
0
 /// <summary>
 /// Obtém uma lista com dados dos documentos constantes no Portal.
 /// </summary>
 public async Task <ListagemDocumentos> ListaDocumentos(ModeloDocumento modelo, FiltroDocumento filtro, string[] campos = null, string consulta = null)
 {
     return(await ListaDocumentos(CodigoModelo(modelo), CodigoFiltro(filtro), campos, consulta));
 }
Пример #27
0
 /// <summary>
 /// A empresa poderá informar a manifestação acerca de suas notas destinadas à SEFAZ.
 /// </summary>
 public async Task <HttpStatusCode> ManifestacaoNfe(ModeloDocumento modelo, string id, Manifestacao manifestacao, string justificativa = null)
 {
     return(await ManifestacaoNfe(CodigoModelo(modelo), id, CodigoManifestacao(manifestacao), justificativa));
 }
Пример #28
0
 /// <summary>
 /// Obtém o XML ou PDF de um documento constante no Portal.
 /// </summary>
 public async Task <Download> BaixaDocumento(ModeloDocumento modelo, FormatoDocumento formato, string chave)
 {
     return(await BaixaDocumento(CodigoModelo(modelo), CodigoFormato(formato), chave));
 }
Пример #29
0
        /// <summary>
        /// Obtém 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 um objeto <see cref="DadosChaveFiscal"/> com os dados da chave de acesso</returns>
        public static DadosChaveFiscal ObterChave(Estado ufEmitente, DateTime dataEmissao, string cnpjEmitente, ModeloDocumento modelo, int serie, long numero, int tipoEmissao, int cNf)
        {
            var chave = new StringBuilder();

            chave.Append(((int)ufEmitente).ToString("D2"))
            .Append(Convert.ToDateTime(dataEmissao).ToString("yyMM"))
            .Append(cnpjEmitente.PadLeft(14, '0').Substring(0, 14))
            .Append(((int)modelo).ToString("D2"))
            .Append(serie.ToString("D3"))
            .Append(numero.ToString("D9"))
            .Append(tipoEmissao.ToString())
            .Append(cNf.ToString("D8"));


            var digitoVerificador = ObterDigitoVerificador(chave.ToString());

            chave.Append(digitoVerificador);

            return(new DadosChaveFiscal(chave.ToString(), byte.Parse(digitoVerificador)));
        }
Пример #30
0
 public static string ModeloDocumentoParaString(ModeloDocumento modelo)
 {
     switch (modelo)
     {
         case ModeloDocumento.NFe:
             return "NF-e";
         case ModeloDocumento.NFCe:
             return "NFC-e";
     }
     return null;
 }
Пример #31
0
        /// <summary>
        ///     Inutiliza uma faixa de números
        /// </summary>
        /// <param name="cnpj"></param>
        /// <param name="ano"></param>
        /// <param name="modelo"></param>
        /// <param name="serie"></param>
        /// <param name="numeroInicial"></param>
        /// <param name="numeroFinal"></param>
        /// <param name="justificativa"></param>
        /// <returns>Retorna um objeto da classe RetornoNfeInutilizacao com o retorno do serviço NfeInutilizacao</returns>
        public RetornoNfeInutilizacao NfeInutilizacao(string cnpj, int ano, ModeloDocumento modelo, int serie, int numeroInicial, int numeroFinal, string justificativa)
        {
            var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.NfeInutilizacao, _cFgServico.VersaoNfeInutilizacao);

            #region Cria o objeto wdsl para consulta

            var ws = CriarServico(ServicoNFe.NfeInutilizacao, TipoRecepcaoEvento.Nenhum);

            ws.nfeCabecMsg = new nfeCabecMsg
            {
                cUF = _cFgServico.cUF,
                versaoDados = versaoServico
            };

            #endregion

            #region Cria o objeto inutNFe

            var pedInutilizacao = new inutNFe
            {
                versao = versaoServico,
                infInut = new infInutEnv
                {
                    tpAmb = _cFgServico.tpAmb,
                    cUF = _cFgServico.cUF,
                    ano = ano,
                    CNPJ = cnpj,
                    mod = modelo,
                    serie = serie,
                    nNFIni = numeroInicial,
                    nNFFin = numeroFinal,
                    xJust = justificativa
                }
            };

            var numId = String.Concat((int) pedInutilizacao.infInut.cUF, pedInutilizacao.infInut.ano,
                pedInutilizacao.infInut.CNPJ, (int) pedInutilizacao.infInut.mod, pedInutilizacao.infInut.serie.ToString().PadLeft(3, '0'),
                pedInutilizacao.infInut.nNFIni.ToString().PadLeft(9, '0'), pedInutilizacao.infInut.nNFFin.ToString().PadLeft(9, '0'));
            pedInutilizacao.infInut.Id = "ID" + numId;

            pedInutilizacao.Assina();

            #endregion

            #region Valida, Envia os dados e obtém a resposta

            var xmlInutilizacao = pedInutilizacao.ObterXmlString();
            Validador.Valida(ServicoNFe.NfeInutilizacao, TipoRecepcaoEvento.Nenhum, _cFgServico.VersaoNfeInutilizacao, xmlInutilizacao);
            var dadosInutilizacao = new XmlDocument();
            dadosInutilizacao.LoadXml(xmlInutilizacao);

            SalvarArquivoXml(numId + "-ped-inu.xml", xmlInutilizacao);

            var retorno = ws.Execute(dadosInutilizacao);
            var retornoXmlString = retorno.OuterXml;
            var retInutNFe = new retInutNFe().CarregarDeXmlString(retornoXmlString);

            SalvarArquivoXml(numId + "-inu.xml", retornoXmlString);

            return new RetornoNfeInutilizacao(pedInutilizacao.ObterXmlString(), retInutNFe.ObterXmlString(), retornoXmlString, retInutNFe);

            #endregion
        }
Пример #32
0
 /// <summary>
 /// Solicita os arquivos XML ou PDF de um lote de documentos fiscais.
 /// </summary>
 public async Task <SolicitaDownload> SolicitaDownload(ModeloDocumento modelo, FiltroDocumento filtro, FormatoDocumento formato, string consulta = "")
 {
     return(await SolicitaDownload(CodigoModelo(modelo), CodigoFiltro(filtro), CodigoFormato(formato), consulta));
 }
Пример #33
0
 public ServCancNfe4(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, int idlote,
                     ICollection <EventoBuilder> eventoBuilder, VersaoServico versao, ModeloDocumento modelo = ModeloDocumento.NFe) : base(
         emissorServicoConfig, certificado, idlote, eventoBuilder, versao, modelo)
 {
 }