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)); }
//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)); }
//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); }
//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); }
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)); }