Files
SIG/Ashx/E72.ashx
2023-10-09 11:55:07 -07:00

145 lines
6.8 KiB
Plaintext

<%@ 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