Option Explicit On Option Strict On Imports Extensiones Imports System.Data Imports System.Threading Partial Class Sistemas_UsuarioDetalle Inherits ClsPaginas #Region "P R O P I E D A D E S" Private Property DTEstatusSubProyectos As DataTable Get Return CType(ViewState("DTEstatusSubProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusSubProyectos") = value End Set End Property Private Property DTRequisiciones As DataTable Get Return CType(ViewState("DTRequisiciones"), DataTable) End Get Set(value As DataTable) ViewState("DTRequisiciones") = value End Set End Property Private Property CveUsuario As Integer Get Return ViewState("CveUsuario").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUsuario") = value End Set End Property Private ReadOnly Property CveRol As Integer Get Return ViewState("CveRol").ToString.ToEntero End Get End Property Private ReadOnly Property ImgConsecutivo As String Get Return ViewState("ImgConsecutivo").ToString End Get End Property Private ReadOnly Property CveEmpresa As Integer Get Return ViewState("CveEmpresa").ToString.ToEntero End Get End Property Private ReadOnly Property CveAlmacenAsignado As Integer Get Return If(ViewState("CveAlmacenAsignado") IsNot Nothing, ViewState("CveAlmacenAsignado").ToString.ToEntero, -1) End Get End Property Private ReadOnly Property CveVendedorAsignado As Integer Get Return If(ViewState("CveVendedorAsignado") IsNot Nothing, ViewState("CveVendedorAsignado").ToString.ToEntero, -1) End Get End Property Private ReadOnly Property CvePersonalAsignado As Integer Get Return If(ViewState("CvePersonalAsignado") IsNot Nothing, ViewState("CvePersonalAsignado").ToString.ToEntero, -1) End Get End Property Private ReadOnly Property CveTipoDocumentoAsignado As String Get Return If(ViewState("CveTipoDocumentoAsignado") IsNot Nothing, ViewState("CveTipoDocumentoAsignado").ToString, "-1") End Get End Property Private Property CveSubProyecto As Integer Get If ViewState("CveSubProyecto") Is Nothing Then Return -1 Else Return ViewState("CveSubProyecto").ToString.ToEntero End If End Get Set(value As Integer) ViewState("CveSubProyecto") = value End Set End Property Private ReadOnly Property Password As String Get Return ViewState("Password").ToString End Get End Property Private Property DtClasificaciones As DataTable Get Return CType(ViewState("DtClasificaciones"), DataTable) End Get Set(value As DataTable) ViewState("DtClasificaciones") = value End Set End Property Private Property DtSubProyectos As DataTable Get Return CType(ViewState("DtSubProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectos") = value End Set End Property Private Property DtSubProyectos3 As DataTable Get Return CType(ViewState("DtSubProyectos3"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectos3") = value End Set End Property Private Property DtSubProyectosOC As DataTable Get Return CType(ViewState("DtSubProyectosOC"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectosOC") = value End Set End Property Private Property DtUsuariosIndicadores As DataTable Get Return CType(ViewState("DtUsuariosIndicadores"), DataTable) End Get Set(value As DataTable) ViewState("DtUsuariosIndicadores") = value End Set End Property Private Property DtAlmacenes As DataTable Get Return CType(ViewState("DtAlmacenes"), DataTable) End Get Set(value As DataTable) ViewState("DtAlmacenes") = value End Set End Property Private Property DtCuentasBancarias As DataTable Get Return CType(ViewState("DtCuentasBancarias"), DataTable) End Get Set(value As DataTable) ViewState("DtCuentasBancarias") = value End Set End Property Private Property DtRestricciones As DataTable Get Return CType(ViewState("DtRestricciones"), DataTable) End Get Set(value As DataTable) ViewState("DtRestricciones") = value End Set End Property Private Property CveRestriccion As Integer Get Return ViewState("CveRestriccion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveRestriccion") = value End Set End Property Private Property AccionRestriccion As Integer Get Return ViewState("AccionRestriccion").ToString.ToEntero End Get Set(value As Integer) ViewState("AccionRestriccion") = value End Set End Property Private Property DtEmpresas As DataTable Get Return CType(ViewState("DtEmpresas"), DataTable) End Get Set(value As DataTable) ViewState("DtEmpresas") = value End Set End Property Private Property DTModulos As DataTable Get Return CType(ViewState("DTModulos"), DataTable) End Get Set(value As DataTable) ViewState("DTModulos") = value End Set End Property Private Property DtEmpresasUsuario As DataTable Get Return CType(ViewState("DtEmpresasUsuario"), DataTable) End Get Set(value As DataTable) ViewState("DtEmpresasUsuario") = value End Set End Property Private Property DTEstatusUsuarioOS As DataTable Get Return CType(ViewState("DTEstatusUsuarioOS"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusUsuarioOS") = value End Set End Property Private Property DTEstatusOS As DataTable Get Return CType(ViewState("DTEstatusOS"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusOS") = value End Set End Property Private Property DTEstatusOC As DataTable Get Return CType(ViewState("DTEstatusOC"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusOC") = value End Set End Property Private Property DTEstatusOCAsignar As DataTable Get Return CType(ViewState("DTEstatusOCAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTEstatusOCAsignar") = value End Set End Property Private Property CveEstatusUsuarioOC As Integer Get Return ViewState("CveEstatusUsuarioOC").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEstatusUsuarioOC") = value End Set End Property Private Property DtAlmacenesAsignar As DataTable Get Return CType(ViewState("DtAlmacenesAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DtAlmacenesAsignar") = value End Set End Property Private Property DtSubProyectosAsignar As DataTable Get Return CType(ViewState("DtSubProyectosAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectosAsignar") = value End Set End Property Private Property DtCuentasBancariasAsignar As DataTable Get Return CType(ViewState("DtCuentasBancariasAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DtCuentasBancariasAsignar") = value End Set End Property Private Property DTModulosAsignar As DataTable Get Return CType(ViewState("DTModulosAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTModulosAsignar") = value End Set End Property Private Property DTPermisosAsignar As DataTable Get Return CType(ViewState("DTPermisosAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTPermisosAsignar") = value End Set End Property Private Property DTIndicadoresAsignar As DataTable Get Return CType(ViewState("DTIndicadoresAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTIndicadoresAsignar") = value End Set End Property Private Property DTEmpresasAsignar As DataTable Get Return CType(ViewState("DTEmpresasAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTEmpresasAsignar") = value End Set End Property Private Property DTRolesAsignar As DataTable Get Return CType(ViewState("DTRolesAsignar"), DataTable) End Get Set(value As DataTable) ViewState("DTRolesAsignar") = value End Set End Property Private Property UsuarioControlado As Boolean Get Return CBool(ViewState("UsuarioControlado").ToString) End Get Set(value As Boolean) ViewState("UsuarioControlado") = value End Set End Property Private Property DtAlmacenesControlado As DataTable Get Return CType(ViewState("DtAlmacenesControlado"), DataTable) End Get Set(value As DataTable) ViewState("DtAlmacenesControlado") = value End Set End Property Private Property DtSubProyectosControlado As DataTable Get Return CType(ViewState("DtSubProyectosControlado"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectosControlado") = value End Set End Property Private Property DtCuentasBancariasControlado As DataTable Get Return CType(ViewState("DtCuentasBancariasControlado"), DataTable) End Get Set(value As DataTable) ViewState("DtCuentasBancariasControlado") = value End Set End Property Private Property DTModulosControlado As DataTable Get Return CType(ViewState("DTModulosControlado"), DataTable) End Get Set(value As DataTable) ViewState("DTModulosControlado") = value End Set End Property Private Property DTPermisosControlado As DataTable Get Return CType(ViewState("DTPermisosControlado"), DataTable) End Get Set(value As DataTable) ViewState("DTPermisosControlado") = value End Set End Property Private Property DTRolesControlado As DataTable Get Return CType(ViewState("DTRolesControlado"), DataTable) End Get Set(value As DataTable) ViewState("DTRolesControlado") = value End Set End Property Private Property DtSubProyectos2 As DataTable Get Return If(IsNothing(ViewState("DtSubProyectos")), Nothing, CType(ViewState("DtSubProyectos"), DataTable)) End Get Set(value As DataTable) ViewState("DtSubProyectos") = value End Set End Property Private Property DtAsignacionesMultiEmpresa As DataTable Get Return If(IsNothing(ViewState("DtAsignacionesMultiEmpresa")), Nothing, CType(ViewState("DtAsignacionesMultiEmpresa"), DataTable)) End Get Set(value As DataTable) ViewState("DtAsignacionesMultiEmpresa") = value End Set End Property 'Private Property CveSucursal As Integer ' Get ' If ViewState("CveSucursal") Is Nothing Then ' Return -1 ' Else ' Return ViewState("CveSucursal").ToString.ToEntero ' End If ' End Get ' Set(value As Integer) ' ViewState("CveSucursal") = value ' End Set 'End Property Private Property CveEmpresaAnterior As Integer Get If ViewState("CveEmpresaAnterior") Is Nothing Then Return -1 Else Return ViewState("CveEmpresaAnterior").ToString.ToEntero End If End Get Set(value As Integer) ViewState("CveEmpresaAnterior") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then ViewState("Orden") = "" ViewState("CveEmpresa") = "-1" 'ViewState("CveSucursal") = "" If Page.PreviousPage Is Nothing Then 'redireccionar a la de usuarios PnlGeneral.Visible = False Exit Sub End If ViewState("CveUsuario") = PreviousPage.CurrentUsuario ViewState("CveRol") = -1 If UsuarioActual.TipoControl > 0 Then UsuarioControlado = True InicializaUsuarioControlado() Else UsuarioControlado = False End If If CveUsuario.ToEntero >= 0 Then 'Configuración de Modalidad Update BtnGuardar.Text = "Guardar Cambios" LtlTitulo.Text = "Consulta del Usuario:" LnkRenviaCorreo.Visible = True Else 'Configuración de Modalidad Insert LblFechaCaptura.Text = Now.ToShortDateString() LblUsuarioCapturo.Text = UsuarioActual.Usuario TrContraseña.Visible = False LnkRestablecer.Visible = False 'ViewState("CveUsuario") = -1 BtnEliminar.Visible = False End If If UsuarioActual.CveRol = 1 Or UsuarioActual.CveUsuario = 304 Then LnkVerPass.Visible = True Else ' TabAccesoModulos.Visible = False ' TabPermisoModulos.Visible = False ' TabAccesoEmpresas.Visible = False TabAsignar.Visible = False End If If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then TrDescuentoAutorizado.Visible = True End If CargaDatos() InicializaClonarUsuario() InicializaRestricciones() CargaGvBitacora() CargaEmpresasAsignaciones() CreaDtAsignacionesMultiEmpresa() CveEmpresaAnterior = DdlEmpresaAsignaciones.SelectedValue.ToEntero End If End Sub 'DOCUMENTACION 'LOS CAMPOS DE DATATABLE "ACCION" SE REFIERE AL ESTATUS DE LOS CAMBIOS QUE OCURRIERON ANTES DE DARLE GUARDAR ' 0/NULL/VACIO = ORIGINAL (SIN CAMBIO) ' 1 = AGREGADO ' 2 = ELIMINADO ' 3 = NADA (AGREGADO Y ELIMINADO): CUANDO AGREGA UN REGISTRO Y LO ELIMINA, ES DECIR, NO SE GUARDA NADA ' 4 = UPDATE #Region " C A R G A R - D A T O S " Private Sub CargaDatos() CargarEmpresa() CargaEmpresasAcceso() CargaDtEstatusOCPermisos() If CveUsuario.ToEntero >= 0 Then CargaDatosUsuario() CargaDatosAsignadosAUsuario() Else CargaPersonal() CargaVendedor() End If CargaModulosAcceso() CargaModulosPermisos() CargaEmpresas() CargaProyectos() CargarAlmacen() CargaClasificaciones() CargaCuentasBancarias() CargaDtSubProyectos() CargaDtAlmacen() CargaGridIndicadores() CargaEstatusOrdenesCompra() CargaDtCuentasBancarias() CargarAlmacenAsignar() CargaDtAlmacenAsignar() CargaAlmacenes() CargaDdlClasificaciones() CargarProyectosAsignar() CargaDtSubProyectosAsignar() CargaCuentasBancariasAsignar() CargaDtCuentasBancariasAsignar() CargarRolesAsignar() CargaDtRolesAsignar() CargaDTEmpresasAsignar() CargaDTModulosAsignar() CargaDTPermisosAsignar() CargaDTIndicadoresAsignar() CargarRol() CargaAsignaciones() CargaUsuarioResponsable ' ValidaAccesoEstatusOC() End Sub Public Sub CargaUsuarioResponsable() DdlUsuarioResponsable.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveUsuario <> {CveUsuario}") DdlUsuarioResponsable.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlUsuarioResponsable.DataBind() End Sub Public Sub CargaDatosUsuario() If CveUsuario < 0 Then Exit Sub Dim ObjUsuario As New ClsSisUsuarios If ObjUsuario.GetUsuariosDetalle(CveUsuario, -1) Then If ObjUsuario.DtResultados.Rows.Count > 0 Then LtlUsuarios.Text = ObjUsuario.Usuario 'TxtContraseña.Text = ObjUsuario.Contraseña TrContraseña.Visible = False TxtUsuario.Text = ObjUsuario.Usuario TxtNombre.Text = ObjUsuario.Nombre ViewState("CveRol") = ObjUsuario.CveRol.ToString DdlRol.SelectedValue = ObjUsuario.CveRol.ToString TxtCorreo.Text = ObjUsuario.Correo Dim autoip As String = ObjUsuario.DtResultados.Rows(0)("AutorizadoxIP").ToString().ToUpper() 'chkSessionxEquipo.Checked = (autoip = "1" OrElse autoip = "TRUE") 'DdlSupervisa.SelectedValue = ObjUsuario.CveSupervisa.ToString 'DdlAutoriza.SelectedValue = ObjUsuario.CveAutoriza.ToString ViewState("Password") = ObjUsuario.Contraseña ViewState("CveEmpresa") = ObjUsuario.CveEmpresaPredeterminada DdlEmpresa.SelectedValue = CveEmpresa.ToString CargarRol() DdlRol.SelectedValueExist(ObjUsuario.CveRol) If DdlRol.SelectedValue.ToEntero <> ObjUsuario.CveRol Then DdlRol.Items.Insert(1, New ListItem(GlobalDTRoles(DdlEmpresa.SelectedValue.ToEntero).FiltroPrimeroValor("Rol", $"CveRol = {ObjUsuario.CveRol}"), ObjUsuario.CveRol.ToString)) DdlRol.SelectedValueExist(ObjUsuario.CveRol) End If DdlEmpresaAsignaciones.SelectedValue = CveEmpresa.ToString ChkEstatus.Checked = ObjUsuario.Estado LtlFechaUltimoAcceso.Text = ObjUsuario.FechaUltimoAcceso.ToString LtlFechaUltimoCambioContraseña.Text = ObjUsuario.FechaUltimoCambioContraseña.ToString ChkCambiarContraseña.Checked = ObjUsuario.PolCambiarContraseña ChkAsignarSubProyecto.Checked = ObjUsuario.AsignarAutomaticamenteSubProyecto ChkAsignarOC.Checked = ObjUsuario.AsignarAutomaticamenteOC CargaBitacora() LblFechaCaptura.Text = ObjUsuario.Fecha.ToShortDateString LblUsuarioCapturo.Text = ObjUsuario.UsuarioCreo TxtDescuentoAutorizado.Text = ObjUsuario.DescuentoAutorizado.FormatoNumero Else Alert("El Usuario Solicitado no existe, Revise su búsqueda.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False End If End If UpEmpresaAsignaciones.Update() ObjUsuario.Dispose() End Sub Public Sub CargaDatosAsignadosAUsuario() If CveUsuario < 0 Then Exit Sub If DtAsignacionesMultiEmpresa IsNot Nothing AndAlso DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", DdlEmpresaAsignaciones.SelectedValue.ToEntero)).Rows.Count > 0 Then Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) ViewState("CveSubProyecto") = dr(0)("CveSucursal") ViewState("CveAlmacenAsignado") = dr(0)("CveAlmacen") ViewState("CveVendedorAsignado") = dr(0)("CveVendedor") ViewState("CvePersonalAsignado") = dr(0)("CvePersonal") ViewState("CveTipoDocumentoAsignado") = dr(0)("CveTipoDocumento") Else Dim ObjUsuario As New ClsSisUsuarios If ObjUsuario.GetUsuariosDetalleAsignaciones(CveUsuario, DdlEmpresaAsignaciones.SelectedValue.ToEntero) Then If ObjUsuario.DtResultados.Rows.Count > 0 Then ViewState("CveSubProyecto") = If(ObjUsuario.CveSubProyecto > 0, ObjUsuario.CveSubProyecto, -1) ViewState("CveAlmacenAsignado") = If(ObjUsuario.CveAlmacen > 0, ObjUsuario.CveAlmacen, -1) ViewState("CveVendedorAsignado") = If(ObjUsuario.CveVendedor > 0, ObjUsuario.CveVendedor, -1) ViewState("CvePersonalAsignado") = If(ObjUsuario.CvePersonal > 0, ObjUsuario.CvePersonal, -1) ViewState("CveTipoDocumentoAsignado") = If(ObjUsuario.CveTipoDocumento <> "-1", ObjUsuario.CveTipoDocumento, "-1") End If End If ObjUsuario.Dispose() End If UpEmpresaAsignaciones.Update() End Sub Public Sub CargarRol() DdlRol.SelectedValue = "-1" DdlRol.Items.Clear() If UsuarioActual.CveRol <> 1 Then Dim CveEmpresaselected = DdlEmpresa.SelectedValue.ToEntero If CveEmpresaselected > 0 Then If UsuarioControlado Then DdlRol.DataSource = DTRolesControlado.FiltraParametros($"CveRol NOT IN (1) AND CveEmpresa = {CveEmpresaselected}") Else DdlRol.DataSource = GlobalDTRoles(CveEmpresaselected).FiltraParametros("CveRol NOT IN (1)", "Rol") End If End If Else If UsuarioControlado Then DdlRol.DataSource = DTRolesControlado.FiltraParametros($" CveEmpresa = {DdlEmpresa.SelectedValue}") Else DdlRol.DataSource = GlobalDTRoles(DdlEmpresa.SelectedValue.ToEntero) End If End If DdlRol.Items.Insert(0, New ListItem("Seleccione", "-1")) If CveRol > 0 Then If DdlRol.SelectedValue.ToEntero <> CveRol Then DdlRol.Items.Insert(1, New ListItem(GlobalDTRoles(DdlEmpresa.SelectedValue.ToEntero).FiltroPrimeroValor("Rol", $"CveRol = {CveRol}"), CveRol.ToString)) End If End If DdlRol.DataBind() DdlRol.SelectedValueExist(CveRol) UpDatos.Update() End Sub Protected Sub DdlEmpresa_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEmpresa.SelectedIndexChanged CargarRol() End Sub Public Sub CargarEmpresa() Dim ClsUsuarios As New ClsSisUsuarios Dim Tipo = If(UsuarioActual.CveRol = 1, -1, UsuarioActual.CveUsuario) If ClsUsuarios.GetEmpresasAcceso(Tipo, CveUsuario) Then DtEmpresasUsuario = ClsUsuarios.DtResultados DtEmpresasUsuario.Columns.Add("Accion", GetType(Integer)) For Each Dr As DataRow In DtEmpresasUsuario.Rows If Dr("Accion").ToString = "" AndAlso Dr("CveEmpresaUsuario").ToString = "" Then Dr("Accion") = "3" If CveUsuario = -1 AndAlso Dr("CveEmpresa").ToString.ToEntero = UsuarioActual.CveEmpresa Then Dr("Accion") = "1" Next Else DtEmpresasUsuario = Nothing End If ClsUsuarios.Dispose() End Sub Public Sub CargarSubProyectos() 'DdlSubProyectos.Items.Clear() 'If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then ' DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(CveUsuario, -1, CveEmpresa:=DdlEmpresaAsignaciones.SelectedValue.ToEntero, CveEstatus:=1).FiltraParametros("EsSucursal = 1") 'End If 'DdlSubProyectos.Items.Insert(0, New ListItem("Seleccione", "-1")) 'DdlSubProyectos.SelectedValue = "-1" 'If CveSubProyecto > 0 Then ' If DdlSubProyectos.SelectedValue.ToEntero <> CveSubProyecto Then ' DdlSubProyectos.Items.Insert(1, New ListItem(GlobalDTSubProyectos(-1, CveEmpresa:=DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {CveSubProyecto}"), CveSubProyecto.ToString)) ' End If 'End If 'DdlSubProyectos.DataBind() 'DdlSubProyectos.SelectedValueExist(CveSubProyecto) End Sub Private Sub CargaPersonal() Dim dt As DataTable = Nothing Dim RH As New ClsRH If RH.GetPersonal(-1, DdlEmpresaAsignaciones.SelectedValue.ToEntero) Then dt = RH.DtResultados End If RH.Dispose() DdlPersonal.Items.Clear() DdlPersonal.DataSource = dt DdlPersonal.DataBind() DdlPersonal.Items.Insert(0, New ListItem("Seleccione", "-1")) If CvePersonalAsignado > 0 Then DdlPersonal.SelectedValueExist(CvePersonalAsignado) UpFiltrosAsignarPermiso.Update() End Sub Private Sub CargaVendedor() DdlVendedor.Items.Clear() If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then 'DdlVendedor.DataSource = GlobalDTVendedores(DdlEmpresaAsignaciones.SelectedValue.ToEntero, VendedorTipo:=-1) Dim ObjVendedores As New ClsVtaVendedores If ObjVendedores.GetVendedores(DdlEmpresaAsignaciones.SelectedValue.ToEntero) Then DdlVendedor.DataSource = ObjVendedores.DtResultados.FiltraParametros("CveEstatus = 1") End If ObjVendedores.Dispose() End If DdlVendedor.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlVendedor.SelectedValue = "-1" DdlVendedor.DataBind() If CveVendedorAsignado > 0 Then DdlVendedor.SelectedValueExist(CveVendedorAsignado) End Sub Public Sub CargaBitacora() Dim ObjUsuario As New ClsSisUsuarios If ObjUsuario.GetBitacora(CveUsuario) Then GVBitacora.DataSource = ObjUsuario.DtResultados Else GVBitacora.DataSource = Nothing End If ObjUsuario.Dispose() GVBitacora.DataBind() End Sub Private Sub CargaAlmacenes() DdlAlmacenGeneral.Items.Clear() DdlAlmacenGeneral.DataSource = DtAlmacenes.FiltraParametros(String.Format("CveEmpresa = {0} AND (isnull(Accion,0) < 2 OR Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) DdlAlmacenGeneral.DataBind() DdlAlmacenGeneral.Items.Insert(0, New ListItem("Seleccione", "-1")) If CveAlmacenAsignado > 0 Then DdlAlmacenGeneral.SelectedValueExist(CveAlmacenAsignado) End If End Sub Private Sub CargaTipoDocumeto() DdlTipoDocumento.Items.Clear() DdlTipoDocumento.DataSource = GlobalDTTiposDocumentos() DdlTipoDocumento.DataBind() DdlTipoDocumento.Items.Insert(0, New ListItem("Seleccione", "-1")) If CveTipoDocumentoAsignado <> "-1" Then DdlTipoDocumento.SelectedValueExist(CveTipoDocumentoAsignado) UpFiltrosAsignarPermiso.Update() End Sub #End Region 'Private Sub CargaSucursal() ' DtSubProyectos2 = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("CveSubProyecto =" & DdlSubProyectos.SelectedValue.ToEntero) ' If DtSubProyectos2.Rows.Count > 0 Then ' Dim dr As DataRow ' dr = DtSubProyectos2(0) ' CveSucursal = dr("CveSucursal").ToString.ToEntero ' Else ' CveSucursal = -1 ' End If 'End Sub #Region " G U A R D A R - U P D A T E " Private Function ValidaUsername(Username As String, Correo As String) As Boolean Dim Retorno As Boolean = True 'If CveUsuario = -1 Then ' Retorno = GlobalDTUsuarios.COUNT("CveUsuario", $"Usuario IN ('{Username}','{Correo}') OR Correo = '{Correo}'") = 0 'Else ' Dim DtUsuarios As DataTable = GlobalDTUsuarios.FiltraParametros($"CveUsuario <> {UsuarioActual.CveUsuario}") ' Retorno = DtUsuarios.COUNT("CveUsuario", $"Usuario IN ('{Username}','{Correo}') OR Correo = '{Correo}'") = 0 'End If Return Retorno End Function Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click 'If Not ValidaUsername(TxtUsuario.Text.Trim, TxtCorreo.Text.Trim) Then ' Alert("Los datos ingresados ya existen en el sistema.Favor de verificar si existe el usuario", TipoMensaje.MsgInformacion) ' Return 'End If Dim ObjUsuarios As New ClsSisUsuarios Dim ObjSubProyectos As New ClsSubProyectos(ObjUsuarios.IniciaTransacSQL()) Dim ObjOC As New ClsOC(ObjUsuarios.IniciaTransacSQL()) Dim ObjOS As New ClsOS(ObjUsuarios.IniciaTransacSQL()) Dim Indicador As New ClsIndicadores(ObjUsuarios.IniciaTransacSQL()) Dim ObjBancos As New ClsBancos(ObjUsuarios.IniciaTransacSQL()) Dim TieneError = False Dim EsNuevoUsuario As Boolean = False Try 'Cargo la ultima empresa consultada en asignaciones Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) If DtValida.Rows.Count > 0 Then Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) dr(0)("CveEmpresa") = CveEmpresaAnterior dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue dr(0).AcceptChanges() Else Dim Row As DataRow = Nothing Row = DtAsignacionesMultiEmpresa.NewRow() Row("CveEmpresa") = CveEmpresaAnterior Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue DtAsignacionesMultiEmpresa.Rows.Add(Row) End If 'REGISTRA O ACTUALIZA LOS DATOS GENERALES DEL USUARIO If CveUsuario = -1 Then CveUsuario = ObjUsuarios.AddUsuario(TxtUsuario.Text.Trim, Encripta(ContraseñaPredeterminada), TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, UsuarioActual.CveUsuario, DdlEmpresa.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, CveAlmacenAsignado:=DdlAlmacenGeneral.SelectedValue.ToEntero, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble) EsNuevoUsuario = True If CveUsuario = -1 Then TieneError = True End If For Each Row As DataRow In DtAsignacionesMultiEmpresa.FiltraParametros("CveEmpresa > 0").Rows If Not ObjUsuarios.AddUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveTipoDocumento").ToString, Row("CveEmpresa").ToString.ToEntero, CveUsuario) Then TieneError = True End If Next Else If Not ObjUsuarios.UpdateUsuario(TxtUsuario.Text.Trim, TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, ChkEstatus.Checked, DdlEmpresa.SelectedValue.ToEntero, CveUsuario, DdlAlmacenGeneral.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveUsuario, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble) Then TieneError = True End If For Each Row As DataRow In DtAsignacionesMultiEmpresa.FiltraParametros("CveEmpresa > 0").Rows If Not ObjUsuarios.UpdateUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveEmpresa").ToString.ToEntero, Row("CveTipoDocumento").ToString, CveUsuario, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then TieneError = True End If Next End If 'GUARDA ACCESO MODULOS If Not TieneError Then For Each Row As GridViewRow In GvModulosAcceso.Rows 'Nota, permitir, tiene 3 valores, ''(Vacio), no se ha estipulado, '0' que se denego, '1' permitido(aplicado solo cuando no viene del rol If Row.DataKey("CveModuloAcceso") <> "" Then If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkDenegar").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkDenegar").Checked = False Then If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Not Row.FCCheckBox("ChkDenegar").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Else If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkPermitir").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkPermitir").Checked = False Then If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Row.FCCheckBox("ChkPermitir").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA PERMISO MODULOS If Not TieneError Then For Each Row As GridViewRow In GvModulosPermiso.Rows If Row.DataKey("CveProcesoAcceso") <> "" Then 'checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkD").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkD").Checked = False Then If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Else 'permisos que el rol, no le está otorgando, y serán únicos para el usuario If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkP").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkP").Checked = False Then If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If ''checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados 'If Row.DataKey("CveProcesoAcceso") <> "" Then ' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked) Then ' TieneError = True ' Exit For ' End If 'Else ' 'permisos que el rol, no le está otorgando, y serán únicos para el usuario ' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked) Then ' TieneError = True ' Exit For ' End If 'End If Next End If 'Agregar Indicadores If Not TieneError Then For Each Row As GridViewRow In GvIndicadores.Rows If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") <> "" And Row.FCCheckBox("chkIndicador").Checked = False Then If Not Indicador.RemoveIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") = "" Then If Row.FCCheckBox("chkIndicador").Checked Then If Not Indicador.AddIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA ACCESO EMPRESAS If Not TieneError Then For Each dr As DataRow In DtEmpresasUsuario.FiltraParametros("Accion IN (1,2)").Rows If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddUsuariosEmpresas(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveEmpresasAcceso(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Next End If 'GUARDA SUBPROYECTOS If Not TieneError Then For Each dr As DataRow In DtSubProyectos.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "4" Then If Not ObjUsuarios.UpdateSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, dr("ViejoCveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA ESTATUS DE OC If Not TieneError Then If DTEstatusOC IsNot Nothing AndAlso DTEstatusOC.Rows.Count > 0 Then For Each dr As DataRow In DTEstatusOC.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "4" Then If Not ObjUsuarios.UpdateEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero, dr("ViejoCveEstatus").ToString.ToEntero) Then TieneError = True Exit For End If End If End If Next End If End If 'GUARDA CLASIFICACIONES If Not TieneError Then If DtClasificaciones IsNot Nothing AndAlso DtClasificaciones.Rows.Count > 0 Then For Each dr As DataRow In DtClasificaciones.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If Next End If End If 'GUARDA ALMACENES If Not TieneError Then For Each dr As DataRow In DtAlmacenes.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "4" Then If Not ObjUsuarios.UpdateAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, dr("ViejoCveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If End If Next End If 'Guarda Estatus de Ordenes de Compra If Not TieneError Then GuardaEstatusProyectosREQ(ObjOC, TieneError) GuardaEstatusProyectoOC(ObjOC, TieneError) End If ''Guarda Estatus de Ordenes de Servicio 'If Not TieneError Then ' GuardaEstatusOS(ObjOS, TieneError) 'End If 'GUARDA CUENTAS BANCARIAS If Not TieneError Then For Each dr As DataRow In DtCuentasBancarias.FiltraParametros("Accion IN (1,2)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjBancos.AddBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjBancos.RemoveBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then TieneError = True Exit For End If End If End If Next End If 'GUARDAMOS RESTRICCIONES DE ACCESO If Not TieneError Then For Each dr As DataRow In DtRestricciones.FiltraParametros("Accion IN (1,2,4)").Rows If dr("Accion").ToString = "1" Then If Not ObjUsuarios.UsuariosRestriccionesAccesoAdd(CveUsuario, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.UsuariosRestriccionesAccesoRemove(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "4" Then If Not ObjUsuarios.UsuariosRestriccionesAccesoUpdate(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Next End If ObjUsuarios.UsuariosRestriccioneXMacUpdate(CveUsuario) 'CLONAR USUARIO If Not TieneError Then If EsNuevoUsuario Then If Not ClonarUsuario(DdlUsuarioClonar.SelectedValue.ToEntero, ObjUsuarios) Then TieneError = True End If End If End If ''''''''''''''''''''''''GUARDA ASIGNAR'''''''''''''''''''''''' 'GUARDA ROLES If Not TieneError Then For Each dr As DataRow In DTRolesAsignar.FiltraParametros("Accion IN (1,2)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA ALMACENES If Not TieneError Then For Each dr As DataRow In DtAlmacenesAsignar.FiltraParametros("Accion IN (1,2)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA SUBPROYECTOS If Not TieneError Then For Each dr As DataRow In DtSubProyectosAsignar.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA CUENTAS BANCARIAS If Not TieneError Then For Each dr As DataRow In DtCuentasBancariasAsignar.FiltraParametros("Accion IN (1,2)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If dr("Accion").ToString = "1" Then If Not ObjUsuarios.AddCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then TieneError = True Exit For End If ElseIf dr("Accion").ToString = "2" Then If Not ObjUsuarios.RemoveCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then TieneError = True Exit For End If End If End If Next End If 'GUARDA MODULOS If Not TieneError Then For Each Row As GridViewRow In GvModulosAsignar.Rows If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then If Not ObjUsuarios.RemoveModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then TieneError = True Exit For End If ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then If Not ObjUsuarios.AddModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then TieneError = True Exit For End If End If Next End If 'GUARDA PERMISOS If Not TieneError Then For Each Row As GridViewRow In GvPermisosAsignar.Rows If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then If Not ObjUsuarios.RemovePermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then TieneError = True Exit For End If ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then If Not ObjUsuarios.AddPermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then TieneError = True Exit For End If End If Next End If 'GUARDA INDICADORES If Not TieneError Then For Each Row As GridViewRow In GvIndicadoresAsignar.Rows If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then If Not ObjUsuarios.RemoveIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then TieneError = True Exit For End If ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then If Not ObjUsuarios.AddIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then TieneError = True Exit For End If End If Next End If 'GUARDA EMPRESAS If Not TieneError Then For Each Row As GridViewRow In GvEmpresasAsignar.Rows If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then TieneError = True Exit For End If ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then If Not ObjUsuarios.AddEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then TieneError = True Exit For End If End If Next End If 'ELIMINA YA AGREGADOS EMPRESAS If Not TieneError Then For Each dr As DataRow In DTEmpresasAsignar.FiltraParametros("TienePermiso IN (-2)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, dr("CveEmpresa").ToString.ToEntero) Then TieneError = True Exit For End If End If Next End If Catch ex As Exception TieneError = True OnError("Ocurrió un error al guardar el usuario", ex) End Try If Not TieneError Then If EsNuevoUsuario Then EnviaCorreo() End If Alert("El Usuario se Guardó Correctamente", TipoMensaje.MsgInformacion, "document.location.href=""/Sistemas/Usuarios.aspx"";") ObjUsuarios.Commit() RecargaGlobales(TieneError, ObjSubProyectos, ObjBancos, ObjOC, ObjUsuarios) Else Alert("Ocurrió un error al registrar el Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) ObjUsuarios.RollBack() End If ObjUsuarios.Dispose() ObjSubProyectos.Dispose() ObjOC.Dispose() ObjOS.Dispose() Indicador.Dispose() ObjBancos.Dispose() End Sub Private Sub RecargaGlobales(TieneError As Boolean, ObjSubProyectos As ClsSubProyectos, ObjBancos As ClsBancos, ObjOC As ClsOC, ObjUsuarios As ClsSisUsuarios) 'RECARGA GLOBAL SUBPROYECTOS If Not TieneError Then GlobalDTSubProyectosUsuarios(-1, -1, UsuarioActual.CveEmpresa) = Nothing 'If ObjSubProyectos.GetSubProyectosUsuarios Then ' Application("GlobalDTSubProyectosUsuarios") = ObjSubProyectos.DtResultados 'Else ' Application("GlobalDTSubProyectosUsuarios") = Nothing ' TieneError = True 'End If End If If Not TieneError Then GlobalDTProyectosUsuarios(-1, -1, UsuarioActual.CveEmpresa, -1) = Nothing 'If ObjSubProyectos.GetSubProyectosUsuarios Then ' Application("GlobalDTProyectosUsuarios") = ObjSubProyectos.DtResultados.FiltraParametros("", "", {"Proyecto", "CveProyecto", "CveUsuario", "CveEmpresa", "CveEstatusProyecto"}) 'Else ' Application("GlobalDTProyectosUsuarios") = Nothing ' TieneError = True 'End If End If 'RECARGA GLOBAL BANCOS 'If ObjBancos.GetBancosCuentasUsuarios(-1) Then GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa) = Nothing 'ObjBancos.DtResultados ' End If 'RECARGA GLOBAL ESTATUS If ObjOC.GetEstatus() Then Application("GlobalDTOCEstatus") = ObjOC.DtResultados Else Application("GlobalDTOCEstatus") = Nothing GlobalDTOCEstatusUsuarios(UsuarioActual.CveEmpresa) = Nothing 'If ObjOC.GetEstatusUsuarios(-1, -1, -1, -1, -1) Then Application("GlobalDTOCEstatusUsuarios") = ObjOC.DtResultados Else Application("GlobalDTOCEstatusUsuarios") = Nothing 'RECARGA GLOBAL ALMACEN 'If ObjUsuarios.GetAlmacen(-1, UsuarioActual.CveEmpresa) Then Application("GlobalDTAlmacenUsuarios") = ObjUsuarios.DtResultados Else Application("GlobalDTAlmacenUsuarios") = Nothing GlobalDTAlmacenUsuarios(-1, UsuarioActual.CveEmpresa) = Nothing 'RECARGA GLOBAL EMPRESAS USUARIOS If ObjUsuarios.GetUsuariosEmpresas(-1) Then Application("GlobalDTUsuarios") = ObjUsuarios.DtResultados Application("GlobalDTUsuarioResponsable") = ObjUsuarios.DtResultados.FiltraParametros("ProveedoresResponsables > 0") End If End Sub Private Sub EnviaCorreo() Try Dim Para = TxtCorreo.Text.Trim Dim Asunto = "ALTA DE CUENTA" Dim SBBody As New StringBuilder 'Linia de estilos SBBody.Append("") 'incio Cuerpo del correo SBBody.Append("
") SBBody.Append("
") SBBody.Append("
") SBBody.Append("ALTA DE CUENTA") SBBody.Append("
") SBBody.Append("
") SBBody.AppendFormat(" Estimado / a {0}:
", TxtNombre.Text.ToUpper) SBBody.Append("El presente correo es para informarle que se le han asignado los siguentes datos para el acceso en el SISTEMA DE INFORMACIÓN GERENCIAL

