public PartialViewResult partialBoxVencimentos(int?idPeriodoContribuicao)
        {
            var ViewModel = new ContribuicaoPadraoForm();

            ViewModel.Contribuicao.listaContribuicaoVencimento = new List <ContribuicaoVencimento>();

            var OPeriodoContribuicao = this.OPeriodoContribuicaoBL.carregar(UtilNumber.toInt32(idPeriodoContribuicao));

            if (OPeriodoContribuicao == null)
            {
                return(PartialView(ViewModel));
            }

            int limite     = 12 / OPeriodoContribuicao.qtdeMeses;
            int mesProximo = 1;
            int diaInicial = 1;

            for (int i = 0; i < limite; i++)
            {
                var OContribuicao = new ContribuicaoVencimento();

                OContribuicao.diaVencimento = (byte?)diaInicial;

                OContribuicao.mesVencimento = (byte?)mesProximo;

                ViewModel.Contribuicao.listaContribuicaoVencimento.Add(OContribuicao);

                mesProximo = mesProximo + OPeriodoContribuicao.qtdeMeses;
            }

            return(PartialView(ViewModel));
        }
Exemplo n.º 2
0
        //Realizar os tratamentos necessários
        //Salvar um novo registro
        public bool salvar(ContribuicaoVencimento OContribuicaoVencimento)
        {
            if (OContribuicaoVencimento.id == 0)
            {
                return(this.inserir(OContribuicaoVencimento));
            }

            return(this.atualizar(OContribuicaoVencimento));
        }
Exemplo n.º 3
0
        //Persistir e inserir um novo registro
        //Inserir Contribuicao e lista de ContribuicaoPreco vinculados
        private bool inserir(ContribuicaoVencimento OContribuicaoVencimento)
        {
            OContribuicaoVencimento.setDefaultInsertValues();

            OContribuicaoVencimento.Contribuicao = null;

            db.ContribuicaoVencimento.Add(OContribuicaoVencimento);

            db.SaveChanges();

            return(OContribuicaoVencimento.id > 0);
        }
Exemplo n.º 4
0
        //Persistir e atualizar um registro existente
        //Atualizar dados da Contribuicao e lista de ContribuicaoPreco
        private bool atualizar(ContribuicaoVencimento OContribuicaoVencimento)
        {
            //Localizar existentes no banco
            ContribuicaoVencimento dbContribuicao = this.carregar(OContribuicaoVencimento.id);

            //Configurar valores padrão
            OContribuicaoVencimento.setDefaultUpdateValues();

            //Atualizacao da Contribuição
            var ContribuicaoEntry = db.Entry(dbContribuicao);

            ContribuicaoEntry.CurrentValues.SetValues(OContribuicaoVencimento);

            db.SaveChanges();

            return(OContribuicaoVencimento.id > 0);
        }
        /// <summary>
        /// Calcular o vencimento da contribuicao com base na data de admissao do associado
        /// </summary>
        public ContribuicaoVencimento retornarVencimentoAdmissao(Contribuicao Contribuicao, int idAssociado)
        {
            var OVencimento = new ContribuicaoVencimento();

            var query = this.OAssociadoContribuicaoBL.listar(Contribuicao.id, idAssociado, null, null, "");

            var dtUltimaContribuicao = query.OrderByDescending(x => x.dtVencimentoOriginal)
                                       .Select(x => x.dtVencimentoOriginal)
                                       .FirstOrDefault();

            if (dtUltimaContribuicao != DateTime.MinValue)
            {
                var dtProximoVencimento = dtUltimaContribuicao.AddMonths(Contribuicao.PeriodoContribuicao.qtdeMeses);

                OVencimento.dtVencimento = dtProximoVencimento;

                OVencimento.dtInicioVigencia = dtUltimaContribuicao.AddDays(1);

                OVencimento.dtFimVigencia = dtProximoVencimento;

                return(OVencimento);
            }

            var OAssociado = this.OAssociadoBL.carregar(UtilNumber.toInt32(idAssociado)) ?? new Associado();

            if (!OAssociado.dtAdmissao.HasValue)
            {
                return(null);
            }

            var dtVencimento = OAssociado.dtAdmissao.Value.AddMonths(Contribuicao.PeriodoContribuicao.qtdeMeses);

            OVencimento.dtVencimento = dtVencimento;

            OVencimento.dtInicioVigencia = dtVencimento.AddDays(1);

            OVencimento.dtFimVigencia = dtVencimento.AddMonths(Contribuicao.PeriodoContribuicao.qtdeMeses);

            return(OVencimento);
        }
