Example #1
0
        private INfeServicoAutorizacao CriarServicoAutorizacao(ServicoNFe servico)
        {
            var url = Enderecador.ObterUrlServico(servico, _cFgServico);

            if (servico != ServicoNFe.NFeAutorizacao)
            {
                throw new Exception(
                          string.Format("O serviço {0} não pode ser criado no método {1}!", servico,
                                        MethodBase.GetCurrentMethod().Name));
            }
            if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNFeAutorizacao == VersaoServico.ve310)
            {
                return(new NfeAutorizacao3(url, _certificado, _cFgServico.TimeOut));
            }
            return(new NfeAutorizacao(url, _certificado, _cFgServico.TimeOut));
        }
Example #2
0
        public static INfeServicoAutorizacao CriaWsdlAutorizacao(ConfiguracaoServico cfg, X509Certificate2 certificado)
        {
            var url = Enderecador.ObterUrlServico(ServicoNFe.NFeAutorizacao, cfg);

            if (cfg.IsSvanNFe4())
            {
                return(new NFeAutorizacao4SVAN(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));
        }
Example #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));
        }
        private INfeServico CriarServico(ServicoNFe servico)
        {
            var url = Enderecador.ObterUrlServico(servico, _cFgServico);

            switch (servico)
            {
            case ServicoNFe.NfeStatusServico:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeStatusServico3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeStatusServico(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeStatusServico2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeConsultaProtocolo:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310)
                {
                    return(new NfeConsulta3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeConsulta(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeConsulta2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRecepcao:
                return(new NfeRecepcao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRetRecepcao:
                return(new NfeRetRecepcao2(url, _certificado, _cFgServico.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 (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNFeAutorizacao == VersaoServico.ve310)
                {
                    return(new NfeRetAutorizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeRetAutorizacao(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeInutilizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeInutilizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeInutilizacao(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeInutilizacao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.RecepcaoEventoCancelmento:
            case ServicoNFe.RecepcaoEventoCartaCorrecao:
            case ServicoNFe.RecepcaoEventoManifestacaoDestinatario:
                return(new RecepcaoEvento(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.RecepcaoEventoEpec:
                return(new RecepcaoEPEC(url, _certificado, _cFgServico.TimeOut));

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

            case ServicoNFe.NfeDownloadNF:
                return(new NfeDownloadNF(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfceAdministracaoCSC:
                return(new NfceCsc(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NFeDistribuicaoDFe:
                return(new NfeDistDFeInteresse(url, _certificado, _cFgServico.TimeOut));
            }

            return(null);
        }
Example #5
0
        public static INfeServico CriaWsdlOutros(
            ServicoNFe servico,
            ConfiguracaoServico cfg,
            X509Certificate2 certificado)
        {
            var url = Enderecador.ObterUrlServico(servico, cfg);

            switch (servico)
            {
            case ServicoNFe.NfeStatusServico:
                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.IsSvanNFe4())
                {
                    return(new NfeStatusServico4NFeSVAN(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.IsSvanNFe4())
                {
                    return(new NfeConsulta4SVAN(url, certificado, cfg.TimeOut));
                }

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

                if (cfg.cUF == Estado.PR & cfg.VersaoNfeConsultaProtocolo == VersaoServico.ve310)
                {
                    return(new NfeConsulta3(url, certificado, cfg.TimeOut));
                }
                if (cfg.cUF == Estado.BA & cfg.VersaoNfeConsultaProtocolo == VersaoServico.ve310 &
                    cfg.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeConsulta(url, certificado, cfg.TimeOut));
                }
                return(new NfeConsulta2(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.IsSvanNFe4())
                {
                    return(new NfeRetAutorizacao4SVAN(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.IsSvanNFe4())
                {
                    return(new NFeInutilizacao4SVAN(url, certificado, cfg.TimeOut));
                }

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

                if (cfg.cUF == Estado.PR & cfg.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeInutilizacao3(url, certificado, cfg.TimeOut));
                }
                if (cfg.cUF == Estado.BA & cfg.VersaoNfeStatusServico == 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.IsSvanNFe4())
                {
                    return(new RecepcaoEvento4SVAN(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 RecepcaoEvento4AN(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);
        }
        private INfeServico CriarServico(ServicoNFe servico, TipoRecepcaoEvento tipoRecepcaoEvento)
        {
            var url = Enderecador.ObterUrlServico(servico, tipoRecepcaoEvento, _cFgServico);

            switch (servico)
            {
            case ServicoNFe.NfeStatusServico:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeStatusServico3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeStatusServico(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeStatusServico2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeConsultaProtocolo:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310)
                {
                    return(new NfeConsulta3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeConsulta(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeConsulta2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRecepcao:
                return(new NfeRecepcao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRetRecepcao:
                return(new NfeRetRecepcao2(url, _certificado, _cFgServico.TimeOut));

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

            case ServicoNFe.NFeRetAutorizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNFeAutorizacao == VersaoServico.ve310)
                {
                    return(new NfeRetAutorizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeRetAutorizacao(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeInutilizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeInutilizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeInutilizacao(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeInutilizacao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.RecepcaoEvento:
                if (_cFgServico.cUF == Estado.SP & _cFgServico.VersaoRecepcaoEvento == VersaoServico.ve310 &
                    _cFgServico.ModeloDocumento == ModeloDocumento.NFCe & tipoRecepcaoEvento == TipoRecepcaoEvento.Epec)
                {
                    return(new RecepcaoEPEC(url, _certificado, _cFgServico.TimeOut));
                }
                return(new RecepcaoEvento(url, _certificado, _cFgServico.TimeOut));

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

            case ServicoNFe.NfeDownloadNF:
                return(new NfeDownloadNF(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfceAdministracaoCSC:
                return(new NfceCsc(url, _certificado, _cFgServico.TimeOut));
            }

            return(null);
        }
        private INfeServico CriarServico(ServicoNFe servico, TipoRecepcaoEvento tipoRecepcaoEvento)
        {
            var url = Enderecador.ObterUrlServico(servico, tipoRecepcaoEvento, _cFgServico);

            switch (servico)
            {
            case ServicoNFe.NfeStatusServico:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeStatusServico3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeStatusServico(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeStatusServico2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeConsultaProtocolo:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310)
                {
                    return(new NfeConsulta3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeConsultaProtocolo == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeConsulta(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeConsulta2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRecepcao:
                return(new NfeRecepcao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeRetRecepcao:
                return(new NfeRetRecepcao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NFeAutorizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNFeAutorizacao == VersaoServico.ve310)
                {
                    return(new NfeAutorizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeAutorizacao(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NFeRetAutorizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNFeAutorizacao == VersaoServico.ve310)
                {
                    return(new NfeRetAutorizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeRetAutorizacao(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.NfeInutilizacao:
                if (_cFgServico.cUF == Estado.PR & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310)
                {
                    return(new NfeInutilizacao3(url, _certificado, _cFgServico.TimeOut));
                }
                if (_cFgServico.cUF == Estado.BA & _cFgServico.VersaoNfeStatusServico == VersaoServico.ve310 & _cFgServico.ModeloDocumento == ModeloDocumento.NFe)
                {
                    return(new NfeInutilizacao(url, _certificado, _cFgServico.TimeOut));
                }
                return(new NfeInutilizacao2(url, _certificado, _cFgServico.TimeOut));

            case ServicoNFe.RecepcaoEvento:
                if (_cFgServico.cUF == Estado.SP & _cFgServico.VersaoRecepcaoEvento == VersaoServico.ve310 &
                    _cFgServico.ModeloDocumento == ModeloDocumento.NFCe & tipoRecepcaoEvento == TipoRecepcaoEvento.Epec)
                {
                    return(new RecepcaoEPEC(url, _certificado, _cFgServico.TimeOut));
                }
                return(new RecepcaoEvento(url, _certificado, _cFgServico.TimeOut));

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

            case ServicoNFe.NfeDownloadNF:
                return(new NfeDownloadNF(url, _certificado, _cFgServico.TimeOut));
            }

            return(null);
        }