Beispiel #1
0
        /// <summary>
        /// Cria o cliente <see cref="SoapHttpClientProtocol"/> para o serviço de Autorização
        /// </summary>
        /// <param name="cfg">Configuração do serviço</param>
        /// <param name="certificado">Certificado</param>
        /// <returns></returns>
        public static INfeServicoAutorizacao CriaWsdlAutorizacao(ConfiguracaoServico cfg, X509Certificate2 certificado)
        {
            var url = Enderecador.ObterUrlServico(ServicoNFe.NFeAutorizacao, cfg);

            if (cfg.UsaSvanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.UsaSvcanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVCAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.VersaoNFeAutorizacao == VersaoServico.ve400)
            {
                return(new NFeAutorizacao4(url, certificado, cfg.TimeOut));
            }

            if (cfg.cUF == Estado.PR & cfg.VersaoNFeAutorizacao == VersaoServico.ve310)
            {
                return(new NfeAutorizacao3(url, certificado, cfg.TimeOut));
            }

            return(new NfeAutorizacao(url, certificado, cfg.TimeOut));
        }
Beispiel #2
0
        /// <summary>
        /// Cria o cliente <see cref="SoapHttpClientProtocol"/> para o serviço de Autorização
        /// </summary>
        /// <param name="cfg">Configuração do serviço</param>
        /// <param name="certificado">Certificado</param>
        /// <returns></returns>
        public static INfeServicoAutorizacao CriaWsdlAutorizacao(ConfiguracaoServico cfg, X509Certificate2 certificado, bool compactarMensagem)
        {
            string url = Enderecador.ObterUrlServico(ServicoNFe.NFeAutorizacao, cfg);

            if (cfg.UsaSvanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.UsaSvcanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVCAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.VersaoNFeAutorizacao == VersaoServico.Versao400)
            {
                return(new NFeAutorizacao4(url, certificado, cfg.TimeOut, compactarMensagem, ConverteVersaoLayout(cfg.VersaoNFeAutorizacao), cfg.cUF));
            }

            if (cfg.cUF == Estado.PR & cfg.VersaoNFeAutorizacao == VersaoServico.Versao310)
            {
                return(new NfeAutorizacao3(url, certificado, cfg.TimeOut));
            }

            return(new NfeAutorizacao(url, certificado, cfg.TimeOut));
        }
Beispiel #3
0
        /// <summary>
        /// Cria o cliente <see cref="SoapHttpClientProtocol"/> para o serviço de Autorização
        /// </summary>
        /// <param name="cfg">Configuração do serviço</param>
        /// <param name="certificado">Certificado</param>
        /// <returns></returns>
        public static INfeServicoAutorizacao CriaWsdlAutorizacao(ConfiguracaoServico cfg, X509Certificate2 certificado, bool compactarMensagem)
        {
            var url = Enderecador.ObterUrlServico(ServicoNFe.NFeAutorizacao, cfg);

            if (cfg.UsaSvanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.UsaSvcanNFe4(cfg.VersaoNFeAutorizacao))
            {
                return(new NFeAutorizacao4SVCAN(url, certificado, cfg.TimeOut));
            }

            if (cfg.VersaoNFeAutorizacao == VersaoServico.ve400)
            {
                DFeSoapConfig soapConfig = new DFeSoapConfig
                {
                    DFeCorpo     = new DFeCorpo("http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4", new NfeTagCorpo(cfg.cUF.GetParametroDeEntradaWsdl(compactarMensagem))),
                    DFeCabecalho = new DFeCabecalho(cfg.cUF, ConverteVersaoLayout(cfg.VersaoNFeAutorizacao), new TagCabecalhoVazia(), "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4"),
                    Metodo       = compactarMensagem ? "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4/nfeAutorizacaoLoteZIP"
                        : "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4/nfeAutorizacaoLote",
                    Url         = url,
                    Certificado = certificado,
                    TimeOut     = cfg.TimeOut
                };
                return(new NFeAutorizacao4(soapConfig));
            }

            if (cfg.cUF == Estado.PR & cfg.VersaoNFeAutorizacao == VersaoServico.ve310)
            {
                return(new NfeAutorizacao3(url, certificado, cfg.TimeOut));
            }

            return(new NfeAutorizacao(url, certificado, cfg.TimeOut));
        }