Exemplo n.º 6
0
        public ActionResult buscarPreco(int?idContribuicao, int idAssociado)
        {
            Associado OAssociado = this.OAssociadoBL.carregar(idAssociado);

            Contribuicao OContribuicao = this.OContribuicaoBL.carregar(UtilNumber.toInt32(idContribuicao));

            if (OAssociado == null)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Esse método precisa do código do associado para calcular o valor da anuidade."
                }, JsonRequestBehavior.AllowGet));
            }

            if (OContribuicao == null)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Informe a contribuição para calcular o valor."
                }, JsonRequestBehavior.AllowGet));
            }

            var OTabela = OContribuicao.retornarTabelaVigente();

            var OPreco = OTabela.retornarPreco(UtilNumber.toInt32(OAssociado.idTipoAssociado));

            if (OPreco.id == 0)
            {
                return(Json(new JsonMessage {
                    error = true, message = "Não há preço configurado para esse tipo de associado."
                }, JsonRequestBehavior.AllowGet));
            }

            var listaVencimentos = OContribuicao.listaContribuicaoVencimento.Where(x => x.dtExclusao == null).ToList();
            var OVencimento      = new ContribuicaoVencimento();

            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.FIXO_PELA_CONTRIBUICAO)
            {
                OVencimento = OContribuicao.retornarProximoVencimento();
            }

            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELA_ADMISSAO_ASSOCIADO)
            {
                var anoVigencia = DateTime.Today.Year;
                var dtCobranca  = OAssociado.dtAdmissao ?? DateTime.Today;

                DateTime?dtVencimentoAdmissao = new DateTime(anoVigencia, dtCobranca.Month, dtCobranca.Day);
                OVencimento = OContribuicao.retornarProximoVencimento(dtVencimentoAdmissao);
            }


            if (OContribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELO_ULTIMO_PAGAMENTO)
            {
                var UltimaContribuicao = OAssociadoContribuicaoBL.listar(OContribuicao.id, idAssociado, null, true, "")
                                         .Select(x => new { x.dtPagamento, x.dtVencimentoOriginal })
                                         .OrderByDescending(x => x.dtPagamento)
                                         .FirstOrDefault();

                var dtUltimaContribuicao = UltimaContribuicao == null ?  DateTime.Today : (UltimaContribuicao.dtPagamento ?? UltimaContribuicao.dtVencimentoOriginal);

                DateTime?dtNovoVencimento = new DateTime(DateTime.Today.Year, dtUltimaContribuicao.Month, dtUltimaContribuicao.Day);

                OVencimento = OContribuicao.retornarProximoVencimento(dtNovoVencimento);
            }

            var dtVencimento = OVencimento.dtVencimento;

            var listaJson = listaVencimentos.Select(x => new {
                x.id,
                dtVencimento = string.Concat(x.diaVencimento.ToString().PadLeft(2, '0'), "/", x.mesVencimento.ToString().PadLeft(2, '0'))
            });

            return(Json(new {
                error = false,
                valor = UtilNumber.toDecimal(OPreco.valorFinal).ToString("F"),
                dtVencimento = dtVencimento.exibirData(),
                listaVencimentos = listaJson,
                flagVencimentoFixo = (listaVencimentos.Count > 0),
                dtInicioVigencia = OVencimento.dtInicioVigencia.exibirData(),
                dtFimVigencia = OVencimento.dtFimVigencia.exibirData(),
                OPreco.flagIsento
            }, JsonRequestBehavior.AllowGet));
        }