Mejora en consulta

This commit is contained in:
HECTOR RODRIGUEZ
2021-06-24 09:06:34 -07:00
parent e37352ee12
commit 26ae217d94

View File

@@ -25,12 +25,15 @@ Public Class E72 : Implements IHttpHandler, IRequiresSessionState
End Try End Try
End Sub End Sub
Private Function contratoexistencia(ByVal context As HttpContext) As String Private Function contratoexistencia(ByVal context As HttpContext) As String
Try
Dim retorno As String = "" Dim retorno As String = ""
Dim ObjInv As New ClsInventarios Dim ObjInv As New ClsInventarios
Try
Dim DtMovimientos As DataTable = CreaDT()
ObjInv.GetRepEntradasSalidasXContrato(72, -1, MinFecha, Date.Now, -1, -1, 17, -1, -1, 3, -1, 1158) ObjInv.GetRepEntradasSalidasXContrato(72, -1, MinFecha, Date.Now, -1, -1, 17, -1, -1, 3, -1, 1158)
Dim DtRepEntradasSalidasXContrato As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0") Dim DtRepEntradasSalidasXContrato As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0")
@@ -38,34 +41,73 @@ Public Class E72 : Implements IHttpHandler, IRequiresSessionState
Dim DtApartados As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0", "", {"CvePS", "Cantidad"}) Dim DtApartados As DataTable = ObjInv.DtResultados.FiltraParametros("CvePS > 0", "", {"CvePS", "Cantidad"})
Dim asd As Integer = DtApartados.Rows.Count Dim asd As Integer = DtApartados.Rows.Count
Dim DTapartado = From row In DtApartados.AsEnumerable For Each tempApartados As DataRow In DtApartados.Rows
Group row By CvePS = row.Field(Of Integer)("CvePS") Into CvePSGroup = Group 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
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 { Select New With {
Key CvePS, .Codigo = Codigo,
.Cantidad = CvePSGroup.Sum(Function(r) r.Field(Of Decimal)("Cantidad")) .Existencia = Existencia,
} .Cantidad = CodigoGroup.Sum(Function(r) r.Field(Of Double)("Cantidad")),
.Precio = Precio}
Dim DtTemp = From entradas In DtRepEntradasSalidasXContrato 'Dim LINQEntradasSalidas = From row In DtRepEntradasSalidasXContrato.AsEnumerable
Join apartados In DTapartado ' Select New With {
On entradas.Field(Of Integer)("CvePS") Equals apartados.CvePS ' .CvePS = row.Field(Of Integer)("CvePS"),
Select New With { ' .Existencia = row.Field(Of Double)("SaldoFCant"),
.Codigo = entradas.Field(Of String)("Codigo"), ' .Cantidad = 0,
.Existencia = entradas.Field(Of Double)("SaldoFCant"), ' .Precio = row.Field(Of Double)("PrecioVenta"),
.AlmacenAlt = apartados.Cantidad, ' .Codigo = row.Field(Of String)("Codigo")}
.Precio = entradas.Field(Of Double)("PrecioVenta")
}
'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}
retorno = JsonConvert.SerializeObject(DtTemp).ToString 'Dim Dtnum As Integer = DtMovimientos.su
retorno = JsonConvert.SerializeObject(dtExistencias).ToString
context.Response.Write(retorno) context.Response.Write(retorno)
ObjInv.Dispose()
Return retorno
Catch ex As Exception Catch ex As Exception
End Try End Try
ObjInv.Dispose()
Return retorno
End Function End Function
Private Function CreaDT()
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 End Class