private void Salvar(bool confirmacao) { try { if (VS_Cpe_Ano != VSAnoLetivo) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.SalvarApenasAnoCorrente"), UtilBO.TipoMensagem.Alerta); return; } if (!confirmacao) { UCConfirmacaoOperacao1.Mensagem = "Estas informações serão compartilhadas com a Escola e impressas no boletim. Confirmar?"; UCConfirmacaoOperacao1.ObservacaoVisivel = false; UCConfirmacaoOperacao1.ObservacaoObrigatorio = false; ScriptManager.RegisterStartupScript(Page, typeof(Page), "ConfirmaMovimentacao", "$(document).ready(function(){ $('#divConfirmacao').dialog('open'); });", true); } else { // Busca todos os eventos do calendário DataTable dtEventos = ACA_EventoBO.Select_TodosEventosPorTipo_CalendarioPeriodo(VS_Cal_Id, VS_Tur_Id, UCComboTipoPeriodoCalendario1.Valor, __SessionWEB.__UsuarioWEB.Usuario.ent_id); // Verifica se existe um evento cadastrado if (dtEventos.Rows.Count == 0) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.BimetreNaoAbertoLancamento"), UtilBO.TipoMensagem.Alerta); return; } else { // Se não exister nenhum calendário cadastrado, ou exister e a data atual é menor que a data de início bool existeBimestreFuturo = dtEventos.Rows.Cast <DataRow>().Any(row => DateTime.Now.Date < Convert.ToDateTime(row["evt_dataInicio"].ToString())); if (existeBimestreFuturo) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.BimetreNaoAbertoLancamento"), UtilBO.TipoMensagem.Alerta); return; } // Verifica se já passou a data final do evento do calendário para fechamento do bimestre vigente bool existeBimestreFechado = dtEventos.Rows.Cast <DataRow>().Any(row => DateTime.Now.Date >= Convert.ToDateTime(row["evt_dataInicio"].ToString()) && DateTime.Now.Date <= Convert.ToDateTime(row["evt_dataFim"].ToString())); if (!existeBimestreFechado) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.BimetreFechadoLancamento"), UtilBO.TipoMensagem.Alerta); return; } } Int64 alu_id = __SessionWEB.__UsuarioWEB.alu_id; // Se for um compromisso de estudo que estava excluído e agora foi incluído novamente, altera situação e os dados bool compromissoEstudoAlteraSituacao = false; // Verifica se já existe um compromisso de estudo pra esse bimestre desse aluno // Busca todos os compromissos de estudo do aluno DataTable dtTodosCompromissosAluno = ACA_CompromissoEstudoBO.SelectSituacaoTodosCompromissoAlunoBy_alu_id(alu_id); bool existeBimestreAtivo = dtTodosCompromissosAluno.Rows.Cast <DataRow>().Any(row => row["tpc_id"].ToString().Equals(UCComboTipoPeriodoCalendario1.Valor.ToString()) && !row["cpe_id"].ToString().Equals(VS_Cpe_Id.ToString()) && row["cpe_ano"].ToString().Equals(VS_Cpe_Ano.ToString()) && !row["cpe_situacao"].ToString().Equals("3") ); // Se existir e tiver com situação ativo, mostra a msg! if (existeBimestreAtivo) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.IncluirExisteRegistro"), UtilBO.TipoMensagem.Alerta); return; } else if (VS_Cpe_Id <= 0) // Senão verifica se existe com situação excluído, pra alterar a situação pra ativo, ao invés de salvar um novo registro { foreach (DataRow row in dtTodosCompromissosAluno.Rows) { if (Convert.ToInt32(row["tpc_id"]) == UCComboTipoPeriodoCalendario1.Valor && Convert.ToInt32(row["cpe_ano"]) == VS_Cpe_Ano && Convert.ToInt32(row["cpe_situacao"]) == 3) { compromissoEstudoAlteraSituacao = true; VS_Cpe_Id = Convert.ToInt32(row["cpe_id"]); break; } } } ACA_CompromissoEstudo compromisso = new ACA_CompromissoEstudo { alu_id = __SessionWEB.__UsuarioWEB.alu_id, cpe_id = -1, cpe_atividadeFeita = txtOqTenhoFeito.Text, cpe_atividadePretendeFazer = txtOqPretendoFazer.Text, cpe_situacao = 1, cpe_dataAlteracao = DateTime.Now, cpe_dataCriacao = DateTime.Now, cpe_ano = VS_Cpe_Ano, tpc_id = UCComboTipoPeriodoCalendario1.Valor, IsNew = true }; // Se já existir, altera if (VS_Cpe_Id > 0) { compromisso.cpe_id = VS_Cpe_Id; compromisso.IsNew = false; } if (ACA_CompromissoEstudoBO.Save(compromisso)) { if (VS_Cpe_Id <= 0 || compromissoEstudoAlteraSituacao) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "Área do aluno. cpe_id: " + Convert.ToString(compromisso.cpe_id)); __SessionWEB.PostMessages = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.IncluirSucesso"), UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "Área do aluno. cpe_id: " + Convert.ToString(compromisso.cpe_id)); __SessionWEB.PostMessages = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.AlterarErro"), UtilBO.TipoMensagem.Sucesso); } Response.Redirect("~/Cadastro/CompromissoEstudo/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.SalvarSucesso"), UtilBO.TipoMensagem.Erro); } }
protected void grvCompromissoEstudo_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Deletar") { try { if (UCComboAnosLetivos.Ano != VSAnoLetivo) { lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Cadastro.SalvarApenasAnoCorrente"), UtilBO.TipoMensagem.Alerta); return; } int index = int.Parse(e.CommandArgument.ToString()); Int64 alu_id = __SessionWEB.__UsuarioWEB.alu_id; DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id); if (dtCurriculo.Rows.Count == 0) { throw new ValidationException("Aluno não possui dados para a Área do Aluno."); } Int64 tur_id = Convert.ToInt64(dtCurriculo.Rows[0]["tur_id"]); int cal_id = Convert.ToInt32(dtCurriculo.Rows[0]["cal_id"]); ACA_CompromissoEstudo compromisso = new ACA_CompromissoEstudo { alu_id = alu_id, cpe_id = Convert.ToInt32(grvCompromissoEstudo.DataKeys[index].Value) }; ACA_CompromissoEstudoBO.GetEntity(compromisso); List <Cache_EventosEfetivacaoTodos> listEventosCalendario = ACA_EventoBO.Select_EventoEfetivacaoTodos (cal_id, tur_id, compromisso.tpc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo); if (!listEventosCalendario.Any()) { throw new ValidationException("Não é possível excluir, pois o bimestre já está fechado."); } compromisso.cpe_situacao = 3; compromisso.cpe_dataAlteracao = DateTime.Now; if (ACA_CompromissoEstudoBO.Save(compromisso)) { CarregarCompromissoEstudoAlunoAnoLetivo(alu_id, UCComboAnosLetivos.Ano); ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "cpe_id: " + compromisso.cpe_id); lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Busca.ExcluirSucesso"), UtilBO.TipoMensagem.Sucesso); } } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("AreaAluno", "Cadastro.CompromissoEstudo.Busca.ExcluirErro"), UtilBO.TipoMensagem.Erro); } } }