Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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);
 }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
 public DFeCabecalho(Estado codigoUF, VersaoServico versaoServico, ITagCabecalho tagCabecalho, string namespaceHeader)
 {
     CodigoUF        = codigoUF;
     VersaoServico   = versaoServico;
     NamespaceHeader = namespaceHeader;
     TagCabecalho    = tagCabecalho;
 }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
0
        private static pag GetPagamento(ICMSTot icmsTot, VersaoServico versao)
        {
            decimal valorPagto = (icmsTot.vNF / 2).Arredondar(2);

            if (versao != VersaoServico.Versao400) // difernte de versão 4 retorna isso
            {
                return(new pag {
                    tPag = FormaPagamento.fpDinheiro, vPag = valorPagto
                });
            }


            // igual a versão 4 retorna isso
            return(new pag
            {
                detPag = new List <detPag>
                {
                    new detPag {
                        tPag = FormaPagamento.fpCreditoLoja, vPag = valorPagto
                    },
                    new detPag {
                        tPag = FormaPagamento.fpCreditoLoja, vPag = icmsTot.vNF - valorPagto
                    }
                }
            });
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public EnderecoConsultaPublicaNfce(Estado estado, TipoAmbiente tipoAmbiente, TipoUrlConsultaPublica tipoUrlConsultaPublica, string url, VersaoServico versaoServico = VersaoServico.ve310)
 {
     TipoAmbiente           = tipoAmbiente;
     Estado                 = estado;
     TipoUrlConsultaPublica = tipoUrlConsultaPublica;
     Url           = url;
     VersaoServico = versaoServico;
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Retorna verdadeiro para as UFs que utilizam SVC-AN, caso o tipo de emissão seja SVC-AN e o documento seja NF-e
 /// </summary>
 /// <param name="cfgServico"></param>
 /// <returns></returns>
 public static bool UsaSvcanNFe4(this ConfiguracaoServico cfgServico, VersaoServico versaoServico)
 {
     return(Enderecador.EstadosQueUsamSvcAnParaNfe().Contains(cfgServico.cUF) &&
            cfgServico.tpEmis == TipoEmissao.teSVCAN &&
            cfgServico.ModeloDocumento == ModeloDocumento.NFe &&
            versaoServico == VersaoServico.ve400
            );
 }
Ejemplo n.º 10
0
        protected virtual Classes.NFe GetNf(int numero, ModeloDocumento modelo, VersaoServico versao)
        {
            var nf = new Classes.NFe {
                infNFe = GetInf(numero, modelo, versao)
            };

            return(nf);
        }
Ejemplo n.º 11
0
        public static string GetVersaoString(this VersaoServico versaoServico)
        {
            var codigoString    = versaoServico.ToString();
            var codigoFormatado = codigoString.Substring(6, 3);

            codigoFormatado = codigoFormatado.Insert(1, ".");
            return(codigoFormatado);
        }
Ejemplo n.º 12
0
 public EnderecoConsultaPublicaNfce(TipoAmbiente tipoAmbiente, Estado estado, TipoUrlConsultaPublica tipoUrlConsultaPublica, VersaoServico versaoServico, VersaoQrCode versaoQrCode, string url)
 {
     TipoAmbiente           = tipoAmbiente;
     Estado                 = estado;
     TipoUrlConsultaPublica = tipoUrlConsultaPublica;
     Url           = url;
     VersaoServico = versaoServico;
     VersaoQrCode  = versaoQrCode;
 }
Ejemplo n.º 13
0
        public static string[] Valida(ServicoNFe servicoNFe, VersaoServico versaoServico, string stringXml, bool loteNfe = true, string pathSchema = null)
        {
            var falhas = new StringBuilder();

            if (!Directory.Exists(pathSchema))
            {
                throw new Exception("Diretório de Schemas não encontrado: \n" + pathSchema);
            }

            var arquivoSchema = Path.Combine(pathSchema, ObterArquivoSchema(servicoNFe, versaoServico, stringXml, loteNfe));

            // Define o tipo de validação
            var cfg = new XmlReaderSettings {
                ValidationType = ValidationType.Schema
            };

            // Carrega o arquivo de esquema
            var schemas = new XmlSchemaSet();

            schemas.XmlResolver = new XmlUrlResolver();

            cfg.Schemas = schemas;
            // Quando carregar o eschema, especificar o namespace que ele valida
            // e a localização do arquivo
            schemas.Add(null, arquivoSchema);
            // Especifica o tratamento de evento para os erros de validacao
            cfg.ValidationEventHandler += delegate(object sender, ValidationEventArgs args)
            {
                falhas.AppendLine($"[{args.Severity}] - {args.Message} {args.Exception?.Message} na linha {args.Exception.LineNumber} posição {args.Exception.LinePosition} em {args.Exception.SourceUri}".ToString());
            };

            // cria um leitor para validação
            var validator = XmlReader.Create(new StringReader(stringXml), cfg);

            try
            {
                // Faz a leitura de todos os dados XML
                while (validator.Read())
                {
                }
            }
            catch
            {
            }
            finally
            {
                validator.Close();
            }

            if (falhas.Length > 0)
            {
                throw new ValidacaoSchemaException($"Ocorreu o seguinte erro durante a validação XML: {Environment.NewLine}{falhas}");
            }

            return(falhas.ToString().Trim().Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries));
        }
Ejemplo n.º 14
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;
 }
