Option Explicit On Option Strict On Imports System.Data Imports System.Diagnostics Imports Extensiones Partial Class OC_CatEstatus Inherits ClsPaginas #Region "Propiedades" 'Local Private Property DTEstatusUsuarios As DataTable Get Return CType(ViewState("DTEstatusUsuarios"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusUsuarios") = value End Set End Property Private Property Tipo As String Get Return CType(ViewState("Tipo"), String) End Get Set(value As String) ViewState("Tipo") = value End Set End Property Private Property CveSubProyecto As Integer Get Return CType(ViewState("CveSubProyecto"), String).ToEntero End Get Set(value As Integer) ViewState("CveSubProyecto") = value End Set End Property Private Property CveProyecto As Integer Get Return CType(ViewState("CveProyecto"), String).ToEntero End Get Set(value As Integer) ViewState("CveProyecto") = value End Set End Property Private Property TipoSeleccionado As String Get Return CType(ViewState("TipoSeleccionado"), String) End Get Set(value As String) ViewState("TipoSeleccionado") = value End Set End Property Private Property CveEstatus As Integer Get Return ViewState("CveEstatus").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEstatus") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then CreaGrid("Req") CreaGrid("OC") ViewState("Orden") = "" ViewState("TipoSeleccionado") = DdlTipo.SelectedValue CargaDatos() CargaEstatus() CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) CargaUsuarios() 'SOLO MUESTRA SUBPROYECTO 'TdProyecto.Visible = False 'TdSubProyectoTitulo.Visible = False 'DivProyecto.Visible = False 'LblSubProyecto.Visible = False DdlSubProyecto_SelectedIndexChanged(DdlSubProyecto, EventArgs.Empty) chkMostrarLimites.Attributes.Add("onchange", "javascript:chkMostrarLimitesCambio();") MaintainScrollPositionOnPostBack = True End If End Sub 'Private Sub sssss() ' Dim length = 200000 ' Dim concatString = "" ' Dim aaa As New StringBuilder ' Dim stopWatch = New Stopwatch() ' stopWatch.Start() ' For i As Integer = 0 To length - 1 ' concatString = concatString & i ' Next ' stopWatch.[Stop]() ' aaa.Append($"String Concat took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") ' stopWatch.Reset() ' concatString = String.Empty ' stopWatch.Start() ' For i As Integer = 0 To length - 1 ' concatString = $"{concatString}a" ' Next ' stopWatch.[Stop]() ' aaa.Append($"String Interpolation took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") ' stopWatch.Reset() ' concatString = String.Empty ' Dim stringBuilder = New StringBuilder() ' stopWatch.Start() ' For i As Integer = 0 To length - 1 ' stringBuilder.Append("a") ' Next ' concatString = stringBuilder.ToString() ' stopWatch.[Stop]() ' aaa.Append($"String Builder took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") ' stopWatch.Reset() ' concatString = String.Empty ' stopWatch.Start() ' For i As Integer = 0 To length - 1 ' concatString = String.Format("a{0}", i) ' Next ' stopWatch.[Stop]() ' aaa.Append($"String.Format took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") ' Alert(aaa.ToString) 'End Sub #Region "C A T A L O G O " Public Sub CargaDatos() Dim ObjEstatus As New ClsOC If ObjEstatus.GetEstatus(UsuarioActual.CveEmpresa) Then ViewState("DTOCEstatus") = ObjEstatus.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) GlobalDTOCEstatus(UsuarioActual.CveEmpresa) = ObjEstatus.DtResultados Else GvDatos.DataSource = Nothing End If ObjEstatus.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGrid(ViewState("Orden").ToString()) Else CargaGrid("") End If End Sub Private Sub CargaEstatus() DdlEstatusSiguiente.DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format(" Tipo = '{0}'", TipoSeleccionado)) DdlEstatusSiguiente.DataBind() End Sub Protected Sub DdlTipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipo.SelectedIndexChanged ViewState("TipoSeleccionado") = DdlTipo.SelectedValue DdlEstatusSiguiente.Items.Clear() DdlEstatusSiguiente.Items.Insert(0, New ListItem("Seleccione", "-1")) CargaEstatus() End Sub Private Sub LnkAddEstatus_Click(sender As Object, e As EventArgs) Handles LnkAddEstatus.Click CveEstatus = -1 HdnModalidad.Value = "I" TxtEstatus.Text = "" ChkEstatus.Checked = True ChkCancelable.Checked = False DivCancelable.Visible = False DivEstatus.Visible = False DdlTipo.SelectedIndex = 0 DdlEstatusSiguiente.SelectedIndex = 0 DdlTipoTermino.SelectedIndex = 0 BtnGuardar.Text = "Agregar" UpCatalogo.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarEstatus")) End Sub Public Sub Edit_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) CveEstatus = (GvRow.DataKey("CveEstatus")).ToEntero HdnModalidad.Value = "U" TxtEstatus.Text = (GvRow.DataKey("Estatus")) DdlTipo.SelectedValueExist(GvRow.DataKey("Tipo")) ViewState("TipoSeleccionado") = GvRow.DataKey("Tipo") CargaEstatus() DdlEstatusSiguiente.SelectedValueExist(GvRow.DataKey("CveEstatusSiguiente")) DdlTipoTermino.SelectedValueExist(GvRow.DataKey("TipoTermino")) ChkEstatus.Checked = If(GvRow.DataKey("EstatusActivo").ToString = "True", True, False) ChkCancelable.Checked = If(GvRow.DataKey("Cancelable").ToString = "Sí", True, False) DivCancelable.Visible = True DivEstatus.Visible = True BtnGuardar.Text = "Actualizar" UpAddEstatus.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarEstatus")) End Sub Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim TieneError = False Dim ObjEstatus As New ClsOC 'No quitar transacción la transacción es por que el update puede generar recursividad en la vista Vw_OC_Estatus error 530 ObjEstatus.IniciaTransacSQL() If HdnModalidad.Value = "I" Then If Not ObjEstatus.AddEstatus(TxtEstatus.Text.Trim, DdlTipo.SelectedValue.ToString, DdlEstatusSiguiente.SelectedValue.ToEntero, DdlTipoTermino.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then TieneError = True End If Else If Not ObjEstatus.UpdateEstatus(TxtEstatus.Text.Trim, DdlTipo.SelectedValue.ToString, DdlEstatusSiguiente.SelectedValue.ToEntero, DdlTipoTermino.SelectedValue.ToEntero, ChkEstatus.Checked, ChkCancelable.Checked, CveEstatus, DdlEstatusSiguiente.SelectedItem.Text) Then TieneError = True End If End If If TieneError Then ObjEstatus.RollBack() Else ObjEstatus.Commit() End If ObjEstatus.Dispose() If Not TieneError Then DdlTipo.SelectedIndex = 0 DdlEstatusSiguiente.SelectedIndex = 0 DdlTipoTermino.SelectedIndex = 0 TxtEstatus.Text = "" ChkEstatus.Checked = True ChkCancelable.Checked = False Alert("El estatus de órden de compra se guardó/editó correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarEstatus")) CargaDatos() Else 'Alert("Ocurrió un error al guardar/editar estatus de órden de compra", TipoMensaje.MsgError) End If End Sub #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Private Sub CargaGrid(Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(CType(ViewState("DTOCEstatus"), DataTable), "", Orden, DataViewRowState.CurrentRows) GvDatos.DataSource = DV.ToTable() DV.Dispose() Else GvDatos.DataSource = CType(ViewState("DTOCEstatus"), DataTable) End If GvDatos.DataBind() UpCatalogo.Update() End Sub #End Region #Region "G V D A T O S" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then End If End Sub Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim TieneError = False Dim ObjEstatus As New ClsOC If ObjEstatus.RemoveEstatus(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then GvDatos.EditIndex = -1 Alert("El Estatus se eliminó correctamente.", TipoMensaje.MsgInformacion) End If ObjEstatus.Dispose() If Not TieneError Then CargaDatos() Else Alert("Ocurrió un error al eliminar el estatus. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError) End If End Sub #End Region #End Region #Region "C O N F I G U R A C I O N " Public Sub CargaUsuarios() ddlSuperior.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) ddlSuperior.DataBind() End Sub Protected Sub BtnGuardarSuperior_Click(sender As Object, e As EventArgs) Handles BtnGuardarSuperior.Click Dim objOC As New ClsOC Dim LimiteInferior As Decimal = If(chkMostrarLimites.Checked = False Or txtLimiteInferior.Text.Trim = "" Or txtLimiteInferior.Text.ToDecimal <= 0, -1, txtLimiteInferior.Text.Trim.ToDecimal) Dim LimiteSuperior As Decimal = If(chkMostrarLimites.Checked = False Or txtLimiteSuperior.Text.Trim = "" Or txtLimiteSuperior.Text.ToDecimal <= 0, -1, txtLimiteSuperior.Text.Trim.ToDecimal) Dim CveSuperior As Integer = If(tblSuperior.Visible = True, ddlSuperior.SelectedValue.ToEntero, -1) If hdnCveEstatusUsuarios.Value.ToEntero = -1 Then If objOC.AddEstatusUsuarios(hdnCveEstatus.Value.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, hdnCveUsuario.Value.ToEntero, True, CveSuperior, LimiteSuperior, LimiteInferior, UsuarioActual.CveUsuario) Then RegistraScript(String.Format("{0}.style.background-color='yellow'", IDCellYellow.Value)) End If Else If objOC.UpdateEstatusUsuarios(hdnCveEstatusUsuarios.Value.ToEntero, CveSuperior, LimiteSuperior, LimiteInferior) Then End If End If objOC.Dispose() If tabEstatusUsuarios.ActiveTabIndex = 0 Then CargaGridEstatusUsuarios("Req") Else CargaGridEstatusUsuarios("OC") End If End Sub Protected Sub GvEstatusUsuariosREQ_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstatusUsuariosREQ.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim tmpT As DataTable = DTEstatusUsuarios.FiltraParametros(String.Format("CveUsuario = {0}", e.Row.DBCampo("CveUsuario").ToString)) For i As Integer = 1 To 10 Dim CveEstatus As Integer = GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero If CveEstatus > 0 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox(String.Format("chkEstatus{0}", i)) Dim ibOpciones As ImageButton = e.Row.FCImageButton(String.Format("ibOpciones{0}", i)) Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField(String.Format("hdnCveEstatusUsuarios{0}", i)) Dim lblSuperior As Label = e.Row.FCLabel(String.Format("lblSuperior{0}", i)) Dim lblLimites As Label = e.Row.FCLabel(String.Format("lblLimites{0}", i)) ibOpciones.CommandArgument = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows(0)("CveEstatusSiguiente").ToString Dim RowEU As DataRowCollection = tmpT.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows Dim CveEstatusUsuarios As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveEstatusUsuarios")), RowEU(0)("CveEstatusUsuarios").ToString.ToEntero, -1) Dim LimiteInferior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteInferior")), RowEU(0)("LimiteInferior").ToString.ToDecimal, -1) Dim LimiteSuperior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteSuperior")), RowEU(0)("LimiteSuperior").ToString.ToDecimal, -1) Dim CveSuperior As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveSuperior")), RowEU(0)("CveSuperior").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveUsuario")), RowEU(0)("CveUsuario").ToString.ToEntero, -1) Dim TipoTermino As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("TipoTermino")), RowEU(0)("TipoTermino").ToString.ToEntero, -1) ' 0. supervisada, 1. autorizada, 2. rechazada If RowEU.Count > 0 Then chkEstatus.Checked = True chkEstatus.Attributes.Add("onclick", String.Format("javascript:chk1Change(this, '{0}');", ibOpciones.ClientID)) hdnCveEstatusUsuarios.Value = RowEU(0)("CveEstatusUsuarios").ToString ibOpciones.Style.Add("display", "inline") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.Append("hdnCveEstatus.value = '-1';") script.Append("hdnCveUsuario.value = '-1';") script.AppendFormat("hdnCveSuperior.value = '{0}'; ", CveSuperior) script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0 Or TipoTermino.Contiene(0, 1, 2), "true", "false")) script.AppendFormat("$get('DivLimites').style.display = '{0}';", If(LimiteInferior > 0 Or LimiteSuperior > 0, "inline", "none")) script.AppendFormat("txtLimiteInferior.value = '{0}'; ", If(LimiteInferior > 0, LimiteInferior.FormatoNumero, "")) script.AppendFormat("txtLimiteSuperior.value = '{0}'; ", If(LimiteSuperior > 0, LimiteSuperior.FormatoNumero, "")) ibOpciones.Attributes.Add("onclick", script.ToString) lblSuperior.Text = RowEU(0)("Superior").ToString If LimiteSuperior = -1 And LimiteInferior = -1 Then 'Sin Limite ElseIf LimiteSuperior > 0 And LimiteInferior = -1 Then 'Solo Limite Superior lblLimites.Text = String.Format("Hasta {0}", LimiteSuperior.ToString("N")) ElseIf LimiteInferior > 0 And LimiteSuperior = -1 Then 'Solo limite Inferior lblLimites.Text = String.Format("Desde {0}", LimiteInferior.ToString("N")) Else 'Con Limites lblLimites.Text = String.Format("{0} - {1}", LimiteInferior.ToString("N"), LimiteSuperior.ToString("N")) End If e.Row.Cells(i).BackColor = Drawing.Color.Yellow If DTEstatusUsuarios.FiltraParametros(String.Format("CveEstatusSiguiente = {0} AND CveSuperior = {1}", CveEstatus, CveUsuario)).Rows.Count > 0 Then chkEstatus.Attributes.Add("onclick", "javascript:var retorno = true; if (this.checked == false) retorno = confirm('Estas seguro????'); return retorno;") End If Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" ibOpciones.Style.Add("display", "none") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.AppendFormat("hdnCveEstatus.value = '{0}';", CveEstatus) script.AppendFormat("hdnCveUsuario.value = '{0}';", e.Row.DBCampo("CveUsuario").ToString) script.AppendFormat("hdnCveSuperior.value = '-1'; ") script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0, "true", "false")) script.AppendFormat("txtLimiteInferior.value = '0.00'; ") script.AppendFormat("txtLimiteSuperior.value = '0.00'; ") ibOpciones.Attributes.Add("onclick", script.ToString) End If End If Next End If End Sub Protected Sub GvEstatusUsuariosOC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstatusUsuariosOC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim tmpT As DataTable = DTEstatusUsuarios.FiltraParametros(String.Format("CveUsuario = {0}", e.Row.DBCampo("CveUsuario").ToString)) For i As Integer = 1 To 10 Dim CveEstatus As Integer = GvEstatusUsuariosOC.Columns(i).FooterText.ToEntero If CveEstatus > 0 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox(String.Format("chkEstatus{0}", i)) Dim ibOpciones As ImageButton = e.Row.FCImageButton(String.Format("ibOpciones{0}", i)) Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField(String.Format("hdnCveEstatusUsuarios{0}", i)) Dim lblSuperior As Label = e.Row.FCLabel(String.Format("lblSuperior{0}", i)) Dim lblLimites As Label = e.Row.FCLabel(String.Format("lblLimites{0}", i)) ibOpciones.CommandArgument = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows(0)("CveEstatusSiguiente").ToString Dim RowEU As DataRowCollection = tmpT.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows Dim CveEstatusUsuarios As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveEstatusUsuarios")), RowEU(0)("CveEstatusUsuarios").ToString.ToEntero, -1) Dim LimiteInferior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteInferior")), RowEU(0)("LimiteInferior").ToString.ToDecimal, -1) Dim LimiteSuperior As Decimal = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("LimiteSuperior")), RowEU(0)("LimiteSuperior").ToString.ToDecimal, -1) Dim CveSuperior As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveSuperior")), RowEU(0)("CveSuperior").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowEU.Count > 0 AndAlso Not IsDBNull(RowEU(0)("CveUsuario")), RowEU(0)("CveUsuario").ToString.ToEntero, -1) If RowEU.Count > 0 Then chkEstatus.Checked = True chkEstatus.Attributes.Add("onclick", "javascript:chk1Change(this, '" + ibOpciones.ClientID + "');") hdnCveEstatusUsuarios.Value = RowEU(0)("CveEstatusUsuarios").ToString ibOpciones.Style.Add("display", "inline") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.Append("hdnCveEstatus.value = '-1';") script.Append("hdnCveUsuario.value = '-1';") script.AppendFormat("hdnCveSuperior.value = '{0}'; ", CveSuperior) script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0, "true", "false")) script.AppendFormat("$get('DivLimites').style.display = '{0}';", If(LimiteInferior > 0 Or LimiteSuperior > 0, "inline", "none")) script.AppendFormat("txtLimiteInferior.value = '{0}'; ", If(LimiteInferior > 0, LimiteInferior.ToString, "")) script.AppendFormat("txtLimiteSuperior.value = '{0}'; ", If(LimiteSuperior > 0, LimiteSuperior.ToString, "")) ibOpciones.Attributes.Add("onclick", script.ToString) lblSuperior.Text = RowEU(0)("Superior").ToString If LimiteSuperior = -1 And LimiteInferior = -1 Then 'Sin Limite ElseIf LimiteSuperior > 0 And LimiteInferior = -1 Then 'Solo Limite Superior lblLimites.Text = String.Format("Hasta {0}", LimiteSuperior.ToString("N")) ElseIf LimiteInferior > 0 And LimiteSuperior = -1 Then 'Solo limite Inferior lblLimites.Text = String.Format("Desde {0}", LimiteInferior.ToString("N")) Else 'Con Limites lblLimites.Text = String.Format("{0} - {1}", LimiteInferior.ToString("N"), LimiteSuperior.ToString("N")) End If e.Row.Cells(i).BackColor = Drawing.Color.Yellow If DTEstatusUsuarios.FiltraParametros(String.Format("CveEstatusSiguiente = {0} AND CveSuperior = {1}", CveEstatus, CveUsuario)).Rows.Count > 0 Then chkEstatus.Attributes.Add("onclick", "javascript:var retorno = true; if (this.checked == false) retorno = confirm('Estas seguro????'); return retorno;") End If Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" ibOpciones.Style.Add("display", "none") Dim script As New StringBuilder script.AppendFormat("javascript:hdnCveEstatusUsuarios.value='{0}'; ", CveEstatusUsuarios) script.AppendFormat("IDhdnCveEstatusUsuarios.value='{0}'; ", hdnCveEstatusUsuarios.ClientID) script.AppendFormat("hdnCveEstatus.value = '{0}';", CveEstatus) script.AppendFormat("hdnCveUsuario.value = '{0}';", e.Row.DBCampo("CveUsuario").ToString) script.AppendFormat("hdnCveSuperior.value = '-1'; ") script.AppendFormat("chkMostrarLimites.checked = {0};chkMostrarLimitesCambio();", If(LimiteInferior > 0 Or LimiteSuperior > 0, "true", "false")) script.AppendFormat("txtLimiteInferior.value = '0.00'; ") script.AppendFormat("txtLimiteSuperior.value = '0.00'; ") ibOpciones.Attributes.Add("onclick", script.ToString) End If End If Next End If End Sub Protected Sub ibOpciones1_Click(sender As Object, e As ImageClickEventArgs) Dim imgBtn As ImageButton = DirectCast(sender, System.Web.UI.WebControls.ImageButton) ddlSuperior.Items.Clear() If imgBtn.CommandArgument <> "" Then 'chkMostrarLimites.Visible = If(GlobalDTOCEstatus.FiltraParametros("CveEstatusSiguiente = " + imgBtn.CommandArgument)(0)("TipoTermino").ToString.ToEntero = 3, False, True) chkMostrarLimites.Style("display") = If(GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros("CveEstatusSiguiente = " + imgBtn.CommandArgument)(0)("TipoTermino").ToString.ToEntero = 3, "none", "inline") ddlSuperior.DataSource = DTEstatusUsuarios.FiltraParametros(String.Format("CveEstatus = {0}", imgBtn.CommandArgument), "Nombre DESC") ddlSuperior.DataBind() ddlSuperior.Items.Insert(0, New ListItem("Todos los Superiores", "-1")) Try ddlSuperior.SelectedValue = hdnCveSuperior.Value Catch ex As Exception End Try tblSuperior.Visible = True Else tblSuperior.Visible = False End If UPSuperior.Update() UPPEmp.Update() RegistraScript("$('#DivSuperior').show(1000); PosicionaObjeto('" + imgBtn.ClientID + "','DivSuperior'); chkMostrarLimitesCambio();") End Sub #Region "E S T A T U S U S U A R I O S" Private Sub CreaGrid(Tipo As String) Dim i As Integer = 1 For Each Row As DataRow In GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("Tipo = '{0}' ", Tipo), "Orden").Rows If Tipo = "OC" Then GvEstatusUsuariosOC.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosOC.Columns(i).FooterText = Row("CveEstatus").ToString Else GvEstatusUsuariosREQ.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosREQ.Columns(i).FooterText = Row("CveEstatus").ToString End If i += 1 Next While i <= 10 If Tipo = "OC" Then GvEstatusUsuariosOC.Columns(i).Visible = False Else GvEstatusUsuariosREQ.Columns(i).Visible = False End If i += 1 End While End Sub Protected Sub CargaGridEstatusUsuarios(Tipo As String) If DdlSubProyecto.SelectedValue.ToEntero > 0 And (Tipo = "OC" Or Tipo = "Req") Or DdlSubProyecto.SelectedValue.ToEntero = -2 Then 'If Tipo = "OC" Then TmpDTOC.Rows.Clear() Else TmpDTReq.Rows.Clear() Dim CveSubProyecto = If(DdlSubProyecto.SelectedValue.ToEntero = -2, -1, DdlSubProyecto.SelectedValue.ToEntero) Dim objEstatusOC As New ClsOC If objEstatusOC.GetEstatusUsuarios(-1, -1, CveSubProyecto, -1, UsuarioActual.CveEmpresa, -1, 1) Then DTEstatusUsuarios = objEstatusOC.DtResultados End If If Tipo = "OC" Then GvEstatusUsuariosOC.DataSource = DTEstatusUsuarios.FiltraParametros("", "Nombre", {"CveUsuario", "Nombre"}) 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre") GvEstatusUsuariosOC.DataBind() Else GvEstatusUsuariosREQ.DataSource = DTEstatusUsuarios.FiltraParametros("", "Nombre", {"CveUsuario", "Nombre"}) GvEstatusUsuariosREQ.DataBind() End If objEstatusOC.Dispose() UPPEmp.Update() Else 'Si se vuelve a seleccionar "Seleccione" en el Ddl se limpian los grids GvEstatusUsuariosOC.DataSource = Nothing GvEstatusUsuariosOC.DataBind() GvEstatusUsuariosREQ.DataSource = Nothing GvEstatusUsuariosREQ.DataBind() End If End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged GvEstatusUsuariosOC.Enabled = True GvEstatusUsuariosREQ.Enabled = True btnGuardarEstatusUsuariosOC.Visible = True btnGuardarEstatusUsuariosREQ.Visible = True CargaGridEstatusUsuarios("Req") CargaGridEstatusUsuarios("OC") End Sub Protected Sub btnGuardarEstatusUsuariosREQ_Click(sender As Object, e As EventArgs) Handles btnGuardarEstatusUsuariosREQ.Click Dim objEstatusOC As New ClsOC objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero For Each Row As GridViewRow In GvEstatusUsuariosREQ.Rows Dim aux As Integer = Row.DataKey("CveUsuario").ToString.ToEntero Dim r As Integer = 1 For i = 0 To Row.Cells.Count - 1 Dim CveEstatus As Integer = If(IsNumeric(GvEstatusUsuariosREQ.Columns(i).FooterText), GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero, 0) If CveEstatus > 0 Then If Row.FCCheckBox("chkEstatus" + r.ToString).Checked = False And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero > 0 Then 'Eliminar el registro existente If Not objEstatusOC.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero, UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If ElseIf Row.FCCheckBox("chkEstatus" + r.ToString).Checked = True And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero = -1 Then 'Guardado masivo cuando sea SubProyecto "Todos" If CveSubProyecto = -2 Then For Each dr As DataRow In GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).Rows If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, dr("CveSubProyecto").ToString.ToEntero, Row.DataKey("CveUsuario").ToString.ToEntero, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If Next If HuboErrores Then Exit For End If 'Insertar el nuevo registro Else If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, CveSubProyecto, Row.DataKey("CveUsuario").ToString.ToEntero, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If End If End If r += 1 End If Next 'Si tubo algun error terminamos el proceso (FOR) If HuboErrores Then Exit For End If Next If Not HuboErrores Then objEstatusOC.Commit() Alert("Se guardaron los Cambios exitosamente", TipoMensaje.MsgInformacion) Else objEstatusOC.RollBack() Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError) End If objEstatusOC.Dispose() CargaGridEstatusUsuarios("Req") End Sub Protected Sub btnGuardarEstatusUsuariosOC_Click(sender As Object, e As EventArgs) Handles btnGuardarEstatusUsuariosOC.Click Dim objEstatusOC As New ClsOC objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero For Each Row As GridViewRow In GvEstatusUsuariosOC.Rows Dim r As Integer = 1 For i = 0 To Row.Cells.Count - 1 Dim CveEstatus As Integer = If(IsNumeric(GvEstatusUsuariosOC.Columns(i).FooterText), GvEstatusUsuariosOC.Columns(i).FooterText.ToEntero, 0) If CveEstatus > 0 Then If Row.FCCheckBox("chkEstatus" + r.ToString).Checked = False And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero > 0 Then 'Eliminar el registro existente If Not objEstatusOC.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero, UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If ElseIf Row.FCCheckBox("chkEstatus" + r.ToString).Checked = True And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero = -1 Then 'Guardado masivo cuando sea SubProyecto "Todos" If CveSubProyecto = -2 Then For Each dr As DataRow In GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).Rows If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, dr("CveSubProyecto").ToString.ToEntero, Row.DataKey("CveUsuario").ToString.ToEntero, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If Next If HuboErrores Then Exit For End If 'Insertar el nuevo registro Else If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, CveSubProyecto, Row.DataKey("CveUsuario").ToString.ToEntero, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If End If End If r += 1 End If Next 'Si tubo algun error terminamos el proceso (FOR) If HuboErrores Then Exit For End If Next If Not HuboErrores Then objEstatusOC.Commit() GlobalDTSubProyectosUsuarios(-1, -1, UsuarioActual.CveEmpresa) = Nothing Alert("Se guardaron los Cambios exitosamente", TipoMensaje.MsgInformacion) Else objEstatusOC.RollBack() Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError) End If objEstatusOC.Dispose() CargaGridEstatusUsuarios("OC") End Sub #End Region #End Region End Class