Files
SIG/OC/CatEstatus.aspx.vb
2021-08-17 21:00:03 -07:00

718 lines
36 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
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()
CargaProyectos()
CargaUsuarios()
'SOLO MUESTRA SUBPROYECTO
'TdProyecto.Visible = False
'TdSubProyectoTitulo.Visible = False
DivProyecto.Visible = False
LblSubproyecto.Visible = False
CboSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
CboSubProyecto.DataBind()
CboSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
CboSubProyecto_SelectedIndexChanged(CboSubProyecto, EventArgs.Empty)
chkMostrarLimites.Attributes.Add("onchange", "javascript:chkMostrarLimitesCambio();")
MaintainScrollPositionOnPostBack = True
End If
End Sub
#Region "C A T A L O G O "
Public Sub CargaDatos()
Dim ObjEstatus As New ClsOC
If ObjEstatus.GetEstatus() 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("<i class='fa fa-sort-asc' style='color:#999' ></i>")
Else
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
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, CboSubProyecto.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 CargaProyectos()
CboProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa, 1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})
CboProyecto.DataBind()
CboProyecto.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1"))
End Sub
Private Sub CargaSubProyectos()
CboSubProyecto.DataSource = GlobalDTSubProyectos(CboProyecto.SelectedValue.ToEntero)
CboSubProyecto.DataBind()
CboSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1"))
End Sub
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 CboSubProyecto.SelectedValue.ToEntero > 0 And (Tipo = "OC" Or Tipo = "Req") Or CboSubProyecto.SelectedValue.ToEntero = -2 Then
'If Tipo = "OC" Then TmpDTOC.Rows.Clear() Else TmpDTReq.Rows.Clear()
Dim CveSubProyecto = If(CboSubProyecto.SelectedValue.ToEntero = -2, -1, CboSubProyecto.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 CboProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProyecto.SelectedIndexChanged
If CboProyecto.SelectedValue.ToEntero > 0 Then
GvEstatusUsuariosOC.Enabled = False
GvEstatusUsuariosREQ.Enabled = False
btnGuardarEstatusUsuariosOC.Visible = False
btnGuardarEstatusUsuariosREQ.Visible = False
CargaSubProyectos()
End If
End Sub
Protected Sub CboSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboSubProyecto.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 = CboSubProyecto.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) 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 = CboSubProyecto.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) 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) 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