Ejemplo n.º 15
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;
 }
Ejemplo n.º 16
0
 protected ServAutorzTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, int idlote,
                              ICollection <NFe> nFes, VersaoServico versao, bool compactarMensagem = false)
 {
     _certificadoDigital         = certificado ?? throw new ArgumentNullException(nameof(certificado));
     _emisorEmissorServicoConfig = emissorServicoConfig ?? throw new ArgumentNullException(nameof(emissorServicoConfig));
     _servicoBase       = new ServHttpSoapBase(emissorServicoConfig, certificado, NomeServico);
     _nFes              = nFes;
     _idlote            = idlote;
     _compactarMensagem = compactarMensagem;
     _versao            = versao;
 }
Ejemplo n.º 17
0
 public EmissorServicoConfig(VersaoServico versaoServico, Estado estado, TipoAmbiente ambiente,
                             IndicadorSincronizacao indicadorSincronizacao = IndicadorSincronizacao.Sincrono, int timeOut = 60000)
 {
     VersaoServico          = versaoServico;
     IndicadorSincronizacao = indicadorSincronizacao;
     Estado   = estado;
     Ambiente = ambiente;
     TimeOut  = timeOut;
     ValidaConfiguracaoBasica();
     CarregarConfigServ();
 }
Ejemplo n.º 18
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;
 }
Ejemplo n.º 19
0
 internal static string ObterArquivoSchema(ServicoNFe servicoNFe, TipoRecepcaoEvento tipoRecepcaoEvento, VersaoServico versaoServico, bool loteNfe = true)
 {
     switch (servicoNFe)
     {
         case ServicoNFe.NfeRecepcao:
             return loteNfe ? "enviNFe_v2.00.xsd" : "nfe_v2.00.xsd";
         case ServicoNFe.RecepcaoEvento:
             switch (tipoRecepcaoEvento)
             {
                 case TipoRecepcaoEvento.Cancelmento:
                     return "envEventoCancNFe_v1.00.xsd";
                 case TipoRecepcaoEvento.CartaCorrecao:
                     return "envCCe_v1.00.xsd";
                 case TipoRecepcaoEvento.Epec:
                     return "envEPEC_v1.00.xsd";
             }
             break;
         case ServicoNFe.NfeInutilizacao:
             switch (versaoServico)
             {
                 case VersaoServico.ve200:
                     return "inutNFe_v2.00.xsd";
                 case VersaoServico.ve310:
                     return "inutNFe_v3.10.xsd";
             }
             break;
         case ServicoNFe.NfeConsultaProtocolo:
             switch (versaoServico)
             {
                 case VersaoServico.ve200:
                     return "consSitNFe_v2.01.xsd";
                 case VersaoServico.ve310:
                     return "consSitNFe_v3.10.xsd";
             }
             break;
         case ServicoNFe.NfeStatusServico:
             switch (versaoServico)
             {
                 case VersaoServico.ve200:
                     return "consStatServ_v2.00.xsd";
                 case VersaoServico.ve310:
                     return "consStatServ_v3.10.xsd";
             }
             break;
         case ServicoNFe.NFeAutorizacao:
             return loteNfe ? "enviNFe_v3.10.xsd" : "nfe_v3.10.xsd";
         case ServicoNFe.NfeConsultaCadastro:
             return "consCad_v2.00.xsd";
         case ServicoNFe.NfeDownloadNF:
             return "downloadNFe_v1.00.xsd";
     }
     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;
 }
Ejemplo n.º 21
0
 protected ServAutorzTemplate(EmissorServicoConfig emissorServicoConfig, X509Certificate2 certificado, string xml,
                              VersaoServico versao, bool compactarMensagem = false)
 {
     _certificadoDigital         = certificado ?? throw new ArgumentNullException(nameof(certificado));
     _emisorEmissorServicoConfig = emissorServicoConfig ?? throw new ArgumentNullException(nameof(emissorServicoConfig));
     _servicoBase       = new ServHttpSoapBase(emissorServicoConfig, certificado, NomeServico);
     _nFes              = null;
     _idlote            = 1;
     _compactarMensagem = compactarMensagem;
     _versao            = versao;
     _xmlNfe            = xml;
 }
