registro remisión
This commit is contained in:
201
Ashx/E119.ashx
201
Ashx/E119.ashx
@@ -5,7 +5,6 @@ Option Explicit On
|
|||||||
|
|
||||||
Imports System.Data
|
Imports System.Data
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
Imports System.Net.Http
|
|
||||||
Imports Newtonsoft.Json
|
Imports Newtonsoft.Json
|
||||||
Imports Newtonsoft.Json.Linq
|
Imports Newtonsoft.Json.Linq
|
||||||
Imports Extensiones
|
Imports Extensiones
|
||||||
@@ -19,6 +18,7 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
Private ReadOnly Property CveEmpresa As Integer = 119
|
Private ReadOnly Property CveEmpresa As Integer = 119
|
||||||
|
Private ReadOnly Property CveUsuario As Integer = 100
|
||||||
|
|
||||||
Public ReadOnly Property EsProduccion As Boolean
|
Public ReadOnly Property EsProduccion As Boolean
|
||||||
Get
|
Get
|
||||||
@@ -126,6 +126,18 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If Metodo = "RegistraRemision" Then
|
||||||
|
context.Response.ContentType = "application/json"
|
||||||
|
Dim Auth As AuthMessage = ValidarSolicitud(context)
|
||||||
|
|
||||||
|
If Auth.IsSucces Then
|
||||||
|
retorno = RegistraRemision(context)
|
||||||
|
Else
|
||||||
|
context.Response.StatusCode = Auth.StatusCode
|
||||||
|
retorno = JsonConvert.SerializeObject(Auth.ErrorMessage)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
context.Response.Write(retorno)
|
context.Response.Write(retorno)
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@@ -141,14 +153,14 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
Dim unauthorized As Boolean = True
|
Dim unauthorized As Boolean = True
|
||||||
Dim respuesta As New AuthMessage
|
Dim respuesta As New AuthMessage
|
||||||
|
|
||||||
Dim authHeader = context.Request.Headers("Authorization")
|
Dim authHeader As String = context.Request.Headers("Authorization")
|
||||||
If authHeader IsNot Nothing Then
|
If authHeader IsNot Nothing Then
|
||||||
Dim basicAuth As String = authHeader.Replace("Basic ", "")
|
Dim basicAuth As String = authHeader.Replace("Basic ", "")
|
||||||
|
|
||||||
Dim usernamePasswordArray = Encoding.UTF8.GetString(Convert.FromBase64String(basicAuth)).Split(":"c)
|
Dim usernamePasswordArray As String() = Encoding.UTF8.GetString(Convert.FromBase64String(basicAuth)).Split(":"c)
|
||||||
|
|
||||||
Dim userName = usernamePasswordArray(0)
|
Dim userName As String = usernamePasswordArray(0)
|
||||||
Dim password = usernamePasswordArray(1)
|
Dim password As String = usernamePasswordArray(1)
|
||||||
unauthorized = Not (userName = Me.UsuarioWSE119 AndAlso password = Me.PasswordWSE119)
|
unauthorized = Not (userName = Me.UsuarioWSE119 AndAlso password = Me.PasswordWSE119)
|
||||||
|
|
||||||
Else
|
Else
|
||||||
@@ -248,7 +260,7 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
|
|
||||||
Using ObjInventario As New ClsInventarios
|
Using ObjInventario As New ClsInventarios
|
||||||
If ObjInventario.GetJAM_APIs(1, CveClasificacion:=CveClasificacion.ToEntero()) AndAlso ObjInventario.DtResultados IsNot Nothing Then
|
If ObjInventario.GetJAM_APIs(1, CveClasificacion:=CveClasificacion.ToEntero()) AndAlso ObjInventario.DtResultados IsNot Nothing Then
|
||||||
Productos = JArray.Parse(ObjInventario.DtResultados.DataTableToJSONIPP())
|
Productos = JArray.Parse(ObjInventario.DtResultados.FiltroPrimeroValor("JsonTexto"))
|
||||||
Else
|
Else
|
||||||
RespuestaError.message = "no se pudo obtener los datos"
|
RespuestaError.message = "no se pudo obtener los datos"
|
||||||
TieneError = True
|
TieneError = True
|
||||||
@@ -315,6 +327,181 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function RegistraRemision(ByVal context As HttpContext) As String
|
||||||
|
|
||||||
|
Dim TieneError As Boolean = False
|
||||||
|
Dim JsonRequest As JObject = Nothing
|
||||||
|
Dim Respuesta As New ResponseMsg
|
||||||
|
Dim RespuestaError As New ResponseMsgError
|
||||||
|
|
||||||
|
If context.Request.InputStream IsNot Nothing Then
|
||||||
|
Using reader As New StreamReader(context.Request.InputStream)
|
||||||
|
Dim json As String = reader.ReadToEnd
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(json) Then
|
||||||
|
JsonRequest = JObject.Parse(json)
|
||||||
|
If JsonRequest Is Nothing Then
|
||||||
|
TieneError = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
|
If TieneError Then
|
||||||
|
context.Response.StatusCode = 200
|
||||||
|
Return JsonConvert.SerializeObject("xx")
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not TieneError Then
|
||||||
|
Dim Usuario As Usuario = ValidaUsuarioSistema(100, CveEmpresa)
|
||||||
|
Dim ObjFactura As Modelos.Factura
|
||||||
|
Dim Resp As New Modelos.Factura.MMensajeFactura
|
||||||
|
If Usuario IsNot Nothing Then
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim ObjClientes As New ClsClientes()
|
||||||
|
Dim ObjInventario As New ClsInventarios(ObjClientes.IniciaTransacSQL())
|
||||||
|
|
||||||
|
Dim CveSubProyecto, CveCliente, CveMoneda, CvePS As Integer
|
||||||
|
Dim Cantidad, PU, Descuento As Decimal
|
||||||
|
Dim Obs As String = ""
|
||||||
|
CveSubProyecto = 12659 ' fijo Ecommerce
|
||||||
|
CveCliente = 0
|
||||||
|
CveMoneda = 1
|
||||||
|
Descuento = 0
|
||||||
|
Dim RFC As String = If(JsonRequest("billing") Is Nothing, "", JsonRequest("billing")("first_name").ToString())
|
||||||
|
Dim NombreCliente As String = If(JsonRequest("billing") Is Nothing, "", JsonRequest("billing")("first_name").ToString() & " " & JsonRequest("billing")("last_name").ToString())
|
||||||
|
'BUSCAR SI ESTÁ REGISTRADO EL CLIENTE
|
||||||
|
If ObjClientes.GetClientes(-1, "-1", "-1", "-1", RFC, "-1", "-1", -1, CveEmpresa, 1, TipoCliente:=-1, TopSelect:=1) Then
|
||||||
|
If ObjClientes.DtResultados.Rows.Count > 0 Then
|
||||||
|
'Resp.TieneError = False
|
||||||
|
CveCliente = ObjClientes.CveCliente
|
||||||
|
'Resp.Mensajes.Add("El RFC ya existe en el sistema")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If CveCliente = 0 Then
|
||||||
|
' 'DATOS DE BILLING
|
||||||
|
If JsonRequest("billing") IsNot Nothing Then
|
||||||
|
Dim CveEstado As Integer = -1
|
||||||
|
Dim Direccion As String = If(JsonRequest("billing")("address_1") Is Nothing, "", JsonRequest("billing")("address_1").ToString())
|
||||||
|
Dim NumExt As String = ""
|
||||||
|
Dim NumInt As String = ""
|
||||||
|
Dim Colonia As String = ""
|
||||||
|
Dim Ciudad As String = If(JsonRequest("billing")("city") Is Nothing, "", JsonRequest("billing")("city").ToString())
|
||||||
|
Dim Localidad As String = If(JsonRequest("billing")("city") Is Nothing, "", JsonRequest("billing")("city").ToString())
|
||||||
|
Dim CP As String = If(JsonRequest("billing")("postcode") Is Nothing, "", JsonRequest("billing")("postcode").ToString())
|
||||||
|
Dim Telefono As String = If(JsonRequest("billing")("phone") Is Nothing, "", JsonRequest("billing")("phone").ToString())
|
||||||
|
Dim Correo As String = If(JsonRequest("billing")("email") Is Nothing, "", JsonRequest("billing")("email").ToString())
|
||||||
|
Dim Estado As String = If(JsonRequest("billing")("state") Is Nothing, "", JsonRequest("billing")("state").ToString())
|
||||||
|
If Not String.IsNullOrEmpty(Estado) Then
|
||||||
|
CveEstado = ClsPaginas.GlobalDTGralEstados("MEX").FiltroPrimeroValor("CveEstado", $"NombreEstado = '{Estado.Trim}'").ToEntero()
|
||||||
|
If CveEstado <= 0 Then 'SI NO ENCUENTRA EL ESTADO INGRESA EL DE SONORA
|
||||||
|
CveEstado = 26
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
CveEstado = 26
|
||||||
|
End If
|
||||||
|
If ObjClientes.AgregarClienteNoFrecuente(NombreCliente, Direccion, NumExt, NumInt, Colonia, Localidad, Ciudad, CveEstado, RFC, CP, Telefono, Correo, CveSubProyecto, CveUsuario, CveEmpresa, "", -1, -1) Then
|
||||||
|
If ObjClientes.DtResultados.Rows.Count > 0 Then
|
||||||
|
CveCliente = ObjClientes.DtResultados(0)("CveCliente").ToString().ToEntero()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Try
|
||||||
|
|
||||||
|
ObjFactura = Modelos.Factura.CrearVentaNueva(Usuario, CveSubProyecto, CveCliente, CveMoneda, "Rem")
|
||||||
|
Dim ListaPS As JArray = JArray.Parse(JsonRequest("line_items").ToString())
|
||||||
|
Dim Consec As Integer = 1
|
||||||
|
For Each JsonPS As JObject In ListaPS
|
||||||
|
Cantidad = JsonPS("quantity").ToString.ToDecimal()
|
||||||
|
PU = JsonPS("price").ToString.ToDecimal()
|
||||||
|
CvePS = ClsPaginas.GlobalDTPSSimplificado(CveEmpresa, Codigo:=JsonPS("sku").ToString()).FiltroPrimeroValor("CvePS").ToEntero()
|
||||||
|
|
||||||
|
ObjFactura.AgregarPS(CvePS, Cantidad, PU, Descuento, Obs, CveSubProyecto:=CveSubProyecto)
|
||||||
|
|
||||||
|
''VALIDAR QUE SEA EL MISMO PRODUCTO
|
||||||
|
If CvePS <= 0 Then
|
||||||
|
TieneError = True
|
||||||
|
'Retorno.Mensajes.Add(String.Format("No se encontró el producto: {0}", JsonPS("name").ToString()))
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
''VALIDA EXISTENCIA ANTES DE GENERAR LA FACTURA
|
||||||
|
'If ObjFactura.TipoDocto = "Ing" AndAlso DrPS("CveTipoPS").ToString() = "2" Then
|
||||||
|
' Dim Existencia As Decimal = ObjInventarios.GetExistenciasPS(DrPS("CvePS").ToString.ToEntero, DrPS("CveUnidadMedida").ToString.ToEntero, UsuarioActual.CveEmpresa, ObjFactura.CveAlmacen, CveSubProyecto:=ObjFactura.CveSubProyecto, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1)
|
||||||
|
|
||||||
|
' If Cantidad > Existencia Then
|
||||||
|
' Retorno.TieneError = True
|
||||||
|
' Retorno.Mensajes.Add(String.Format("No hay existencia suficiente para este producto: {0}, cuenta con : {1}", DrPS("PSCodigo").ToString(), Existencia))
|
||||||
|
' Exit For
|
||||||
|
' End If
|
||||||
|
'End If
|
||||||
|
Consec += 1
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
ObjFactura.CalculaTotales()
|
||||||
|
|
||||||
|
If ObjFactura IsNot Nothing Then
|
||||||
|
Resp = ObjFactura.EmitirFactura(False, Transac:=ObjClientes.IniciaTransacSQL())
|
||||||
|
|
||||||
|
If Resp.CveVenta > 0 Then
|
||||||
|
Respuesta.status = "success"
|
||||||
|
Respuesta.data = Resp.SerieFolio
|
||||||
|
Else
|
||||||
|
TieneError = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
If TieneError Then
|
||||||
|
Dim sb As New StringBuilder()
|
||||||
|
For Each msg As String In Resp.Mensajes
|
||||||
|
sb.AppendFormat("{0}. ", msg)
|
||||||
|
Next
|
||||||
|
RespuestaError.message = sb.ToString()
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
TieneError = True
|
||||||
|
Dim sb As New StringBuilder()
|
||||||
|
For Each msg As String In Resp.Mensajes
|
||||||
|
sb.AppendFormat("{0}. ", msg)
|
||||||
|
Next
|
||||||
|
RespuestaError.message = sb.ToString()
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
TieneError = True
|
||||||
|
End Try
|
||||||
|
|
||||||
|
If TieneError Then
|
||||||
|
ObjClientes.RollBack()
|
||||||
|
ObjClientes.Dispose()
|
||||||
|
ObjInventario.Dispose()
|
||||||
|
Else
|
||||||
|
ObjClientes.Commit()
|
||||||
|
ObjClientes.Dispose()
|
||||||
|
ObjInventario.Dispose()
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If ObjFactura IsNot Nothing Then ObjFactura.Dispose()
|
||||||
|
'End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If TieneError Then
|
||||||
|
context.Response.StatusCode = 200
|
||||||
|
Return JsonConvert.SerializeObject(RespuestaError)
|
||||||
|
Else
|
||||||
|
context.Response.StatusCode = 200
|
||||||
|
Return JsonConvert.SerializeObject(Respuesta)
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Class ResponseMsg
|
Private Class ResponseMsg
|
||||||
Sub New()
|
Sub New()
|
||||||
status = "success"
|
status = "success"
|
||||||
@@ -383,7 +570,7 @@ Public Class E119 : Implements IHttpHandler
|
|||||||
If (strInput.StartsWith("{") AndAlso strInput.EndsWith("}")) OrElse (strInput.StartsWith("[") AndAlso strInput.EndsWith("]")) Then
|
If (strInput.StartsWith("{") AndAlso strInput.EndsWith("}")) OrElse (strInput.StartsWith("[") AndAlso strInput.EndsWith("]")) Then
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Dim obj = JToken.Parse(strInput)
|
Dim obj As JToken = JToken.Parse(strInput)
|
||||||
Return True
|
Return True
|
||||||
Catch jex As JsonReaderException
|
Catch jex As JsonReaderException
|
||||||
Console.WriteLine(jex.Message)
|
Console.WriteLine(jex.Message)
|
||||||
|
|||||||
Reference in New Issue
Block a user