using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Extensiones; public partial class GPS_CatGrupos : ClsPaginas { #region "PROPIEDADES" private DataTable TmpDT { get { return (DataTable)ViewState["TmpDT"]; } set { ViewState["TmpDT"] = value; } } private DataTable TmpDTEdit { get { return (DataTable)ViewState["TmpDTEdit"]; } set { ViewState["TmpDTEdit"] = value; } } private int EsEditar { get { return ViewState["EsEditar"].ToString().ToEntero(); } set { ViewState["EsEditar"] = value; } } private int CveGrupo { get { return ViewState["CveGrupo"].ToString().ToEntero(); } set { ViewState["CveGrupo"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CveGrupo = -1; EsEditar = 0; CargaVehiculos(); CreaTmpDT(); CargaDatos(); } } protected void limpiarCamposModal() { TxtNombre.Text = ""; TmpDT.Clear(); DdlVehiculos.SelectedValueExist("-1"); GvDispositivos.DataSource = TmpDT; GvDispositivos.DataBind(); UPConsulta.Update(); } #region "CARGAR DATOS" protected void CargaVehiculos() { DdlVehiculos.DataSource = get_GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario); DdlVehiculos.DataBind(); DdlVehiculos.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlVehiculos.SelectedValue = "-1"; } protected void CreaTmpDT() { TmpDT = new DataTable(); TmpDT.Columns.Add("CveDispositivo", typeof(String)); TmpDT.Columns.Add("NoEconomico", typeof(String)); TmpDT.Columns.Add("CveDispositivosGruposDetalle", typeof(String)); GvDispositivos.DataSource = TmpDT; GvDispositivos.DataBind(); UPConsulta.Update(); } protected void CargaDatos() { ClsGPS ObjGPS = new ClsGPS(); if (ObjGPS.GruposGet(-1, UsuarioActual.CveCliente)) { GvGrupos.DataSource = ObjGPS.DtResultados; } ObjGPS.Dispose(); GvGrupos.DataBind(); UpDatos.Update(); } #endregion #region "BOTONES" protected void linkAgregar_Click(object sender, EventArgs e) { limpiarCamposModal(); EsEditar = 0; BtnGuardar.Text = "Guardar"; UPConsulta.Update(); this.RegistraScript("$('#DvModalGrupo').modal();"); } protected void BtnAgregar_Click(object sender, EventArgs e) { DataRow dr = TmpDT.NewRow(); int CveDispositivo = DdlVehiculos.SelectedValue.ToEntero(); var filtro = String.Format("CveDispositivo ={0}", CveDispositivo); if (TmpDT.FiltraParametros(filtro).Rows.Count == 0) { dr["CveDispositivo"] = DdlVehiculos.SelectedValue; dr["NoEconomico"] = DdlVehiculos.SelectedItem.Text; TmpDT.Rows.Add(dr); GvDispositivos.DataSource = TmpDT; GvDispositivos.DataBind(); UPConsulta.Update(); } else { Alert("Este dispositivo ya fue seleccionado.", ModExtensiones.TipoMensaje.MsgAdvertencia); } } protected void GvDispositivos_RowDeleting(object sender, GridViewDeleteEventArgs e) { TmpDT.Rows.RemoveAt(e.RowIndex); GvDispositivos.DataSource = TmpDT; GvDispositivos.DataBind(); UPConsulta.Update(); } protected void BtnGuardar_Click(object sender, EventArgs e) { ClsGPS ObjGPS = new ClsGPS(); int CveCliente = UsuarioActual.CveCliente; String NombreGrupo = TxtNombre.Text; ObjGPS.IniciaTransacSQL(); bool TieneError = false; // Agregar Nuevo grupo if (EsEditar == 0) { int CveNuevoGrupo; CveNuevoGrupo = ObjGPS.GruposAdd(NombreGrupo, CveCliente); if (CveNuevoGrupo == -1) { ObjGPS.RollBack(); } else { foreach (DataRow row in TmpDT.Rows) { int CveDispositivo = row["CveDispositivo"].ToEntero(); TieneError = !ObjGPS.GruposDetallesAdd(CveNuevoGrupo, CveDispositivo); if (TieneError) { break; } } if (!TieneError) { ObjGPS.Commit(); Alert("El grupo " + NombreGrupo + " fue creado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } else { ObjGPS.RollBack(); } } } //Editar Grupo else if (EsEditar == 1) { TieneError = !ObjGPS.GruposUpdate(NombreGrupo, CveCliente, CveGrupo); if (TieneError) { ObjGPS.RollBack(); } else { foreach (GridViewRow row in GvDispositivos.Rows) { var CveDispositivoBuscar = row.DataKey("CveDispositivo"); var filtroDispositivos = String.Format("CveDispositivo ={0}", CveDispositivoBuscar); if (TmpDTEdit.FiltraParametros(filtroDispositivos).Rows.Count == 0) { TieneError = !ObjGPS.GruposDetallesAdd(CveGrupo, CveDispositivoBuscar.ToEntero()); //Alert(TmpDTEdit.FiltraParametros(filtroDispositivos).Rows.Count.ToString(), ModExtensiones.TipoMensaje.MsgAdvertencia); } } foreach (DataRow row in TmpDTEdit.Rows) { int CveDispositivoBuscar = row["CveDispositivo"].ToEntero(); int CveDetalle = row["CveDispositivosGruposDetalle"].ToEntero(); var filtroDispositivos = String.Format("CveDispositivo ={0}", CveDispositivoBuscar); if (TmpDT.FiltraParametros(filtroDispositivos).Rows.Count == 0) { TieneError = !ObjGPS.GruposDetallesDelete(CveDetalle); //Alert("No esta" + CveDetalle, ModExtensiones.TipoMensaje.MsgAdvertencia); } } if (!TieneError) { ObjGPS.Commit(); } else { ObjGPS.RollBack(); } Alert("El grupo " + NombreGrupo + " fue actualizado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } } ObjGPS.Dispose(); limpiarCamposModal(); this.RegistraScript("$('#DvModalGrupo').modal('hide');"); CargaDatos(); } protected void GvGrupos_RowDeleting(object sender, GridViewDeleteEventArgs e) { ClsGPS ObjGPS = new ClsGPS(); ObjGPS.IniciaTransacSQL(); int CveDispositivosGrupos = GvGrupos.Rows[e.RowIndex].DataKey("CveDispositivosGrupos").ToEntero(); bool TieneError = !ObjGPS.GruposDetallesGet(CveDispositivosGrupos); foreach (DataRow row in ObjGPS.DtResultados.Rows) { int CveDetalle = row["CveDispositivosGruposDetalle"].ToEntero(); TieneError = !ObjGPS.GruposDetallesDelete(CveDetalle); if (TieneError) { break; } } if (!TieneError) { TieneError = !ObjGPS.GruposDelete(CveDispositivosGrupos); } if (TieneError) { ObjGPS.RollBack(); Alert("Error", ModExtensiones.TipoMensaje.MsgError); } else { ObjGPS.Commit(); Alert("El grupo ha sido eliminado.", ModExtensiones.TipoMensaje.MsgInformacion); } ObjGPS.Dispose(); CargaDatos(); } protected void imgE_Click(object sender, EventArgs e) { limpiarCamposModal(); GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); CveGrupo = GvRow.DataKey("CveDispositivosGrupos").ToEntero(); TxtNombre.Text = GvRow.DataKey("Nombre").ToString(); ClsGPS ObjGPS = new ClsGPS(); ObjGPS.IniciaTransacSQL(); bool TieneError = !ObjGPS.GruposDetallesGet(CveGrupo); if (TieneError) { ObjGPS.RollBack(); Alert("Error", ModExtensiones.TipoMensaje.MsgError); } else { foreach (DataRow row in ObjGPS.DtResultados.Rows) { DataRow dr = TmpDT.NewRow(); dr["CveDispositivo"] = row["CveDispositivo"].ToEntero(); dr["NoEconomico"] = row["NoEconomico"]; dr["CveDispositivosGruposDetalle"] = row["CveDispositivosGruposDetalle"].ToEntero(); TmpDT.Rows.Add(dr); int CveDetalle = row["CveDispositivosGruposDetalle"].ToEntero(); } TmpDTEdit = TmpDT.Copy(); GvDispositivos.DataSource = TmpDT; GvDispositivos.DataBind(); ObjGPS.Commit(); } ObjGPS.Dispose(); EsEditar = 1; BtnGuardar.Text = "Actualizar"; UPConsulta.Update(); this.RegistraScript("$('#DvModalGrupo').modal('show');"); } #endregion }