예제 #1
0
        public NlParametrizacao ToEntity()
        {
            var entity   = new NlParametrizacao();
            var despesas = new List <NlParametrizacaoDespesa>();
            var eventos  = new List <NlParametrizacaoEvento>();

            entity.Id                     = this.IdParametrizacao;
            entity.Tipo                   = this.IdTipoNL;
            entity.Observacao             = this.Observacao;
            entity.Transmitir             = this.Transmitir;
            entity.UnidadeGestora         = this.UnidadeGestora;
            entity.FavorecidaCnpjCpfUg    = this.FavorecidaCnpjCpfUg;
            entity.FavorecidaNumeroGestao = this.FavorecidaNumeroGestao;
            entity.IdFormaGerarNl         = this.IdFormaGerarNl;

            foreach (var despesa in this.Despesas)
            {
                despesas.Add(despesa.ToEntity());
            }
            entity.Despesas = despesas;

            foreach (var evento in this.Eventos)
            {
                eventos.Add(evento.ToEntity());
            }
            entity.Eventos = eventos;

            return(entity);
        }
예제 #2
0
        public NlParametrizacaoViewModel(NlParametrizacao entity)
        {
            this.IdParametrizacao       = entity.Id;
            this.IdTipoNL               = entity.Tipo;
            this.Observacao             = entity.Observacao;
            this.Transmitir             = entity.Transmitir;
            this.UnidadeGestora         = entity.UnidadeGestora;
            this.FavorecidaCnpjCpfUg    = entity.FavorecidaCnpjCpfUg;
            this.FavorecidaNumeroGestao = entity.FavorecidaNumeroGestao;
            this.IdFormaGerarNl         = entity.IdFormaGerarNl;

            var eventos = new List <NlParametrizacaoEventoViewModel>();

            foreach (var item in entity.Eventos)
            {
                eventos.Add(new NlParametrizacaoEventoViewModel(item));
            }
            this.Eventos = eventos;

            var despesas = new List <NlParametrizacaoDespesaViewModel>();

            foreach (var item in entity.Despesas)
            {
                despesas.Add(new NlParametrizacaoDespesaViewModel(item));
            }
            this.Despesas = despesas;
        }
        public AcaoEfetuada Excluir(NlParametrizacao entity, int recursoId)
        {
            try
            {
                _parametrizacaoDal.Remove(entity.Id);

                return(AcaoEfetuada.Sucesso);
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, 1, recursoId);
            }
        }
        private void ExcluirDespesasNaoListadas(NlParametrizacao entity)
        {
            var despesas = _parametrizacaoDespesaDal.Fetch(new NlParametrizacaoDespesa()
            {
                IdNlParametrizacao = entity.Id
            });

            foreach (var despesa in despesas)
            {
                if (!entity.Despesas.Any(x => x.Id == despesa.Id))
                {
                    _parametrizacaoDespesaDal.Remove(despesa.Id);
                }
            }
        }
        private void ExcluirEventosNaoListados(NlParametrizacao entity)
        {
            var eventos = _parametrizacaoEventoDal.Fetch(new NlParametrizacaoEvento()
            {
                IdNlParametrizacao = entity.Id
            });

            foreach (var evento in eventos)
            {
                if (!entity.Eventos.Any(x => x.Id == evento.Id))
                {
                    _parametrizacaoEventoDal.Remove(evento.Id);
                }
            }
        }
        public NlParametrizacao Selecionar(NlParametrizacao filtro)
        {
            var entity = this._parametrizacaoDal.Fetch(filtro).FirstOrDefault();

            if (entity == null)
            {
                return(null);
            }
            var eventos = this._parametrizacaoEventoDal.Fetch(new NlParametrizacaoEvento()
            {
                IdNlParametrizacao = entity.Id
            });

            entity.Eventos = eventos;

            var despesas = this._parametrizacaoDespesaDal.Fetch(new NlParametrizacaoDespesa()
            {
                IdNlParametrizacao = entity.Id
            });

            entity.Despesas = despesas;

            return(entity);
        }
        public AcaoEfetuada Salvar(NlParametrizacao entity, int?recursoId)
        {
            try
            {
                if (entity.Id == 0)
                {
                    var id = _parametrizacaoDal.Add(entity);
                    entity.Id = id;
                }
                else
                {
                    ExcluirEventosNaoListados(entity);
                    ExcluirDespesasNaoListadas(entity);

                    _parametrizacaoDal.Edit(entity);
                }

                foreach (var evento in entity.Eventos)
                {
                    evento.IdNlParametrizacao = entity.Id;
                    SalvarEvento(evento);
                }

                foreach (var despesa in entity.Despesas)
                {
                    despesa.IdNlParametrizacao = entity.Id;
                    SalvarDespesa(despesa);
                }

                return(AcaoEfetuada.Sucesso);
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, 1, recursoId);
            }
        }
 public IEnumerable <NlParametrizacao> Consultar(NlParametrizacao filtro, int recursoId)
 {
     return(_parametrizacaoDal.Fetch(filtro));
 }