Ejemplo n.º 22
0
 public static string VersaoServicoParaString(VersaoServico versao)
 {
     switch (versao)
     {
         case VersaoServico.ve100:
             return "1.00";
         case VersaoServico.ve200:
             return "2.00";
         case VersaoServico.ve310:
             return "3.10";
     }
     return null;
 }
Ejemplo n.º 23
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;
 }
Ejemplo n.º 24
0
        public static void Valida(ServicoNFe servicoNFe, VersaoServico versaoServico, string stringXml, bool loteNfe = true)
        {
            var pathSchema = ConfiguracaoServico.Instancia.DiretorioSchemas;

            if (!Directory.Exists(pathSchema))
            {
                throw new Exception("Diretório de Schemas não encontrado: \n" + pathSchema);
            }

            var arquivoSchema = pathSchema + @"\" + ObterArquivoSchema(servicoNFe, versaoServico, loteNfe);

            // Define o tipo de validação
            var cfg = new XmlReaderSettings {
                ValidationType = ValidationType.Schema
            };

            // Carrega o arquivo de esquema
            var schemas = new XmlSchemaSet();

            cfg.Schemas = schemas;
            // Quando carregar o eschema, especificar o namespace que ele valida
            // e a localização do arquivo
            schemas.Add(null, arquivoSchema);
            // Especifica o tratamento de evento para os erros de validacao
            cfg.ValidationEventHandler += ValidationEventHandler;
            // cria um leitor para validação
            var validator = XmlReader.Create(new StringReader(stringXml), cfg);

            try
            {
                // Faz a leitura de todos os dados XML
                while (validator.Read())
                {
                }
            }
            catch (XmlException err)
            {
                // Um erro ocorre se o documento XML inclui caracteres ilegais
                // ou tags que não estão aninhadas corretamente
                throw new Exception("Ocorreu o seguinte erro durante a validação XML:" + "\n" + err.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu o seguinte erro durante a validação XML:" + "\n" + ex.Message);
            }
            finally
            {
                validator.Close();
            }
        }
Ejemplo n.º 25
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;
 }
Ejemplo n.º 26
0
        public static string VersaoServicoParaString(VersaoServico versao)
        {
            switch (versao)
            {
            case VersaoServico.ve100:
                return("1.00");

            case VersaoServico.ve200:
                return("2.00");

            case VersaoServico.ve310:
                return("3.10");
            }
            return(null);
        }
Ejemplo n.º 27
0
        public static void Valida(ServicoNFe servicoNFe, VersaoServico versaoServico, string stringXml, bool loteNfe = true, ConfiguracaoServico cfgServico = null)
        {
            var pathSchema = String.Empty;

            if (cfgServico == null || (cfgServico != null && string.IsNullOrWhiteSpace(cfgServico.DiretorioSchemas)))
            {
                pathSchema = ConfiguracaoServico.Instancia.DiretorioSchemas;
            }
            else
            {
                pathSchema = cfgServico.DiretorioSchemas;
            }

            Valida(servicoNFe, versaoServico, stringXml, loteNfe, pathSchema);
        }
Ejemplo n.º 28
0
        public static IServidorSefaz GetServidor(Estado estado, VersaoServico versaoLayout)
        {
            var compativel = Servidores310.FirstOrDefault(s => s.EstadoReferente == estado);

            if (versaoLayout == VersaoServico.ve400)
            {
                compativel = Servidores400.FirstOrDefault(s => s.EstadoReferente == estado);
            }

            if (compativel == null)
            {
                throw new InvalidOperationException("Estado não homologado pelo sistema para utilização da SEFAZ");
            }

            return((IServidorSefaz)compativel);
        }
Ejemplo n.º 29
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);
                }
            }
        }
Ejemplo n.º 30
0
        protected virtual total GetTotal(VersaoServico versao)
        {
            var icmsTot = new ICMSTot {
                vProd = 1, vNF = Decimal.Parse("0,90"), vDesc = Decimal.Parse("0,10"), vTotTrib = Decimal.Parse("0,17")
            };

            if (versao == VersaoServico.ve310)
            {
                icmsTot.vICMSDeson = 0;
            }

            var t = new total {
                ICMSTot = icmsTot
            };

            return(t);
        }
Ejemplo n.º 31
0
 public static string VersaoServicoParaString(ServicoNFe servicoNFe, VersaoServico? versaoServico)
 {
     switch (versaoServico)
     {
         case VersaoServico.ve100:
             return "1.00";
         case VersaoServico.ve200:
             switch (servicoNFe)
             {
                 case ServicoNFe.NfeConsultaProtocolo:
                     return "2.01";
             }
             return "2.00";
         case VersaoServico.ve310:
             return "3.10";
     }
     return "";
 }
