Beispiel #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);
 }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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;
 }
 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;
 }
Beispiel #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;
 }
 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;
 }
Beispiel #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;
 }
 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;
 }
Beispiel #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;
 }
Beispiel #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);
        }
Beispiel #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);
                }
            }
        }
Beispiel #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);
        }
Beispiel #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);
                }
            }
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #22
0
 public static int ModeloDocumentoParaInt(this ModeloDocumento modelo)
 {
     return((int)modelo);
 }
        /// <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
        }
Beispiel #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));
 }
Beispiel #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));
 }
Beispiel #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));
 }
Beispiel #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));
 }
Beispiel #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));
 }
Beispiel #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)));
        }
 public static string ModeloDocumentoParaString(ModeloDocumento modelo)
 {
     switch (modelo)
     {
         case ModeloDocumento.NFe:
             return "NF-e";
         case ModeloDocumento.NFCe:
             return "NFC-e";
     }
     return null;
 }
Beispiel #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
        }
Beispiel #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));
 }
 public ServCancNfe4(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, int idlote,
                     ICollection <EventoBuilder> eventoBuilder, VersaoServico versao, ModeloDocumento modelo = ModeloDocumento.NFe) : base(
         emissorServicoConfig, certificado, idlote, eventoBuilder, versao, modelo)
 {
 }