<%@ WebHandler Language="VB" Class="E72" %> Imports System Imports System.Web Imports System.Data Imports Newtonsoft.Json Imports Extensiones Imports System.IO Public Class E72 : Implements IHttpHandler, IRequiresSessionState Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return False End Get End Property Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest Try Select Case context.Request("metodo") Case "contratoexistencia" contratoexistencia(context) End Select Catch ex As Exception ex.GuardaLog(ex.Message) End Try End Sub Private Function contratoexistencia(ByVal context As HttpContext) As String Dim retorno As String = "" Dim ObjInv As New ClsInventarios Try Dim DtPS As DataTable = CreaDT() ObjInv.GetRepEntradasSalidasXContrato(72, -1, MinFecha, ClsPaginas.NowADS(), -1, -1, 17, -1, -1, 3, -1, 1158) Dim DtRepEntradasSalidasXContrato As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0") ObjInv.ApartadosRep(-1, 70437, 259, 72, -1, MinFecha, ClsPaginas.NowADS()) Dim DtApartados As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0", "", {"CvePS", "Codigo", "Cantidad"}) Dim asd As Integer = DtApartados.Rows.Count 'For Each tempApartados As DataRow In DtApartados.Rows ' For Each tempEntradasSalidas As DataRow In DtRepEntradasSalidasXContrato.Rows ' Dim dr As DataRow = DtMovimientos.NewRow ' If tempEntradasSalidas("CvePS").ToString.ToEntero = tempApartados("CvePS").ToString.ToEntero Then ' dr("Codigo") = tempEntradasSalidas("Codigo") ' dr("Existencia") = tempEntradasSalidas("SaldoFCant") ' dr("Cantidad") = tempApartados("Cantidad") ' dr("Precio") = tempEntradasSalidas("PrecioVenta") ' Else ' dr("Codigo") = tempEntradasSalidas("Codigo") ' dr("Existencia") = tempEntradasSalidas("SaldoFCant") ' dr("Cantidad") = 0 ' dr("Precio") = tempEntradasSalidas("PrecioVenta") ' End If ' DtMovimientos.Rows.Add(dr) ' Next 'Next For Each tempEntradasSalidas As DataRow In DtRepEntradasSalidasXContrato.Rows Dim dr As DataRow = DtPS.NewRow dr("Codigo") = tempEntradasSalidas("Codigo") DtPS.Rows.Add(dr) DtPS.AcceptChanges() Next For Each tempApartados As DataRow In DtApartados.Rows Dim dr As DataRow = DtPS.NewRow dr("Codigo") = tempApartados("Codigo") DtPS.Rows.Add(dr) DtPS.AcceptChanges() Next Dim DTtemp As DataTable = DtPS.FiltraParametros("", "", {"Codigo", "Existencia", "Cantidad", "Precio"}) For Each Movs As DataRow In DTtemp.Rows For Each tempEntradasSalidas As DataRow In DtRepEntradasSalidasXContrato.Rows If tempEntradasSalidas("Codigo").ToString = Movs("Codigo").ToString Then Movs("Existencia") = tempEntradasSalidas("SaldoFCant").ToString.ToDouble Movs("Cantidad") = 0 Movs("Precio") = tempEntradasSalidas("PrecioVenta").ToString.ToDouble End If Next For Each tempApartados As DataRow In DtApartados.Rows If tempApartados("Codigo").ToString = Movs("Codigo").ToString Then Movs("Existencia") = IIf(Movs("Existencia").ToString.ToEntero > 0, Movs("Existencia"), 0) Movs("Cantidad") = tempApartados("Cantidad").ToString.ToDouble Movs("Precio") = IIf(Movs("Precio").ToString.ToEntero > 0, Movs("Existencia"), 0) End If Next DtPS.AcceptChanges() Next 'Dim dtExistencias = From row In DtMovimientos.FiltraParametros("", "", {"Codigo", "Existencia", "Cantidad", "Precio"}) ' Group row By Codigo = row.Field(Of String)("Codigo"), Existencia = row.Field(Of Double)("Existencia"), Precio = row.Field(Of Double)("Precio") Into CodigoGroup = Group ' Select New With { ' .Codigo = Codigo, ' .Existencia = Existencia, ' .Cantidad = CodigoGroup.Sum(Function(r) r.Field(Of Double)("Cantidad")), ' .Precio = Precio} 'Dim LINQEntradasSalidas = From row In DtRepEntradasSalidasXContrato.AsEnumerable ' Select New With { ' .CvePS = row.Field(Of Integer)("CvePS"), ' .Existencia = row.Field(Of Double)("SaldoFCant"), ' .Cantidad = 0, ' .Precio = row.Field(Of Double)("PrecioVenta"), ' .Codigo = row.Field(Of String)("Codigo")} 'Dim DtTemp = From LINQEntradasSalida In LINQEntradasSalidas.AsEnumerable ' Group Join LINQapartados In LINQapartado.AsEnumerable ' On LINQEntradasSalida.CvePS Equals LINQapartados.CvePS Into Group ' From unido In Group.DefaultIfEmpty ' Where unido IsNot Nothing ' Order By LINQEntradasSalida.CvePS ' Select New With {.Codigo = LINQEntradasSalida.Codigo, ' .Existencia = LINQEntradasSalida.Existencia, ' .Precio = LINQEntradasSalida.Precio} 'Dim Dtnum As Integer = DtMovimientos.su retorno = JsonConvert.SerializeObject(DTtemp).ToString context.Response.Write(retorno) Catch ex As Exception context.Response.Write(String.Format("{0}", ex)) End Try ObjInv.Dispose() Return retorno End Function Private Function CreaDT() As DataTable Dim DtMovimientos As DataTable = New DataTable("Productos") With DtMovimientos.Columns .Add("Codigo", Type.GetType("System.String")) .Add("Existencia", Type.GetType("System.Double")) .Add("Cantidad", Type.GetType("System.Double")) .Add("Precio", Type.GetType("System.Double")) End With Return DtMovimientos End Function End Class