Ejemplo n.º 32
0
        public static string VersaoServicoParaString(this VersaoServico versao)
        {
            switch (versao)
            {
            case VersaoServico.Versao100:
                return("1.00");

            case VersaoServico.Versao200:
                return("2.00");

            case VersaoServico.Versao310:
                return("3.10");

            case VersaoServico.Versao400:
                return("4.00");
            }
            return(null);
        }
Ejemplo n.º 33
0
        private void AtualizaVersoes(VersaoServico versaoLayout)
        {
            var servidorSefaz = ServidorSefazFactory.GetServidor(cUF, versaoLayout);

            VersaoRecepcaoEventoCceCancelamento          = servidorSefaz.EventoCceCancelamento;
            VersaoRecepcaoEventoEpec                     = servidorSefaz.VersaoRecepcaoEventoEpec;
            VersaoRecepcaoEventoManifestacaoDestinatario = servidorSefaz.ManifestacaoDestinatario;
            VersaoNfeRecepcao          = servidorSefaz.NfeRecepcao;
            VersaoNfeRetRecepcao       = servidorSefaz.NfeRetornoRecepcao;
            VersaoNfeConsultaCadastro  = servidorSefaz.NfeConsultaCadastro;
            VersaoNfeInutilizacao      = servidorSefaz.NfeInutilizacao;
            VersaoNfeConsultaProtocolo = servidorSefaz.NfeConsultaProtocolo;
            VersaoNfeStatusServico     = servidorSefaz.NfeStatusServico;
            VersaoNFeAutorizacao       = servidorSefaz.NfeAutorizacao;
            VersaoNFeRetAutorizacao    = servidorSefaz.NfeRetornoAutorizacao;
            VersaoNFeDistribuicaoDFe   = servidorSefaz.NFeDistribuicaoDFe;
            VersaoNfeConsultaDest      = servidorSefaz.NfeConsultaDest;
            VersaoNfceAministracaoCSC  = servidorSefaz.VersaoNfceAministracaoCSC;
        }
Ejemplo n.º 34
0
        protected virtual dest GetDestinatario(VersaoServico versao)
        {
            var dest = new dest(versao)
            {
                CNPJ = "99999999000191",
                //CPF = "99999999999",
                xNome     = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
                enderDest = GetEnderecoDestinatario()
            };

            //if (versao == VersaoServico.ve200)
            //    dest.IE = "ISENTO";
            if (versao != VersaoServico.ve310)
            {
                return(dest);
            }
            dest.indIEDest = indIEDest.NaoContribuinte; //NFCe: Tem que ser não contribuinte V3.00 Somente
            dest.email     = "*****@*****.**";         //V3.00 Somente
            return(dest);
        }
Ejemplo n.º 35
0
 /// <summary>
 ///     A versão do serviço é obrigatória por conta do tratamento que será feito na propriedade IE
 /// </summary>
 /// <param name="versao"></param>
 public dest(VersaoServico versao)
 {
     _versao = versao;
     IE = "";
 }
Ejemplo n.º 36
0
        public static void Valida(ServicoNFe servicoNFe, TipoRecepcaoEvento tipoRecepcaoEvento, VersaoServico versaoServico, string stringXml, bool loteNfe = true)
        {
            var pathSchema = ConfiguracaoServico.Instancia.DiretorioSchemas;

            if (!Directory.Exists(pathSchema))
                throw new Exception("Diretório de Schemas não encontrado: \n" + pathSchema);

            var arquivoSchema = pathSchema + @"\" + ObterArquivoSchema(servicoNFe, tipoRecepcaoEvento, versaoServico, loteNfe);

            // Define o tipo de validação
            var cfg = new XmlReaderSettings {ValidationType = ValidationType.Schema};

            // Carrega o arquivo de esquema
            var schemas = new XmlSchemaSet();
            cfg.Schemas = schemas;
            // Quando carregar o eschema, especificar o namespace que ele valida
            // e a localização do arquivo 
            schemas.Add(null, arquivoSchema);
            // Especifica o tratamento de evento para os erros de validacao
            cfg.ValidationEventHandler += ValidationEventHandler;
            // cria um leitor para validação
            var validator = XmlReader.Create(new StringReader(stringXml), cfg);
            try
            {
                // Faz a leitura de todos os dados XML
                while (validator.Read())
                {
                }
            }
            catch (XmlException err)
            {
                // Um erro ocorre se o documento XML inclui caracteres ilegais
                // ou tags que não estão aninhadas corretamente
                throw new Exception("Ocorreu o seguinte erro durante a validação XML:" + "\n" + err.Message);
            }
            finally
            {
                validator.Close();
            }
        }