예제 #9
0
        private static void GerarEventosSaida(ParametrosGeracaoNl parametrosGeracao, ReclassificacaoRetencao rr, List <ReclassificacaoRetencaoEvento> eventos, NlParametrizacao parametrizacao)
        {
            var eventoSaidaParametrizado = parametrizacao.Eventos.FirstOrDefault(x => x.EntradaSaidaDescricao.Equals(EnumDirecaoEvento.Saida.ToString()));

            if (eventoSaidaParametrizado != null)
            {
                var evento = new ReclassificacaoRetencaoEvento();
                evento.InscricaoEvento = String.Format("{0}{1}{2}", parametrosGeracao.ItemConfirmacao.NumeroBancoPagador, parametrosGeracao.ItemConfirmacao.NumeroAgenciaPagador, parametrosGeracao.ItemConfirmacao.NumeroContaPagador);
                evento.Classificacao   = eventoSaidaParametrizado.NumeroClassificacao.ToString();
                evento.Fonte           = eventoSaidaParametrizado.NumeroFonte.ToString();

                if (parametrosGeracao.IsSubempenho)
                {
                    evento.NumeroEvento = eventoSaidaParametrizado.NumeroEvento.ToString();
                }
                else if (parametrosGeracao.IsRap)
                {
                    // Para RAP de exercício anterior de despesa prevista (Data da Realização igual a 0) e Ano da NL igual ao ano do exercício, evento = Parametrizado para o tipo de rap “N - Não Proces.Transf.P / Proces.De Exerc.Anterior”;
                    // Para RAP de exercício anterior de despesa prevista (Data da Realização igual a 0) e Ano da NL igual ao ano anterior ao exercício, evento igual a V - Não Proces.Transf.P / proces.De Exerc.Anteriores;
                    // Para RAP com Data da Realização diferente de 0 e Ano da NL igual ao ano anterior ao exercício, evento = Parametrizado para o tipo de rap “P - Processado do Exercício anterior”;
                    // Para RAP de outros exercícios anterior, evento R-Revigorados de Exercícios Anteriores

                    var isAnoAnterior = parametrosGeracao.Ano < parametrosGeracao.AnoAtual;
                    if (isAnoAnterior)
                    {
                        // TODO evento.NumeroEvento =  ???
                    }
                }
                eventos.Add(evento);
            }

            rr.Eventos = eventos;
        }
