145 lines
6.8 KiB
Plaintext
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 |