Пример #1
0
        /// <summary>
        /// Método que grava no banco a inclusao ou alteração
        /// </summary>
        /// <param name="entity">entidade a ser salva/alterada</param>
        /// <param name="lista">lista de series que estao ligadas ao tipo de resultado</param>
        /// <returns></returns>
        public static bool Save(ACA_TipoResultado entity, IList <ACA_TipoResultadoCurriculoPeriodo> lista)
        {
            ACA_TipoResultadoDAO dao = new ACA_TipoResultadoDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                if (Save(entity, dao._Banco))
                {
                    DataTable dtCP = ACA_TipoResultadoCurriculoPeriodoBO.SelectBy_tpr_id(entity.tpr_id, dao._Banco);

                    // Busca e exclui os relacionamentos existentes
                    for (int i = 0; i < dtCP.Rows.Count; i++)
                    {
                        ACA_TipoResultadoCurriculoPeriodo entityCP = new ACA_TipoResultadoCurriculoPeriodo
                        {
                            cur_id = Convert.ToInt32(dtCP.Rows[i]["cur_id"]),
                            crr_id = Convert.ToInt32(dtCP.Rows[i]["crr_id"]),
                            crp_id = Convert.ToInt32(dtCP.Rows[i]["crp_id"]),
                            tpr_id = Convert.ToInt32(dtCP.Rows[i]["tpr_id"])
                        };
                        ACA_TipoResultadoCurriculoPeriodoBO.Delete(entityCP, dao._Banco);
                        GestaoEscolarUtilBO.LimpaCache(String.Format("{0}_{1}_{2}_{3}", ACA_TipoResultadoCurriculoPeriodoBO.Cache_TipoResultado, entityCP.cur_id, entityCP.crr_id, entityCP.crp_id));
                    }

                    // Valida se o mesmo curriculoperiodo ja esta cadastrado em outro tipo de resultado
                    foreach (ACA_TipoResultadoCurriculoPeriodo item in lista)
                    {
                        List <Struct_TipoResultado> listaTiposResultados = ACA_TipoResultadoCurriculoPeriodoBO.SelecionaTipoResultado(item.cur_id, item.crr_id, item.crp_id, (EnumTipoLancamento)entity.tpr_tipoLancamento, entity.tds_id);
                        if (listaTiposResultados.Count > 0)
                        {
                            Struct_TipoResultado tipoResultado = listaTiposResultados.FirstOrDefault(p => p.tpr_resultado == entity.tpr_resultado && p.tpr_id != entity.tpr_id);
                            if (tipoResultado.tpr_id > 0)
                            {
                                throw new ValidationException("A série " + tipoResultado.crp_descricao + " já esta cadastrada em outro tipo de resultado.");
                            }
                        }
                        item.tpr_id = entity.tpr_id;
                        ACA_TipoResultadoCurriculoPeriodoBO.Save(item, dao._Banco);
                        GestaoEscolarUtilBO.LimpaCache(String.Format("{0}_{1}_{2}_{3}", ACA_TipoResultadoCurriculoPeriodoBO.Cache_TipoResultado, item.cur_id, item.crr_id, item.crp_id));
                    }
                }
            }
            catch (Exception err)
            {
                dao._Banco.Close(err);

                throw err;
            }
            finally
            {
                if (dao._Banco.ConnectionIsOpen)
                {
                    dao._Banco.Close();
                }
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Método para salvar um informativo.
        /// </summary>
        private void Salvar()
        {
            try
            {
                ACA_TipoResultado entTpResultado = new ACA_TipoResultado();

                entTpResultado.tpr_id             = VS_tpr_id;
                entTpResultado.tpr_resultado      = Convert.ToInt16(ddlConceitoFinal.SelectedValue);
                entTpResultado.tpr_nomenclatura   = txtNomenclatura.Text;
                entTpResultado.tpr_tipoLancamento = Convert.ToInt16(ddlTipoLancamento.SelectedValue);
                entTpResultado.tds_id             = ddlTipoDisciplina.Visible ? Convert.ToInt32(ddlTipoDisciplina.SelectedValue) : -1;
                entTpResultado.IsNew = VS_tpr_id < 0;

                IList <ACA_TipoResultadoCurriculoPeriodo> series = new List <ACA_TipoResultadoCurriculoPeriodo>();
                List <ListItem> selecionados = cblPeriodos.Items.Cast <ListItem>()
                                               .Where(li => li.Selected)
                                               .ToList();
                if (selecionados.Count > 0)
                {
                    foreach (ListItem item in selecionados)
                    {
                        ACA_TipoResultadoCurriculoPeriodo it = new ACA_TipoResultadoCurriculoPeriodo
                        {
                            cur_id = UCCCursoCurriculo.Valor[0],
                            crr_id = UCCCursoCurriculo.Valor[1],
                            crp_id = Convert.ToInt32(item.Value)
                        };
                        series.Add(it);
                    }
                }
                else
                {
                    throw new ValidationException("Pelo menos uma série deve ser selecionada.");
                }

                if (ACA_TipoResultadoBO.Save(entTpResultado, series))
                {
                    ApplicationWEB._GravaLogSistema(VS_tpr_id > 0 ? LOG_SistemaTipo.Update : LOG_SistemaTipo.Insert, "tpr_id: " + entTpResultado.tpr_id);
                    __SessionWEB.PostMessages = UtilBO.GetErroMessage("Tipo de resultado " + (VS_tpr_id > 0 ? "alterado" : "incluído") + " com sucesso.", UtilBO.TipoMensagem.Sucesso);

                    Response.Redirect("~/Configuracao/ParametroResultado/Busca.aspx", false);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
            }
            catch (ValidationException e)
            {
                lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (ArgumentException e)
            {
                lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar tipo de resultado.", UtilBO.TipoMensagem.Erro);
            }
        }