public PartialViewResult partialFormEditar(int?id, int?idAssociado) { var OAssociadoContribuicao = this.OAssociadoContribuicaoBL.carregar(UtilNumber.toInt32(id)) ?? new AssociadoContribuicao(); OAssociadoContribuicao.idAssociado = (OAssociadoContribuicao.idAssociado > 0 ? OAssociadoContribuicao.idAssociado : UtilNumber.toInt32(idAssociado)); AssociadoContribuicaoPartialForm ViewModel = new AssociadoContribuicaoPartialForm(); ViewModel.AssociadoContribuicao = OAssociadoContribuicao; return(PartialView(ViewModel)); }
public ActionResult salvar(AssociadoContribuicaoPartialForm ViewModel) { DateTime?dtVencimentoAtual = UtilRequest.getDateTime("dtVencimentoAtual"); if (!ModelState.IsValid) { return(PartialView("partial-form-editar", ViewModel)); } var OAssociado = this.OAssociadoBL.carregar(ViewModel.AssociadoContribuicao.idAssociado); var OContribuicao = this.OContribuicaoBL.carregar(ViewModel.AssociadoContribuicao.idContribuicao); var TabelaPreco = OContribuicao.retornarTabelaVigente(); var Preco = TabelaPreco.retornarPreco(UtilNumber.toInt32(OAssociado.idTipoAssociado)); if (TabelaPreco.id == 0 || Preco.id == 0) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Essa cobrança não está configurada para esse tipo de associado."); return(PartialView("partial-form-editar", ViewModel)); } if (OContribuicao.dtValidade.HasValue && OContribuicao.dtValidade < ViewModel.AssociadoContribuicao.dtVencimentoOriginal) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, $"Esse plano de cobrança é válido somente até {OContribuicao.dtValidade.exibirData()}."); return(PartialView("partial-form-editar", ViewModel)); } if (OContribuicao.idTipoVencimento == TipoVencimentoConst.VENCIMENTO_PELA_ADMISSAO_ASSOCIADO && (OAssociado.dtAdmissao?.Day != ViewModel.AssociadoContribuicao.dtVencimentoOriginal.Day || OAssociado.dtAdmissao?.Month != ViewModel.AssociadoContribuicao.dtVencimentoOriginal.Month)) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "A data de vencimento deve ter o dia e o mês iguais à data de admissão do associado."); return(PartialView("partial-form-editar", ViewModel)); } var dtVencimentoOriginal = ViewModel.AssociadoContribuicao.dtVencimentoOriginal; dtVencimentoAtual = dtVencimentoAtual ?? dtVencimentoOriginal; var OContribuicaoGeracaoBL = new AssociadoContribuicaoGeracaoBL(); var Retorno = OContribuicaoGeracaoBL.gerarCobranca(OAssociado, OContribuicao, dtVencimentoOriginal, dtVencimentoAtual, false, ViewModel.AssociadoContribuicao.valorAtual); if (Retorno.flagError) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, Retorno.listaErros.FirstOrDefault()); return(Json(new { flagSucesso = Retorno.flagError })); } this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, $"A cobrança do Associado {OAssociado.Pessoa.nome} foi salva com sucesso!"); var listaDependentes = this.OAssociadoDependenteBL.listar(OAssociado.id, "", "S").ToList(); if (!listaDependentes.Any()) { return(Json(new { flagSucesso = Retorno.flagError })); } var OCobrancaPrincipal = Retorno.info as AssociadoContribuicao; foreach (var ODependente in listaDependentes) { OContribuicaoGeracaoBL = new AssociadoContribuicaoGeracaoBL(); OContribuicaoGeracaoBL.gerarCobrancaDependente(ODependente, OCobrancaPrincipal); this.Flash(UtilMessage.TYPE_MESSAGE_SUCCESS, $"A cobrança do dependente {ODependente.Pessoa.nome} foi salva com sucesso!"); } return(Json(new { flagSucesso = Retorno.flagError })); }