From c76bed94f78009573f9fd5e143c5afcc2df3454b Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 2 Jan 2020 12:52:25 -0700 Subject: [PATCH] --- Ashx/SIGWeb.ashx | 1176 ++++++++++++++++++++++++---------------------- 1 file changed, 606 insertions(+), 570 deletions(-) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index 2126273d5..eb63f151b 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -1,72 +1,72 @@ <%@ WebHandler Language="VB" Class="SIGWeb" %> -Imports System -Imports System.Web -Imports System.Data -Imports Newtonsoft.Json -Imports Extensiones -Imports System.IO - -Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState - - Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest - context.Response.ContentType = "text/plain" - Try - Select Case context.Request("metodo") - Case "getps" - GETPS(context) - Case "getps2" - GETPS(context, "PSCodigoClasificacion") - Case "getpsalmacen" - getpsalmacen(context) - Case "Uploadfile" - uploadfile(context) - Case "Downfile" - Downfile(context) - Case "GetImg" - GetImg(context) - Case "getpssat" - GETPSSAT(context) - Case "getpsusados" - GETPSUSADOS(context) - Case "getumsat" - GETUMSAT(context) - Case "getcliente" - GetClientes(context) - Case "getproveedores" - GetProveedores(context) - Case "getfraccionarancelaria" - GetFraccionArancelaria(context) - Case "GetUser" +Imports System +Imports System.Web +Imports System.Data +Imports Newtonsoft.Json +Imports Extensiones +Imports System.IO + +Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState + + Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest + context.Response.ContentType = "text/plain" + Try + Select Case context.Request("metodo") + Case "getps" + GETPS(context) + Case "getps2" + GETPS(context, "PSCodigoClasificacion") + Case "getpsalmacen" + getpsalmacen(context) + Case "Uploadfile" + uploadfile(context) + Case "Downfile" + Downfile(context) + Case "GetImg" + GetImg(context) + Case "getpssat" + GETPSSAT(context) + Case "getpsusados" + GETPSUSADOS(context) + Case "getumsat" + GETUMSAT(context) + Case "getcliente" + GetClientes(context) + Case "getproveedores" + GetProveedores(context) + Case "getfraccionarancelaria" + GetFraccionArancelaria(context) + Case "GetUser" GetUser(context) - Case "ActualizaPreP" - ActualizaPrePoliza(context) - - End Select - Catch ex As Exception - ex.GuardaLog(ex.Message) - End Try - End Sub - - - Private Sub GetUser(ByVal context As HttpContext) - Dim usuario As String = context.Request("usuario").ToString() - Dim CveUsuario As Integer = -1 - Dim objs As New ClsSisUsuarios - objs.GetWSusuarios(usuario) - If objs.DtResultados.Rows.Count > 0 Then - CveUsuario = objs.DtResultados.Rows(0)("CveUsuario").ToString().ToEntero() - End If - objs.Dispose() - If CveUsuario > 0 Then - CveUsuario = 1 - End If - - context.Response.Write(CveUsuario.ToString()) - context.Response.StatusCode = 200 + Case "ActualizaPreP" + ActualizaPrePoliza(context) + + End Select + Catch ex As Exception + ex.GuardaLog(ex.Message) + End Try End Sub - Private Sub ActualizaPrePoliza(ByVal context As HttpContext) + + Private Sub GetUser(ByVal context As HttpContext) + Dim usuario As String = context.Request("usuario").ToString() + Dim CveUsuario As Integer = -1 + Dim objs As New ClsSisUsuarios + objs.GetWSusuarios(usuario) + If objs.DtResultados.Rows.Count > 0 Then + CveUsuario = objs.DtResultados.Rows(0)("CveUsuario").ToString().ToEntero() + End If + objs.Dispose() + If CveUsuario > 0 Then + CveUsuario = 1 + End If + + context.Response.Write(CveUsuario.ToString()) + context.Response.StatusCode = 200 + End Sub + + Private Sub ActualizaPrePoliza(ByVal context As HttpContext) Dim CvePrePoliza As Integer = context.Request("CvePrePoliza").ToString.ToEntero Dim CveEmpresa As Integer = context.Request("CveEmpresa").ToString.ToEntero Dim CveUsuario As Integer = context.Request("CveUsuario").ToString.ToEntero @@ -96,234 +96,266 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState ObjConta.Dispose() 'context.Response.Write(CveUsuario.ToString()) - context.Response.StatusCode = Retorno - End Sub - - Private Sub GetImg(ByVal context As HttpContext) - Dim Url As String = Decripta(context.Request("r").ToString) - - Dim usuario As Usuario = UsuarioActual(context) - If Not IsNothing(usuario) Then - Url = String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, usuario.CveEmpresa, Url) - Dim FileInfo As FileInfo = New FileInfo(Url) - If FileInfo.Exists Then - context.Response.ContentType = "image/png" - context.Response.Flush() - context.Response.WriteFile(FileInfo.FullName) - context.Response.End() - End If - - End If + context.Response.StatusCode = Retorno End Sub -#Region "File" + Private Sub GetImg(ByVal context As HttpContext) + Dim Url As String = Decripta(context.Request("r").ToString) - Private Sub Downfile(ByVal context As HttpContext) - Dim savepath As String = "" - Dim tempPath As String = "" - tempPath = String.Format("{0}{1}", System.Configuration.ConfigurationManager.AppSettings("FolderPath"), "/Temp") - savepath = context.Server.MapPath(tempPath) - Dim nombre As String = String.Format("{0}\{1}", savepath, context.Request("nombre")) - File.Delete(nombre) - context.Response.StatusCode = 200 - End Sub - - Private Sub uploadfile(ByVal context As HttpContext) - Dim postedFile As HttpPostedFile - Dim savepath As String = "" - Dim tempPath As String = "" - tempPath = String.Format("{0}{1}", System.Configuration.ConfigurationManager.AppSettings("FolderPath"), "/Temp") - savepath = context.Server.MapPath(tempPath) - Dim filename As String - Dim tick As String - tick = (DateTime.Now.Ticks + 1).ToString() - If Not Directory.Exists(savepath) Then - Directory.CreateDirectory(savepath) - End If - If context.Request.Files.Count = 0 Then - Dim copyFile As String = context.Request("File") - Dim Cve As String = context.Request("Cve") - - If copyFile <> "" Then - Dim ext As Integer = copyFile.IndexOf(","c) + 1 - - Dim extncion As String = copyFile.Substring(5, ext - 5) - If extncion.Contains("image/") Then extncion = extncion.Replace("image/", "").Replace(";base64,", "") - 'Dim extncion As String = - filename = String.Format("{0}-{1}.{2}", tick, Cve, extncion) - - Dim msf As New MemoryStream(Convert.FromBase64String(copyFile.Substring(ext))) - Dim stem As Stream = New FileStream(String.Format("{0}\{1}", savepath, filename), FileMode.Create) - msf.WriteTo(stem) - msf.Close() - stem.Close() - - End If - Else - - postedFile = context.Request.Files(0) - filename = String.Format("{0}-{1}", tick, postedFile.FileName) - - postedFile.SaveAs((savepath & "\") + filename) - End If - context.Response.Write(tick) - context.Response.StatusCode = 200 + Dim usuario As Usuario = UsuarioActual(context) + If Not IsNothing(usuario) Then + Url = String.Format("{0}Empresas\{1}\{2}", AppDomain.CurrentDomain.BaseDirectory, usuario.CveEmpresa, Url) + Dim FileInfo As FileInfo = New FileInfo(Url) + If FileInfo.Exists Then + context.Response.ContentType = "image/png" + context.Response.Flush() + context.Response.WriteFile(FileInfo.FullName) + context.Response.End() + End If + + End If End Sub -#End Region -#Region "Get Cliente" - Private Function GetClientes(ByVal context As HttpContext) As String - Dim retorno As String = "" - Dim DtRetorno As DataTable = Nothing - - Dim usuario As Usuario = UsuarioActual(context) - Dim CveEmpresa As String - If IsNothing(usuario) Then - context.Response.Write("") - Else - CveEmpresa = usuario.CveEmpresa - Dim Name = IfNull(context.Request("Name"), "-1").ToString - Dim dt As DataTable = DirectCast(context.Application("GlobalDTCliente"), DataTable).FiltraParametros($"CveEmpresa = {CveEmpresa}") - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - DtRetorno = dt.FiltraParametros($"NombreComercial like '%{Name}%'") - End If - End If - - If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then - DtRetorno.Columns("CveCliente").ColumnName = "id" - DtRetorno.Columns("NombreComercial").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - - Return retorno +#Region "File" + + Private Sub Downfile(ByVal context As HttpContext) + Dim savepath As String = "" + Dim tempPath As String = "" + tempPath = String.Format("{0}{1}", System.Configuration.ConfigurationManager.AppSettings("FolderPath"), "/Temp") + savepath = context.Server.MapPath(tempPath) + Dim nombre As String = String.Format("{0}\{1}", savepath, context.Request("nombre")) + File.Delete(nombre) + context.Response.StatusCode = 200 + End Sub + + Private Sub uploadfile(ByVal context As HttpContext) + Dim postedFile As HttpPostedFile + Dim savepath As String = "" + Dim tempPath As String = "" + tempPath = String.Format("{0}{1}", System.Configuration.ConfigurationManager.AppSettings("FolderPath"), "/Temp") + savepath = context.Server.MapPath(tempPath) + Dim filename As String + Dim tick As String + tick = (DateTime.Now.Ticks + 1).ToString() + If Not Directory.Exists(savepath) Then + Directory.CreateDirectory(savepath) + End If + If context.Request.Files.Count = 0 Then + Dim copyFile As String = context.Request("File") + Dim Cve As String = context.Request("Cve") + + If copyFile <> "" Then + Dim ext As Integer = copyFile.IndexOf(","c) + 1 + + Dim extncion As String = copyFile.Substring(5, ext - 5) + If extncion.Contains("image/") Then extncion = extncion.Replace("image/", "").Replace(";base64,", "") + 'Dim extncion As String = + filename = String.Format("{0}-{1}.{2}", tick, Cve, extncion) + + Dim msf As New MemoryStream(Convert.FromBase64String(copyFile.Substring(ext))) + Dim stem As Stream = New FileStream(String.Format("{0}\{1}", savepath, filename), FileMode.Create) + msf.WriteTo(stem) + msf.Close() + stem.Close() + + End If + Else + + postedFile = context.Request.Files(0) + filename = String.Format("{0}-{1}", tick, postedFile.FileName) + + postedFile.SaveAs((savepath & "\") + filename) + End If + context.Response.Write(tick) + context.Response.StatusCode = 200 + End Sub +#End Region + +#Region "Get Cliente" + Private Function GetClientes(ByVal context As HttpContext) As String + Dim retorno As String = "" + Dim DtRetorno As DataTable = Nothing + + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As String + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + Dim Name = IfNull(context.Request("Name"), "-1").ToString + Dim AppNombre As String = String.Format("GlobalDTCliente{0}", CveEmpresa) + 'sino existe, recarga los datos + If context.Application(AppNombre) Is Nothing Then + Dim ObjClientes As New ClsClientes + If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa, Estatus:=-1) Then + context.Application(AppNombre) = ObjClientes.DtResultados + End If + ObjClientes.Dispose() + End If + + 'Dim ObjClientes As New ClsClientes + 'If ObjClientes.GetClientes(-1, Name, "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa, Estatus:=-1) Then + ' DtRetorno = ObjClientes.DtResultados + 'End If + 'ObjClientes.Dispose() + + Dim dt As DataTable = DirectCast(context.Application(AppNombre), DataTable).FiltraParametros($"CveEmpresa = {CveEmpresa}") + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + DtRetorno = dt.FiltraParametros($"NombreComercial like '%{Name}%'") + End If + End If + + If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then + DtRetorno.Columns("CveCliente").ColumnName = "id" + DtRetorno.Columns("NombreComercial").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + + Return retorno End Function -#End Region +#End Region -#Region "Get Proveedor" - Private Function GetProveedores(ByVal context As HttpContext) As String - Dim retorno As String = "" - Dim DtRetorno As DataTable = Nothing - - Dim usuario As Usuario = UsuarioActual(context) - Dim CveEmpresa As String - If IsNothing(usuario) Then - context.Response.Write("") - Else - CveEmpresa = usuario.CveEmpresa - Dim Name = IfNull(context.Request("Name"), "-1").ToString - Dim dt As DataTable = DirectCast(context.Application("GlobalDTCompProveedores"), DataTable).FiltraParametros($"CveEmpresa = {CveEmpresa}") - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - DtRetorno = dt.FiltraParametros($"RazonSocial like '%{Name}%'") - End If - End If - - If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then - DtRetorno.Columns("CveProveedor").ColumnName = "id" - DtRetorno.Columns("RazonSocial").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - - Return retorno +#Region "Get Proveedor" + Private Function GetProveedores(ByVal context As HttpContext) As String + Dim retorno As String = "" + Dim DtRetorno As DataTable = Nothing + + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As String + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + Dim Name = IfNull(context.Request("Name"), "-1").ToString + Dim AppNombre As String = String.Format("GlobalDTCompProveedores{0}", CveEmpresa) + 'sino existe, recarga los datos + If context.Application(AppNombre) Is Nothing Then + Dim ObjProveedores As New ClsCompProveedores + If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then + context.Application(AppNombre) = ObjProveedores.DtResultados + End If + ObjProveedores.Dispose() + End If + + 'Dim ObjProveedores As New ClsCompProveedores + 'If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, -1, "-1", Name, "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then + ' DtRetorno = ObjProveedores.DtResultados + 'End If + 'ObjProveedores.Dispose() + Dim dt As DataTable = DirectCast(context.Application(AppNombre), DataTable).FiltraParametros($"CveEmpresa = {CveEmpresa}") + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + DtRetorno = dt.FiltraParametros($"RazonSocial like '%{Name}%'") + End If + End If + + If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then + DtRetorno.Columns("CveProveedor").ColumnName = "id" + DtRetorno.Columns("RazonSocial").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + + Return retorno End Function -#End Region +#End Region -#Region " GET PS " - Private Function getpsalmacen(ByVal context As HttpContext) As String - - Dim usuario As Usuario = UsuarioActual(context) - Dim CveEmpresa As String - Dim retorno As String = "" - Dim DtPSRetorno As DataTable = Nothing - - If IsNothing(usuario) Then - context.Response.Write("") - Else - CveEmpresa = usuario.CveEmpresa - - DtPSRetorno = New DataTable - DtPSRetorno.Columns.Add(New DataColumn("id", System.Type.GetType("System.Int32"))) - DtPSRetorno.Columns.Add(New DataColumn("existencia", System.Type.GetType("System.Int32"))) - DtPSRetorno.Columns.Add(New DataColumn("almacen", System.Type.GetType("System.String"))) - - Dim CvePS = IfNull(context.Request("cveps"), "0").ToString.ToEntero - Dim objInv As New ClsInventarios - If objInv.GetExistenciasProducto(CvePS, -1, CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm")) Then - - ' limpio los almacenes donde no tiene ningun producto existencia - For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 - - If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CveAlmacen", "Almacen", "Existencia") Then - objInv.DtResultados.Columns.RemoveAt(i) - End If - Next - - DtPSRetorno = objInv.DtResultados.FiltraParametros("CveAlmacen > 0 and Existencia > 0") - End If - - objInv.Dispose() - - End If - - If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then - DtPSRetorno.Columns("CveAlmacen").ColumnName = "id" - DtPSRetorno.Columns("Almacen").ColumnName = "almacen" - DtPSRetorno.Columns("Existencia").ColumnName = "existencia" - retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - - Return retorno - End Function - - Private Function GETPS(ByVal context As HttpContext, Optional PSCodigoDescripcion As String = "PSCodigo") As String - Dim retorno As String = "" - Dim DtPSRetorno As DataTable = Nothing - - 'NOTA: - ' EN EL WHERE DE LINQ NO SE DEBE USAS EL OPERADOR 'AND' SABE PORQUE FUNCIONA DIFERENTE SE DEBE USAR 'ANDALSO', - ' EJEMPLO UNA CONDICION AND DE DOS CAMPOS ARROJA CERO RESULTADOS PERO SI SE PONE ESTAS DOS CONDICIONES POR SEPARADO ARROJA DATOS - Dim usuario As Usuario = UsuarioActual(context) - Dim CveEmpresa As String - If IsNothing(usuario) Then - context.Response.Write("") - Else - CveEmpresa = usuario.CveEmpresa - Dim FuePorXml = IfNull(context.Request("FuePorXml"), "-1").ToString.ToEntero - Dim Name = IfNull(context.Request("Name"), "-1").ToString - Dim CveClasificacion = IfNull(context.Request("CveClasificacion"), "-1").ToString.ToEntero - Dim CveSubFamilia = IfNull(context.Request("CveSubFamilia"), "-1").ToString.ToEntero - Dim CveClasificacionPresupuesto = IfNull(context.Request("CveClasificacionPresupuesto"), "-1").ToString.ToEntero - Dim Pagina = IfNull(context.Request("Pagina"), "-1").ToString - Dim Estatus = IfNull(context.Request("Estatus"), "1").ToString - Dim CveSucursal = IfNull(context.Request("cvesucursal"), "-1").ToString.ToEntero - Dim CveSubProyecto = IfNull(context.Request("cvesubproyecto"), "-1").ToString.ToEntero - Dim UsoClasificacion = IfNull(context.Request("usoclasificacion"), "-1").ToString.ToEntero - Dim AplicaParaVenta = IfNull(context.Request("aplicaparaventa"), "-1").ToString.ToEntero - - Dim UsaGlobal As Boolean = True - - - 'verifica existencias - If Pagina.Contiene("ventas/ventas", "oc/oc", "inv/traspaso") AndAlso CveEmpresa.Contiene(72, 80, 119, 140, 141) Then - UsaGlobal = False - - Dim objInv As New ClsInventarios - If objInv.GetExistenciasProductosLike(Name, CveClasificacion, CveSubProyecto, Estatus.ToEntero, AplicaParaVenta, CveEmpresa) Then - +#Region " GET PS " + Private Function getpsalmacen(ByVal context As HttpContext) As String + + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As String + Dim retorno As String = "" + Dim DtPSRetorno As DataTable = Nothing + + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + + DtPSRetorno = New DataTable + DtPSRetorno.Columns.Add(New DataColumn("id", System.Type.GetType("System.Int32"))) + DtPSRetorno.Columns.Add(New DataColumn("existencia", System.Type.GetType("System.Int32"))) + DtPSRetorno.Columns.Add(New DataColumn("almacen", System.Type.GetType("System.String"))) + + Dim CvePS = IfNull(context.Request("cveps"), "0").ToString.ToEntero + Dim objInv As New ClsInventarios + If objInv.GetExistenciasProducto(CvePS, -1, CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm")) Then + + ' limpio los almacenes donde no tiene ningun producto existencia + For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 + + If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CveAlmacen", "Almacen", "Existencia") Then + objInv.DtResultados.Columns.RemoveAt(i) + End If + Next + + DtPSRetorno = objInv.DtResultados.FiltraParametros("CveAlmacen > 0 and Existencia > 0") + End If + + objInv.Dispose() + + End If + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CveAlmacen").ColumnName = "id" + DtPSRetorno.Columns("Almacen").ColumnName = "almacen" + DtPSRetorno.Columns("Existencia").ColumnName = "existencia" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + + Return retorno + End Function + + Private Function GETPS(ByVal context As HttpContext, Optional PSCodigoDescripcion As String = "PSCodigo") As String + Dim retorno As String = "" + Dim DtPSRetorno As DataTable = Nothing + + 'NOTA: + ' EN EL WHERE DE LINQ NO SE DEBE USAS EL OPERADOR 'AND' SABE PORQUE FUNCIONA DIFERENTE SE DEBE USAR 'ANDALSO', + ' EJEMPLO UNA CONDICION AND DE DOS CAMPOS ARROJA CERO RESULTADOS PERO SI SE PONE ESTAS DOS CONDICIONES POR SEPARADO ARROJA DATOS + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As String + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + Dim FuePorXml = IfNull(context.Request("FuePorXml"), "-1").ToString.ToEntero + Dim Name = IfNull(context.Request("Name"), "-1").ToString + Dim CveClasificacion = IfNull(context.Request("CveClasificacion"), "-1").ToString.ToEntero + Dim CveSubFamilia = IfNull(context.Request("CveSubFamilia"), "-1").ToString.ToEntero + Dim CveClasificacionPresupuesto = IfNull(context.Request("CveClasificacionPresupuesto"), "-1").ToString.ToEntero + Dim Pagina = IfNull(context.Request("Pagina"), "-1").ToString + Dim Estatus = IfNull(context.Request("Estatus"), "1").ToString + Dim CveSucursal = IfNull(context.Request("cvesucursal"), "-1").ToString.ToEntero + Dim CveSubProyecto = IfNull(context.Request("cvesubproyecto"), "-1").ToString.ToEntero + Dim UsoClasificacion = IfNull(context.Request("usoclasificacion"), "-1").ToString.ToEntero + Dim AplicaParaVenta = IfNull(context.Request("aplicaparaventa"), "-1").ToString.ToEntero + + Dim UsaGlobal As Boolean = True + + + 'verifica existencias + If Pagina.Contiene("ventas/ventas", "oc/oc", "inv/traspaso") AndAlso CveEmpresa.Contiene(72, 80, 119, 140, 141) Then + UsaGlobal = False + + Dim objInv As New ClsInventarios + If objInv.GetExistenciasProductosLike(Name, CveClasificacion, CveSubProyecto, Estatus.ToEntero, AplicaParaVenta, CveEmpresa) Then + ' limpio los almacenes donde no tiene ningun producto existencia + Dim i As Integer = 0 While i < objInv.DtResultados.Columns.Count - If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CvePS", "PSCodigo", "PSCodigoClasificacion") AndAlso objInv.DtResultados.SUM(String.Format("[{0}]", objInv.DtResultados.Columns(i).ColumnName)) = 0 Then + If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CvePS", "PSCodigo", "PSCodigoClasificacion") AndAlso objInv.DtResultados.SUM(String.Format("[{0}]", objInv.DtResultados.Columns(i).ColumnName)) = 0 Then objInv.DtResultados.Columns.RemoveAt(i) Else i = i + 1 @@ -332,10 +364,10 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState DtPSRetorno = objInv.DtResultados - End If - - objInv.Dispose() - + End If + + objInv.Dispose() + End If If usuario.Empresa.Funcionalidad(558) = "1" Then @@ -345,309 +377,313 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState Catch ex As Exception End Try - End If - + End If + + If UsaGlobal Then + 'se recarga el global, y el clspaginas, son los unicos 2 lugares + Dim AppNombre As String = String.Format("GlobalDTPSSimplificado{0}", CveEmpresa) + If context.Application(String.Format("GlobalDTPSSimplificado{0}", CveEmpresa)) Is Nothing Then + Dim ObjPS As New ClsProductosServicios + If ObjPS.GetPSSimplificado(CveEmpresa) Then context.Application(AppNombre) = ObjPS.DtResultados.AsEnumerable() + ObjPS.Dispose() + + End If + + + Dim DTPS = DirectCast(context.Application(AppNombre), EnumerableRowCollection(Of DataRow)) + 'Dim DTPS = ClsPaginas.GlobalDTPSSimplificado(CveEmpresa).AsEnumerable + + If DTPS IsNot Nothing Then + + + 'APLICACION DE FILTROS + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) + If Estatus = 1 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEstado) = 1)) + ElseIf Estatus = -1 Then + + End If + + 'If FuePorXml >= 0 Then + ' DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!FuePorXML) = FuePorXml)) + 'End If + + If Name <> "-1" Then + If PSCodigoDescripcion = "PSCodigo" Then + DTPS = DTPS.Where((Function(a) a!PSCodigo.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + Else + DTPS = DTPS.Where((Function(a) a!PSCodigoClasificacion.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + End If + End If + + If CveClasificacion > 0 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) + ElseIf CveClasificacion = -1 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) >= 0)) + End If + + If AplicaParaVenta > 0 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!AplicaParaVenta) = 1)) + End If + + 'If CveSubFamilia > 0 Then + ' DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveSubFamilia) = CveSubFamilia)) + ' 'ElseIf CveSubFamilia = -1 Then + ' 'DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveSubFamilia) > 0)) + 'End If + + If CveClasificacionPresupuesto > 0 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacionPresupuesto) = CveClasificacionPresupuesto)) + End If + + If UsoClasificacion > 0 Then DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!UsoClasificacion) = UsoClasificacion)) + + If Pagina <> "-1" Then + If Pagina = "Compras" Then + DTPS = DTPS.Where((Function(a) a!CveTipoPS = 1 AndAlso a!CveEstado = 1)) + ElseIf Pagina = "Compras2" Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 1 AndAlso (Convert.ToInt32(a!CveEstado) = 1 OrElse Convert.ToInt32(a!CveEstado) = 2))) + ElseIf Pagina = "Inventarios" Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 2)) + End If + End If + + 'Try, generado para cuando el resultado no tiene valores(The source contains no DataRows.), no detenga la ejecucion, no se le puso un count previo, porque el costo se duplica, al preguntar y luego ordenar y convertir a datatable + Try + DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!PSCodigo).CopyToDataTable).ToTable(True, {"CvePS", "PSCodigo", "PSCodigoClasificacion"}) + + Catch ex As Exception + DtPSRetorno = Nothing + End Try + + End If + End If + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CvePS").ColumnName = "id" + DtPSRetorno.Columns(PSCodigoDescripcion).ColumnName = "text" + If PSCodigoDescripcion = "PSCodigo" Then + DtPSRetorno.Columns().Remove("PSCodigoClasificacion") + Else + DtPSRetorno.Columns().Remove("PSCodigo") + End If + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + End If + + Return retorno + End Function +#End Region + + + + Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable + Get + Return False + End Get + End Property + + + +#Region "Funciones" + Public Function GetJson(ByVal dt As DataTable) As String + + Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer() + Dim rows As New List(Of Dictionary(Of String, Object)) + Dim row As Dictionary(Of String, Object) + + For Each dr As DataRow In dt.Rows + row = New Dictionary(Of String, Object) + For Each col As DataColumn In dt.Columns + row.Add(col.ColumnName, dr(col)) + Next + rows.Add(row) + Next + Return serializer.Serialize(rows) + End Function + ReadOnly Property UsuarioActual(ByVal context As HttpContext) As Usuario + Get + UsuarioActual = DirectCast(context.Session("UsuarioSIG"), Usuario) + End Get + End Property +#End Region + + +#Region " GET PS SAT " + Private Function GETPSSAT(ByVal context As HttpContext) As String + Dim retorno As String = "" + + Dim DTPS = DirectCast(context.Application("GlobalDTPSATPS"), EnumerableRowCollection(Of DataRow)) + Dim DtPSRetorno As DataTable + + Dim Name = IfNull(context.Request("Name"), "-1").ToString + + If Name <> "-1" Then + DTPS = DTPS.Where((Function(a) a!SATClaveProductoServicio.ToString.ToLower Like ($"*{Name.ToLower}*"))) + End If + + DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!SATClavePS).CopyToDataTable).ToTable(True, {"CveSATPS", "SATClaveProductoServicio"}) + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CveSATPS").ColumnName = "id" + DtPSRetorno.Columns("SATClaveProductoServicio").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + DtPSRetorno.Dispose() + Return retorno + End Function +#End Region + + +#Region " GET UM SAT " + Private Function GETUMSAT(ByVal context As HttpContext) As String + Dim retorno As String = "" + + Dim DTUM = DirectCast(context.Application("GlobalDTPSATUM"), EnumerableRowCollection(Of DataRow)) + Dim DtPSRetorno As DataTable + + Dim Name = IfNull(context.Request("Name"), "-1").ToString + + If Name <> "-1" Then + DTUM = DTUM.Where((Function(a) a!ClaveNombre.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + End If + + DtPSRetorno = New DataView(DTUM.OrderBy(Function(a) a!Nombre).CopyToDataTable).ToTable(True, {"CveSATUnidadMedida", "ClaveNombre"}) + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CveSATUnidadMedida").ColumnName = "id" + DtPSRetorno.Columns("ClaveNombre").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + Return retorno + End Function +#End Region + +#Region " GET FRACCION ARANCELARIA " + Private Function GetFraccionArancelaria(ByVal context As HttpContext) As String + Dim retorno As String = "" + + Dim DT = DirectCast(context.Application("GlobalDTFraccionArancelaria"), EnumerableRowCollection(Of DataRow)) + Dim DtRetorno As DataTable + + Dim Name = IfNull(context.Request("Name"), "-1").ToString + + If Name <> "-1" Then + DT = DT.Where((Function(a) a!ClaveSATFraccionArancelariaDescripcion.ToString.ToLower Like ($"*{Name.ToLower}*"))) + End If + + DtRetorno = New DataView(DT.OrderBy(Function(a) a!ClaveSATFraccionArancelaria).CopyToDataTable).ToTable(True, {"CveFraccionArancelaria", "ClaveSATFraccionArancelariaDescripcion"}) + + If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then + DtRetorno.Columns("CveFraccionArancelaria").ColumnName = "id" + DtRetorno.Columns("ClaveSATFraccionArancelariaDescripcion").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + DtRetorno.Dispose() + Return retorno + End Function +#End Region + + +#Region "USADOS" + + Private Function GETPSUSADOS(ByVal context As HttpContext) As String + Dim retorno As String = "" + Dim DtPSRetorno As DataTable = Nothing + + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As String + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + Dim FuePorXml = IfNull(context.Request("FuePorXml"), "-1").ToString.ToEntero + Dim Name = IfNull(context.Request("Name"), "-1").ToString + Dim CveClasificacion = IfNull(context.Request("CveClasificacion"), "-1").ToString.ToEntero + Dim CveSubFamilia = IfNull(context.Request("CveSubFamilia"), "-1").ToString.ToEntero + Dim CveClasificacionPresupuesto = IfNull(context.Request("CveClasificacionPresupuesto"), "-1").ToString.ToEntero + Dim Pagina = IfNull(context.Request("Pagina"), "-1").ToString + Dim Estatus = IfNull(context.Request("Estatus"), "1").ToString + Dim CveSucursal = IfNull(context.Request("cvesucursal"), "-1").ToString.ToEntero + Dim CveSubProyecto = IfNull(context.Request("cvesubproyecto"), "-1").ToString.ToEntero + Dim UsoClasificacion = IfNull(context.Request("usoclasificacion"), "-1").ToString.ToEntero + Dim UsaGlobal As Boolean = True + + If UsaGlobal Then - 'Dim DTPS = DirectCast(context.Application("GlobalDTPSSimplificado"), EnumerableRowCollection(Of DataRow)) - Dim DTPS = ClsPaginas.GlobalDTPSSimplificado(CveEmpresa).AsEnumerable - - If DTPS IsNot Nothing Then - - - 'APLICACION DE FILTROS - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) - If Estatus = 1 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEstado) = 1)) - ElseIf Estatus = -1 Then - - End If - - 'If FuePorXml >= 0 Then - ' DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!FuePorXML) = FuePorXml)) - 'End If - - If Name <> "-1" Then - If PSCodigoDescripcion = "PSCodigo" Then - DTPS = DTPS.Where((Function(a) a!PSCodigo.ToString.ToLower Like ("*" + Name.ToLower + "*"))) - Else - DTPS = DTPS.Where((Function(a) a!PSCodigoClasificacion.ToString.ToLower Like ("*" + Name.ToLower + "*"))) - End If - End If - - If CveClasificacion > 0 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) - ElseIf CveClasificacion = -1 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) >= 0)) - End If - - If AplicaParaVenta > 0 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!AplicaParaVenta) = 1)) - End If - - 'If CveSubFamilia > 0 Then - ' DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveSubFamilia) = CveSubFamilia)) - ' 'ElseIf CveSubFamilia = -1 Then - ' 'DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveSubFamilia) > 0)) - 'End If - - If CveClasificacionPresupuesto > 0 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacionPresupuesto) = CveClasificacionPresupuesto)) - End If - - If UsoClasificacion > 0 Then DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!UsoClasificacion) = UsoClasificacion)) - - If Pagina <> "-1" Then - If Pagina = "Compras" Then - DTPS = DTPS.Where((Function(a) a!CveTipoPS = 1 AndAlso a!CveEstado = 1)) - ElseIf Pagina = "Compras2" Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 1 AndAlso (Convert.ToInt32(a!CveEstado) = 1 OrElse Convert.ToInt32(a!CveEstado) = 2))) - ElseIf Pagina = "Inventarios" Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 2)) - End If - End If - - 'Try, generado para cuando el resultado no tiene valores(The source contains no DataRows.), no detenga la ejecucion, no se le puso un count previo, porque el costo se duplica, al preguntar y luego ordenar y convertir a datatable - Try - DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!PSCodigo).CopyToDataTable).ToTable(True, {"CvePS", "PSCodigo", "PSCodigoClasificacion"}) - - Catch ex As Exception - DtPSRetorno = Nothing - End Try - - End If - End If - If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then - DtPSRetorno.Columns("CvePS").ColumnName = "id" - DtPSRetorno.Columns(PSCodigoDescripcion).ColumnName = "text" - If PSCodigoDescripcion = "PSCodigo" Then - DtPSRetorno.Columns().Remove("PSCodigoClasificacion") - Else - DtPSRetorno.Columns().Remove("PSCodigo") - End If - retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - End If - - Return retorno - End Function -#End Region + Dim DTPS = DirectCast(context.Application(String.Format("GlobalDTPSSimplificado{0}", CveEmpresa)), EnumerableRowCollection(Of DataRow)) + If DTPS IsNot Nothing Then + 'APLICACION DE FILTROS + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) + If Estatus = 1 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEstado) = 1)) + ElseIf Estatus = -1 Then - Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable - Get - Return False - End Get - End Property + End If + If Name <> "-1" Then + DTPS = DTPS.Where((Function(a) a!PSCodigo.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + End If + If CveClasificacion > 0 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) + ElseIf CveClasificacion = -1 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) >= 0)) + End If -#Region "Funciones" - Public Function GetJson(ByVal dt As DataTable) As String - - Dim serializer As System.Web.Script.Serialization.JavaScriptSerializer = New System.Web.Script.Serialization.JavaScriptSerializer() - Dim rows As New List(Of Dictionary(Of String, Object)) - Dim row As Dictionary(Of String, Object) - - For Each dr As DataRow In dt.Rows - row = New Dictionary(Of String, Object) - For Each col As DataColumn In dt.Columns - row.Add(col.ColumnName, dr(col)) - Next - rows.Add(row) - Next - Return serializer.Serialize(rows) - End Function - ReadOnly Property UsuarioActual(ByVal context As HttpContext) As Usuario - Get - UsuarioActual = DirectCast(context.Session("UsuarioSIG"), Usuario) - End Get - End Property -#End Region + If CveClasificacionPresupuesto > 0 Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacionPresupuesto) = CveClasificacionPresupuesto)) + End If + If UsoClasificacion > 0 Then DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!UsoClasificacion) = UsoClasificacion)) -#Region " GET PS SAT " - Private Function GETPSSAT(ByVal context As HttpContext) As String - Dim retorno As String = "" - - Dim DTPS = DirectCast(context.Application("GlobalDTPSATPS"), EnumerableRowCollection(Of DataRow)) - Dim DtPSRetorno As DataTable - - Dim Name = IfNull(context.Request("Name"), "-1").ToString - - If Name <> "-1" Then - DTPS = DTPS.Where((Function(a) a!SATClaveProductoServicio.ToString.ToLower Like ($"*{Name.ToLower}*"))) - End If - - DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!SATClavePS).CopyToDataTable).ToTable(True, {"CveSATPS", "SATClaveProductoServicio"}) - - If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then - DtPSRetorno.Columns("CveSATPS").ColumnName = "id" - DtPSRetorno.Columns("SATClaveProductoServicio").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - DtPSRetorno.Dispose() - Return retorno - End Function -#End Region + If Pagina <> "-1" Then + If Pagina = "Compras" Then + DTPS = DTPS.Where((Function(a) a!CveTipoPS = 1 AndAlso a!CveEstado = 1)) + ElseIf Pagina = "Compras2" Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 1 AndAlso (Convert.ToInt32(a!CveEstado) = 1 OrElse Convert.ToInt32(a!CveEstado) = 2))) + ElseIf Pagina = "Inventarios" Then + DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 2)) + End If + End If + Try + DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!PSCodigo).CopyToDataTable).ToTable(True, {"CvePS", "PSCodigo", "CveTamaño"}) + DtPSRetorno = DtPSRetorno.FiltraParametros("CveTamaño > 0") + Catch ex As Exception + DtPSRetorno = Nothing + End Try + End If -#Region " GET UM SAT " - Private Function GETUMSAT(ByVal context As HttpContext) As String - Dim retorno As String = "" - - Dim DTUM = DirectCast(context.Application("GlobalDTPSATUM"), EnumerableRowCollection(Of DataRow)) - Dim DtPSRetorno As DataTable - - Dim Name = IfNull(context.Request("Name"), "-1").ToString - - If Name <> "-1" Then - DTUM = DTUM.Where((Function(a) a!ClaveNombre.ToString.ToLower Like ("*" + Name.ToLower + "*"))) - End If - - DtPSRetorno = New DataView(DTUM.OrderBy(Function(a) a!Nombre).CopyToDataTable).ToTable(True, {"CveSATUnidadMedida", "ClaveNombre"}) - - If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then - DtPSRetorno.Columns("CveSATUnidadMedida").ColumnName = "id" - DtPSRetorno.Columns("ClaveNombre").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - Return retorno - End Function -#End Region + End If + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CvePS").ColumnName = "id" + DtPSRetorno.Columns("PSCodigo").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + Else + context.Response.Write("[]") + End If + End If -#Region " GET FRACCION ARANCELARIA " - Private Function GetFraccionArancelaria(ByVal context As HttpContext) As String - Dim retorno As String = "" - - Dim DT = DirectCast(context.Application("GlobalDTFraccionArancelaria"), EnumerableRowCollection(Of DataRow)) - Dim DtRetorno As DataTable - - Dim Name = IfNull(context.Request("Name"), "-1").ToString - - If Name <> "-1" Then - DT = DT.Where((Function(a) a!ClaveSATFraccionArancelariaDescripcion.ToString.ToLower Like ($"*{Name.ToLower}*"))) - End If - - DtRetorno = New DataView(DT.OrderBy(Function(a) a!ClaveSATFraccionArancelaria).CopyToDataTable).ToTable(True, {"CveFraccionArancelaria", "ClaveSATFraccionArancelariaDescripcion"}) - - If DtRetorno IsNot Nothing AndAlso DtRetorno.Rows.Count > 0 Then - DtRetorno.Columns("CveFraccionArancelaria").ColumnName = "id" - DtRetorno.Columns("ClaveSATFraccionArancelariaDescripcion").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - DtRetorno.Dispose() - Return retorno - End Function -#End Region - - -#Region "USADOS" - - Private Function GETPSUSADOS(ByVal context As HttpContext) As String - Dim retorno As String = "" - Dim DtPSRetorno As DataTable = Nothing - - Dim usuario As Usuario = UsuarioActual(context) - Dim CveEmpresa As String - If IsNothing(usuario) Then - context.Response.Write("") - Else - CveEmpresa = usuario.CveEmpresa - Dim FuePorXml = IfNull(context.Request("FuePorXml"), "-1").ToString.ToEntero - Dim Name = IfNull(context.Request("Name"), "-1").ToString - Dim CveClasificacion = IfNull(context.Request("CveClasificacion"), "-1").ToString.ToEntero - Dim CveSubFamilia = IfNull(context.Request("CveSubFamilia"), "-1").ToString.ToEntero - Dim CveClasificacionPresupuesto = IfNull(context.Request("CveClasificacionPresupuesto"), "-1").ToString.ToEntero - Dim Pagina = IfNull(context.Request("Pagina"), "-1").ToString - Dim Estatus = IfNull(context.Request("Estatus"), "1").ToString - Dim CveSucursal = IfNull(context.Request("cvesucursal"), "-1").ToString.ToEntero - Dim CveSubProyecto = IfNull(context.Request("cvesubproyecto"), "-1").ToString.ToEntero - Dim UsoClasificacion = IfNull(context.Request("usoclasificacion"), "-1").ToString.ToEntero - Dim UsaGlobal As Boolean = True - - - - - If UsaGlobal Then - - - - Dim DTPS = ClsPaginas.GlobalDTPSSimplificado(CveEmpresa).AsEnumerable ' DirectCast(context.Application("GlobalDTPSSimplificado"), EnumerableRowCollection(Of DataRow)) - - - If DTPS IsNot Nothing Then - - 'APLICACION DE FILTROS - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) - If Estatus = 1 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveEstado) = 1)) - ElseIf Estatus = -1 Then - - End If - - If Name <> "-1" Then - DTPS = DTPS.Where((Function(a) a!PSCodigo.ToString.ToLower Like ("*" + Name.ToLower + "*"))) - End If - - If CveClasificacion > 0 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) - ElseIf CveClasificacion = -1 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacion) >= 0)) - End If - - If CveClasificacionPresupuesto > 0 Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveClasificacionPresupuesto) = CveClasificacionPresupuesto)) - End If - - If UsoClasificacion > 0 Then DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!UsoClasificacion) = UsoClasificacion)) - - If Pagina <> "-1" Then - If Pagina = "Compras" Then - DTPS = DTPS.Where((Function(a) a!CveTipoPS = 1 AndAlso a!CveEstado = 1)) - ElseIf Pagina = "Compras2" Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 1 AndAlso (Convert.ToInt32(a!CveEstado) = 1 OrElse Convert.ToInt32(a!CveEstado) = 2))) - ElseIf Pagina = "Inventarios" Then - DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = 2)) - End If - End If - - Try - DtPSRetorno = New DataView(DTPS.OrderBy(Function(a) a!PSCodigo).CopyToDataTable).ToTable(True, {"CvePS", "PSCodigo", "CveTamaño"}) - DtPSRetorno = DtPSRetorno.FiltraParametros("CveTamaño > 0") - Catch ex As Exception - DtPSRetorno = Nothing - End Try - End If - - End If - If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then - DtPSRetorno.Columns("CvePS").ColumnName = "id" - DtPSRetorno.Columns("PSCodigo").ColumnName = "text" - retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString - context.Response.Write(retorno) - Else - context.Response.Write("[]") - End If - End If - - Return retorno + Return retorno End Function -#End Region +#End Region End Class \ No newline at end of file