") SBBody.Append("
") SBBody.Append("
Datos de usuario
") SBBody.Append("
") SBBody.Append("
") SBBody.Append("
Usuario
") SBBody.AppendFormat("
{0}
", TxtUsuario.Text.Trim) SBBody.Append("
") SBBody.Append("
") SBBody.Append("
Correo
") SBBody.AppendFormat("
{0}
", Para) SBBody.Append("
") SBBody.Append("
") SBBody.Append("
Contraseña(Temporal)
") SBBody.AppendFormat("
{0}
", ContraseñaPredeterminada) SBBody.Append("
") SBBody.Append("
") SBBody.Append("
Acceso
") SBBody.AppendFormat("", UrlSitio) SBBody.Append("
") SBBody.Append("
") SBBody.Append("
") SBBody.Append("
") SBBody.Append("Para Activar su cuenta debera cambiar su contraseña.

") SBBody.Append("
") SBBody.Append("Nota Favor de NO responder este correo. ") SBBody.Append("


") SBBody.AppendFormat("", UrlSitio) SBBody.Append("
") SBBody.Append("
") 'Termino Cuerpo del correo Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(Asunto, Para, SBBody.ToString)) Hilo.Start() Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End Sub #End Region #Region " E L I M I N A R - U S U A R I O " Protected Sub BtnEliminar_Click(sender As Object, e As System.EventArgs) Handles BtnEliminar.Click ''DENTRO DEL PROCEDIMIENTO ELIMINA TODO LO RELACIONADO CON EL USUARIO (ALMACENES, SUBPROYECTOS, ACCESO A EMPRESAS...) Dim ObjUsuario As New ClsSisUsuarios() If ObjUsuario.RemoveUsuario(CveUsuario) Then Alert("El Usuario se eliminó correctamente.", TipoMensaje.MsgInformacion, "window.location.href=""/Sistemas/Usuarios.aspx""") Else Alert("Ocurrió un error al eliminar el usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjUsuario.Dispose() End Sub #End Region #Region " CONTRASEÑA " Protected Sub LnkRestablecer_Click(sender As Object, e As EventArgs) Handles LnkRestablecer.Click Dim Usuario As New ClsSisUsuarios If Usuario.UpdateUsuarioContrasenia(Encripta(ContraseñaPredeterminada), CveUsuario, CveEmpresa) Then Alert("Contraseña Restablecida.
La nueva contraseña es: """ & ContraseñaPredeterminada & "", TipoMensaje.MsgInformacion) End If Usuario.Dispose() End Sub Protected Sub LnkVerPass_Click(sender As Object, e As EventArgs) Handles LnkVerPass.Click Alert(Extensiones.Decripta(Password)) End Sub #End Region #Region "TAB - ASIGNACIONES" Protected Sub DdlEmpresaAsignaciones_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEmpresaAsignaciones.SelectedIndexChanged Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) If DtValida.Rows.Count > 0 Then Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) dr(0)("CveEmpresa") = CveEmpresaAnterior dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue dr(0).AcceptChanges() Else Dim Row As DataRow = Nothing Row = DtAsignacionesMultiEmpresa.NewRow() Row("CveEmpresa") = CveEmpresaAnterior Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue DtAsignacionesMultiEmpresa.Rows.Add(Row) End If CargaDatosAsignadosAUsuario() CargaEmpresasAsignaciones() CveEmpresaAnterior = DdlEmpresaAsignaciones.SelectedValue.ToEntero CargaDtCuentasBancarias() UpAsignaciones.Update() End Sub Private Sub CargaEmpresasAsignaciones() CargarAlmacen() CargaGvSubProyectos() CargaProyectos() CargaGVAlmacen() CargarSubProyectos() CargaVendedor() CargaPersonal() CargaDdlEstatusOC() CargaEstatusOrdenesCompra() CargaAlmacenes() CargaTipoDocumeto() 'CargaGridEstatusUsuarioOC("Req") ' CargaGridEstatusUsuarioOC("OC") CargaCuentasBancarias() UpAsignaciones.Update() End Sub Private Sub CreaDtAsignacionesMultiEmpresa() DtAsignacionesMultiEmpresa = New DataTable DtAsignacionesMultiEmpresa.Columns.Add("CveEmpresa", GetType(Integer)) DtAsignacionesMultiEmpresa.Columns.Add("CvePersonal", GetType(Integer)) DtAsignacionesMultiEmpresa.Columns.Add("CveVendedor", GetType(Integer)) DtAsignacionesMultiEmpresa.Columns.Add("CveSucursal", GetType(Integer)) DtAsignacionesMultiEmpresa.Columns.Add("CveAlmacen", GetType(Integer)) DtAsignacionesMultiEmpresa.Columns.Add("CveTipoDocumento", GetType(String)) End Sub #Region " PROYECTOS-SUBPROYECTOS " Private Sub CargaProyectos() DdlProyecto.Items.Clear() DdlSubProyecto.Items.Clear() If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then If UsuarioControlado Then DdlProyecto.DataSource = GetProyectosSinGV(DtSubProyectosControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}")) Else DdlProyecto.DataSource = GetProyectosSinGV(GlobalDTSubProyectos(-1, -1, DdlEmpresaAsignaciones.SelectedValue.ToEntero)) End If End If DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1")) 'CARGA SOLO PROYECTO (SUBRPOYECTOS) If DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66 Then SoloSubProyectos() End If End Sub Private Function GetSubProyectosSinGV() As String Dim SB As New StringBuilder Dim prefix As String = "" For Each item As GridViewRow In GvSubProyectos.Rows SB.Append(prefix) SB.Append(item.DataKey("CveSubProyecto")) prefix = "," Next If SB.Length > 0 Then Return $"CveSubProyecto NOT IN ({SB.ToString})" Else Return "" End If End Function Private Function GetProyectosSinGV(DT As DataTable) As DataTable Dim SB As New StringBuilder Dim prefix As String = "" For Each item As GridViewRow In GvSubProyectos.Rows SB.Append(prefix) SB.Append(item.DataKey("CveSubProyecto")) prefix = "," Next If SB.Length > 0 Then Return DT.FiltraParametros($"CveSubProyecto NOT IN ({SB.ToString})", "", {"CveProyecto", "Proyecto"}) Else Return DT End If End Function Private Sub SoloSubProyectos() TdProyecto1.Visible = False TdProyecto2.Visible = False ChkAsIgnarProyecto.Visible = False LtTituloSubProyecto.Text = "Proyecto" If UsuarioControlado Then DdlSubProyecto.DataSource = DtSubProyectosControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}") Else DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) End If DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) UpAsignaciones.Update() GvSubProyectos.Columns(0).Visible = False End Sub Protected Sub CboProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyectos(DdlProyecto.SelectedValue.ToEntero) End Sub Private Sub CargaSubProyectos(Optional CveProyectoFiltrado As Integer = -1) DdlSubProyecto.Items.Clear() If CveProyectoFiltrado > 0 Then Dim SubProyectosSinGV As String = GetSubProyectosSinGV() If UsuarioControlado Then DdlSubProyecto.DataSource = DtSubProyectosControlado.FiltraParametros($"CveProyecto = {CveProyectoFiltrado} {If(SubProyectosSinGV.Length > 0, $"AND {SubProyectosSinGV}", "")}") 'NO SE PARA QUE SE USA - COMENTADO IPP 30 AGOSTO 2017 'If SubProyectosSinGV.Length > 0 Then 'Dim DTPSubProyectoFiltrado As DataTable = DtSubProyectosControlado.FiltraParametros($"CveProyecto = {CveProyectoFiltrado} AND {SubProyectosSinGV}") 'If DTPSubProyectoFiltrado.Rows.Count = 0 Then 'If CveProyectoFiltrado > 0 Then ' DdlSubProyecto.DataSource = DtSubProyectosControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue} AND CveProyecto <> {CveProyectoFiltrado}").FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) ' DdlSubProyecto.DataBind() 'Else ' DdlSubProyecto.DataSource = DtSubProyectosControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}").FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) ' DdlSubProyecto.DataBind() 'End If 'End If ' DdlSubProyecto.DataSource = DTPSubProyectoFiltrado 'Else ' DdlSubProyecto.DataSource = DtSubProyectosControlado.FiltraParametros($"CveProyecto = {CveProyectoFiltrado}") 'End If Else 'DdlSubProyecto.DataSource = GlobalDTSubProyectos(If(CveProyectoFiltrado > 0, CveProyectoFiltrado, DdlProyecto.SelectedValue.ToEntero)).FiltraParametros(If(SubProyectosSinGV.Length > 0, SubProyectosSinGV, "")) DdlSubProyecto.DataSource = GlobalDTSubProyectos(If(CveProyectoFiltrado > 0, CveProyectoFiltrado, DdlProyecto.SelectedValue.ToEntero), CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(If(SubProyectosSinGV.Length > 0, SubProyectosSinGV, "")) 'NO SE PARA QUE SE USA - COMENTADO IPP 30 AGOSTO 2017 'If SubProyectosSinGV.Length > 0 Then ' Dim SubProyectoFiltrado As DataTable = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero).FiltraParametros(SubProyectosSinGV) ' DdlSubProyecto.DataSource = SubProyectoFiltrado ' If SubProyectoFiltrado.Rows.Count = 0 Then ' If CveProyectoFiltrado > 0 Then ' DdlSubProyecto.DataSource = GlobalDTProyectos(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"CveProyecto <> {CveProyectoFiltrado}").FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) ' DdlSubProyecto.DataBind() ' Else ' DdlSubProyecto.DataSource = GlobalDTProyectos(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) ' DdlSubProyecto.DataBind() ' End If ' End If 'Else ' DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) 'End If End If End If DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1")) End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) DdlSubProyecto.Items.Clear() If DdlProyecto.SelectedValue.ToEntero > 0 Then DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) End If DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1")) End Sub Protected Sub LBAgregarSubProyecto_Click(sender As Object, e As EventArgs) Dim CveSubProyectoNuevo As String = DdlSubProyecto.SelectedValue Dim DtValida = DtSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El SubProyecto ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtSubProyectos.NewRow dr("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DdlProyecto.SelectedValue) dr("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DdlProyecto.SelectedItem.Text) dr("CveSubProyecto") = DdlSubProyecto.SelectedValue dr("SubProyecto") = DdlSubProyecto.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtSubProyectos.Rows.Add(dr) End If Dim CveProyectoFiltrada As Integer = DdlProyecto.SelectedValue.ToEntero CargaGvSubProyectos() CargaSubProyectos(CveProyectoFiltrada) 'If CveUsuario > 0 Then ' Dim ObjOC As New ClsOC() ' Dim HuboError As Boolean = False ' ObjOC.IniciaTransacSQL() ' GuardaEstatusProyectosREQ(ObjOC, HuboError) ' GuardaEstatusProyectoOC(ObjOC, HuboError) ' If Not HuboError Then ' ObjOC.Commit() ' Else ' ObjOC.RollBack() ' End If ' ObjOC.Dispose() 'End If CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") CargaProyectos() End Sub Private Sub CargaDtSubProyectos() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetSubProyectos(CveUsuario) Then DtSubProyectos = ClsUsuarios.DtResultados Else DtSubProyectos = Nothing Alert("Ocurrió un Error al cargar los SubProyectos del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() If DtSubProyectos IsNot Nothing Then DtSubProyectos.Columns.Add("ViejoCveSubProyecto", GetType(Integer)) DtSubProyectos.Columns.Add("Accion", GetType(Integer)) End If CargaGvSubProyectos() End Sub Private Sub CargaGvSubProyectos() GvSubProyectos.DataSource = DtSubProyectos.FiltraParametros(String.Format("CveEmpresa = {0} And (isnull(Accion, 0) < 2 Or Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) GvSubProyectos.DataBind() DdlSubProyectos.Items.Clear() DdlSubProyectos.DataSource = DtSubProyectos.FiltraParametros(String.Format("CveEmpresa = {0} AND EsSucursal = 1 And (isnull(Accion, 0) < 2 Or Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) DdlSubProyectos.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubProyectos.SelectedValue = "-1" DdlSubProyectos.DataBind() If DtSubProyectos.FiltraParametros(String.Format("CveEmpresa = {0} And CveSubProyecto = {1} And EsSucursal = 1 And (isnull(Accion, 0) < 2 Or Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero, CveSubProyecto)) IsNot Nothing Then DdlSubProyectos.SelectedValueExist(CveSubProyecto) End If End Sub Protected Sub ChkAsIgnarProyecto_CheckedChanged(sender As Object, e As EventArgs) If ChkAsIgnarProyecto.Checked Then If DdlProyecto.SelectedValue.ToEntero > 0 Then For Each item As ListItem In DdlSubProyecto.Items Dim CveSubProyectoNuevo As String = item.Value If CveSubProyectoNuevo.ToEntero > 0 Then Dim DtValida = DtSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 1 dr(0).AcceptChanges() End If Else Dim dr = DtSubProyectos.NewRow dr("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DdlProyecto.SelectedValue) dr("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DdlProyecto.SelectedItem.Text) dr("CveSubProyecto") = CveSubProyectoNuevo dr("SubProyecto") = item.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtSubProyectos.Rows.Add(dr) End If End If Next Dim CveProyectoFiltrada As Integer = DdlProyecto.SelectedValue.ToEntero CargaGvSubProyectos() CargaSubProyectos(CveProyectoFiltrada) 'If CveUsuario > 0 Then ' Dim ObjOC As New ClsOC() ' Dim HuboError As Boolean = False ' ObjOC.IniciaTransacSQL() ' GuardaEstatusProyectosREQ(ObjOC, HuboError) ' GuardaEstatusProyectoOC(ObjOC, HuboError) ' If Not HuboError Then ' ObjOC.Commit() ' Else ' ObjOC.RollBack() ' End If ' ObjOC.Dispose() 'End If CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") CargaProyectos() Else Alert("Tiene que seleccionar un proyecto", TipoMensaje.MsgAdvertencia) End If End If ChkAsIgnarProyecto.Checked = False End Sub Protected Sub ChkAsignarAllProyectos_CheckedChanged(sender As Object, e As EventArgs) If ChkAsignarAllProyectos.Checked Then If TdProyecto2.Visible Then Dim DtProyectos As New DataTable DtProyectos.Columns.Add("CveProyecto") For Each itemProyecto As ListItem In DdlProyecto.Items If itemProyecto.Value.ToEntero > 0 Then Dim CveProyectoNuevo As String = itemProyecto.Value CargaSubProyectos(CveProyectoNuevo.ToEntero) For Each item As ListItem In DdlSubProyecto.Items Dim CveSubProyectoNuevo As String = item.Value If CveSubProyectoNuevo.ToEntero > 0 Then Dim DtValida = DtSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 1 dr(0).AcceptChanges() End If Else Dim dr = DtSubProyectos.NewRow dr("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", CveProyectoNuevo) dr("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", itemProyecto.Text) dr("CveSubProyecto") = CveSubProyectoNuevo dr("SubProyecto") = item.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtSubProyectos.Rows.Add(dr) End If End If Next Dim DrPro As DataRow DrPro = DtProyectos.NewRow DrPro("CveProyecto") = CveProyectoNuevo DtProyectos.Rows.Add(DrPro) DtProyectos.AcceptChanges() End If Next For Each Dr As DataRow In DtProyectos.Rows Dim CveProyectoFiltrada As Integer = Dr("CveProyecto").ToString.ToEntero CargaGvSubProyectos() CargaSubProyectos(CveProyectoFiltrada) 'If CveUsuario > 0 Then ' Dim ObjOC As New ClsOC() ' Dim HuboError As Boolean = False ' ObjOC.IniciaTransacSQL() ' GuardaEstatusProyectosREQ(ObjOC, HuboError) ' GuardaEstatusProyectoOC(ObjOC, HuboError) ' If Not HuboError Then ' ObjOC.Commit() ' Else ' ObjOC.RollBack() ' End If ' ObjOC.Dispose() 'End If CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") CargaProyectos() Next Else For Each item As ListItem In DdlSubProyecto.Items Dim CveSubProyectoNuevo As String = item.Value If CveSubProyectoNuevo.ToEntero > 0 Then Dim DrS As DataRow = GlobalDTSubProyectos(-1, item.Value.ToEntero)(0) Dim DtValida = DtSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", CveSubProyectoNuevo)) dr(0)("Accion") = 1 dr(0).AcceptChanges() End If Else Dim dr = DtSubProyectos.NewRow dr("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DrS("CveProyecto").ToString) dr("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", DrS("Proyecto")) dr("CveSubProyecto") = CveSubProyectoNuevo dr("SubProyecto") = item.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtSubProyectos.Rows.Add(dr) End If Dim CveProyectoFiltrada As Integer = -1 CargaGvSubProyectos() CargaSubProyectos(CveProyectoFiltrada) 'If CveUsuario > 0 Then ' Dim ObjOC As New ClsOC() ' Dim HuboError As Boolean = False ' ObjOC.IniciaTransacSQL() ' GuardaEstatusProyectosREQ(ObjOC, HuboError) ' GuardaEstatusProyectoOC(ObjOC, HuboError) ' If Not HuboError Then ' ObjOC.Commit() ' Else ' ObjOC.RollBack() ' End If ' ObjOC.Dispose() 'End If CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") CargaProyectos() End If Next End If End If ChkAsignarAllProyectos.Checked = False End Sub #Region "GV SUBPROYECTOS" Protected Sub GvSubProyectos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvSubProyectos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.FCDropDownList("DdlSubProyecto") IsNot Nothing Then e.Row.FCDropDownList("DdlProyecto").DataSource = GlobalDTProyectos(DdlEmpresaAsignaciones.SelectedValue.ToEntero) e.Row.FCDropDownList("DdlProyecto").DataBind() e.Row.FCDropDownList("DdlProyecto").SelectedValue = e.Row.DBCampo("CveProyecto") e.Row.FCDropDownList("DdlSubProyecto").DataSource = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, GlobalDTSubProyectos(-1, -1, DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}), GlobalDTSubProyectos(e.Row.DBCampo("CveProyecto").ToEntero)) e.Row.FCDropDownList("DdlSubProyecto").DataBind() e.Row.FCDropDownList("DdlSubProyecto").SelectedValue = e.Row.DBCampo("CveSubProyecto") End If End If End Sub Protected Sub GvSubProyectos_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvSubProyectos.RowDeleting Dim Dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", GvSubProyectos.Rows(e.RowIndex).DataKey("CveSubProyecto"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtSubProyectos.AcceptChanges() CargaGvSubProyectos() CargaSubProyectos() CargaProyectos() CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") End Sub Protected Sub GvSubProyectos_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvSubProyectos.RowEditing GvSubProyectos.EditIndex = e.NewEditIndex CargaSubProyectos() CargaGvSubProyectos() End Sub Protected Sub GvSubProyectos_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvSubProyectos.RowUpdating If DtSubProyectos.Rows(e.RowIndex)("CveSubProyecto").ToString = GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue Then 'No hago nada nomas quito el modo edicion GvSubProyectos.EditIndex = -1 Else Dim DtValida = DtSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() DtSubProyectos.Rows.RemoveAt(e.RowIndex) GvSubProyectos.EditIndex = -1 ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectos.Select(String.Format("CveSubProyecto = {0}", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() DtSubProyectos.Rows.RemoveAt(e.RowIndex) GvSubProyectos.EditIndex = -1 Else Alert("El SubProyecto ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else If DtSubProyectos.Rows(e.RowIndex)("Accion").ToString.ToEntero = 0 Then DtSubProyectos.Rows(e.RowIndex)("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue) DtSubProyectos.Rows(e.RowIndex)("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text) DtSubProyectos.Rows(e.RowIndex)("ViejoCveSubProyecto") = DtSubProyectos.Rows(e.RowIndex)("CveSubProyecto") DtSubProyectos.Rows(e.RowIndex)("CveSubProyecto") = GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue DtSubProyectos.Rows(e.RowIndex)("SubProyecto") = GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text DtSubProyectos.Rows(e.RowIndex)("Accion") = 4 ElseIf DtSubProyectos.Rows(e.RowIndex)("Accion").ToString.ToEntero = 4 Or DtSubProyectos.Rows(e.RowIndex)("Accion").ToString.ToEntero = 1 Then DtSubProyectos.Rows(e.RowIndex)("CveProyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedValue) DtSubProyectos.Rows(e.RowIndex)("Proyecto") = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero = 66, "-1", GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlProyecto").SelectedItem.Text) DtSubProyectos.Rows(e.RowIndex)("CveSubProyecto") = GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue DtSubProyectos.Rows(e.RowIndex)("SubProyecto") = GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text End If GvSubProyectos.EditIndex = -1 End If End If CargaGvSubProyectos() CargaProyectos() CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") 'Dim ClsUsuarios As New ClsSisUsuarios 'If ClsUsuarios.UpdateSubProyectos(CveUsuario, GvSubProyectos.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero) Then ' Alert("El SubProyecto se actualizo correctamente", TipoMensaje.MsgInformacion) ' GvSubProyectos.EditIndex = -1 'Else ' Alert("Ocurrió un problema al actualizar el SubProyecto. Por favor vuelva a intentar", TipoMensaje.MsgError) 'End If 'ClsUsuarios.Dispose() 'CargaGvSubProyectos() End Sub Protected Sub GvSubProyectos_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvSubProyectos.RowCancelingEdit GvSubProyectos.EditIndex = -1 CargaGvSubProyectos() End Sub #End Region #End Region #Region " ALMACENES " Private Function GetAlmacenesSinGV() As String Dim SB As New StringBuilder Dim prefix As String = "" For Each item As GridViewRow In GvAlmacenes.Rows SB.Append(prefix) SB.Append(item.DataKey("CveAlmacen")) prefix = "," Next If SB.Length > 0 Then Return $"CveAlmacen Not In ({SB.ToString})" Else Return "" End If End Function Private Sub CargarAlmacen() ddlAlmacen.Items.Clear() Dim AlmacenesDdl As String = GetAlmacenesSinGV() If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then If UsuarioControlado Then If AlmacenesDdl.Length > 0 Then ddlAlmacen.DataSource = DtAlmacenesControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue} And {AlmacenesDdl}") Else ddlAlmacen.DataSource = DtAlmacenesControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}") End If Else If AlmacenesDdl.Length > 0 Then ddlAlmacen.DataSource = GlobalDTAlmacen(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros(AlmacenesDdl) Else ddlAlmacen.DataSource = GlobalDTAlmacen(DdlEmpresaAsignaciones.SelectedValue.ToEntero) End If End If End If ddlAlmacen.DataBind() ddlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) ddlAlmacen.Items.Insert(1, New ListItem("Todos", "-2")) UpDatos.Update() End Sub Protected Sub LBAgregarAlmacen_Click(sender As Object, e As EventArgs) Dim DtValida = DtAlmacenes.FiltraParametros(String.Format("CveAlmacen = {0}", ddlAlmacen.SelectedValue)) If ddlAlmacen.SelectedValue = "-2" Then DtAlmacenes.Rows.Clear() For Each Item As ListItem In ddlAlmacen.Items Dim dr = DtAlmacenes.NewRow If Item.Value <> "-1" AndAlso Item.Value <> "-2" Then dr("CveAlmacen") = Item.Value dr("Almacen") = Item.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtAlmacenes.Rows.Add(dr) End If Next Else If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtAlmacenes.Select(String.Format("CveAlmacen = {0}", ddlAlmacen.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtAlmacenes.Select(String.Format("CveAlmacen = {0}", ddlAlmacen.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El Almacen ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtAlmacenes.NewRow dr("CveAlmacen") = ddlAlmacen.SelectedValue dr("Almacen") = ddlAlmacen.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtAlmacenes.Rows.Add(dr) End If End If CargaGVAlmacen() CargaAlmacenes() CargarAlmacen() End Sub Private Sub CargaDtAlmacen() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetAlmacen(CveUsuario, UsuarioActual.CveEmpresa) Then DtAlmacenes = ClsUsuarios.DtResultados.FiltraParametros(String.Format("CveUsuario = {0}", CveUsuario)) Else DtAlmacenes = Nothing Alert("Ocurrió un Error al cargar los Almacenes del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() DtAlmacenes.Columns.Add("ViejoCveAlmacen", GetType(Integer)) DtAlmacenes.Columns.Add("Accion", GetType(Integer)) CargaGVAlmacen() End Sub Private Sub CargaGVAlmacen() GvAlmacenes.DataSource = DtAlmacenes.FiltraParametros(String.Format("CveEmpresa = {0} And (isnull(Accion,0) < 2 Or Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) GvAlmacenes.DataBind() End Sub #Region "GV ALMACENES" Protected Sub GvAlmacenes_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAlmacenes.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowState = DataControlRowState.Edit Then e.Row.FCDropDownList("ddlAlmacen").DataSource = GlobalDTAlmacen(DdlEmpresaAsignaciones.SelectedValue.ToEntero) e.Row.FCDropDownList("ddlAlmacen").DataBind() e.Row.FCDropDownList("ddlAlmacen").SelectedValue = e.Row.DBCampo("CveAlmacen") End If End If End Sub Protected Sub GvAlmacenes_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvAlmacenes.RowDeleting Dim Dr = DtAlmacenes.Select(String.Format("CveAlmacen = {0}", GvAlmacenes.Rows(e.RowIndex).DataKey("CveAlmacen"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtAlmacenes.AcceptChanges() CargaGVAlmacen() CargarAlmacen() End Sub Protected Sub GvAlmacenes_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvAlmacenes.RowEditing GvAlmacenes.EditIndex = e.NewEditIndex CargaGVAlmacen() End Sub Protected Sub GvAlmacenes_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvAlmacenes.RowUpdating If DtAlmacenes.Rows(e.RowIndex)("CveAlmacen").ToString = GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue Then 'No hago nada nomas quito el modo edicion GvAlmacenes.EditIndex = -1 Else Dim DtValida = DtAlmacenes.FiltraParametros(String.Format("CveAlmacen = {0}", GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtAlmacenes.Select(String.Format("CveAlmacen = {0}", GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() DtAlmacenes.Rows.RemoveAt(e.RowIndex) GvAlmacenes.EditIndex = -1 ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtAlmacenes.Select(String.Format("CveAlmacen = {0}", GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() DtAlmacenes.Rows.RemoveAt(e.RowIndex) GvAlmacenes.EditIndex = -1 Else Alert("El SubProyecto ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else If DtAlmacenes.Rows(e.RowIndex)("Accion").ToString.ToEntero = 0 Then DtAlmacenes.Rows(e.RowIndex)("ViejoCveAlmacen") = DtAlmacenes.Rows(e.RowIndex)("CveAlmacen") DtAlmacenes.Rows(e.RowIndex)("CveAlmacen") = GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue DtAlmacenes.Rows(e.RowIndex)("Almacen") = GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedItem.Text DtAlmacenes.Rows(e.RowIndex)("Accion") = 4 ElseIf DtAlmacenes.Rows(e.RowIndex)("Accion").ToString.ToEntero = 4 Or DtAlmacenes.Rows(e.RowIndex)("Accion").ToString.ToEntero = 1 Then DtAlmacenes.Rows(e.RowIndex)("CveAlmacen") = GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue DtAlmacenes.Rows(e.RowIndex)("Almacen") = GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedItem.Text End If GvAlmacenes.EditIndex = -1 End If End If CargaGVAlmacen() CargarAlmacen() 'Dim ClsUsuarios As New ClsSisUsuarios 'If ClsUsuarios.UpdateAlmacen(CveUsuario, GvAlmacenes.Rows(e.RowIndex).FCDropDownList("DdlAlmacen").SelectedValue.ToEntero) Then ' Alert("El Almacen se actualizo correctamente", TipoMensaje.MsgInformacion) ' GvAlmacenes.EditIndex = -1 'Else ' Alert("Ocurrió un problema al actualizar el Almacen. Por favor vuelva a intentar", TipoMensaje.MsgError) 'End If 'ClsUsuarios.Dispose() 'CargaGVAlmacen() End Sub Protected Sub GvAlmacenes_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvAlmacenes.RowCancelingEdit GvAlmacenes.EditIndex = -1 CargaGVAlmacen() End Sub #End Region #End Region #Region " CUENTAS BANCARIAS " Private Sub CargaCuentasBancarias() DdlCuentasBancarias.Items.Clear() If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then If UsuarioControlado Then DdlCuentasBancarias.DataSource = DtCuentasBancariasControlado.FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}") Else DdlCuentasBancarias.DataSource = GlobalDTBancosCuentas(-1, -1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}", "", {"CveCuenta", "NumCuentaMoneda"}) End If End If DdlCuentasBancarias.DataBind() DdlCuentasBancarias.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaDtCuentasBancarias() DtCuentasBancarias = GlobalDTBancosCuentas(CveUsuario, -1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}") DtCuentasBancarias.Columns.Add("Accion", GetType(Integer)) CargaGvCuentasBancarias() End Sub Private Sub CargaGvCuentasBancarias() GVCuentasBancarias.DataSource = DtCuentasBancarias.FiltraParametros(String.Format("CveEmpresa = {0} And (isnull(Accion,0) < 2 Or Accion = 4)", DdlEmpresaAsignaciones.SelectedValue.ToEntero)) GVCuentasBancarias.DataBind() End Sub Protected Sub LBAgregarCuentaBancaria_Click(sender As Object, e As EventArgs) Dim DtValida = DtCuentasBancarias.FiltraParametros(String.Format("CveCuenta = {0}", DdlCuentasBancarias.SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtCuentasBancarias.Select(String.Format("CveCuenta = {0}", DdlCuentasBancarias.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtCuentasBancarias.Select(String.Format("CveCuenta = {0}", DdlCuentasBancarias.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("La cuenta bancaria ya se encuentra agregada.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtCuentasBancarias.NewRow dr("CveCuenta") = DdlCuentasBancarias.SelectedValue dr("NumCuenta") = DdlCuentasBancarias.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignaciones.SelectedValue dr("Accion") = 1 DtCuentasBancarias.Rows.Add(dr) End If CargaGvCuentasBancarias() End Sub Protected Sub GVCuentasBancarias_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVCuentasBancarias.RowDeleting Dim Dr = DtCuentasBancarias.Select(String.Format("CveCuenta = {0}", GVCuentasBancarias.Rows(e.RowIndex).DataKey("CveCuenta"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtCuentasBancarias.AcceptChanges() CargaGvCuentasBancarias() End Sub #End Region #Region " ESTATUS DE ÓRDENES DE COMPRA" Private Sub CargaEstatusOrdenesCompra() ' Exit Sub CreaGridEstatusUsuarioOC("Req") CreaGridEstatusUsuarioOC("OC") CargaGridEstatusUsuarioOC("Req") CargaGridEstatusUsuarioOC("OC") End Sub Private Sub CreaGridEstatusUsuarioOC(Tipo As String) Dim i As Integer = 2, x As Integer = 2 Dim ColumnasOC As Integer = GvEstatusUsuariosOC.Columns.Count Dim ColumnasReq As Integer = GvEstatusUsuariosREQ.Columns.Count Dim dtTemp As New DataTable dtTemp = GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"Tipo = '{Tipo}' ", "Orden") If Tipo = "Req" Then For x = 2 To GvEstatusUsuariosREQ.Columns.Count - 1 GvEstatusUsuariosREQ.Columns(x).HeaderText = "" GvEstatusUsuariosREQ.Columns(x).FooterText = "" GvEstatusUsuariosREQ.Columns(x).Visible = False Next End If x = 2 If Tipo = "OC" Then For x = 2 To GvEstatusUsuariosOC.Columns.Count - 1 GvEstatusUsuariosOC.Columns(x).HeaderText = "" GvEstatusUsuariosOC.Columns(x).FooterText = "" GvEstatusUsuariosOC.Columns(x).Visible = False Next End If For Each Row As DataRow In GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"Tipo = '{Tipo}' ", "Orden").Rows If Tipo = "OC" AndAlso i < ColumnasOC Then GvEstatusUsuariosOC.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosOC.Columns(i).FooterText = Row("CveEstatus").ToString GvEstatusUsuariosOC.Columns(i).Visible = True End If If Tipo = "Req" AndAlso i < ColumnasReq Then GvEstatusUsuariosREQ.Columns(i).HeaderText = Row("Estatus").ToString.ToUpper GvEstatusUsuariosREQ.Columns(i).FooterText = Row("CveEstatus").ToString GvEstatusUsuariosREQ.Columns(i).Visible = True End If i += 1 Next End Sub Protected Sub CargaGridEstatusUsuarioOC(Tipo As String) Dim ObjOC As New ClsOC 'Verifica si es usuario nuevo Dim ClaveEmpresa As Integer = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0, DdlEmpresaAsignaciones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) If CveUsuario > 0 Then If ObjOC.GetEstatusUsuarios(CveUsuario, -1, -1, -1, ClaveEmpresa) Then DTEstatusSubProyectos = ObjOC.DtResultados End If Else If ObjOC.GetEstatusUsuarioTemporal(CveUsuario, -1, -1, ClaveEmpresa) Then DTEstatusSubProyectos = ObjOC.DtResultados End If End If Dim sb As New StringBuilder If GvSubProyectos.DataKeys.Count > 0 Then For Each Key As DataKey In GvSubProyectos.DataKeys sb.AppendFormat("{0},", Key.Value) Next sb.Remove(sb.Length - 1, 1) Else sb.Append("0") End If Dim TmpDtSubProyectos As DataTable = GlobalDTSubProyectos(-1, -1, ClaveEmpresa).FiltraParametros($"CveSubProyecto In ({sb.ToString})", "Proyecto", {"CveProyecto", "Proyecto", "CveSubProyecto", "SubProyecto"}) If Tipo = "OC" Then GvEstatusUsuariosOC.DataSource = TmpDtSubProyectos GvEstatusUsuariosOC.DataBind() Else GvEstatusUsuariosREQ.DataSource = TmpDtSubProyectos GvEstatusUsuariosREQ.DataBind() End If ObjOC.Dispose() UpAsignaciones.Update() End Sub Private Sub GuardaEstatusProyectosREQ(ByRef ObjOC As ClsOC, ByRef HuboErrores As Boolean) For Each Row As GridViewRow In GvEstatusUsuariosREQ.Rows Dim CveSubProyecto As Integer = Row.DataKey("CveSubProyecto").ToEntero Dim CveProyecto As Integer = Row.DataKey("CveProyecto").ToEntero Dim r As Integer = 1 For i = 2 To Row.Cells.Count - 1 Dim CveEstatus As Integer = If(IsNumeric(GvEstatusUsuariosREQ.Columns(i).FooterText), GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero, 0) If CveEstatus > -1 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 ObjOC.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 If Not ObjOC.AddEstatusUsuarios(CveEstatus, CveSubProyecto, CveUsuario, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If End If r += 1 End If Next Next End Sub Private Sub GuardaEstatusProyectoOC(ByRef ObjOC As ClsOC, ByRef HuboErrores As Boolean) For Each Row As GridViewRow In GvEstatusUsuariosOC.Rows Dim CveSubProyecto As Integer = Row.DataKey("CveSubProyecto").ToEntero Dim CveProyecto As Integer = Row.DataKey("CveProyecto").ToEntero 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, -1) If CveEstatus > -1 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 ObjOC.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 If Not ObjOC.AddEstatusUsuarios(CveEstatus, CveSubProyecto, CveUsuario, True, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If End If r += 1 End If Next Next End Sub Protected Sub IbOpciones_Click(sender As Object, e As EventArgs) Dim imgBtn As LinkButton = DirectCast(sender, System.Web.UI.WebControls.LinkButton) Dim ObjOC As New ClsOC() Dim CveEstatus As Integer = imgBtn.CommandArgument.ToEntero Dim Row As GridViewRow = DirectCast(imgBtn.Parent.Parent, GridViewRow) 'Es el Row donde se encuenta el boton If CveEstatus > -1 Then Dim CveSubProyecto As Integer = Row.DataKey("CveSubProyecto").ToEntero chkMostrarLimites.Style("display") = If(GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltroPrimeroValor("TipoTermino", $"CveEstatusSiguiente = {CveEstatus}").ToString.ToEntero = 3, "none", "inline") If ObjOC.GetEstatusUsuarios(-1, CveEstatus, CveSubProyecto, -1, UsuarioActual.CveEmpresa) Then ddlSuperior.DataSource = ObjOC.DtResultados.FiltraParametros("", "Nombre DESC", {"CveUsuario", "Nombre", "CveSubProyecto"}) ddlSuperior.DataBind() ddlSuperior.Items.Insert(0, New ListItem("Todos los Superiores", "-1")) End If Try ddlSuperior.SelectedValue = hdnCveSuperior.Value Catch ex As Exception End Try tblSuperior.Visible = True Else tblSuperior.Visible = False End If UPSuperior.Update() UpAsignaciones.Update() ObjOC.Dispose() RegistraScript("$('#ImgAddOpc').click();chkMostrarLimitesCambio();") 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) Dim CveSubProyecto As Integer = CType(ddlSuperior.DataSource, DataTable).FiltroPrimeroValor("CveSubProyecto", $"CveUsuario={CveSuperior}").ToEntero Dim CveEstatusUsuario As Integer = hdnCveEstatusUsuarios.Value.ToEntero If Me.CveUsuario > 0 Then If CveEstatusUsuario = -1 Then If ObjOC.AddEstatusUsuarios(CveEstatusUsuario, CveSubProyecto, hdnCveUsuario.Value.ToEntero, True, CveSuperior, LimiteSuperior, LimiteInferior, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then RegistraScript($"{IDCellYellow.Value}.style.background-color='yellow'") End If Else ObjOC.UpdateEstatusUsuarios(CveEstatusUsuario, CveSuperior, LimiteSuperior, LimiteInferior) End If End If ObjOC.Dispose() If tabEstatusUsuarios.ActiveTabIndex = 0 Then CargaGridEstatusUsuarioOC("Req") Else CargaGridEstatusUsuarioOC("OC") End If End Sub #Region "GRIDVIEW" Protected Sub GvEstatusUsuariosREQ_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstatusUsuariosREQ.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim tmpT As DataTable = DTEstatusSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto").ToString)) For i As Integer = 2 To GvEstatusUsuariosREQ.Columns.Count - 1 Dim CveEstatus As Integer = GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero Dim idIndex As Integer = i - 1 If CveEstatus > -1 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox($"chkEstatus{idIndex}") Dim ibOpciones As LinkButton = e.Row.FCLinkButton($"ibOpciones{idIndex}") Dim ImgClasificaciones As LinkButton = e.Row.FCLinkButton($"ImgClasificaciones{idIndex}") Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField($"hdnCveEstatusUsuarios{idIndex}") Dim lblSuperior As Label = e.Row.FCLabel($"lblSuperior{idIndex}") Dim lblLimites As Label = e.Row.FCLabel($"lblLimites{idIndex}") Dim dtTemp As New DataTable Dim existenPermisosActuales As Boolean dtTemp = GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"CveEstatus = {CveEstatus}") If dtTemp.Rows.Count > 0 Then existenPermisosActuales = True ibOpciones.CommandArgument = GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"CveEstatus = {CveEstatus}").Rows(0)("CveEstatusSiguiente").ToString Else existenPermisosActuales = False End If Dim RowESP As DataRowCollection = tmpT.FiltraParametros($"CveEstatus = {CveEstatus}").Rows Dim CveEstatusUsuarios As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveEstatusUsuarios")), RowESP(0)("CveEstatusUsuarios").ToString.ToEntero, -1) Dim LimiteInferior As Decimal = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("LimiteInferior")), RowESP(0)("LimiteInferior").ToString.ToDecimal, -1) Dim LimiteSuperior As Decimal = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("LimiteSuperior")), RowESP(0)("LimiteSuperior").ToString.ToDecimal, -1) Dim CveSuperior As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveSuperior")), RowESP(0)("CveSuperior").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveUsuario")), RowESP(0)("CveUsuario").ToString.ToEntero, -1) Dim TipoTermino As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("TipoTermino")), RowESP(0)("TipoTermino").ToString.ToEntero, -1) ' 0. supervisada, 1. autorizada, 2. rechazada If existenPermisosActuales Then If RowESP.Count > 0 Then chkEstatus.Checked = True chkEstatus.Attributes.Add("onclick", String.Format("javascript:chk1Change(this, '{0}');", ibOpciones.ClientID)) hdnCveEstatusUsuarios.Value = RowESP(0)("CveEstatusUsuarios").ToString ibOpciones.Style.Add("display", "inline") ImgClasificaciones.Style.Add("display", "inline") ImgClasificaciones.CommandArgument = CveEstatusUsuarios.ToString 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 = RowESP(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.LightGoldenrodYellow If DTEstatusSubProyectos.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") ImgClasificaciones.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("CveSubProyecto").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 Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" ibOpciones.Style.Add("display", "none") ImgClasificaciones.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("CveSubProyecto").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 'VALIDA LOS ESTATUS QUE TIENE EL USUARIO If DTEstatusOCAsignar IsNot Nothing AndAlso DTEstatusOCAsignar.Rows.Count > 0 Then Dim dtReq = DTEstatusOCAsignar.FiltraParametros("Tipo='Req'") Dim dtValida = dtReq.FiltraParametros($"CveEstatus={CveEstatus}") Dim Habilitado As Boolean = (dtValida IsNot Nothing AndAlso dtValida.Rows.Count = 1) chkEstatus.Enabled = Habilitado ibOpciones.Enabled = Habilitado ImgClasificaciones.Enabled = Habilitado 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 = DTEstatusSubProyectos.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto").ToString)) For i As Integer = 2 To GvEstatusUsuariosOC.Columns.Count - 1 Dim CveEstatus As Integer = GvEstatusUsuariosOC.Columns(i).FooterText.ToEntero Dim idIndex As Integer = i - 1 If CveEstatus > -1 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox($"chkEstatus{idIndex}") Dim ibOpciones As LinkButton = e.Row.FCLinkButton($"ibOpciones{idIndex}") Dim ImgClasificaciones As LinkButton = e.Row.FCLinkButton($"ImgClasificaciones{idIndex}") Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField($"hdnCveEstatusUsuarios{idIndex}") Dim lblSuperior As Label = e.Row.FCLabel($"lblSuperior{idIndex}") Dim lblLimites As Label = e.Row.FCLabel($"lblLimites{idIndex}") Dim dtTemp As New DataTable Dim existenPermisosActuales As Boolean dtTemp = GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"CveEstatus = {CveEstatus}") If dtTemp.Rows.Count > 0 Then existenPermisosActuales = True ibOpciones.CommandArgument = GlobalDTOCEstatus(DdlEmpresaAsignaciones.SelectedValue.ToEntero).FiltraParametros($"CveEstatus = {CveEstatus}").Rows(0)("CveEstatusSiguiente").ToString Else existenPermisosActuales = False End If Dim RowESP As DataRowCollection = tmpT.FiltraParametros($"CveEstatus = {CveEstatus}").Rows Dim CveEstatusUsuarios As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveEstatusUsuarios")), RowESP(0)("CveEstatusUsuarios").ToString.ToEntero, -1) Dim LimiteInferior As Decimal = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("LimiteInferior")), RowESP(0)("LimiteInferior").ToString.ToDecimal, -1) Dim LimiteSuperior As Decimal = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("LimiteSuperior")), RowESP(0)("LimiteSuperior").ToString.ToDecimal, -1) Dim CveSuperior As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveSuperior")), RowESP(0)("CveSuperior").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveUsuario")), RowESP(0)("CveUsuario").ToString.ToEntero, -1) Dim TipoTermino As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("TipoTermino")), RowESP(0)("TipoTermino").ToString.ToEntero, -1) ' 0. supervisada, 1. autorizada, 2. rechazada If existenPermisosActuales Then If RowESP.Count > 0 Then chkEstatus.Checked = True chkEstatus.Attributes.Add("onclick", String.Format("javascript:chk1Change(this, '{0}');", ibOpciones.ClientID)) hdnCveEstatusUsuarios.Value = RowESP(0)("CveEstatusUsuarios").ToString ibOpciones.Style.Add("display", "inline") ImgClasificaciones.Style.Add("display", "inline") ImgClasificaciones.CommandArgument = CveEstatusUsuarios.ToString 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 = RowESP(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.LightGoldenrodYellow If DTEstatusSubProyectos.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") ImgClasificaciones.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("CveSubProyecto").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 Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" ibOpciones.Style.Add("display", "none") ImgClasificaciones.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("CveSubProyecto").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 'VALIDA LOS ESTATUS QUE TIENE EL USUARIO If DTEstatusOCAsignar IsNot Nothing AndAlso DTEstatusOCAsignar.Rows.Count > 0 Then Dim dtOC = DTEstatusOCAsignar.FiltraParametros("Tipo='OC'") Dim dtValida = dtOC.FiltraParametros($"CveEstatus={CveEstatus}") Dim Habilitado As Boolean = (dtValida IsNot Nothing AndAlso dtValida.Rows.Count = 1) chkEstatus.Enabled = Habilitado ibOpciones.Enabled = Habilitado ImgClasificaciones.Enabled = Habilitado End If End If Next End If End Sub #End Region #End Region #Region "ESTATUS DE ORDENES DE SERVICIO" Private Sub CargaEstatusOS() CreaGridEstatusOS() CargaGridEstatusUsuarioOS() End Sub Private Sub CreaGridEstatusOS() Dim ObjOS As New ClsOS Dim i As Integer = 2, x As Integer = 2 Dim ColumnasOS As Integer = GvOS.Columns.Count DTEstatusOS = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) For x = 2 To GvOS.Columns.Count - 1 GvOS.Columns(x).HeaderText = "" GvOS.Columns(x).FooterText = "" GvOS.Columns(x).Visible = False Next For Each Row As DataRow In DTEstatusOS.Rows If i < ColumnasOS Then GvOS.Columns(i).HeaderText = Row("EstatusOrdenServicio").ToString.ToUpper GvOS.Columns(i).FooterText = Row("CveEstatusOrdenServicio").ToString GvOS.Columns(i).Visible = True End If i += 1 Next End Sub Protected Sub CargaGridEstatusUsuarioOS() Dim ObjOS As New ClsOS 'Verifica si es usuario nuevo Dim ClaveEmpresa As Integer = If(DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0, DdlEmpresaAsignaciones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) If CveUsuario > 0 Then If ObjOS.GetEstatusUsuarios(CveUsuario, ClaveEmpresa) Then DTEstatusUsuarioOS = ObjOS.DtResultados End If Else End If Dim sb As New StringBuilder If GvSubProyectos.DataKeys.Count > 0 Then For Each Key As DataKey In GvSubProyectos.DataKeys sb.AppendFormat("{0},", Key.Value) Next sb.Remove(sb.Length - 1, 1) Else sb.Append("0") End If Dim TmpDtSubProyectos As DataTable = GlobalDTSubProyectos(-1, -1, ClaveEmpresa).FiltraParametros($"CveSubProyecto In ({sb.ToString})", "Proyecto", {"CveProyecto", "Proyecto", "CveSubProyecto", "SubProyecto"}) GvOS.DataSource = TmpDtSubProyectos GvOS.DataBind() ObjOS.Dispose() UpAsignaciones.Update() End Sub Private Sub GvOS_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvOS.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim tmpT As DataTable = DTEstatusUsuarioOS.FiltraParametros(String.Format("CveSubProyecto = {0}", e.Row.DBCampo("CveSubProyecto").ToString)) For i As Integer = 2 To GvOS.Columns.Count - 1 Dim CveEstatus As Integer = GvOS.Columns(i).FooterText.ToEntero Dim idIndex As Integer = i - 1 If CveEstatus > 0 Then Dim chkEstatus As CheckBox = e.Row.FCCheckBox($"chkEstatus{idIndex}") Dim hdnCveEstatusUsuarios As HiddenField = e.Row.FCHiddenField($"hdnCveEstatusUsuarios{idIndex}") Dim dtTemp As New DataTable Dim existenPermisosActuales As Boolean dtTemp = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltraParametros($"CveEstatusOrdenServicio = {CveEstatus}") If dtTemp.Rows.Count > 0 Then existenPermisosActuales = True Else existenPermisosActuales = False End If Dim RowESP As DataRowCollection = tmpT.FiltraParametros($"CveEstatusOrdenServicio = {CveEstatus}").Rows Dim CveEstatusUsuarios As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveEstatusUsuario")), RowESP(0)("CveEstatusUsuario").ToString.ToEntero, -1) Dim CveUsuario As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("CveUsuario")), RowESP(0)("CveUsuario").ToString.ToEntero, -1) Dim TipoEstatus As Integer = If(RowESP.Count > 0 AndAlso Not IsDBNull(RowESP(0)("TipoEstatus")), RowESP(0)("TipoEstatus").ToString.ToEntero, -1) If existenPermisosActuales Then If RowESP.Count > 0 Then chkEstatus.Checked = True 'chkEstatus.Attributes.Add("onclick", String.Format("javascript:chk1Change(this, '{0}');", ibOpciones.ClientID)) hdnCveEstatusUsuarios.Value = RowESP(0)("CveEstatusUsuario").ToString 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';") Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" 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("CveSubProyecto").ToString) End If Else chkEstatus.Checked = False hdnCveEstatusUsuarios.Value = "-1" 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("CveSubProyecto").ToString) End If End If Next End If End Sub Private Sub GuardaEstatusOS(ByRef ObjOS As ClsOS, ByRef HuboErrores As Boolean) For Each Row As GridViewRow In GvOS.Rows Dim CveSubProyecto As Integer = Row.DataKey("CveSubProyecto").ToEntero Dim CveProyecto As Integer = Row.DataKey("CveProyecto").ToEntero Dim r As Integer = 1 For i = 0 To Row.Cells.Count - 1 Dim CveEstatus As Integer = If(IsNumeric(GvOS.Columns(i).FooterText), GvOS.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 ObjOS.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero, -1, -1) 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 If Not ObjOS.AddEstatusUsuarios(CveEstatus, CveUsuario, CveSubProyecto, UsuarioActual.CveUsuario) Then HuboErrores = True Exit For End If End If r += 1 End If Next Next End Sub #End Region #Region " ESTATUS ORDENES DE COMPRA - CLASIFICACIONES USUARIO OC " Private Sub InicializaEstasClasificacionesOC() End Sub Protected Sub ImgClasificaciones_Click(sender As Object, e As EventArgs) RegistraScript("$('#DivClasificacionesOC').modal('show')") CveEstatusUsuarioOC = CType(sender, LinkButton).CommandArgument.ToEntero DdlClasificacionesOC.DataSource = GlobalDTClasificaciones(DdlEmpresaAsignaciones.SelectedValue.ToEntero) DdlClasificacionesOC.DataBind() DdlClasificacionesOC.Items.Insert(0, New ListItem("Seleccione", "-1")) TxtLimiteInferiorClasificacionOC.Text = "" TxtLimiteSuperiorClasificacionOC.Text = "" UpOCClasificaciones.Update() CargaGVOCClasificaciones() End Sub Private Sub CargaGVOCClasificaciones() Dim ObjOC As New ClsOC If ObjOC.GetEstatusUsuariosClasificaciones(CveEstatusUsuarioOC, -1, -1, -1, DdlEmpresaAsignaciones.SelectedValue.ToEntero) Then GVOCClasificaciones.DataSource = ObjOC.DtResultados End If ObjOC.Dispose() GVOCClasificaciones.DataBind() UpOCClasificaciones.Update() End Sub Protected Sub LbAgregarClasificacionOC_Click(sender As Object, e As EventArgs) Dim CveClasificacion As Integer = DdlClasificacionesOC.SelectedValue.ToEntero Dim LimiteInferior As Decimal = TxtLimiteInferiorClasificacionOC.Text.ToDecimal Dim LimiteSuperior As Decimal = TxtLimiteSuperiorClasificacionOC.Text.ToDecimal Dim CveSuperior As Integer = -1 Dim CveEstatusUsuario As Integer = CveEstatusUsuarioOC If CveClasificacion > 0 Then Dim ObjOC As New ClsOC ObjOC.AddEstatusUsuariosClasificaciones(CveEstatusUsuario, CveClasificacion, CveSuperior, LimiteInferior, LimiteSuperior, UsuarioActual.CveUsuario) ObjOC.Dispose() CargaGVOCClasificaciones() Else Alert("Debe seleccionar una clasificación", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub GVOCClasificaciones_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVOCClasificaciones.RowDeleting Dim Gvr = GVOCClasificaciones.Rows(e.RowIndex) Dim ObjOC As New ClsOC If ObjOC.RemoveEstatusUsuariosClasificaciones(Gvr.DataKey("CveEstatusUsuariosClasificacion").ToString.ToEntero) Then End If ObjOC.Dispose() CargaGVOCClasificaciones() End Sub #End Region #End Region #Region "TAB - ACCESO MODULOS" Public Sub CargaModulosAcceso() Dim ObjPermisos As New ClsSisUsuarios If ObjPermisos.GetUsuariosModulos(CveUsuario, UsuarioActual.CveEmpresa, If(UsuarioControlado, UsuarioActual.CveUsuario, -1), CvePlataforma:=1) Then DTModulos = ObjPermisos.DtResultados.FiltraParametros("Liga <> '' ") Else DTModulos = Nothing End If ObjPermisos.Dispose() CargaGridModulosAcceso() End Sub Private Sub CargaGridModulosAcceso() GvModulosAcceso.DataSource = DTModulos GvModulosAcceso.DataBind() If (GvModulosAcceso.Rows.Count > 0) Then GvModulosAcceso.UseAccessibleHeader = True GvModulosAcceso.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGV();") End If UpDatos.Update() End Sub Protected Sub GvModulosAcceso_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvModulosAcceso.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If (e.Row.DBCampo("Permitir")) = "0" Then e.Row.FCCheckBox("ChkDenegar").Checked = True End If If (e.Row.DBCampo("CveModuloAcceso")) <> "" Then e.Row.FCCheckBox("ChkDenegar").Enabled = True e.Row.Cells(3).CssClass = "bg-yellow" Else e.Row.FCCheckBox("ChkPermitir").Enabled = True If e.Row.DBCampo("Permitir") = "1" Then e.Row.FCCheckBox("ChkPermitir").Checked = True End If End If End Sub Private Sub GuardaModulosAcceso() Dim ClsUsuarios As New ClsSisUsuarios ClsUsuarios.IniciaTransacSQL() Dim TieneError As Boolean = False For Each Row As GridViewRow In GvModulosAcceso.Rows 'checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados If Row.DataKey("CveModuloAcceso") <> "" Then If Not ClsUsuarios.UpdateUsuariosModulos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveModulo").ToEntero, Not Row.FCCheckBox("ChkDenegar").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If Else 'permisos que el rol, no le está otorgando, y serán únicos para el usuario If Not ClsUsuarios.UpdateUsuariosModulos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveModulo").ToEntero, Row.FCCheckBox("ChkPermitir").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Next If TieneError Then ClsUsuarios.RollBack() Alert("Ocurrió un error al guardar los permisos", TipoMensaje.MsgError) Else ClsUsuarios.Commit() Alert("La información se ha guardado correctamente", TipoMensaje.MsgInformacion) End If ClsUsuarios.Dispose() End Sub Private Sub EliminarModulosAcceso() Dim ObjUsuario As New ClsSisUsuarios() If ObjUsuario.RemoveUsuariosModulos(CveUsuario, UsuarioActual.CveUsuario) Then Alert("Los Permisos se eliminaron correctamente.", TipoMensaje.MsgInformacion, "window.location.href=""/Sistemas/Usuarios.aspx""") End If ObjUsuario.Dispose() End Sub #End Region #Region "TAB - PERMISO MODULOS" Public Sub CargaModulosPermisos() Dim ObjProcesos As New ClsSisUsuarios If ObjProcesos.GetUsuariosProcesos(CveUsuario, If(UsuarioControlado, UsuarioActual.CveUsuario, -1)) Then DTModulos = ObjProcesos.DtResultados Else GvModulosPermiso.DataSource = Nothing End If ObjProcesos.Dispose() If ViewState("Orden").ToString() <> String.Empty Then CargaGridModulosPermisos(ViewState("Orden").ToString()) Else CargaGridModulosPermisos("") End If End Sub Private Sub CargaGridModulosPermisos(ByVal Orden As String) If Orden <> String.Empty Then Dim DV As New DataView(DTModulos, "", Orden, DataViewRowState.CurrentRows) GvModulosPermiso.DataSource = DV.ToTable() DV.Dispose() Else GvModulosPermiso.DataSource = DTModulos End If GvModulosPermiso.DataBind() UpDatos.Update() End Sub Protected Sub GvModulosPermiso_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvModulosPermiso.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'cuando el Módulo es heredado del rol If (e.Row.DBCampo("CveModuloAcceso")) <> "" Then e.Row.Cells(0).CssClass = "bg-yellow" ' = "bg-font-yellow" '.BackColor = Color.Gold End If 'cuando el Módulo es heredado del Rol If (e.Row.DBCampo("CveModuloUsuarioAcceso")) <> "" Then e.Row.Cells(0).CssClass = "bg-purple-plum" End If 'cuando el Proceso es heredado del Rol If (e.Row.DBCampo("CveProcesoAcceso")) <> "" Then e.Row.FCCheckBox("ChkD").Enabled = True e.Row.Cells(3).CssClass = "bg-yellow" Else e.Row.FCCheckBox("ChkP").Enabled = True If e.Row.DBCampo("Permitir") = "1" Then e.Row.FCCheckBox("ChkP").Checked = True End If If (e.Row.DBCampo("Permitir")) = "0" Then e.Row.FCCheckBox("ChkD").Checked = True End If End If End Sub Private Sub GuardaModulosPermiso() Dim ClsUsuarios As New ClsSisUsuarios ClsUsuarios.IniciaTransacSQL() Dim TieneError As Boolean = False For Each Row As GridViewRow In GvModulosPermiso.Rows 'checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados If Row.DataKey("CveProcesoAcceso") <> "" Then If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If Else 'permisos que el rol, no le está otorgando, y serán únicos para el usuario If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If End If Next If TieneError Then Alert("Ocurrió un error al guardar los permisos", TipoMensaje.MsgError) ClsUsuarios.RollBack() Else Alert("La información se ha guardado", TipoMensaje.MsgInformacion) ClsUsuarios.Commit() End If ClsUsuarios.Dispose() End Sub Private Sub EliminarProcesos() Dim ObjUsuario As New ClsSisUsuarios() If ObjUsuario.RemoveUsuariosProcesos(CveUsuario, UsuarioActual.CveUsuario) Then Alert("Los Procesos se eliminaron correctamente.", TipoMensaje.MsgInformacion, "window.location.href=""/Sistemas/Usuarios.aspx""") End If ObjUsuario.Dispose() End Sub #End Region #Region "TAB - ACCESO EMPRESAS" Private Sub CargaEmpresas() Dim ClsUsuarios As New ClsSisUsuarios 'Se cargan las empresas que tenga acceso el Usuario Actual, que son las que el puede dar acceso o no. ' Si el usuario es rol = 1 se cargan todas las empresas Dim Tipo = If(UsuarioActual.CveRol = 1, -1, UsuarioActual.CveUsuario) If ClsUsuarios.GetEmpresasAcceso(Tipo, CveUsuario) Then DtEmpresas = ClsUsuarios.DtResultados If DtEmpresas.Rows.Count > 1 Then TabAccesoEmpresas.Visible = True 'For Each Dr As DataRow In DtEmpresas.Rows ' If CveUsuario = -1 AndAlso Dr("CveEmpresa").ToString.ToEntero = UsuarioActual.CveEmpresa Then Dr("CveEmpresaUsuario") = UsuarioActual.CveEmpresa 'Next Else TabAccesoEmpresas.Visible = False End If Else DtEmpresas = Nothing End If ClsUsuarios.Dispose() CargaGridPermisosEmpresa() End Sub Private Sub CargaGridPermisosEmpresa() GvPermisosEmpresa.DataSource = DtEmpresas GvPermisosEmpresa.DataBind() UpDatos.Update() End Sub Protected Sub GvPermisosEmpresa_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPermisosEmpresa.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then ' ANTERIOR - COMENTADO ISRAEL PIÑA - 11 ENERO 2016 'Dim DT As DataTable = DtEmpresasUsuario.FiltraParametros(String.Format("isnull(Accion,0) < 2 AND CveEmpresa = {0}", e.Row.DBCampo("CveEmpresa").ToEntero)) 'If DT IsNot Nothing AndAlso DT.Rows.Count > 0 Then ' e.Row.FCCheckBox("ChkPermitirEmpresa").Checked = True 'End If If e.Row.DBCampo("CveEmpresaUsuario").ToString <> "" Then e.Row.FCCheckBox("ChkPermitirEmpresa").Checked = True End If End If End Sub Private Sub GuardarAccesoEmpresas() Dim ClsUsuarios As New ClsSisUsuarios ClsUsuarios.IniciaTransacSQL() Dim ErrorEmpresa = False Dim TienePermiso = False For Each gvr As GridViewRow In GvPermisosEmpresa.Rows TienePermiso = If(gvr.FCHiddenField("HdnPermiso").Value.ToEntero > 0, True, False) If TienePermiso <> gvr.FCCheckBox("ChkPermitirEmpresa").Checked Then 'Si tenia permiso se elimina If TienePermiso Then If Not ClsUsuarios.RemoveEmpresasAcceso(CveUsuario, gvr.DataKey("CveEmpresa").ToEntero, UsuarioActual.CveUsuario) Then ErrorEmpresa = True Exit For End If 'si no tenia permiso se agrega Else If Not ClsUsuarios.AddUsuariosEmpresas(CveUsuario, gvr.DataKey("CveEmpresa").ToEntero, UsuarioActual.CveUsuario) Then ErrorEmpresa = True Exit For End If End If End If Next If Not ErrorEmpresa Then Alert("Los cambios en 'Acceso Empresas' Se realizaron con exito", TipoMensaje.MsgInformacion) ClsUsuarios.Commit() Else Alert("Ocurrió un error al guardar Los cambios en 'Acceso Empresas'", TipoMensaje.MsgError) ClsUsuarios.RollBack() End If ClsUsuarios.Dispose() End Sub Private Sub EliminarEmpresa() Dim ObjUsuario As New ClsSisUsuarios() If ObjUsuario.RemoveUsuariosEmpresas(CveUsuario, UsuarioActual.CveUsuario) Then Alert("Las Empresas se eliminaron correctamente.", TipoMensaje.MsgInformacion, "window.location.href=""/Sistemas/Usuarios.aspx""") End If ObjUsuario.Dispose() End Sub Protected Sub ChkPermitirEmpresa_CheckedChanged(sender As Object, e As EventArgs) Dim check = CType(sender, CheckBox) Dim pCveEmpresa = CType(check.NamingContainer, GridViewRow).FCHiddenField("HdnCveEmpresa").Value Dim pEmpresa = CType(check.NamingContainer, GridViewRow).FCHiddenField("HdnEmpresa").Value If check.Checked Then If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", pCveEmpresa)).Rows.Count > 0 Then Dim dr = DtEmpresasUsuario.Select(String.Format("CveEmpresa = {0}", pCveEmpresa))(0) If dr("Accion").ToString = "2" Then dr("Accion") = 0 ElseIf dr("Accion").ToString = "" Or dr("Accion").ToString = "3" Then dr("Accion") = 1 End If dr.AcceptChanges() Else Dim dr = DtEmpresasUsuario.NewRow dr("CveEmpresa") = pCveEmpresa dr("Empresa") = pEmpresa dr("Accion") = 1 DtEmpresasUsuario.Rows.Add(dr) End If Else Dim dr = DtEmpresasUsuario.Select(String.Format("CveEmpresa = {0}", pCveEmpresa))(0) If dr("Accion").ToString = "1" Then dr("Accion") = 3 End If If dr("Accion").ToString = "" Then dr("Accion") = 2 End If dr.AcceptChanges() End If 'EMPRESAS ASIGNAR If DTEmpresasAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND TienePermiso = -1", pCveEmpresa)).Rows.Count > 0 Then Dim Dr1 = DTEmpresasAsignar.Select($"CveEmpresa = {pCveEmpresa}") DTEmpresasAsignar.Rows.Remove(Dr1(0)) ElseIf DTEmpresasAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND TienePermiso = 2", pCveEmpresa)).Rows.Count > 0 Then Dim Dr1 = DTEmpresasAsignar.Select($"CveEmpresa = {pCveEmpresa} AND TienePermiso = 2") Dr1(0)("TienePermiso") = -2 Else Dim Dr1 = DTEmpresasAsignar.NewRow Dr1("CveEmpresa") = pCveEmpresa Dr1("Empresa") = pEmpresa Dr1("TienePermiso") = -1 DTEmpresasAsignar.Rows.Add(Dr1) End If DTEmpresasAsignar.AcceptChanges() CargaEmpresasAcceso() UpDatos.Update() End Sub Private Sub CargaEmpresasAcceso() DdlEmpresa.Items.Clear() DdlEmpresa.DataSource = DtEmpresasUsuario.FiltraParametros(String.Format("isnull(Accion,0) < 2")) DdlEmpresa.DataBind() DdlEmpresa.Items.Insert(0, New ListItem("Seleccione", "-1")) If CveUsuario = -1 Then DdlEmpresa.SelectedValueExist(UsuarioActual.CveEmpresa.ToString) Else DdlEmpresa.SelectedValueExist(CveEmpresa.ToString) End If UpEmpresa.Update() DdlEmpresaAsignaciones.Items.Clear() DdlEmpresaAsignaciones.DataSource = DtEmpresasUsuario.FiltraParametros(String.Format("isnull(Accion,0) < 2")) DdlEmpresaAsignaciones.DataBind() DdlEmpresaAsignaciones.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlEmpresaAsignaciones.SelectedValueExist(CveEmpresa.ToString) UpEmpresaAsignaciones.Update() CargaEmpresasAsignaciones() DdlSubProyectos.SelectedValueExist(CveSubProyecto) DdlEmpresaAsignarPermiso.Items.Clear() DdlEmpresaAsignarPermiso.DataSource = DTEmpresasAsignar.FiltraParametros(String.Format("ISNULL(TienePermiso,0) > 0")) DdlEmpresaAsignarPermiso.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlEmpresaAsignarPermiso.DataBind() DdlEmpresaAsignarPermiso.SelectedValueExist(CveEmpresa.ToString) UpFiltrosAsignarPermiso.Update() CargaGvEmpresasAsignar() CargaAsignaciones() End Sub Private Sub LnkRenviaCorreo_Click(sender As Object, e As EventArgs) Handles LnkRenviaCorreo.Click EnviaCorreo() Alert("Correo enviado con exito.", TipoMensaje.MsgInformacion) End Sub #End Region #Region "TAB - RESTRICCIONES ACCESO " Private Sub InicializaRestricciones() CargaDtRestricciones() End Sub Protected Sub LbAgregarModal_Click(sender As Object, e As EventArgs) RegistraScript("$('#DivAgregarRestricción').modal('show')") CveRestriccion = -1 TxtIP.Text = "" TxtMAC.Text = "" ChkAplicaRestriccion.Checked = False DivRestricciones.Visible = False TxtHoraInicio0.Text = "00:00" TxtHoraInicio1.Text = "00:00" TxtHoraInicio2.Text = "00:00" TxtHoraInicio3.Text = "00:00" TxtHoraInicio4.Text = "00:00" TxtHoraInicio5.Text = "00:00" TxtHoraInicio6.Text = "00:00" TxtHoraInicio7.Text = "00:00" TxtHoraFin0.Text = "23:59" TxtHoraFin1.Text = "23:59" TxtHoraFin2.Text = "23:59" TxtHoraFin3.Text = "23:59" TxtHoraFin4.Text = "23:59" TxtHoraFin5.Text = "23:59" TxtHoraFin6.Text = "23:59" TxtHoraFin7.Text = "23:59" ChkTodos.Checked = False ChkLunes.Checked = False ChkMartes.Checked = False ChkMiercoles.Checked = False ChkJueves.Checked = False ChkViernes.Checked = False ChkSabado.Checked = False ChkDomingo.Checked = False ChkTodos_CheckedChanged(ChkTodos, EventArgs.Empty) BtnAgregarRestriccion.Text = "Agregar Restricción" UpAgregarRestriccion.Update() End Sub Private Sub CargaDtRestricciones() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.UsuariosRestriccionesAccesoGet(CveUsuario, -1) Then DtRestricciones = ClsUsuarios.DtResultados Else DtRestricciones = Nothing Alert("Ocurrió un error al cargar las restricciones de acceso del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() DtRestricciones.Columns.Add("Accion", GetType(Integer)) CargaGvRestricciones() End Sub Private Sub CargaGvRestricciones() GvRestricciones.DataSource = DtRestricciones.FiltraParametros("isnull(Accion,0) < 2 OR Accion = 4") GvRestricciones.DataBind() UpAccesos.Update() End Sub Protected Sub ChkAplicaRestriccion_CheckedChanged(sender As Object, e As EventArgs) DivRestricciones.Visible = ChkAplicaRestriccion.Checked End Sub Protected Sub ChkTodos_CheckedChanged(sender As Object, e As EventArgs) DivHI0.Visible = ChkTodos.Checked DivHF0.Visible = ChkTodos.Checked ChkLunes.Checked = ChkTodos.Checked ChkLunes_CheckedChanged(ChkLunes, EventArgs.Empty) ChkMartes.Checked = ChkTodos.Checked ChkMartes_CheckedChanged(ChkMartes, EventArgs.Empty) ChkMiercoles.Checked = ChkTodos.Checked ChkMiercoles_CheckedChanged(ChkMiercoles, EventArgs.Empty) ChkJueves.Checked = ChkTodos.Checked ChkJueves_CheckedChanged(ChkJueves, EventArgs.Empty) ChkViernes.Checked = ChkTodos.Checked ChkViernes_CheckedChanged(ChkViernes, EventArgs.Empty) ChkSabado.Checked = ChkTodos.Checked ChkSabado_CheckedChanged(ChkSabado, EventArgs.Empty) ChkDomingo.Checked = ChkTodos.Checked ChkDomingo_CheckedChanged(ChkDomingo, EventArgs.Empty) End Sub Protected Sub ChkLunes_CheckedChanged(sender As Object, e As EventArgs) DivHI1.Visible = ChkLunes.Checked DivHF1.Visible = ChkLunes.Checked End Sub Protected Sub ChkMartes_CheckedChanged(sender As Object, e As EventArgs) DivHI2.Visible = ChkMartes.Checked DivHF2.Visible = ChkMartes.Checked End Sub Protected Sub ChkMiercoles_CheckedChanged(sender As Object, e As EventArgs) DivHI3.Visible = ChkMiercoles.Checked DivHF3.Visible = ChkMiercoles.Checked End Sub Protected Sub ChkJueves_CheckedChanged(sender As Object, e As EventArgs) DivHI4.Visible = ChkJueves.Checked DivHF4.Visible = ChkJueves.Checked End Sub Protected Sub ChkViernes_CheckedChanged(sender As Object, e As EventArgs) DivHI5.Visible = ChkViernes.Checked DivHF5.Visible = ChkViernes.Checked End Sub Protected Sub ChkSabado_CheckedChanged(sender As Object, e As EventArgs) DivHI6.Visible = ChkSabado.Checked DivHF6.Visible = ChkSabado.Checked End Sub Protected Sub ChkDomingo_CheckedChanged(sender As Object, e As EventArgs) DivHI7.Visible = ChkDomingo.Checked DivHF7.Visible = ChkDomingo.Checked End Sub Protected Sub BtnAgregarRestriccion_Click(sender As Object, e As EventArgs) Dim Row As DataRow = Nothing If CveRestriccion > 0 Then Row = DtRestricciones.Select($"CveUsuarioRestriccionAcceso = {CveRestriccion}")(0) Row("Accion") = If(AccionRestriccion = 0, 4, 1) Else Row = DtRestricciones.NewRow Row("Accion") = 1 Row("CveUsuarioRestriccionAcceso") = DtRestricciones.MAX("CveUsuarioRestriccionAcceso").ToEntero + 1 End If Row("IP") = TxtIP.Text.Trim Row("MAC") = TxtMAC.Text.Trim Dim HI1 = "", HF1 = "", HI2 = "", HF2 = "", HI3 = "", HF3 = "", HI4 = "", HF4 = "", HI5 = "", HF5 = "", HI6 = "", HF6 = "", HI7 = "", HF7 = "" If ChkAplicaRestriccion.Checked Then Row("AplicaRestriccion") = 1 If ChkLunes.Checked Then Row("AplicaLunes") = 1 Row("AplicaRestriccionTexto") = "L" HI1 = TxtHoraInicio1.Text HF1 = TxtHoraFin1.Text End If If ChkMartes.Checked Then Row("AplicaMartes") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} Ma" HI2 = TxtHoraInicio2.Text HF2 = TxtHoraFin2.Text End If If ChkMiercoles.Checked Then Row("AplicaMiercoles") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} Mi" HI3 = TxtHoraInicio3.Text HF3 = TxtHoraFin3.Text End If If ChkJueves.Checked Then Row("AplicaJueves") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} J" HI4 = TxtHoraInicio4.Text HF4 = TxtHoraFin4.Text End If If ChkViernes.Checked Then Row("AplicaViernes") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} V" HI5 = TxtHoraInicio5.Text HF5 = TxtHoraFin5.Text End If If ChkSabado.Checked Then Row("AplicaSabado") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} S" HI6 = TxtHoraInicio6.Text HF6 = TxtHoraFin6.Text End If If ChkDomingo.Checked Then Row("AplicaDomingo") = 1 Row("AplicaRestriccionTexto") = $"{Row("AplicaRestriccionTexto")} D" HI7 = TxtHoraInicio7.Text HF7 = TxtHoraFin7.Text End If End If Row("AplicaRestriccionTexto") = If(Row("AplicaRestriccionTexto").ToString = "", "No", Row("AplicaRestriccionTexto")) Row("HI1") = HI1 Row("HF1") = HF1 Row("HI2") = HI2 Row("HF2") = HF2 Row("HI3") = HI3 Row("HF3") = HF3 Row("HI4") = HI4 Row("HF4") = HF4 Row("HI5") = HI5 Row("HF5") = HF5 Row("HI6") = HI6 Row("HF6") = HF6 Row("HI7") = HI7 Row("HF7") = HF7 If CveRestriccion > 0 Then DtRestricciones.AcceptChanges() Else DtRestricciones.Rows.Add(Row) End If CargaGvRestricciones() RegistraScript("$('#DivAgregarRestricción').modal('hide')") End Sub #Region " GV " Private Sub GvRestricciones_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvRestricciones.RowCommand If e.CommandName = "Editar" Then Dim Gvr = GvRestricciones.Rows(e.CommandArgument.ToString.ToEntero) CveRestriccion = Gvr.DataKey("CveUsuarioRestriccionAcceso").ToString.ToEntero AccionRestriccion = Gvr.DataKey("Accion").ToString.ToEntero TxtIP.Text = Gvr.DataKey("IP").ToString TxtMAC.Text = Gvr.DataKey("MAC").ToString ChkTodos.Checked = False ChkLunes.Checked = False ChkMartes.Checked = False ChkMiercoles.Checked = False ChkJueves.Checked = False ChkViernes.Checked = False ChkSabado.Checked = False ChkDomingo.Checked = False ChkTodos_CheckedChanged(ChkTodos, EventArgs.Empty) TxtHoraInicio0.Text = "00:00" TxtHoraFin0.Text = "00:00" If Gvr.DataKey("AplicaRestriccion").ToString.ToEntero = 1 Then ChkAplicaRestriccion.Checked = True DivRestricciones.Visible = True If Gvr.DataKey("AplicaLunes").ToString.ToEntero = 1 Then ChkLunes.Checked = True TxtHoraInicio1.Text = Gvr.DataKey("HI1").ToString TxtHoraFin1.Text = Gvr.DataKey("HF1").ToString ChkLunes_CheckedChanged(ChkLunes, EventArgs.Empty) End If If Gvr.DataKey("AplicaMartes").ToString.ToEntero = 1 Then ChkMartes.Checked = True TxtHoraInicio2.Text = Gvr.DataKey("HI2").ToString TxtHoraFin2.Text = Gvr.DataKey("HF2").ToString ChkMartes_CheckedChanged(ChkMartes, EventArgs.Empty) End If If Gvr.DataKey("AplicaMiercoles").ToString.ToEntero = 1 Then ChkMiercoles.Checked = True TxtHoraInicio3.Text = Gvr.DataKey("HI3").ToString TxtHoraFin3.Text = Gvr.DataKey("HF3").ToString ChkMiercoles_CheckedChanged(ChkMiercoles, EventArgs.Empty) End If If Gvr.DataKey("AplicaJueves").ToString.ToEntero = 1 Then ChkJueves.Checked = True TxtHoraInicio4.Text = Gvr.DataKey("HI4").ToString TxtHoraFin4.Text = Gvr.DataKey("HF4").ToString ChkJueves_CheckedChanged(ChkJueves, EventArgs.Empty) End If If Gvr.DataKey("AplicaViernes").ToString.ToEntero = 1 Then ChkViernes.Checked = True TxtHoraInicio5.Text = Gvr.DataKey("HI5").ToString TxtHoraFin5.Text = Gvr.DataKey("HF5").ToString ChkViernes_CheckedChanged(ChkViernes, EventArgs.Empty) End If If Gvr.DataKey("AplicaSabado").ToString.ToEntero = 1 Then ChkSabado.Checked = True TxtHoraInicio6.Text = Gvr.DataKey("HI6").ToString TxtHoraFin6.Text = Gvr.DataKey("HF6").ToString ChkSabado_CheckedChanged(ChkSabado, EventArgs.Empty) End If If Gvr.DataKey("AplicaDomingo").ToString.ToEntero = 1 Then ChkDomingo.Checked = True TxtHoraInicio7.Text = Gvr.DataKey("HI7").ToString TxtHoraFin7.Text = Gvr.DataKey("HF7").ToString ChkDomingo_CheckedChanged(ChkDomingo, EventArgs.Empty) End If End If BtnAgregarRestriccion.Text = "Actualizar Restricción" RegistraScript("$('#DivAgregarRestricción').modal('show')") UpAgregarRestriccion.Update() GvRestricciones.EditIndex = -1 End If End Sub Protected Sub GvRestricciones_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvRestricciones.RowDeleting Dim DbRow = DtRestricciones.Rows(e.RowIndex) If DbRow("Accion").ToString = "1" Then DbRow("Accion") = 3 Else DbRow("Accion") = 2 End If CargaGvRestricciones() End Sub #End Region #End Region #Region "TAB - INDICADORES" Public Sub CargaGridIndicadores() Dim Objeto As New ClsIndicadores If Objeto.GetIndicadoresUsers(CveUsuario, If(UsuarioControlado, UsuarioActual.CveUsuario, -1)) Then GvIndicadores.DataSource = Objeto.DtResultados End If GvIndicadores.DataBind() Objeto.Dispose() End Sub Private Sub GvIndicadores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIndicadores.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CveUsuario") <> "" Then e.Row.FCCheckBox("chkIndicador").Checked = True End If End If End Sub #End Region #Region " CLONAR USUARIO " Private Sub InicializaClonarUsuario() DdlUsuarioClonar.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlUsuarioClonar.DataBind() DdlUsuarioClonar.Items.Insert(0, New ListItem("Seleccione", "-1")) If CveUsuario < 0 Then BtnClonar.Visible = False DivAdvertencia.Visible = True End If UpClonarUsuario.Update() End Sub Protected Sub DdlUsuarioClonar_SelectedIndexChanged(sender As Object, e As EventArgs) DivClonarEmpresas.Visible = False DivClonarModulos.Visible = False DivClonarPermisos.Visible = False DivClonarProyectos.Visible = False DivClonarAlmacenes.Visible = False DivClonarOC.Visible = False DivClonarOS.Visible = False ChkEmpresas.Checked = False ChkModulos.Checked = False ChkPermisos.Checked = False ChkProyectos.Checked = False ChkAlmacenes.Checked = False ChkEstatusOC.Checked = False ChkEstatusOS.Checked = False If DdlUsuarioClonar.SelectedValue.ToEntero > 0 Then Dim ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.ClonarUsuarioCriterios(DdlUsuarioClonar.SelectedValue.ToEntero) Then Dim Dr = FiltroPrimero(ObjUsuarios.DtResultados, "") If Dr("UsuarioEmpresas").ToString.ToEntero > 0 Then DivClonarEmpresas.Visible = True If Dr("UsuariosModulos").ToString.ToEntero > 0 Then DivClonarModulos.Visible = True If Dr("UsuariosProcesos").ToString.ToEntero > 0 Then DivClonarPermisos.Visible = True If Dr("UsuariosSubProyectos").ToString.ToEntero > 0 Then DivClonarProyectos.Visible = True If Dr("UsuariosAlmacenes").ToString.ToEntero > 0 Then DivClonarAlmacenes.Visible = True If Dr("UsuariosOC").ToString.ToEntero > 0 Then DivClonarOC.Visible = True If Dr("UsuariosOS").ToString.ToEntero > 0 Then DivClonarOS.Visible = True End If ObjUsuarios.Dispose() LblClonarMensaje.Text = $"En el usuario {TxtUsuario.Text} se reemplazará la información del usuario {DdlUsuarioClonar.SelectedItem.Text} con las siguientes secciones que seleccione." Else LblClonarMensaje.Text = "" End If UpClonarUsuario.Update() End Sub Protected Sub BtnClonar_Click(sender As Object, e As EventArgs) Dim ObjUsuarios As New ClsSisUsuarios ClonarUsuario(DdlUsuarioClonar.SelectedValue.ToEntero, ObjUsuarios) ObjUsuarios.Dispose() End Sub Private Function ClonarUsuario(CveUsuarioClonado As Integer, ObjUsuarios As ClsSisUsuarios) As Boolean Dim Retorno = False If CveUsuarioClonado > 0 Then If ObjUsuarios.ClonarUsuario(CveUsuario, CveUsuarioClonado, ChkEmpresas.Checked, ChkModulos.Checked, ChkPermisos.Checked, ChkProyectos.Checked, ChkAlmacenes.Checked, ChkEstatusOC.Checked, ChkEstatusOS.Checked) Then Alert("El usuario fue clonado con exito.", TipoMensaje.MsgInformacion, "document.location.href=""/Sistemas/Usuarios.aspx"";") Retorno = True Else Alert("Ocurrió un error al clonar al usuario. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If Else Retorno = True End If 'RECARGAMOS PARA VER CAMBIOS 'CargaDatos() Return Retorno End Function #End Region #Region " MANDA CORREO " Private Sub MandaCorreo(Asunto As String, Para As String, Body As String) Dim a As String = String.Format("{0} -- {1} ---- -->", Asunto, Para) 'a.GuardaLog() Dim Mail As New ClsSisMail() 'Mail.MandaCorreo(ClsPaginas.EmpresaNotificaciones, Para, Asunto, "", "", Nothing, Body) Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body) End Sub #End Region #Region " ASIGNACIONES DE PERMISOS " Protected Sub DdlEmpresaAsignarPermiso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEmpresaAsignarPermiso.SelectedIndexChanged CargaAsignaciones() End Sub Private Sub CargaAsignaciones() CargarAlmacenAsignar() CargaGVAlmacenAsignar() CargarProyectosAsignar() CargarGvSubProyectosAsignar() CargaCuentasBancariasAsignar() CargaGvCuentasBancariasAsignar() CargarRolesAsignar() CargaGVRolesAsignar() CargaDTModulosAsignar() CargaGvPermisosAsignar() CargaDtEstatusOC() CargaGvEstatusOC() End Sub #Region " EMPRESAS " Public Sub CargaDTEmpresasAsignar() Dim ObjPermisos As New ClsSisUsuarios If ObjPermisos.GetEmpresasAsignar(CveUsuario) Then DTEmpresasAsignar = ObjPermisos.DtResultados Else DTEmpresasAsignar = Nothing End If ObjPermisos.Dispose() CargaGvEmpresasAsignar() DdlEmpresaAsignarPermiso.Items.Clear() DdlEmpresaAsignarPermiso.DataSource = DTEmpresasAsignar.FiltraParametros(String.Format("ISNULL(TienePermiso,0) > 0")) DdlEmpresaAsignarPermiso.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlEmpresaAsignarPermiso.DataBind() DdlEmpresaAsignarPermiso.SelectedValueExist(CveEmpresa.ToString) UpFiltrosAsignarPermiso.Update() End Sub Private Sub CargaGvEmpresasAsignar() GvEmpresasAsignar.DataSource = DTEmpresasAsignar.FiltraParametros(String.Format("ISNULL(TienePermiso,0) > -2")) GvEmpresasAsignar.DataBind() UpEmpresasAsignar.Update() End Sub Protected Sub GvEmpresasAsignar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEmpresasAsignar.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("TienePermiso").ToEntero > 0 Then e.Row.Cells(1).CssClass = "bg-yellow" e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub Protected Sub ChkPermitirEmpresaAsignar_CheckedChanged(sender As Object, e As EventArgs) Dim check = CType(sender, CheckBox) Dim pCveEmpresa = CType(check.NamingContainer, GridViewRow).FCHiddenField("HdnCveEmpresa").Value Dim pEmpresa = CType(check.NamingContainer, GridViewRow).FCHiddenField("HdnEmpresa").Value Dim Dr = DTEmpresasAsignar.Select($"CveEmpresa = {pCveEmpresa}") If check.Checked Then Dr(0)("TienePermiso") = 2 Else Dr(0)("TienePermiso") = -1 End If DTEmpresasAsignar.AcceptChanges() DdlEmpresaAsignarPermiso.Items.Clear() DdlEmpresaAsignarPermiso.DataSource = DTEmpresasAsignar.FiltraParametros(String.Format("ISNULL(TienePermiso,0) > 0")) DdlEmpresaAsignarPermiso.DataBind() DdlEmpresaAsignarPermiso.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlEmpresaAsignarPermiso.SelectedValueExist(CveEmpresa.ToString) UpFiltrosAsignarPermiso.Update() CargaAsignaciones() End Sub #End Region #Region " ROLES " Private Sub CargaDtRolesAsignar() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetRolesAsignar(CveUsuario) Then DTRolesAsignar = ClsUsuarios.DtResultados Else DTRolesAsignar = Nothing Alert("Ocurrió un error al cargar los Roles del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() DTRolesAsignar.Columns.Add("Accion", GetType(Integer)) CargaGVRolesAsignar() End Sub Private Sub CargarRolesAsignar() DdlRolAsignar.Items.Clear() If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then DdlRolAsignar.DataSource = GlobalDTRoles(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero) End If DdlRolAsignar.DataBind() DdlRolAsignar.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlRolAsignar.Items.Insert(1, New ListItem("Todos", "-2")) End Sub Private Sub CargaGVRolesAsignar() GvRolesAsignar.DataSource = DTRolesAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND (isnull(Accion,0) < 2 OR Accion = 4)", DdlEmpresaAsignarPermiso.SelectedValue.ToEntero)) GvRolesAsignar.DataBind() UpRolesAsignar.Update() End Sub Protected Sub LBAgregarRolesAsignar_Click(sender As Object, e As EventArgs) Dim DtValida = DTRolesAsignar.FiltraParametros(String.Format("CveRol = {0}", DdlRolAsignar.SelectedValue)) If DdlRolAsignar.SelectedValue = "-2" Then DTRolesAsignar.Rows.Clear() For Each Item As ListItem In DdlRolAsignar.Items Dim dr = DTRolesAsignar.NewRow If Item.Value <> "-1" AndAlso Item.Value <> "-2" Then dr("CveRol") = Item.Value dr("Rol") = Item.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DTRolesAsignar.Rows.Add(dr) End If Next Else If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DTRolesAsignar.Select(String.Format("CveRol = {0}", DdlRolAsignar.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DTRolesAsignar.Select(String.Format("CveRol = {0}", DdlRolAsignar.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El Roles ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DTRolesAsignar.NewRow dr("CveRol") = DdlRolAsignar.SelectedValue dr("Rol") = DdlRolAsignar.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DTRolesAsignar.Rows.Add(dr) End If End If CargaGVRolesAsignar() End Sub Protected Sub GvRolesAsignar_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvRolesAsignar.RowDeleting Dim Dr = DTRolesAsignar.Select(String.Format("CveRol = {0}", GvRolesAsignar.Rows(e.RowIndex).DataKey("CveRol"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DTRolesAsignar.AcceptChanges() CargaGVRolesAsignar() End Sub #End Region #Region " ALMACENES " Private Sub CargaDtAlmacenAsignar() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetAlmacenAsignar(CveUsuario) Then DtAlmacenesAsignar = ClsUsuarios.DtResultados Else DtAlmacenesAsignar = Nothing Alert("Ocurrió un error al cargar los Almacenes del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() DtAlmacenesAsignar.Columns.Add("Accion", GetType(Integer)) CargaGVAlmacenAsignar() End Sub Private Sub CargarAlmacenAsignar() DdlAlmacenAsignar.Items.Clear() If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then DdlAlmacenAsignar.DataSource = GlobalDTAlmacen(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero) End If DdlAlmacenAsignar.DataBind() DdlAlmacenAsignar.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenAsignar.Items.Insert(1, New ListItem("Todos", "-2")) End Sub Private Sub CargaGVAlmacenAsignar() GVAlmacenesAsignar.DataSource = DtAlmacenesAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND (isnull(Accion,0) < 2 OR Accion = 4)", DdlEmpresaAsignarPermiso.SelectedValue.ToEntero)) GVAlmacenesAsignar.DataBind() UpAlmacenesAsignar.Update() End Sub Protected Sub LBAgregarAlmacenAsignar_Click(sender As Object, e As EventArgs) Dim DtValida = DtAlmacenesAsignar.FiltraParametros(String.Format("CveAlmacen = {0}", DdlAlmacenAsignar.SelectedValue)) If DdlAlmacenAsignar.SelectedValue = "-2" Then DtAlmacenesAsignar.Rows.Clear() For Each Item As ListItem In DdlAlmacenAsignar.Items Dim dr = DtAlmacenesAsignar.NewRow If Item.Value <> "-1" AndAlso Item.Value <> "-2" Then dr("CveAlmacen") = Item.Value dr("Almacen") = Item.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DtAlmacenesAsignar.Rows.Add(dr) End If Next Else If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtAlmacenesAsignar.Select(String.Format("CveAlmacen = {0}", DdlAlmacenAsignar.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtAlmacenesAsignar.Select(String.Format("CveAlmacen = {0}", DdlAlmacenAsignar.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El Almacen ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtAlmacenesAsignar.NewRow dr("CveAlmacen") = DdlAlmacenAsignar.SelectedValue dr("Almacen") = DdlAlmacenAsignar.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DtAlmacenesAsignar.Rows.Add(dr) End If End If CargaGVAlmacenAsignar() End Sub Protected Sub GvAlmacenesAsignar_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVAlmacenesAsignar.RowDeleting Dim Dr = DtAlmacenesAsignar.Select(String.Format("CveAlmacen = {0}", GVAlmacenesAsignar.Rows(e.RowIndex).DataKey("CveAlmacen"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtAlmacenesAsignar.AcceptChanges() CargaGVAlmacenAsignar() End Sub #End Region #Region " PROYECTOS-SUBPROYECTOS " Private Sub CargaDtSubProyectosAsignar() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetSubProyectosAsignar(CveUsuario) Then DtSubProyectosAsignar = ClsUsuarios.DtResultados Else DtSubProyectosAsignar = Nothing Alert("Ocurrió un error al cargar los SubProyectos del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() If DtSubProyectosAsignar IsNot Nothing Then DtSubProyectosAsignar.Columns.Add("ViejoCveSubProyecto", GetType(Integer)) DtSubProyectosAsignar.Columns.Add("Accion", GetType(Integer)) End If CargarGvSubProyectosAsignar() End Sub Private Sub CargarProyectosAsignar() DdlProyectoAsignar.Items.Clear() DdlSubProyectoAsignar.Items.Clear() If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then Dim dt = GlobalDTProyectos(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero) DdlProyectoAsignar.DataSource = dt End If DdlProyectoAsignar.DataBind() DdlProyectoAsignar.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1")) 'CARGA SOLO PROYECTO (SUBRPOYECTOS) If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66 Then SoloSubProyectosAsignar() End If End Sub Private Sub CargarGvSubProyectosAsignar() If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then GVSubProyectosAsignar.DataSource = DtSubProyectosAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND (isnull(Accion,0) < 2 OR Accion = 4)", DdlEmpresaAsignarPermiso.SelectedValue.ToEntero)) End If GVSubProyectosAsignar.DataBind() UpSubProyectosAsignar.Update() End Sub Private Sub CargaSubProyectosAsignar() DdlSubProyectoAsignar.Items.Clear() If DdlProyectoAsignar.SelectedValue.ToEntero > 0 Then DdlSubProyectoAsignar.DataSource = GlobalDTSubProyectos(DdlProyectoAsignar.SelectedValue.ToEntero) End If DdlSubProyectoAsignar.DataBind() DdlSubProyectoAsignar.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1")) End Sub Protected Sub CboProyectoAsignar_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyectoAsignar.SelectedIndexChanged CargaSubProyectosAsignar() End Sub Private Sub SoloSubProyectosAsignar() DdlProyecto.Visible = False DdlSubProyectoAsignar.DataSource = GlobalDTSubProyectos(-1, -1, DdlEmpresaAsignarPermiso.SelectedValue.ToEntero).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) DdlSubProyectoAsignar.DataBind() DdlSubProyectoAsignar.Items.Insert(0, New ListItem("Seleccione", "-1")) GVSubProyectosAsignar.Columns(0).Visible = False End Sub Protected Sub LBAgregarSubProyectoAsignar_Click(sender As Object, e As EventArgs) Dim DtValida = DtSubProyectosAsignar.FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyectoAsignar.SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtSubProyectosAsignar.Select(String.Format("CveSubProyecto = {0}", DdlSubProyectoAsignar.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtSubProyectosAsignar.Select(String.Format("CveSubProyecto = {0}", DdlSubProyectoAsignar.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El SubProyecto ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtSubProyectosAsignar.NewRow dr("CveProyecto") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", DdlProyectoAsignar.SelectedValue) dr("Proyecto") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", DdlProyectoAsignar.SelectedItem.Text) dr("CveSubProyecto") = DdlSubProyectoAsignar.SelectedValue dr("SubProyecto") = DdlSubProyectoAsignar.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DtSubProyectosAsignar.Rows.Add(dr) End If CargarGvSubProyectosAsignar() End Sub Protected Sub GvSubProyectosAsignar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVSubProyectosAsignar.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.FCLiteral("LtSubProyecto").Visible = DdlProyectoAsignar.Visible End If End Sub Protected Sub GvSubProyectosAsignar_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVSubProyectosAsignar.RowDeleting Dim Dr = DtSubProyectosAsignar.Select(String.Format("CveSubProyecto = {0}", GVSubProyectosAsignar.Rows(e.RowIndex).DataKey("CveSubProyecto"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtSubProyectosAsignar.AcceptChanges() CargarGvSubProyectosAsignar() End Sub #End Region #Region " CUENTAS BANCARIAS " Private Sub CargaCuentasBancariasAsignar() DdlCuentasBancariasAsignar.Items.Clear() If DdlEmpresaAsignaciones.SelectedValue.ToEntero > 0 Then DdlCuentasBancariasAsignar.DataSource = GlobalDTBancosCuentas(-1, -1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {DdlEmpresaAsignarPermiso.SelectedValue}", "", {"CveCuenta", "NumCuenta"}) End If DdlCuentasBancariasAsignar.DataBind() DdlCuentasBancariasAsignar.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlCuentasBancariasAsignar.Items.Insert(1, New ListItem("Todos", "-2")) End Sub Private Sub CargaDtCuentasBancariasAsignar() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetCuentasBancariasAsignar(CveUsuario) Then DtCuentasBancariasAsignar = ClsUsuarios.DtResultados Else DtCuentasBancariasAsignar = Nothing Alert("Ocurrió un error al cargar los SubProyectos del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() DtCuentasBancariasAsignar.Columns.Add("Accion", GetType(Integer)) CargaGvCuentasBancariasAsignar() End Sub Private Sub CargaGvCuentasBancariasAsignar() GVCuentasBancariasAsignar.DataSource = DtCuentasBancariasAsignar.FiltraParametros(String.Format("CveEmpresa = {0} AND (isnull(Accion,0) < 2 OR Accion = 4)", DdlEmpresaAsignarPermiso.SelectedValue.ToEntero)) GVCuentasBancariasAsignar.DataBind() UpCuentasBancariasAsignar.Update() End Sub Protected Sub LBAgregarCuentaBancariaAsignar_Click(sender As Object, e As EventArgs) Dim DtValida = DtCuentasBancariasAsignar.FiltraParametros(String.Format("CveCuenta = {0}", DdlCuentasBancariasAsignar.SelectedValue)) If DdlCuentasBancariasAsignar.SelectedValue = "-2" Then DtCuentasBancariasAsignar.Rows.Clear() For Each Item As ListItem In DdlCuentasBancariasAsignar.Items Dim dr = DtCuentasBancariasAsignar.NewRow If Item.Value <> "-1" AndAlso Item.Value <> "-2" Then dr("CveCuenta") = Item.Value dr("NumCuenta") = Item.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DtCuentasBancariasAsignar.Rows.Add(dr) End If Next Else If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtCuentasBancariasAsignar.Select(String.Format("CveCuenta = {0}", DdlCuentasBancariasAsignar.SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtCuentasBancariasAsignar.Select(String.Format("CveCuenta = {0}", DdlCuentasBancariasAsignar.SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("La cuenta bancaria ya se encuentra agregada.", TipoMensaje.MsgAdvertencia) End If Else Dim dr = DtCuentasBancariasAsignar.NewRow dr("CveCuenta") = DdlCuentasBancariasAsignar.SelectedValue dr("NumCuenta") = DdlCuentasBancariasAsignar.SelectedItem.Text dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue dr("Accion") = 1 DtCuentasBancariasAsignar.Rows.Add(dr) End If End If CargaGvCuentasBancariasAsignar() End Sub Protected Sub GVCuentasBancariasAsignar_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GVCuentasBancariasAsignar.RowDeleting Dim Dr = DtCuentasBancariasAsignar.Select(String.Format("CveCuenta = {0}", GVCuentasBancariasAsignar.Rows(e.RowIndex).DataKey("CveCuenta"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtCuentasBancariasAsignar.AcceptChanges() CargaGvCuentasBancariasAsignar() End Sub #End Region #Region " MODULOS " Public Sub CargaDTModulosAsignar() Dim ObjPermisos As New ClsSisUsuarios If ObjPermisos.GetModulosAsignar(CveUsuario, DdlEmpresaAsignarPermiso.SelectedValue.ToEntero) Then DTModulosAsignar = ObjPermisos.DtResultados Else DTModulosAsignar = Nothing End If ObjPermisos.Dispose() CargaGvModulosAsignar() End Sub Private Sub CargaGvModulosAsignar() GvModulosAsignar.DataSource = DTModulosAsignar GvModulosAsignar.DataBind() If (GvModulosAsignar.Rows.Count > 0) Then GvModulosAsignar.UseAccessibleHeader = True GvModulosAsignar.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGVModulosAsignar();") End If UpModulosAsignar.Update() End Sub Protected Sub GvModulosAsignar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvModulosAsignar.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("TienePermiso").ToEntero > 0 Then e.Row.Cells(3).CssClass = "bg-yellow" e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub #End Region #Region " PERMISOS " Public Sub CargaDTPermisosAsignar() Dim ObjPermisos As New ClsSisUsuarios If ObjPermisos.GetPermisosAsignar(CveUsuario, UsuarioActual.CveEmpresa) Then DTPermisosAsignar = ObjPermisos.DtResultados Else DTPermisosAsignar = Nothing End If ObjPermisos.Dispose() CargaGvPermisosAsignar() End Sub Private Sub CargaGvPermisosAsignar() GvPermisosAsignar.DataSource = DTPermisosAsignar GvPermisosAsignar.DataBind() If (GvPermisosAsignar.Rows.Count > 0) Then GvPermisosAsignar.UseAccessibleHeader = True GvPermisosAsignar.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGVPermisosAsignar();") End If UpPermisosAsignar.Update() End Sub Protected Sub GvPermisosAsignar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPermisosAsignar.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("TienePermiso").ToEntero > 0 Then e.Row.Cells(3).CssClass = "bg-yellow" e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub #End Region #Region " INDICADORES " Public Sub CargaDTIndicadoresAsignar() Dim ObjIndicadores As New ClsSisUsuarios If ObjIndicadores.GetIndicadoresAsignar(CveUsuario, UsuarioActual.CveEmpresa) Then DTIndicadoresAsignar = ObjIndicadores.DtResultados Else DTIndicadoresAsignar = Nothing End If ObjIndicadores.Dispose() CargaGvIndicadoresAsignar() End Sub Private Sub CargaGvIndicadoresAsignar() GvIndicadoresAsignar.DataSource = DTIndicadoresAsignar GvIndicadoresAsignar.DataBind() UpIndicadoresAsignar.Update() End Sub Protected Sub GvIndicadoresAsignar_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIndicadoresAsignar.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("TienePermiso").ToEntero > 0 Then e.Row.Cells(1).CssClass = "bg-yellow" e.Row.FCCheckBox("ChkP").Checked = True End If End If End Sub #End Region #End Region #Region " USUARIO CONTROLADO " Private Sub InicializaUsuarioControlado() Dim ClsUsuarios As New ClsSisUsuarios TabAsignar.Visible = False If ClsUsuarios.GetAlmacenAsignar(UsuarioActual.CveUsuario) Then DtAlmacenesControlado = ClsUsuarios.DtResultados Else DtAlmacenesControlado = Nothing Alert("Ocurrió un error al cargar los Almacenes controlados del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If If ClsUsuarios.GetSubProyectosAsignar(UsuarioActual.CveUsuario) Then DtSubProyectosControlado = ClsUsuarios.DtResultados Else DtSubProyectosControlado = Nothing Alert("Ocurrió un error al cargar los SubProyectos controlados del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If If ClsUsuarios.GetCuentasBancariasAsignar(UsuarioActual.CveUsuario) Then DtCuentasBancariasControlado = ClsUsuarios.DtResultados Else DtCuentasBancariasControlado = Nothing Alert("Ocurrió un error al cargar las Cuentas Bancarias controladas del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If If ClsUsuarios.GetModulosAsignar(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then DTModulosControlado = ClsUsuarios.DtResultados Else Alert("Ocurrió un error al cargar los Modulos controlados del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) DTModulosControlado = Nothing End If If ClsUsuarios.GetPermisosAsignar(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then DTPermisosControlado = ClsUsuarios.DtResultados Else Alert("Ocurrió un error al cargar los Permisos controlados del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) DTPermisosControlado = Nothing End If If ClsUsuarios.GetRolesAsignar(UsuarioActual.CveUsuario) Then DTRolesControlado = ClsUsuarios.DtResultados Else Alert("Ocurrió un error al cargar los Permisos controlados del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) DTRolesControlado = Nothing End If ClsUsuarios.Dispose() End Sub #End Region #Region "C O N T O L E S DE U S U A R I O S" #Region "ESTATUS DE ÓRDENES DE COMPRA" Private Sub CargaDtEstatusOCPermisos() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetEstatusOC(UsuarioActual.CveUsuario) Then DTEstatusOCAsignar = ClsUsuarios.DtResultados Else DTEstatusOCAsignar = Nothing Alert("Ocurrió un error al cargar los Estatus de OC del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() If DTEstatusOCAsignar IsNot Nothing Then If Not DTEstatusOCAsignar.Columns.Contains("ViejoCveEstatus") Then DTEstatusOCAsignar.Columns.Add("ViejoCveEstatus", GetType(Integer)) End If If Not DTEstatusOCAsignar.Columns.Contains("Accion") Then DTEstatusOCAsignar.Columns.Add("Accion", GetType(Integer)) End If End If End Sub Private Sub CargaDtEstatusOC() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetEstatusOC(CveUsuario) Then DTEstatusOC = ClsUsuarios.DtResultados Else DTEstatusOCAsignar = Nothing Alert("Ocurrió un error al cargar los Estatus de OC del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() If DTEstatusOC IsNot Nothing Then If Not DTEstatusOC.Columns.Contains("ViejoCveEstatus") Then DTEstatusOC.Columns.Add("ViejoCveEstatus", GetType(Integer)) End If If Not DTEstatusOC.Columns.Contains("Accion") Then DTEstatusOC.Columns.Add("Accion", GetType(Integer)) End If End If End Sub Private Sub CargaDdlEstatusOC() DdlEstatusOC.Items.Clear() If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then DdlEstatusOC.DataSource = GlobalDTOCEstatus(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero).FiltraParametros($"Tipo='{DdlTipoEstatus.SelectedValue}'") End If DdlEstatusOC.DataBind() End Sub Protected Sub DdlTipoEstatus_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoEstatus.SelectedIndexChanged If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then CargaDdlEstatusOC() Else Alert("No hay una empresa asignada.Favor de seleccionar una", TipoMensaje.MsgAdvertencia) End If UpCUEstatusOC.Update() End Sub Protected Sub LnkAgregarOC_Click(sender As Object, e As EventArgs) Handles LnkAgregarOC.Click If DdlEmpresaAsignarPermiso.SelectedValue.ToEntero > 0 Then Dim CveEstatus As Integer = DdlEstatusOC.SelectedValue.ToEntero Dim DtValida = DTEstatusOC.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DTEstatusOC.Select(String.Format("CveEstatus = {0}", CveEstatus)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DTEstatusOC.Select(String.Format("CveEstatus = {0}", CveEstatus)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("El Estatus ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else Dim DrEstatus As DataRow = GlobalDTOCEstatus(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero).FiltroPrimero(String.Format("CveEstatus={0}", CveEstatus)) If DrEstatus IsNot Nothing Then Dim Estatus As String = DrEstatus("Estatus").ToString Dim Tipo As String = DrEstatus("Tipo").ToString Dim Dr As DataRow = DTEstatusOC.NewRow Dr("CveEstatus") = CveEstatus Dr("CveUsuario") = CveUsuario Dr("Tipo") = Tipo Dr("Estatus") = Estatus Dr("Accion") = 1 Dr("CveEmpresa") = DdlEmpresaAsignarPermiso.SelectedValue.ToEntero DTEstatusOC.Rows.Add(Dr) DTEstatusOC.AcceptChanges() CargaGvEstatusOC() End If End If Else Alert("No hay una empresa asignada.Favor de seleccionar una", TipoMensaje.MsgAdvertencia) End If UpCUEstatusOC.Update() End Sub Private Sub CargaGvEstatusOC() GvEstatusOC.DataSource = DTEstatusOC.FiltraParametros("(isnull(Accion,0) < 2 OR Accion = 4)") GvEstatusOC.DataBind() End Sub Private Sub CreaDTEstatusOC() Dim dt As New DataTable dt.Columns.Add("CveEstatus", GetType(Integer)) dt.Columns.Add("Estatus", GetType(String)) dt.Columns.Add("Tipo", GetType(String)) dt.Columns.Add("CveUsuario", GetType(Integer)) dt.Columns.Add("ViejoCveEstatus", GetType(Integer)) dt.Columns.Add("Accion", GetType(Integer)) dt.Columns.Add("CveEmpresa", GetType(Integer)) dt.AcceptChanges() DTEstatusOC = dt DTEstatusOCAsignar = dt End Sub #End Region #Region "GV ESTATUS DE OC" Protected Sub GvEstatusOC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEstatusOC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'Carga los dropdown list de edicion If e.Row.FCDropDownList("DdlEstatusOC") IsNot Nothing Then e.Row.FCDropDownList("DdlTipoEstatus").SelectedValue = e.Row.DBCampo("Tipo") e.Row.FCDropDownList("DdlEstatusOC").DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros($"Tipo='{e.Row.DBCampo("Tipo")}'") e.Row.FCDropDownList("DdlEstatusOC").DataBind() e.Row.FCDropDownList("DdlEstatusOC").SelectedValue = e.Row.DBCampo("CveEstatus") End If 'Asigna un nombre al tipo de estatus If e.Row.FCLiteral("LtTipo") IsNot Nothing Then If e.Row.DBCampo("Tipo") = "Req" Then e.Row.FCLiteral("LtTipo").Text = "Requisición" If e.Row.DBCampo("Tipo") = "OC" Then e.Row.FCLiteral("LtTipo").Text = "Órden de Compra" End If End If End Sub Protected Sub GvEstatusOC_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvEstatusOC.RowDeleting Dim Dr = DTEstatusOC.Select(String.Format("CveEstatus = {0}", GvEstatusOC.Rows(e.RowIndex).DataKey("CveEstatus"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DTEstatusOC.AcceptChanges() CargaGvEstatusOC() End Sub Protected Sub GvEstatusOC_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvEstatusOC.RowEditing GvEstatusOC.EditIndex = e.NewEditIndex CargaGvEstatusOC() End Sub Protected Sub GvEstatusOC_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvEstatusOC.RowUpdating If DTEstatusOC.Rows(e.RowIndex)("CveEstatus").ToString = GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue Then 'No hago nada nomas quito el modo edicion GvEstatusOC.EditIndex = -1 Else Dim DtValida = DTEstatusOC.FiltraParametros(String.Format("CveEstatus = {0}", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DTEstatusOC.Select(String.Format("CveEstatus = {0}", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue)) dr(0)("Accion") = 0 dr(0).AcceptChanges() DTEstatusOC.Rows.RemoveAt(e.RowIndex) GvEstatusOC.EditIndex = -1 ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DTEstatusOC.Select(String.Format("CveEstatus = {0}", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue)) dr(0)("Accion") = 1 dr(0).AcceptChanges() DTEstatusOC.Rows.RemoveAt(e.RowIndex) GvEstatusOC.EditIndex = -1 Else Alert("El Estatus ya se encuentra agregado.", TipoMensaje.MsgAdvertencia) End If Else If DTEstatusOC.Rows(e.RowIndex)("Accion").ToString.ToEntero = 0 Then DTEstatusOC.Rows(e.RowIndex)("ViejoCveEstatus") = DTEstatusOC.Rows(e.RowIndex)("CveEstatus") DTEstatusOC.Rows(e.RowIndex)("CveEstatus") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue) DTEstatusOC.Rows(e.RowIndex)("Estatus") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedItem.Text) DTEstatusOC.Rows(e.RowIndex)("Tipo") = GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlTipoEstatus").SelectedValue DTEstatusOC.Rows(e.RowIndex)("Accion") = 4 DTEstatusOC.Rows(e.RowIndex).AcceptChanges() ElseIf DTEstatusOC.Rows(e.RowIndex)("Accion").ToString.ToEntero = 4 Or DTEstatusOC.Rows(e.RowIndex)("Accion").ToString.ToEntero = 1 Then DTEstatusOC.Rows(e.RowIndex)("ViejoCveEstatus") = DTEstatusOC.Rows(e.RowIndex)("CveEstatus") DTEstatusOC.Rows(e.RowIndex)("CveEstatus") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedValue) DTEstatusOC.Rows(e.RowIndex)("Estatus") = If(DdlEmpresaAsignarPermiso.SelectedValue.ToEntero = 66, "-1", GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlEstatusOC").SelectedItem.Text) DTEstatusOC.Rows(e.RowIndex)("Tipo") = GvEstatusOC.Rows(e.RowIndex).FCDropDownList("DdlTipoEstatus").SelectedValue DTEstatusOC.Rows(e.RowIndex).AcceptChanges() End If DTEstatusOC.AcceptChanges() GvEstatusOC.EditIndex = -1 End If End If CargaGvEstatusOC() End Sub Protected Sub GvEstatusOC_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvEstatusOC.RowCancelingEdit GvEstatusOC.EditIndex = -1 CargaGvEstatusOC() End Sub Protected Sub DdlTipoEstatus_SelectedIndexChanged1(sender As Object, e As EventArgs) Dim pDdlTipoEstatus As DropDownList = CType(sender, DropDownList) Dim pDdlEstatus As DropDownList = CType(pDdlTipoEstatus.NamingContainer, GridViewRow).FCDropDownList("DdlEstatusOC") pDdlEstatus.Items.Clear() pDdlEstatus.DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros($"Tipo='{pDdlTipoEstatus.SelectedValue}'") pDdlEstatus.DataBind() End Sub Private Sub ValidaAccesoEstatusOC() 'Requisiciones Dim dtReq = DTEstatusOC.FiltraParametros("Tipo='Req'") For i = 2 To GvEstatusUsuariosREQ.Columns.Count - 1 If GvEstatusUsuariosREQ.Columns(i).FooterText <> String.Empty Then Dim CveEstatus As Integer = GvEstatusUsuariosREQ.Columns(i).FooterText.ToEntero Dim dtValida = dtReq.FiltraParametros($"CveEstatus={CveEstatus}") GvEstatusUsuariosREQ.Columns(i).Visible = (dtValida IsNot Nothing AndAlso dtValida.Rows.Count = 1) End If Next 'Ordenes de compra Dim dtOC = DTEstatusOC.FiltraParametros("Tipo='OC'") For i = 2 To GvEstatusUsuariosOC.Columns.Count - 1 If GvEstatusUsuariosOC.Columns(i).FooterText <> String.Empty Then Dim CveEstatus As Integer = GvEstatusUsuariosOC.Columns(i).FooterText.ToEntero Dim dtValida = dtOC.FiltraParametros($"CveEstatus={CveEstatus}") GvEstatusUsuariosOC.Columns(i).Visible = (dtValida IsNot Nothing AndAlso dtValida.Rows.Count = 1) End If Next End Sub #End Region #End Region Protected Sub LnkAgregarClasificacion_Click(sender As Object, e As EventArgs) If DtClasificaciones IsNot Nothing Then Dim CveClasificacion As Integer = DdlClasificacion.SelectedValue.ToEntero Dim DtValida = DtClasificaciones.FiltraParametros(String.Format("CveClasificacion = {0}", CveClasificacion)) If DtValida.Rows.Count > 0 Then If DtValida.Rows(0)("Accion").ToString = "2" Then Dim dr = DtClasificaciones.Select(String.Format("CveClasificacion = {0}", CveClasificacion)) dr(0)("Accion") = 0 dr(0).AcceptChanges() ElseIf DtValida.Rows(0)("Accion").ToString = "3" Then Dim dr = DtClasificaciones.Select(String.Format("CveClasificacion = {0}", CveClasificacion)) dr(0)("Accion") = 1 dr(0).AcceptChanges() Else Alert("La clasificación ya se encuentra agregada.", TipoMensaje.MsgAdvertencia) End If Else Dim DrClasificacion As DataRow = GlobalDTClasificaciones(CveEmpresa:=CveEmpresa).FiltroPrimero(String.Format("CveClasificacion={0}", CveClasificacion)) If DrClasificacion IsNot Nothing Then Dim Dr As DataRow = DtClasificaciones.NewRow Dr("CveClasificacion") = CveClasificacion Dr("Clasificacion") = DrClasificacion("Clasificacion").ToString Dr("Accion") = 1 Dr("CveEmpresa") = CveEmpresa DtClasificaciones.Rows.Add(Dr) DtClasificaciones.AcceptChanges() CargaGvClasificaciones() End If End If End If CargaDdlClasificaciones() End Sub Protected Sub CargaGvClasificaciones() GvClasificacion.DataSource = DtClasificaciones.FiltraParametros("(isnull(Accion,0) < 2 OR Accion = 4)") GvClasificacion.DataBind() End Sub Protected Sub CargaDdlClasificaciones() Dim ClasificacionesSinGV As String = GetClasificacionesSinGV() DdlClasificacion.Items.Clear() If ClasificacionesSinGV.Length > 0 Then DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresa:=CveEmpresa).FiltraParametros(ClasificacionesSinGV) Else DdlClasificacion.DataSource = GlobalDTClasificaciones(CveEmpresa:=CveEmpresa) End If DdlClasificacion.DataBind() UpDatos.Update() End Sub Private Function GetClasificacionesSinGV() As String Dim SB As New StringBuilder Dim prefix As String = "" For Each item As GridViewRow In GvClasificacion.Rows SB.Append(prefix) SB.Append(item.DataKey("CveClasificacion")) prefix = "," Next If SB.Length > 0 Then Return $"CveClasificacion NOT IN ({SB.ToString})" Else Return "" End If End Function Protected Sub CargaClasificaciones() If UsuarioActual.CveRol = 1 Then DivClasificaciones.Visible = True Dim ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.GetUsuariosClasificaciones(CveUsuario, -1, CveEmpresa) Then DtClasificaciones = ObjUsuarios.DtResultados End If ObjUsuarios.Dispose() If DtClasificaciones IsNot Nothing Then If Not DtClasificaciones.Columns.Contains("Accion") Then DtClasificaciones.Columns.Add("Accion", GetType(Integer)) End If End If GvClasificacion.DataSource = DtClasificaciones GvClasificacion.DataBind() End If End Sub Protected Sub GvClasificacion_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvClasificacion.RowDeleting Dim Dr = DtClasificaciones.Select(String.Format("CveClasificacion = {0}", GvClasificacion.Rows(e.RowIndex).DataKey("CveClasificacion"))) If Dr(0)("Accion").ToString = "1" Then Dr(0)("Accion") = 3 Else Dr(0)("Accion") = 2 End If DtClasificaciones.AcceptChanges() CargaGvClasificaciones() CargaDdlClasificaciones() End Sub Private Sub CargaGvBitacora() If CveUsuario > 0 Then Dim ObjGral As New ClsGenerales() If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveUsuario:=CveUsuario) Then GvBitacoraHistorial.DataSource = ObjGral.DtResultados ObjGral.Dispose() End If GvBitacoraHistorial.DataBind() UpBitacora.Update() End If End Sub Private Sub CargaComboSubProyecto() Dim ClsUsuarios As New ClsSisUsuarios If ClsUsuarios.GetSubProyectos(CveUsuario) Then DtSubProyectos3 = ClsUsuarios.DtResultados Else DtSubProyectos = Nothing Alert("Ocurrió un Error al cargar los SubProyectos del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ClsUsuarios.Dispose() If DtSubProyectos3 IsNot Nothing Then DtSubProyectos3.Columns.Add("ViejoCveSubProyecto", GetType(Integer)) DtSubProyectos3.Columns.Add("Accion", GetType(Integer)) End If End Sub #Region "USUARIO RESPONSABLE" Protected Sub BtnUpdateUsuarioResponsable_Click(sender As Object, e As EventArgs) Dim ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.UpdateUsuarioResponsableMasivo(CveUsuario, DdlUsuarioResponsable.SelectedValue.ToEntero) Then Alert("Actualizado Correctamente") RegistraScript("$('#DivUpdateUsuarioResponsable').modal('hide')") End If ObjUsuarios.Dispose() End Sub #End Region Protected Sub LnkAutorizarEquipo_Click(sender As Object, e As EventArgs) 'CveUsuario Dim AdsCodex As String = Encripta(String.Format("{0}_{1}_{2}", CveUsuario, DateTime.Now.Ticks, UsuarioActual.CveUsuario)) Using objuser As New ClsSisUsuarios() If objuser.UsuariosGetTokenXEquipo(CveUsuario, UsuarioActual.CveUsuario, AdsCodex) Then RegistraScript(String.Format("localStorage.setItem('AdsCodex', '{0}');", AdsCodex), "adstokenx") End If End Using Alert("El usuario se ha autorizado en el equipo") End Sub Protected Sub BtnCerrarSession_Click(sender As Object, e As EventArgs) 'ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CerrarSession, CveUsuario:=CveUsuario) Dim objlist As List(Of ADSSession.ADSSessionObj) = DirectCast(ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.getListasession, CveUsuario:=CveUsuario), List(Of ADSSession.ADSSessionObj)) For Each user As ADSSession.ADSSessionObj In objlist If CveUsuario = user.CveUsuario Then 'AndAlso (CveEmpresa = -1 OrElse CveEmpresa = user.CveEmpresa) Then Dim taspsig As String = user.ASPSIG '"94C6AC57E8599390A4B7B8AB41FEABEF466D9B31120BE06D78110E66265F1ACC5616297BF3B88EDCEE71EBCFE35484308F62C8017EAC29FB3F0FB45CEC09E8F03DFBB4A4DD890D45755B7A30185C6D01F20AEFA74BE3A25FD12D536B20DCB8D9940A3D95" Dim tsessionID As String = user.SessionID Dim url = System.Configuration.ConfigurationManager.AppSettings("urlcerrarSession").ToString() Dim cookie As String = String.Format("ASP.NET_SessionId={0};.ASPXSIG={1}", tsessionID, taspsig) sendURL(url, cookie) End If Next Alert("Sessión Cerrada") End Sub Private Shared Function sendURL(ByVal URL As String, ByVal Optional Cookie As String = "", ByVal Optional maxTimeMilliseconds As Integer = 120000) As String Dim resultado As String = "" Try Dim request As Net.HttpWebRequest = CType(Net.HttpWebRequest.Create(URL), Net.HttpWebRequest) request.Timeout = maxTimeMilliseconds request.Method = "POST" request.ContentType = "text/xml; charset=utf-8" If Not String.IsNullOrEmpty(Cookie) Then request.Headers.Add("Cookie", Cookie) End If Using stream As IO.Stream = request.GetRequestStream() Using stmw As IO.StreamWriter = New IO.StreamWriter(stream) stmw.Write("") End Using End Using Using response As Net.WebResponse = CType(request.GetResponse(), Net.WebResponse) Using sr As IO.StreamReader = New IO.StreamReader(response.GetResponseStream()) resultado = sr.ReadToEnd() sr.Close() End Using End Using request = Nothing Catch ex As Exception 'Extenciones.ApplicationParameter.GuardaLogEx(ex, $"SOAPAction : {SOAPAction} XML : {xml}") End Try Return resultado End Function Protected Sub LnkClonarUsuario_Click(sender As Object, e As EventArgs) RegistraScript("$('#DivClonar').modal('show');") LblClonarMensaje.Text = "" UpClonarUsuario.Update() End Sub End Class