/// <summary> /// Leonardo Carrion /// 22/mar/2021 /// Efecto: redirecciona a la pantalla de Ver Ejecucion /// Requiere: dar clic en el boton de Ver /// Modifica: - /// Devuelve: - /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnVer_Click(object sender, EventArgs e) { int idCajaChica = Convert.ToInt32((((LinkButton)(sender)).CommandArgument).ToString()); List <Entidades.CajaChica> listaCajaChica = new List <Entidades.CajaChica>(); Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(ddlPeriodos.SelectedValue); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(ddlProyectos.SelectedValue); listaCajaChica = cajaChicaServicios.getCajaChicaPorPeriodoYProyecto(periodo, proyecto); Entidades.CajaChica cajaChica = (Entidades.CajaChica)listaCajaChica.Where(eje => eje.idCajaChica == idCajaChica).ToList().First(); Session["ejecucionVer"] = cajaChica; Session["periodoSeleccionado"] = periodo.anoPeriodo; Session["proyectoSeleccionado"] = proyecto.idProyecto; String url = Page.ResolveUrl("~/Catalogos/CajaChica/VerCajaChica.aspx"); Response.Redirect(url); }
///// <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.CajaChica cajaChica = (Entidades.CajaChica)Session["ejecucionAprobar"]; List <PartidaUnidad> listaUnidadesPartidas = cajaChicaUnidadPartidaServicios.getUnidadesPartidasMontoPorCajaChica(cajaChica); Double montoResta = listaUnidadesPartidas.Sum(part => part.monto); if ((cajaChica.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 = cajaChicaUnidadPartidaServicios.getMontoDisponible(unidad, partida); if ((montoDisponible - partidaUnidad.monto) < 0) { correcto = false; break; } } if (correcto) { EstadoCajaChica estadoCajaChica = new EstadoCajaChica(); estadoCajaChica = estadoCajaChicaServicios.getEstadoCajaChicaSegunNombre("Aprobado"); Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(ddlPeriodos.SelectedValue); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(ddlProyectos.SelectedValue); cajaChica.anoPeriodo = periodo.anoPeriodo; cajaChica.idProyedto = proyecto.idProyecto; cajaChica.idEstadoCajaChica = estadoCajaChica; cajaChicaServicios.EditarCajaChica(cajaChica); mostrarDatosTabla(); ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "cerrarModalAprobar();", true); ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se aprobó correctamente la Caja Chica número " + cajaChica.numeroCajaChica.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 Caja Chica debe ser igual al monto repartido entre las unidades" + "');", true); } }
/// <summary> /// Leonardo Carrion /// 22/mar/2021 /// Efecto: elimina la ejecucion seleccionada /// Requiere: dar clic en el boton de Eliminar e ingresar datos /// Modifica: - /// Devuelve: - /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnEliminar_Click(object sender, EventArgs e) { Entidades.CajaChica cajaChica = (Entidades.CajaChica)Session["ejecucionEliminar"]; cajaChicaUnidadPartidaServicios.eliminarCajaChicaUnidadPartidaPorCajaChica(cajaChica.idCajaChica); cajaChicaServicios.eliminarCajaChica(cajaChica.idCajaChica); String url = Page.ResolveUrl("~/Catalogos/CajaChica/AdministrarCajaChica.aspx"); Response.Redirect(url); }
/// <summary> /// Leonardo Carrion /// 04/jun/2018 /// Efecto: envia correo a los administradores con la informacion del destinatario ingresado /// Requiere: destinatario /// Modifica: - /// Devuelve: - /// </summary> /// <param name="institucion"></param> public void enviarCorreo(int idCajaChica) { List <Parametros> listaDestinatarios = new List <Parametros>(); listaDestinatarios = parametroServicios.getCorreosDestinatarios(); //Obtención de los correos de los usuarios a los que se les va a enviar el correo String destinatarios = ""; foreach (Parametros parametro in listaDestinatarios) { destinatarios += parametro.valor + ";"; } List <Entidades.CajaChica> listaCajaChica = new List <Entidades.CajaChica>(); Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(ddlPeriodos.SelectedValue); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(ddlProyectos.SelectedValue); listaCajaChica = cajaChicaServicios.getCajaChicaPorPeriodoYProyecto(periodo, proyecto); Entidades.CajaChica cajaChica = (Entidades.CajaChica)listaCajaChica.Where(eje => eje.idCajaChica == idCajaChica).ToList().First(); Dictionary <String, String> informacionCorreo = new Dictionary <String, String>(); informacionCorreo["destinatarios"] = destinatarios; informacionCorreo["conCopia"] = ""; informacionCorreo["conCopiaOculta"] = ""; informacionCorreo["asunto"] = "Nueva solicitud,número de consecutivo " + cajaChica.numeroCajaChica; informacionCorreo["cuerpo"] = "<br>Detalle: " + cajaChica.comentario + "<br>Monto:" + cajaChica.monto + " Colones" + " <br><br> *Este correo es generado de forma automática, por favor no responder"; //informacionCorreo["remitente"] = "*****@*****.**"; informacionCorreo["remitente"] = "*****@*****.**"; informacionCorreo["archivos"] = ""; Boolean enviado = Utilidades.enviarCorreo(informacionCorreo); try { threadEnviarCorreo.Abort(); } catch { } }
///// <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 btnSiEnviarCorreo_Click(object sender, EventArgs e) { Entidades.CajaChica cajaChica = (Entidades.CajaChica)Session["ejecucionEnviarCorreo"]; List <PartidaUnidad> listaUnidadesPartidas = cajaChicaUnidadPartidaServicios.getUnidadesPartidasMontoPorCajaChica(cajaChica); Double montoResta = listaUnidadesPartidas.Sum(part => part.monto); if ((cajaChica.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 = cajaChicaUnidadPartidaServicios.getMontoDisponible(unidad, partida); if ((montoDisponible - partidaUnidad.monto) < 0) { correcto = false; break; } } if (correcto) { enviarCorreo(cajaChica.idCajaChica); cajaChicaServicios.actualizarEnviadoCajaChica(cajaChica.idCajaChica, true); mostrarDatosTabla(); ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "cerrarModalEnviar();", true); ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se Envio correctamente el correo " + "');", 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 Caja Chica debe ser igual al monto repartido entre las unidades" + "');", true); } }
protected void Page_Load(object sender, EventArgs e) { //controla los menus q se muestran y las pantallas que se muestras segun el rol que tiene el usuario //si no tiene permiso de ver la pagina se redirecciona a login int[] rolesPermitidos = { 2 }; Utilidades.escogerMenu(Page, rolesPermitidos); if (!IsPostBack) { Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(Session["periodoSeleccionado"]); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(Session["proyectoSeleccionado"]); proyecto = proyectoServicios.ObtenerPorId(proyecto.idProyecto); lblPeriodo.Text = periodo.anoPeriodo.ToString(); lblProyecto.Text = proyecto.nombreProyecto; Entidades.CajaChica cajaChica = (Entidades.CajaChica)Session["ejecucionEliminar"]; lblNumeroCajaChica.Text = cajaChica.numeroCajaChica.ToString(); txtcomentario.Text = cajaChica.comentario; List <Unidad> listaUnidadesAsociadas = cajaChicaUnidadPartidaServicios.getUnidadesPorCajaChica(cajaChica); Session["listaUnidadesAsociadas"] = listaUnidadesAsociadas; mostrarDatosTablaUnidadesAsociadas(); List <Partida> listaPartidasAsociadas = cajaChicaUnidadPartidaServicios.getPartidasPorCajaChica(cajaChica); Session["listaPartidasAsociadas"] = listaPartidasAsociadas; mostrarDatosTablaPartidasAsociadas(); txtMonto.Text = cajaChica.monto.ToString(); Session["listaPartidaUnidadAsociadas"] = cajaChicaUnidadPartidaServicios.getUnidadesPartidasMontoPorCajaChica(cajaChica); mostrarDatosTablaUnidadPartidaAsociadas(); } }
///// <summary> ///// Leonardo Carrion ///// 24/mar/2021 ///// Efecto: levanta modal para confirmar si se desea aprobar la ejecucion ///// Requiere: dar clic en el boton de aprobar ///// Modifica: - ///// Deuvelve: - ///// </summary> ///// <param name="sender"></param> ///// <param name="e"></param> protected void btnAprobar_Click(object sender, EventArgs e) { int idCajaChica = Convert.ToInt32((((LinkButton)(sender)).CommandArgument).ToString()); List <Entidades.CajaChica> listaCajaChica = new List <Entidades.CajaChica>(); Periodo periodo = new Periodo(); periodo.anoPeriodo = Convert.ToInt32(ddlPeriodos.SelectedValue); Proyectos proyecto = new Proyectos(); proyecto.idProyecto = Convert.ToInt32(ddlProyectos.SelectedValue); listaCajaChica = cajaChicaServicios.getCajaChicaPorPeriodoYProyecto(periodo, proyecto); Entidades.CajaChica cajaChica = (Entidades.CajaChica)listaCajaChica.Where(eje => eje.idCajaChica == idCajaChica).ToList().First(); Session["ejecucionAprobar"] = cajaChica; lblConfirmarAprobar.Text = "¿Seguro o segura que desea aprobar la Caja Chica número " + cajaChica.numeroCajaChica + "?"; ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "activarModalAprobar();", true); }