Example #1
0
        /// <summary>
        /// Atualiza as versões dos serviços
        /// <para>Obs: As versões do serviços podem variar em função  da UF(<see cref="Estado"/>), do tipo de ambiente(<see cref="TipoAmbiente"/>), do modelo de documento(<see cref="DFe.Classes.Flags.ModeloDocumento"/>) e da forma de emissão(<see cref="TipoEmissao"/>)</para>
        /// </summary>
        private void AtualizaVersoes()
        {
            if (!_defineVersaoServicosAutomaticamente)
            {
                return;
            }

            var enderecosMaisecentes =
                Enderecador.ObterEnderecoServicosMaisRecentes(VersaoLayout, cUF, tpAmb, ModeloDocumento, tpEmis);

            var obterVersao = new Func <ServicoNFe, VersaoServico>(servico =>
                                                                   enderecosMaisecentes.Where(n => n.ServicoNFe == servico).Select(n => n.VersaoServico).FirstOrDefault());


            if (enderecosMaisecentes.Any())
            {
                VersaoRecepcaoEventoCceCancelamento          = obterVersao(ServicoNFe.RecepcaoEventoCancelmento);
                VersaoRecepcaoEventoEpec                     = obterVersao(ServicoNFe.RecepcaoEventoEpec);
                VersaoRecepcaoEventoManifestacaoDestinatario = obterVersao(ServicoNFe.RecepcaoEventoManifestacaoDestinatario);
                VersaoNfeRecepcao          = obterVersao(ServicoNFe.NfeRecepcao);
                VersaoNfeRetRecepcao       = obterVersao(ServicoNFe.NfeRetRecepcao);
                VersaoNfeConsultaCadastro  = obterVersao(ServicoNFe.NfeConsultaCadastro);
                VersaoNfeInutilizacao      = obterVersao(ServicoNFe.NfeInutilizacao);
                VersaoNfeConsultaProtocolo = obterVersao(ServicoNFe.NfeConsultaProtocolo);
                VersaoNfeStatusServico     = obterVersao(ServicoNFe.NfeStatusServico);
                VersaoNFeAutorizacao       = obterVersao(ServicoNFe.NFeAutorizacao);
                VersaoNFeRetAutorizacao    = obterVersao(ServicoNFe.NFeRetAutorizacao);
                VersaoNFeDistribuicaoDFe   = obterVersao(ServicoNFe.NFeDistribuicaoDFe);
                VersaoNfeConsultaDest      = obterVersao(ServicoNFe.NfeConsultaDest);
                VersaoNfeDownloadNF        = obterVersao(ServicoNFe.NfeDownloadNF);
                VersaoNfceAministracaoCSC  = obterVersao(ServicoNFe.NfceAdministracaoCSC);
            }
        }
        public void DeveUfSvcRsTerServicoDeAutorizacaoParaNFe4(Estado uf, TipoAmbiente tipoAmbiente, ServicoNFe servicoAutorizacao)
        {
            var lista = Enderecador.ObterEnderecoServicosMaisRecentes(VersaoServico.Versao400, uf, tipoAmbiente, ModeloDocumento.NFe, TipoEmissao.teSVCRS);

            Assert.Equal(1, lista.Count(n => n.ServicoNFe == servicoAutorizacao));
        }