-- cambios GlobalDTSubPr
This commit is contained in:
@@ -1143,13 +1143,14 @@ Public Class ClsOC
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function GetOrdenesDetalle(pCveOrdenCompra As Integer) As Boolean
|
||||
Public Function GetOrdenesDetalle(CveOrdenCompra As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
DataAdapter("PA_OC_OrdenesCompraDetalleGet")
|
||||
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveOrdenCompra", SqlDbType.Int).Value = pCveOrdenCompra
|
||||
.Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
End With
|
||||
|
||||
Try
|
||||
|
||||
@@ -1331,7 +1331,7 @@ Public Class ClsPaginas
|
||||
HttpContext.Current.Application(AppNombre) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Shared Property GlobalDTUnidadesMedida(Optional CveEmpresa As Integer = -1) As DataTable
|
||||
Public Shared Property GlobalDTUnidadesMedida(CveEmpresa As Integer) As DataTable
|
||||
Get
|
||||
Dim AppNombre As String = $"GlobalDTUnidadesMedida-{CveEmpresa}"
|
||||
'sino existe, recarga los datos
|
||||
@@ -1347,7 +1347,7 @@ Public Class ClsPaginas
|
||||
HttpContext.Current.Application(AppNombre) = value
|
||||
End Set
|
||||
End Property
|
||||
Property GlobalDTUnidadesMedidaAlias(Optional CveEmpresa As Integer = -1) As DataTable
|
||||
Property GlobalDTUnidadesMedidaAlias(CveEmpresa As Integer) As DataTable
|
||||
Get
|
||||
Dim AppNombre As String = $"GlobalDTUnidadesMedidaAlias-{CveEmpresa}"
|
||||
'sino existe, recarga los datos
|
||||
@@ -2411,7 +2411,7 @@ Public Class ClsPaginas
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Property GlobalDTTipoVenta(Optional CveEmpresa As Integer = -1) As DataTable
|
||||
Property GlobalDTTipoVenta(CveEmpresa As Integer) As DataTable
|
||||
Get
|
||||
Dim AppNombre As String = $"GlobalDTTipoVenta-{CveEmpresa}"
|
||||
'sino existe, recarga los datos
|
||||
@@ -4426,7 +4426,7 @@ Public Class ClsPaginas
|
||||
HttpContext.Current.Application(AppNombre) = value
|
||||
End Set
|
||||
End Property
|
||||
Public Shared Property GlobalDTVtaCondicionesEntrega(Optional CveEmpresa As Integer = -1) As DataTable
|
||||
Public Shared Property GlobalDTVtaCondicionesEntrega(CveEmpresa As Integer) As DataTable
|
||||
Get
|
||||
Dim AppNombre As String = $"GlobalDTVtaCondicionesEntrega-{CveEmpresa}"
|
||||
'sino existe, recarga los datos
|
||||
@@ -7725,7 +7725,7 @@ Public Class ClsPaginas
|
||||
End If
|
||||
ObjEmpresa.Dispose()
|
||||
Dim dtOC As DataTable = ObjOC.DtResultados
|
||||
If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra) Then 'Obtenemos el Detalle de la Oorden de Compra
|
||||
If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra, ObjOC.CveEmpresa) Then 'Obtenemos el Detalle de la Oorden de Compra
|
||||
DtDetalle = ObjOC.DtResultados
|
||||
End If
|
||||
|
||||
@@ -7795,15 +7795,9 @@ Public Class ClsPaginas
|
||||
params.Add(New ReportParameter("SubProyectoEntregaDir", SubProyectoEntregaDir))
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
Dim CveUsuarioSol As Integer = dtOC(0)("CveUsuarioSolicito").ToString.ToEntero
|
||||
Dim CveUsuarioAut As Integer = dtOC(0)("CveUsuarioAutorizo").ToString.ToEntero
|
||||
Dim drSol As DataRow = GlobalDTUsuarios(CveUsuarioSol, EmpresaActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien SOLICITÓ la OC)
|
||||
|
||||
@@ -191,7 +191,7 @@ Partial Class Bancos_RepProgramarRecursos
|
||||
Dim CveProy As Integer = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto).FiltroPrimeroValor("CveProyecto").ToEntero
|
||||
DdlSubProyecto.SelectedValue = CveSubProyecto.ToString
|
||||
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectos(CveProy, UsuarioActual.CveEmpresa, -1, 1)
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProy)
|
||||
DdlSubProyecto.DataBind()
|
||||
End If
|
||||
|
||||
|
||||
@@ -10669,7 +10669,7 @@ Partial Class Compras_Compras
|
||||
'RegistraScript(String.Format("$get('TxtOC').value = '{0}';tb_remove;", OC.Folio))
|
||||
RegistraScript("tb_remove();")
|
||||
|
||||
If OC.GetOrdenesDetalle(CveOC) Then
|
||||
If OC.GetOrdenesDetalle(CveOC, UsuarioActual.CveEmpresa) Then
|
||||
dt = OC.DtResultados
|
||||
End If
|
||||
End If
|
||||
@@ -11087,7 +11087,7 @@ Partial Class Compras_Compras
|
||||
Dim CveProyecto As Integer = If(gvRow.FCDropDownList("DdlProyectoPersonal").SelectedValue.ToEntero > 0, gvRow.FCDropDownList("DdlProyectoPersonal").SelectedValue.ToEntero, -1)
|
||||
gvRow.FCDropDownList("DdlSubProyectoPersonal").Items.Clear()
|
||||
If CveProyecto > 0 Or UsuarioActual.Empresa.Tipo_CentroCosto.Contiene(1, 2) Then
|
||||
gvRow.FCDropDownList("DdlSubProyectoPersonal").DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(CveProyecto, -1, UsuarioActual.CveEmpresa, 1))
|
||||
gvRow.FCDropDownList("DdlSubProyectoPersonal").DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto))
|
||||
End If
|
||||
gvRow.FCDropDownList("DdlSubProyectoPersonal").DataBind()
|
||||
gvRow.FCDropDownList("DdlSubProyectoPersonal").Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
@@ -11143,7 +11143,7 @@ Partial Class Compras_Compras
|
||||
e.Row.FCDropDownList("DdlSubProyectoPersonal").DataSource =
|
||||
If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110),
|
||||
GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, e.Row.DBCampo("CveProyecto").ToEntero, UsuarioActual.CveEmpresa, -1, 1),
|
||||
GlobalDTSubProyectos(e.Row.DBCampo("CveProyecto").ToEntero, -1, UsuarioActual.CveEmpresa, 1))
|
||||
GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=e.Row.DBCampo("CveProyecto").ToEntero))
|
||||
End If
|
||||
e.Row.FCDropDownList("DdlSubProyectoPersonal").Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
e.Row.FCDropDownList("DdlSubProyectoPersonal").DataBind()
|
||||
@@ -14341,7 +14341,7 @@ Partial Class Compras_Compras
|
||||
Dim StrPromos As New StringBuilder
|
||||
|
||||
For Each CveOCItem As String In ArrayCveOC.Distinct
|
||||
If ObjOC.GetOrdenesDetalle(CveOCItem.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then
|
||||
If ObjOC.GetOrdenesDetalle(CveOCItem.ToEntero, UsuarioActual.CveEmpresa) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then
|
||||
If IsNothing(DTOCTemp) Then
|
||||
DTOCTemp = ObjOC.DtResultados.Copy
|
||||
Else
|
||||
@@ -14583,9 +14583,14 @@ Partial Class Compras_Compras
|
||||
|
||||
TmpDT = TmpDT.FiltraParametros("", "PU")
|
||||
|
||||
|
||||
GvOC2.DataSource = TmpDT
|
||||
GvOC2.DataBind()
|
||||
'condicion temporal rmf
|
||||
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
|
||||
GvOC1.Columns(6).Visible = False
|
||||
GvOC2.Columns(4).Visible = False
|
||||
End If
|
||||
|
||||
UpGvOC2.Update()
|
||||
End Sub
|
||||
Protected Sub GvOC1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvOC1.RowDataBound
|
||||
@@ -17195,7 +17200,7 @@ Partial Class Compras_Compras
|
||||
CveProyecto = -1
|
||||
End If
|
||||
|
||||
DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(CveProyecto, -1, UsuarioActual.CveEmpresa, 1))
|
||||
DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto))
|
||||
|
||||
DdlSubProyecto.DataBind()
|
||||
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
@@ -17924,7 +17929,7 @@ Partial Class Compras_Compras
|
||||
Private Sub CargaSubProyectoAsignado()
|
||||
DdlAsignaSubProyecto.Items.Clear()
|
||||
If DdlAsignarProyecto.SelectedValue.ToEntero > 0 Then
|
||||
DdlAsignaSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlAsignarProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(DdlAsignarProyecto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa, 1))
|
||||
DdlAsignaSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlAsignarProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=DdlAsignarProyecto.SelectedValue.ToEntero))
|
||||
End If
|
||||
DdlAsignaSubProyecto.DataBind()
|
||||
DdlAsignaSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
|
||||
@@ -835,7 +835,7 @@ Partial Class Contratos_Default
|
||||
End Sub
|
||||
Protected Sub CargaSubProyectoContrato(CveProyecto As Integer)
|
||||
DdlSubProyectoContrato.Items.Clear()
|
||||
DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto2"})
|
||||
DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto2"})
|
||||
DdlSubProyectoContrato.DataBind()
|
||||
DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1"))
|
||||
End Sub
|
||||
|
||||
@@ -1263,15 +1263,7 @@ Partial Class Contratos_ContratoObra
|
||||
' DdlProyecto.DataBind()
|
||||
'End If
|
||||
End Sub
|
||||
'Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged
|
||||
' CargaSubProyectoContrato(DdlProyecto.SelectedValue.ToEntero)
|
||||
'End Sub
|
||||
'Protected Sub CargaSubProyectoContrato(CveProyecto As Integer)
|
||||
' DdlSubProyectoContrato.Items.Clear()
|
||||
' DdlSubProyectoContrato.DataSource = GlobalDTSubProyectos(CveProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubproyecto", "SubProyecto"})
|
||||
' DdlSubProyectoContrato.DataBind()
|
||||
' DdlSubProyectoContrato.Items.Insert(0, New ListItem("Seleccione un Proyecto", "-1"))
|
||||
'End Sub
|
||||
|
||||
Private Sub CargaContratista()
|
||||
DdlContratista.setEsWebService(True)
|
||||
DdlContratista.Attributes.Add("data-metodo", "getproveedores")
|
||||
|
||||
@@ -1686,7 +1686,7 @@ Partial Class OC_OC
|
||||
CboE.DataBind()
|
||||
End If
|
||||
|
||||
If objOC.GetOrdenesDetalle(pCveOrdenCompra) Then
|
||||
If objOC.GetOrdenesDetalle(pCveOrdenCompra, UsuarioActual.cveempresa) Then
|
||||
DtDetalle = objOC.DtResultados
|
||||
End If
|
||||
|
||||
@@ -2043,7 +2043,7 @@ Partial Class OC_OC
|
||||
End Sub
|
||||
Private Sub CargaSubProyectosEdit(DdlSP As DropDownList, CveProyectoEdit As Integer)
|
||||
DdlSP.Items.Clear()
|
||||
DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyectoEdit)
|
||||
DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"})
|
||||
DdlSP.DataBind()
|
||||
DdlSP.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
End Sub
|
||||
|
||||
@@ -795,7 +795,7 @@ Partial Class OC
|
||||
End Sub
|
||||
Private Sub CargaSubProyectosEdit(DdlSP As DropDownList, CveProyectoEdit As Integer)
|
||||
DdlSP.Items.Clear()
|
||||
DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyectoEdit)
|
||||
DdlSP.DataSource = DtEstatusUsuarios.FiltraParametros(String.Format("CveProyecto = {0}", CveProyectoEdit), "", {"CveSubProyecto", "SubProyecto"})
|
||||
DdlSP.DataBind()
|
||||
DdlSP.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
End Sub
|
||||
|
||||
@@ -129,7 +129,7 @@ Partial Class OC_PopUpBuscarReq
|
||||
Private Sub CargaSubProyectos(CveProyecto As Integer)
|
||||
DdlSubProyectos.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110),
|
||||
GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1),
|
||||
GlobalDTSubProyectos(CveProyecto, -1, UsuarioActual.CveEmpresa, 1))
|
||||
GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto))
|
||||
DdlSubProyectos.DataBind()
|
||||
DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
End Sub
|
||||
|
||||
@@ -80,7 +80,7 @@ Partial Class OC_RepRequisiciones
|
||||
DdlSubProyecto.DataBind()
|
||||
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
Else
|
||||
DdlSubProyecto.DataSource = DtUsuarioProyectos.FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero), "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(CveProyecto, -1, UsuarioActual.CveEmpresa, Estatus:=1)
|
||||
DdlSubProyecto.DataSource = DtUsuarioProyectos.FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero), "", {"CveSubProyecto", "SubProyecto"})
|
||||
DdlSubProyecto.DataBind()
|
||||
End If
|
||||
|
||||
|
||||
@@ -500,16 +500,7 @@ Partial Class OS_OrdenesServicios
|
||||
End If
|
||||
UpDetalleOS.Update()
|
||||
End Sub
|
||||
'Protected Sub DdlCCEdit_SelectedIndexChanged(sender As Object, e As System.EventArgs)
|
||||
' Dim gvr As GridViewRow = DirectCast(DirectCast(sender, DropDownList).BindingContainer, GridViewRow)
|
||||
' Dim CveProyecto As String = DirectCast(sender, DropDownList).SelectedValue
|
||||
|
||||
' gvr.FCDropDownList("DDlSubProyecto").Items.Clear()
|
||||
' gvr.FCDropDownList("DDlSubProyecto").DataSource = GlobalDTSubProyectos(CveProyecto.ToEntero)
|
||||
' gvr.FCDropDownList("DDlSubProyecto").DataBind()
|
||||
' gvr.FCDropDownList("DDlSubProyecto").Items.Insert(0, New ListItem("Sin SubProyecto Asignado", "-1"))
|
||||
|
||||
'End Sub
|
||||
Protected Sub DdlFR_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
Dim DdlFR_Gv As DropDownList = CType(sender, DropDownList)
|
||||
Dim index As Integer = CType(DdlFR_Gv.NamingContainer, GridViewRow).FCLiteral("LtlConsecutivo").Text.ToString.ToEntero
|
||||
|
||||
@@ -200,7 +200,7 @@ Partial Class RH_AsistenciaDetalle
|
||||
Dim CveProyecto As String = DirectCast(sender, DropDownList).SelectedValue
|
||||
|
||||
GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").Items.Clear()
|
||||
GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").DataSource = GlobalDTSubProyectos(CveProyecto.ToEntero).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa, "", {"CveSubProyecto", "SubProyecto"})
|
||||
GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto.ToEntero).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa, "", {"CveSubProyecto", "SubProyecto"})
|
||||
GvDatos.FCDropDownList("DdlSubProyectoAsignadoEdit").DataBind()
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ Partial Class RH_CatPersonalRequerido
|
||||
SubProyectoDdl.Items.Clear()
|
||||
SubProyectoDdl.SelectedValue = Nothing
|
||||
If CveProyecto > 0 Then
|
||||
SubProyectoDdl.DataSource = GlobalDTSubProyectos(CveProyecto)
|
||||
SubProyectoDdl.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=CveProyecto)
|
||||
End If
|
||||
SubProyectoDdl.DataBind()
|
||||
SubProyectoDdl.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1"))
|
||||
|
||||
@@ -166,22 +166,23 @@ Partial Class ListadoContratos
|
||||
End If
|
||||
Anexo.Text = ""
|
||||
|
||||
If ErrorProceso = False Then
|
||||
'If ErrorProceso = False Then
|
||||
|
||||
Dim Respuesta As New RespuestaFacturacion()
|
||||
Dim CvePS As Integer = 907783
|
||||
Respuesta = GeneraRemision(CveContrato, LbFolio.Text, TxtImporte.Text.ToDecimal, CvePS, ObjContratos.IniciaTransacSQL)
|
||||
' Dim Respuesta As New RespuestaFacturacion()
|
||||
' Dim CvePS As Integer = 907783
|
||||
' Respuesta = GeneraRemision(CveContrato, LbFolio.Text, TxtImporte.Text.ToDecimal, CvePS, ObjContratos.IniciaTransacSQL)
|
||||
|
||||
If Respuesta.CveVenta > 0 Then
|
||||
CveVentaRemision = Respuesta.CveVenta
|
||||
SerieFolioRemision = Respuesta.SerieFolio
|
||||
ErrorProceso = False
|
||||
Else
|
||||
ErrorProceso = True
|
||||
Alert("se presento un error al generar la remisión", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
' If Respuesta.CveVenta > 0 Then
|
||||
' CveVentaRemision = Respuesta.CveVenta
|
||||
' SerieFolioRemision = Respuesta.SerieFolio
|
||||
' ErrorProceso = False
|
||||
' Else
|
||||
' ErrorProceso = True
|
||||
' Alert("se presento un error al generar la remisión", TipoMensaje.MsgAdvertencia)
|
||||
' End If
|
||||
|
||||
'End If
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
ErrorProceso = True
|
||||
|
||||
Reference in New Issue
Block a user