예제 #10
0
        private static void GerarEventoEntrada(ReclassificacaoRetencao rr, List <ReclassificacaoRetencaoEvento> eventos, NlParametrizacao parametrizacao)
        {
            var eventoEntradaParametrizado = parametrizacao.Eventos.FirstOrDefault(x => x.EntradaSaidaDescricao.Equals(EnumDirecaoEvento.Entrada.ToString()));

            if (eventoEntradaParametrizado != null)
            {
                rr.CodigoEvento        = eventoEntradaParametrizado.NumeroEvento.ToString();
                rr.CodigoClassificacao = eventoEntradaParametrizado.NumeroClassificacao.ToString();

                var evento = new ReclassificacaoRetencaoEvento();
                evento.NumeroEvento  = eventoEntradaParametrizado.NumeroEvento.ToString();
                evento.Classificacao = eventoEntradaParametrizado.NumeroClassificacao.ToString();
                evento.Fonte         = eventoEntradaParametrizado.NumeroFonte.ToString();

                eventos.Add(evento);
            }
        }
        private static void GerarEventosSaida(ParametrosGeracaoNl parametrosGeracao, List <ReclassificacaoRetencaoEvento> eventos, NlParametrizacao parametrizacao)
        {
            var eventosSaidaParametrizado = parametrizacao.Eventos.Where(x => x.EntradaSaidaDescricao.Trim().Contains(EnumDirecaoEvento.Saida.ToString())).OrderBy(x => x.Id);

            if (eventosSaidaParametrizado != null)
            {
                var eventosFiltrados = RetornaEventosFiltrandoPeloTipoDocumento(parametrosGeracao.IsRap, eventosSaidaParametrizado);

                foreach (var eventoSaidaParametrizado in eventosFiltrados)
                {
                    var evento = new ReclassificacaoRetencaoEvento();
                    evento.InscricaoEvento = String.Format("{0}{1}{2}", parametrosGeracao.ItemConfirmacao.NumeroBancoPagador, parametrosGeracao.ItemConfirmacao.NumeroAgenciaPagador, parametrosGeracao.ItemConfirmacao.NumeroContaPagador);
                    evento.Classificacao   = eventoSaidaParametrizado.NumeroClassificacao.ToString();
                    evento.Fonte           = eventoSaidaParametrizado.NumeroFonte.ToString();
                    evento.NumeroEvento    = eventoSaidaParametrizado.NumeroEvento.ToString();
                    evento.ValorUnitario   = Convert.ToInt32(parametrosGeracao.valorAcumuladoNl);

                    eventos.Add(evento);
                }
            }
        }
        private static void GerarEventoEntrada(ParametrosGeracaoNl parametrosGeracao, ReclassificacaoRetencao rr, List <ReclassificacaoRetencaoEvento> eventos, NlParametrizacao parametrizacao)
        {
            var eventosEntradaParametrizado = parametrizacao.Eventos.Where(x => x.EntradaSaidaDescricao.Trim().Contains(EnumDirecaoEvento.Entrada.ToString())).OrderBy(x => x.Id);

            if (eventosEntradaParametrizado != null)
            {
                var eventosFiltrados = RetornaEventosFiltrandoPeloTipoDocumento(parametrosGeracao.IsRap, eventosEntradaParametrizado);

                foreach (var eventoEntradaParametrizado in eventosFiltrados)
                {
                    rr.CodigoEvento        = eventoEntradaParametrizado.NumeroEvento.ToString();
                    rr.CodigoClassificacao = eventoEntradaParametrizado.NumeroClassificacao.ToString();

                    var evento = new ReclassificacaoRetencaoEvento();
                    evento.NumeroEvento  = eventoEntradaParametrizado.NumeroEvento.ToString();
                    evento.Classificacao = eventoEntradaParametrizado.NumeroClassificacao.ToString();
                    evento.Fonte         = eventoEntradaParametrizado.NumeroFonte.ToString();
                    evento.ValorUnitario = Convert.ToInt32(parametrosGeracao.valorAcumuladoNl);
                    eventos.Add(evento);
                }

                rr.Eventos = eventos;
            }
        }
        private bool AtribuiValoresQuandoNLPGOBRAS(Usuario usuario, ConfirmacaoPagamentoItem infoBaseItem, NlParametrizacao infoBaseParametrizacao, ReclassificacaoRetencao entidadeNl)
        {
            var NLPGOBRAS = false;

            if (VerrificarNlPgObras(infoBaseItem.NaturezaDespesa))
            {
                var infoNe = _commomService.ConsultaNe(infoBaseItem.NumeroEmpenhoSiafem, usuario);

                // Se sim quer dizer que temos uma NLPGOBRAS
                if (!string.IsNullOrEmpty(infoNe.IdentificadorObra))
                {
                    entidadeNl.ReclassificacaoRetencaoTipoId = EnumTipoReclassificacaoRetencao.PagamentoObrasSemOB.GetHashCode();
                    entidadeNl.CodigoEvento        = infoBaseParametrizacao.Eventos.FirstOrDefault().NumeroEvento;
                    entidadeNl.CodigoFonte         = infoBaseParametrizacao.Eventos.FirstOrDefault().NumeroFonte;
                    entidadeNl.CodigoClassificacao = infoBaseParametrizacao.Eventos.FirstOrDefault().NumeroClassificacao;

                    entidadeNl.MesMedicao = FormatarMesMedicao(infoBaseItem.Referencia);
                    entidadeNl.AnoMedicao = FormatarAnoMedicao(infoBaseItem.Referencia);
                    NLPGOBRAS             = true;
                }
                else
                {
                    entidadeNl.ReclassificacaoRetencaoTipoId = EnumTipoReclassificacaoRetencao.NotaLancamento.GetHashCode();
                }
            }
            else
            {
                entidadeNl.ReclassificacaoRetencaoTipoId = EnumTipoReclassificacaoRetencao.NotaLancamento.GetHashCode();
            }

            return(NLPGOBRAS);
        }