Files
SIG/OS/CatEstatusOrdenServicio.aspx.vb
2024-01-03 17:29:04 -07:00

321 lines
14 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports System.Linq
Imports Extensiones
Partial Class OS_CatEstatusOrdenServicio
Inherits ClsPaginas
#Region " PROPIEDADES"
Private Property DtEstatusOS As Data.DataTable
Get
Return CType(ViewState("DtEstatusOS"), DataTable)
End Get
Set(value As Data.DataTable)
ViewState("DtEstatusOS") = value
End Set
End Property
Private Property CveEstatuOS As Integer
Get
Return ViewState("CveEstatuOS").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveEstatuOS") = value
End Set
End Property
Private Property Orden As String
Get
Return ViewState("Orden").ToString
End Get
Set(value As String)
ViewState("Orden") = value
End Set
End Property
Private Property DTEstatusUsuarios As DataTable
Get
Return CType(ViewState("DTEstatusUsuarios"), DataTable)
End Get
Set(value As Data.DataTable)
ViewState("DTEstatusUsuarios") = value
End Set
End Property
Private Property DTUsuarios As DataTable
Get
Return CType(ViewState("DTUsuarios"), DataTable)
End Get
Set(value As Data.DataTable)
ViewState("DTUsuarios") = value
End Set
End Property
Private Property DtEstatusUsuariosAsociados As DataTable
Get
Return CType(ViewState("DtEstatusUsuariosAsociados"), DataTable)
End Get
Set(value As Data.DataTable)
ViewState("DtEstatusUsuariosAsociados") = 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
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto)
CargarTodosLosDatos()
CveEstatuOS = -1
End If
RegistraScript(" $('#TxtBackgroundColor').simpleColorPicker();")
End Sub
Private Sub CargarTodosLosDatos()
CargaDatos()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
End Sub
Public Sub CargaDatos()
DTUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
Using ObjEstatusOrdenServicios As New ClsOS
If ObjEstatusOrdenServicios.GetEstatusOrdenServicio(UsuarioActual.CveEmpresa) Then
DtEstatusOS = ObjEstatusOrdenServicios.DtResultados
GvDatos.DataSource = DtEstatusOS
End If
If ObjEstatusOrdenServicios.GetEstatusUsuarios(-1, -1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero) Then
DTEstatusUsuarios = ObjEstatusOrdenServicios.DtResultados
End If
End Using
GvDatos.DataBind()
OrdenaDatos()
End Sub
Private Sub BtnAgregarEstatus_Click(sender As Object, e As EventArgs) Handles BtnAgregarEstatus.Click
TxtEstatusOS.Text = ""
TxtBackgroundColor.Text = ""
BtnAgregarEstatusOS.Text = "Agregar"
divChkEstatus.Visible = False
UpBodyEstatus.Update()
UpFooter.Update()
RegistraScript("$('#divAddEstatusOS').modal();LimpiaModal()")
End Sub
Protected Sub BtnAgregarEstatusOS_Click(sender As Object, e As EventArgs) Handles BtnAgregarEstatusOS.Click
Dim ObjEstatusOrdenServicios As New ClsOS
Dim TieneError As Boolean = False
If HdnModalidad.Value = "I" Then
If ObjEstatusOrdenServicios.AddEstatusOrdenServicio(TxtEstatusOS.Text.Trim, DdlTipoEstatus.SelectedValue.ToEntero, If(ChkEstatus.Checked, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtBackgroundColor.Text.Replace("#", "")) Then
GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) = Nothing
Alert("Estatus agregado")
End If
Else
If HdnID.Value.ToEntero <> -1 Then
If Not ObjEstatusOrdenServicios.UpdateEstatusOrdenServicio(TxtEstatusOS.Text.Trim, DdlTipoEstatus.SelectedValue.ToEntero, If(ChkEstatus.Checked, 1, 0), HdnID.Value.ToEntero, TxtBackgroundColor.Text.Replace("#", "")) Then
TieneError = True
Else
GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) = Nothing
End If
End If
If Not TieneError Then
GvDatos.EditIndex = -1
'CargaDatos()
Alert("Estatus actualizado")
Else
Alert("Ocurrio un error al actualizar los datos", TipoMensaje.MsgAdvertencia)
End If
End If
CargaDatos()
ObjEstatusOrdenServicios.Dispose()
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddEstatusOS"))
EstatusUsuariosGridActualizar()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
UpDatos.Update()
UpGvUsuariosEstatus.Update()
'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
DdlTipoEstatus.SelectedValueExist(GvRow.DataKey("TipoEstatus"))
TxtEstatusOS.Text = GvRow.DataKey("EstatusOrdenServicio")
ChkEstatus.Checked = If(GvRow.DataKey("Estado").ToString = "Activo", True, False)
CveEstatuOS = GvRow.DataKey("CveEstatusOrdenServicio").ToEntero
TxtBackgroundColor.Text = "#" & GvRow.DataKey("BackgroundColor")
BtnAgregarEstatusOS.Text = "Actualizar"
divChkEstatus.Visible = True
UpBodyEstatus.Update()
UpAddEstatus.Update()
RegistraScript(String.Format("$('#{0}').modal();", "divAddEstatusOS"))
End Sub
#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
Dim URL As String = String.Format("javascript:LimpiaModal();SetValue('HdnModalidad', 'U');SetValue('HdnID', '{0}'); SetObjects('{1}');ShowDivRegistro();return false;", e.Row.DBCampo("CveEstatusOrdenServicio").ToEntero, e.Row.DBCampo("EstatusOrdenServicio"))
'GeneroLigas
Dim Liga As String = String.Format("<a class=""LinkBlanco"" href=""{0}"">", URL)
e.Row.VerticalAlign = VerticalAlign.Middle
e.Row.FCLinkButton("ImgE").OnClientClick = URL
End If
End Sub
Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjEstatusOrdenServicios As New ClsOS
Dim CveEstatusOrdenServicio As Integer = GvDatos.Rows(e.RowIndex).DataKey("CveEstatusOrdenServicio").ToEntero
If ObjEstatusOrdenServicios.RemoveEstatusOrdenServicio(CveEstatusOrdenServicio) Then
GvDatos.EditIndex = -1
DtEstatusOS = ObjEstatusOrdenServicios.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) = Nothing
Alert("El Estatus de Orden de Servicio se eliminó correctamente.", TipoMensaje.MsgInformacion)
End If
ObjEstatusOrdenServicios.Dispose()
CargaDatos()
UpDatos.Update()
EstatusUsuariosGridActualizar()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
UpGvUsuariosEstatus.Update()
'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)
End Sub
Protected Sub GvDatos_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatos.RowUpdating
Dim ObjEstatusOrdenServicios As New ClsOS
Dim EstatusOrdenServicio As String = DirectCast(GvDatos.Rows(e.RowIndex).FindControl("TxtEstatusOrdenServicio"), TextBox).Text.Trim
Dim Estado As Boolean = GvDatos.Rows(e.RowIndex).FCCheckBox("ChkEstado").Checked
Dim CveEstatusOrdenServicio As Integer = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero
ObjEstatusOrdenServicios.Dispose()
End Sub
#End Region
#Region "O R D E N A M I E N T O"
Private Sub OrdenaDatos()
If (GvDatos.Rows.Count > 0) Then
GvDatos.UseAccessibleHeader = True
GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
End Sub
#End Region
#Region "Configuracion"
Private Sub AsociarEstatusUsuarios()
Dim tableResultado As DataTable = DTUsuarios
For Each Estatus As DataRow In DtEstatusOS.Rows
Dim CveColumnaEstatus As String = Estatus.Item("CveEstatusOrdenServicio").ToString
If Not tableResultado.Columns.Contains(CveColumnaEstatus) Then
tableResultado.Columns.Add(CveColumnaEstatus, Type.GetType("System.Boolean"))
End If
For Each Usuario As DataRow In tableResultado.Rows
Usuario.Item(CveColumnaEstatus) = Not IsNothing(DTEstatusUsuarios.FiltroPrimero(String.Format("CveUsuario = {0} and CveEstatusOrdenServicio = {1}", Usuario.Item("CveUsuario"), CveColumnaEstatus)))
Next
Next
DtEstatusUsuariosAsociados = tableResultado
End Sub
Private Sub CargarUsuarioConEstatus()
Dim nombresUsuarios As New BoundField
nombresUsuarios.DataField = "Nombre"
nombresUsuarios.HeaderText = "Usuario"
nombresUsuarios.ItemStyle.CssClass = "columnaUsuarios"
GvUsuariosEstatus.Columns.Add(nombresUsuarios)
For Each Estatus As DataRow In DtEstatusOS.Rows
Dim test As New CheckBoxField
test.HeaderText = Estatus.Item("EstatusOrdenServicio").ToString
test.DataField = Estatus.Item("CveEstatusOrdenServicio").ToString
GvUsuariosEstatus.Columns.Add(test)
Next
GvUsuariosEstatus.DataSource = DtEstatusUsuariosAsociados
GvUsuariosEstatus.DataBind()
End Sub
Private Sub GvUsuariosEstatus_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvUsuariosEstatus.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim PermisosDeUsuario As DataTable = DTEstatusUsuarios.FiltraParametros(String.Format("CveUsuario = {0}", e.Row.DBCampo("CveUsuario").ToString))
For i As Integer = 1 To e.Row.Cells.Count - 1
If e.Row.RowType = DataControlRowType.DataRow Then
Dim checkBox As CheckBox = TryCast(e.Row.Cells(i).Controls(0), CheckBox)
checkBox.Enabled = True
End If
Next
End If
End Sub
Private Sub GuardarDatosGvUsuariosEstatus(sender As Object, e As EventArgs) Handles BtnGuardarUsuariosEstatus.Click
If DdlSubProyecto.SelectedValue.ToEntero > 0 Then
Dim objEstatusOC As New ClsOS
objEstatusOC.IniciaTransacSQL()
Dim HuboErrores As Boolean = False
Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero
For Each Row As GridViewRow In GvUsuariosEstatus.Rows
Dim controles As Integer = Row.Controls.Count
For i As Integer = 1 To Row.Cells.Count - 1
Dim chk As CheckBox = CType(Row.Cells(i).Controls(0), CheckBox)
Dim CveEstatus As Integer = DtEstatusOS.FiltroPrimeroValor("CveEstatusOrdenServicio", String.Format("EstatusOrdenServicio = '{0}'", GvUsuariosEstatus.Columns(i).HeaderText)).ToEntero
If Not chk.Checked Then
If Not objEstatusOC.RemoveEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero, CveSubProyecto) Then
HuboErrores = True
Exit For
End If
ElseIf chk.Checked Then
'Guardado masivo cuando sea SubProyecto "Todos"
If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero, CveSubProyecto, UsuarioActual.CveUsuario) Then
HuboErrores = True
Exit For
End If
End If
Next
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()
Else
Alert("Se debe seleccionar un SubProyecto valido", TipoMensaje.MsgAdvertencia)
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
End If
End Sub
Private Sub EstatusUsuariosGridActualizar()
DtEstatusUsuariosAsociados = Nothing
GvUsuariosEstatus.DataBind()
For Contador As Integer = (GvUsuariosEstatus.Columns.Count - 1) To 0 Step -1
GvUsuariosEstatus.Columns.RemoveAt(Contador)
Next
End Sub
Private Sub Proyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue)
'CargaDatos()
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
UpGvUsuariosEstatus.Update()
End Sub
Private Sub SubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
End Sub
#End Region
End Class