/// <summary> /// Leonardo Carrion /// 10/mar/2021 /// Efecto: devuelve el estado segun la descripcion ingresada /// Requiere: nombre estado /// Modifica: - /// Devuelve: estadoEjecucion /// </summary> /// <param name="estado"></param> /// <returns></returns> public EstadoEjecucion getEstadoEjecucionSegunNombre(String estado) { EstadoEjecucion estadoEjecucion = new EstadoEjecucion(); SqlConnection sqlConnection = conexion.conexionPEP(); String consulta = @"SELECT * from EstadoEjecucion where descripcion_estado = @descripcion"; SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection); sqlCommand.Parameters.AddWithValue("@descripcion", estado); SqlDataReader reader; sqlConnection.Open(); reader = sqlCommand.ExecuteReader(); if (reader.Read()) { estadoEjecucion.idEstado = Convert.ToInt32(reader["id_estado"].ToString()); estadoEjecucion.descripcion = reader["descripcion_estado"].ToString(); } sqlConnection.Close(); return(estadoEjecucion); }
/// <summary> /// Leonardo Carrion /// 24/mar/2021 /// Efecto: Cambia el estado de la ejecucion a aprobar y verifica que los montos de las partidas esten correctos /// Requiere: dar clic en el boton de Si /// Modifica: estado de ejecucion /// Devuelve: mesnsaje de confirmacion de accion /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSiAprobar_Click(object sender, EventArgs e) { Entidades.Ejecucion ejecucion = (Entidades.Ejecucion)Session["ejecucionAprobar"]; List <PartidaUnidad> listaUnidadesPartidas = ejecucionUnidadParitdaServicios.getUnidadesPartidasMontoPorEjecucion(ejecucion); Double montoResta = listaUnidadesPartidas.Sum(part => part.monto); if ((ejecucion.monto - montoResta) == 0) { Boolean correcto = true; foreach (PartidaUnidad partidaUnidad in listaUnidadesPartidas) { Unidad unidad = new Unidad(); unidad.idUnidad = partidaUnidad.idUnidad; Partida partida = new Partida(); partida.idPartida = partidaUnidad.idPartida; Double montoDisponible = ejecucionUnidadParitdaServicios.getMontoDisponible(unidad, partida); if ((montoDisponible - partidaUnidad.monto) < 0) { correcto = false; break; } } if (correcto) { EstadoEjecucion estadoEjecucion = new EstadoEjecucion(); estadoEjecucion = estadoEjecucionServicios.getEstadoEjecucionSegunNombre("Aprobado"); Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(ddlPeriodos.SelectedValue); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(ddlProyectos.SelectedValue); ejecucion.anoPeriodo = periodo.anoPeriodo; ejecucion.idProyecto = proyecto.idProyecto; ejecucion.estadoEjecucion = estadoEjecucion; ejecucionServicios.EditarEjecucion(ejecucion); mostrarDatosTabla(); ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "cerrarModalAprobar();", true); ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se aprobó correctamente la ejecución número " + ejecucion.idEjecucion.ToString() + "');", true); } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.error('" + "Favor revisar los montos disponibles de cada partida" + "');", true); } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.error('" + "El monto de la ejecución debe ser igual al monto repartido entre las unidades" + "');", true); } }
/// <summary> /// Leonardo Carrion /// 23/feb/2021 /// Efecto: devuelve la lista de ejecuciones segun el periodo y proyecto seleccionado /// Requiere: periodo y proyecto /// Modifica: - /// Devuelve: lista de ejecuciones /// </summary> /// <param name="periodo"></param> /// <param name="proyecto"></param> /// <returns></returns> public List <Ejecucion> getEjecucionesPorPeriodoYProyecto(Periodo periodo, Proyectos proyecto) { List <Ejecucion> listaEjecucion = new List <Ejecucion>(); SqlConnection sqlConnection = conexion.conexionPEP(); String consulta = @"select descripcion_estado,monto,numero_referencia,nombre_tramite,E.id_ejecucion,T.id_tramite,descripcion_tramite_otro, E.realizado_por,E.fecha from EstadoEjecucion Es,Ejecucion E,Tipos_tramite T where E.id_proyecto=@idProyecto and E.ano_periodo=@Periodo and E.id_tipo_tramite= T.id_tramite and E.id_estado= Es.id_estado order by id_ejecucion desc"; SqlCommand command = new SqlCommand(consulta, sqlConnection); command.Parameters.AddWithValue("@Periodo", periodo.anoPeriodo); command.Parameters.AddWithValue("@idProyecto", proyecto.idProyecto); SqlDataReader reader; sqlConnection.Open(); reader = command.ExecuteReader(); while (reader.Read()) { EstadoEjecucion estadoEjecucion = new EstadoEjecucion(); TipoTramite tipoTramite = new TipoTramite(); Ejecucion ejecucion = new Ejecucion(); ejecucion.idEjecucion = Convert.ToInt32(reader["id_ejecucion"].ToString()); ejecucion.monto = Convert.ToDouble(reader["monto"].ToString()); ejecucion.numeroReferencia = Convert.ToString(reader["numero_referencia"].ToString()); tipoTramite.nombreTramite = Convert.ToString(reader["nombre_tramite"].ToString()); tipoTramite.idTramite = Convert.ToInt32(reader["id_tramite"].ToString()); ejecucion.tipoTramite = tipoTramite; estadoEjecucion.descripcion = Convert.ToString(reader["descripcion_estado"].ToString()); ejecucion.estadoEjecucion = estadoEjecucion; ejecucion.descripcionEjecucionOtro = Convert.ToString(reader["descripcion_tramite_otro"].ToString()); ejecucion.realizadoPor = reader["realizado_por"].ToString(); ejecucion.fecha = Convert.ToDateTime(reader["fecha"].ToString()); listaEjecucion.Add(ejecucion); } sqlConnection.Close(); return(listaEjecucion); }