using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using Extensiones; using static Extensiones.ModExtensiones; public partial class GPS_CatEstatusTrayectos : ClsPaginas { #region "P R O P I E D A D E S" public int CveEstatusTrayecto { get { return ViewState["CveEstatusTrayecto"].ToString().ToEntero(); } set { ViewState["CveEstatusTrayecto"] = value; } } public int EsEditar { get { return ViewState["EsEditar"].ToString().ToEntero(); } set { ViewState["EsEditar"] = value; } } public DataTable DtEstatus { get { return ((DataTable)ViewState["DtEstatus"]); } set { ViewState["DtEstatus"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CargaDatos(); } } private void CargaDatos() { using (var ObjGPS = new ClsGPS()) { if (ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente)) { DtEstatus = ObjGPS.DtResultados; GvEstatus.DataSource = DtEstatus; GvEstatus.DataBind(); CargaEstatus(); LimpiaModal(); } } UpDatos.Update(); } private void CargaEstatus() { if (DtEstatus != null) { RblInicioFin.Items.Clear(); var ExisteInicio = DtEstatus.COUNT("EsInicio", "EsInicio = true") > 0; if (!ExisteInicio) { var ExisteInicial = RblInicioFin.Items.Cast().Any(x => x.Text == "Inicial"); RblInicioFin.Items.Insert(0, new ListItem("Inicial", "1", true)); } if (ExisteInicio) { RblInicioFin.Items.Add(new ListItem("Intermedio", "2")); } var ExisteFin = DtEstatus.COUNT("EsFin", "EsFin = true") > 0; if (!ExisteFin) { RblInicioFin.Items.Add(new ListItem("Final", "3")); } } } protected void BtnAgregarCatalogo_Click(object sender, EventArgs e) { ClsGPS ObjGPS = new ClsGPS(); try { string Estatus = TxtEstatus.Text.Trim(); bool EsInicio = false; bool EsFin = false; int CveEstatusAnterior = -1; switch (RblInicioFin.SelectedValue) { case "1": //INICIO EsInicio = true; EsFin = false; int NoEstatusInicio = DtEstatus.COUNT("CveEstatusTrayecto", "EsInicio = True"); if (NoEstatusInicio > 0) { this.Alert("Ya existe un estatus de inicio.", TipoMensaje.MsgAdvertencia); ObjGPS.Dispose(); return; } break; case "2": EsInicio = false; EsFin = false; CveEstatusAnterior = DdlEstatusAnterior.SelectedValue.ToEntero(); break; case "3"://FIN EsInicio = false; EsFin = true; int NoEstatusFin = DtEstatus.COUNT("CveEstatusTrayecto", "EsFin = True"); if (NoEstatusFin > 0) { this.Alert("Ya existe un estatus de final.", TipoMensaje.MsgAdvertencia); ObjGPS.Dispose(); return; } break; default: break; } if (RblInicioFin.SelectedValue == "2" && CveEstatusAnterior <= 0) { this.Alert("No se puede agregar el estatus. Debe seleccionar un estatus anterior.", ModExtensiones.TipoMensaje.MsgAdvertencia); ObjGPS.Dispose(); return; } if (ObjGPS.AddEstatusTrayectos(Estatus, EsInicio, EsFin, CveEstatusAnterior, UsuarioActual.CveCliente)) { int CveEstatusNuevo = ObjGPS.DtResultados.Rows[0]["CveEstatusTrayecto"].ToString().ToEntero(); int CveEstatusSiguiente = DdlEstatusSiguiente.SelectedValue.ToEntero(); if (CveEstatusSiguiente > 0) { if (ObjGPS.UpdateEstatusTrayectos(CveEstatusSiguiente,"",false,false, CveEstatusNuevo, UsuarioActual.CveCliente)) { this.Alert("El estatus se actualizo correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } else { this.Alert("Ocurrió un error al actualizar el estatus.", ModExtensiones.TipoMensaje.MsgError); } } this.Alert("El estatus se agrego correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } else { this.Alert("Ocurrió un error al agregar el estatus.", ModExtensiones.TipoMensaje.MsgError); } } catch (Exception ex) { this.OnError("Ocurrió un error al agregar el estatus.", ex); } finally { ObjGPS.Dispose(); CargaDatos(); RegistraScript("$('#divAgregar').modal('hide');"); } } protected void BtnOpenDiv_Click(object sender, EventArgs e) { EsEditar = 0; CargaEstatus(); LimpiaModal(); DdlEstatusAnterior_SelectedIndexChanged(DdlEstatusAnterior, EventArgs.Empty); UpEstatus.Update(); UpAgregar.Update(); RegistraScript("$('#divAgregar').modal({backdrop: 'static', keyboard: false});"); } private void LimpiaModal() { EsEditar = 0; TxtEstatus.Text = ""; RblInicioFin.SelectedIndex = 0; RblInicioFin_SelectedIndexChanged(DdlEstatusAnterior, EventArgs.Empty); } protected void RblInicioFin_SelectedIndexChanged(object sender, EventArgs e) { switch (RblInicioFin.SelectedValue) { case "1": //INICIO DivEstatus.Visible = false; break; case "2": DivEstatus.Visible = true; var dt = DtEstatus.FiltraParametros("EsFin=false"); if (dt.Rows.Count > 0) { DdlEstatusAnterior.DataSource = dt; DdlEstatusAnterior.DataBind(); var CveEstatusSeleccion = dt.FiltroPrimeroValor("CveEstatusTrayecto", "CveEstatusSiguiente IS NULL").ToEntero(); if (CveEstatusSeleccion <= 0) { CveEstatusSeleccion = DtEstatus.FiltroPrimeroValor("CveEstatusAnterior", "EsFin = true").ToEntero(); } DdlEstatusAnterior.SelectedValueExist(CveEstatusSeleccion); } else { DivEstatus.Visible = true; } break; case "3"://FIN DivEstatus.Visible = false; break; default: break; } UpEstatus.Update(); } protected void GvEstatus_RowDeleting(object sender, GridViewDeleteEventArgs e) { var ObjGPS = new ClsGPS(); try { int CveEstatusTrayecto = GvEstatus.Rows[e.RowIndex].DataKey("CveEstatusTrayecto").ToEntero(); int CveEstatusAnterior = DtEstatus.FiltroPrimeroValor("CveEstatusAnterior", $"CveEstatusTrayecto = {CveEstatusTrayecto}").ToEntero(); int CveEstatusSiguiente = DtEstatus.FiltroPrimeroValor("CveEstatusSiguiente", $"CveEstatusTrayecto = {CveEstatusTrayecto}").ToEntero(); if (ObjGPS.RemoveEstatusTrayecto(CveEstatusTrayecto)) { if (ObjGPS.UpdateEstatusTrayectos(CveEstatusSiguiente,"",false,false, CveEstatusAnterior, UsuarioActual.CveCliente)) { this.Alert("El estatus se eliminó correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } } } catch (Exception ex) { this.OnError("Ocurrió un error al eliminar el estatus.", ex); } finally { ObjGPS.Dispose(); CargaDatos(); } } protected void GvEstatus_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.DBCampo("EsFin") == "True") { e.Row.FCLabel("LblEstatus").CssClass = "badge badge-primary"; } else if (e.Row.DBCampo("EsInicio") == "True") { e.Row.FCLabel("LblEstatus").CssClass = "badge badge-success"; } else if (e.Row.DBCampo("EsFin") == "False" && e.Row.DBCampo("EsInicio") == "False") { e.Row.FCLabel("LblEstatus").CssClass = "badge badge-secondary"; } } } protected void DdlEstatusAnterior_SelectedIndexChanged(object sender, EventArgs e) { int CveEstatusSiguiente = DtEstatus.FiltroPrimeroValor("CveEstatusSiguiente", $"CveEstatusTrayecto = {DdlEstatusAnterior.SelectedValue}").ToEntero(); if (CveEstatusSiguiente > 0) { DdlEstatusSiguiente.DataSource = DtEstatus.FiltraParametros($"CveEstatusTrayecto={CveEstatusSiguiente}"); DdlEstatusSiguiente.DataBind(); } else { DdlEstatusSiguiente.Items.Clear(); DdlEstatusSiguiente.Items.Insert(0, new ListItem("Ninguno", "-1")); } } }