Beispiel #4
0
        /// <summary>
        /// Cria o cliente <see cref="SoapHttpClientProtocol"/> para os serviços passados no parâmetro <paramref name="servico"/>
        /// </summary>
        /// <param name="servico">Tipo </param>
        /// <param name="cfg">Configuração do serviço</param>
        /// <param name="certificado">Certificado</param>
        /// <returns></returns>
        public static INfeServico CriaWsdlOutros(ServicoNFe servico, ConfiguracaoServico cfg, X509Certificate2 certificado)
        {
            var url = Enderecador.ObterUrlServico(servico, cfg);

            switch (servico)
            {
            case ServicoNFe.NfeStatusServico:
                if (cfg.UsaSvanNFe4(cfg.VersaoNfeStatusServico))
                {
                    return(new NfeStatusServico4NFeSVAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.UsaSvcanNFe4(cfg.VersaoNfeStatusServico))
                {
                    return(new NfeStatusServico4NFeSVCAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.PR & cfg.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeStatusServico3(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.BA & cfg.VersaoNfeStatusServico == VersaoServico.ve310 & cfg.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeStatusServico(url, certificado, cfg.TimeOut));
                }

                if (cfg.VersaoNfeStatusServico == VersaoServico.ve400)
                {
                    return(new NfeStatusServico4(url, certificado, cfg.TimeOut));
                }

                return(new NfeStatusServico2(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfeConsultaProtocolo:
                if (cfg.UsaSvanNFe4(cfg.VersaoNfeConsultaProtocolo))
                {
                    return(new NfeConsultaProtocolo4SVAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.UsaSvcanNFe4(cfg.VersaoNfeConsultaProtocolo))
                {
                    return(new NfeConsultaProtocolo4SVCAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.VersaoNfeConsultaProtocolo == VersaoServico.ve400)
                {
                    return(new NfeConsultaProtocolo4(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.PR & cfg.VersaoNfeConsultaProtocolo == VersaoServico.ve310)
                {
                    return(new NfeConsultaProtocolo3(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.BA & cfg.VersaoNfeConsultaProtocolo == VersaoServico.ve310 &
                    cfg.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeConsultaProtocolo(url, certificado, cfg.TimeOut));
                }

                return(new NfeConsultaProtocolo2(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfeRecepcao:
                return(new NfeRecepcao2(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfeRetRecepcao:
                return(new NfeRetRecepcao2(url, certificado, cfg.TimeOut));

            case ServicoNFe.NFeAutorizacao:
                throw new Exception(string.Format("O serviço {0} não pode ser criado no método {1}!", servico,
                                                  MethodBase.GetCurrentMethod().Name));

            case ServicoNFe.NFeRetAutorizacao:
                if (cfg.UsaSvanNFe4(cfg.VersaoNFeRetAutorizacao))
                {
                    return(new NfeRetAutorizacao4SVAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.UsaSvcanNFe4(cfg.VersaoNFeRetAutorizacao))
                {
                    return(new NfeRetAutorizacao4SVCAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.VersaoNFeRetAutorizacao == VersaoServico.ve400)
                {
                    return(new NfeRetAutorizacao4(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.PR & cfg.VersaoNFeAutorizacao == VersaoServico.ve310)
                {
                    return(new NfeRetAutorizacao3(url, certificado, cfg.TimeOut));
                }

                return(new NfeRetAutorizacao(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfeInutilizacao:

                if (cfg.UsaSvanNFe4(cfg.VersaoNfeInutilizacao))
                {
                    return(new NFeInutilizacao4SVAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.VersaoNfeInutilizacao == VersaoServico.ve400)
                {
                    return(new NFeInutilizacao4(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.PR & cfg.VersaoNfeInutilizacao == VersaoServico.ve310)
                {
                    return(new NfeInutilizacao3(url, certificado, cfg.TimeOut));
                }

                if (cfg.cUF == Estado.BA & cfg.VersaoNfeInutilizacao == VersaoServico.ve310 & cfg.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeInutilizacao(url, certificado, cfg.TimeOut));
                }

                return(new NfeInutilizacao2(url, certificado, cfg.TimeOut));

            case ServicoNFe.RecepcaoEventoCancelmento:
            case ServicoNFe.RecepcaoEventoCartaCorrecao:
                if (cfg.UsaSvanNFe4(cfg.VersaoRecepcaoEventoCceCancelamento))
                {
                    return(new RecepcaoEvento4SVAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.UsaSvcanNFe4(cfg.VersaoRecepcaoEventoCceCancelamento))
                {
                    return(new RecepcaoEvento4SVCAN(url, certificado, cfg.TimeOut));
                }

                if (cfg.VersaoRecepcaoEventoCceCancelamento == VersaoServico.ve400)
                {
                    return(new RecepcaoEvento4(url, certificado, cfg.TimeOut));
                }

                return(new RecepcaoEvento(url, certificado, cfg.TimeOut));

            case ServicoNFe.RecepcaoEventoManifestacaoDestinatario:
            {
                if (cfg.VersaoRecepcaoEventoManifestacaoDestinatario == VersaoServico.ve400)
                {
                    return(new RecepcaoEventoManifestacaoDestinatario4AN(url, certificado, cfg.TimeOut));
                }

                return(new RecepcaoEvento(url, certificado, cfg.TimeOut));
            }

            case ServicoNFe.RecepcaoEventoEpec:
                return(new RecepcaoEPEC(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfeConsultaCadastro:
                switch (cfg.cUF)
                {
                case Estado.CE:
                    return(new Wsdl.ConsultaCadastro.CE.CadConsultaCadastro2(url, certificado,
                                                                             cfg.TimeOut));
                }


                if (cfg.VersaoNfeConsultaCadastro == VersaoServico.ve400)
                {
                    return(new Wsdl.ConsultaCadastro.DEMAIS_UFs.CadConsultaCadastro4(url, certificado, cfg.TimeOut));
                }

                return(new Wsdl.ConsultaCadastro.DEMAIS_UFs.CadConsultaCadastro2(url, certificado,
                                                                                 cfg.TimeOut));

            case ServicoNFe.NfeDownloadNF:
                return(new NfeDownloadNF(url, certificado, cfg.TimeOut));

            case ServicoNFe.NfceAdministracaoCSC:
                return(new NfceCsc(url, certificado, cfg.TimeOut));

            case ServicoNFe.NFeDistribuicaoDFe:
                return(new NfeDistDFeInteresse(url, certificado, cfg.TimeOut));
            }

            return(null);
        }