415 lines
15 KiB
Plaintext
415 lines
15 KiB
Plaintext
<%@ WebService Language="VB" Class="WsTSoft" %>
|
|
Imports System.Web
|
|
Imports System.Net.Http
|
|
Imports System.Web.Services
|
|
Imports System.Data
|
|
Imports System.Web.Services.Protocols
|
|
Imports System.Collections.Generic
|
|
Imports System.Linq
|
|
Imports Extensiones
|
|
Imports Newtonsoft.Json
|
|
Imports Newtonsoft.Json.Linq
|
|
|
|
' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
|
|
' <System.Web.Script.Services.ScriptService()> _
|
|
<WebService(Namespace:="http://TractoSoft.org/")>
|
|
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
|
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
|
Public Class WsTSoft
|
|
Inherits System.Web.Services.WebService
|
|
|
|
<WebMethod()>
|
|
Public Function AddRemision(FolioRemision As String, NoEconomico As String, CveEstatus As Integer, GeoInicial As String, GeoCarga As String, GeoEntrega As String, Fecha As Date) As String
|
|
Dim retorno As String = ""
|
|
Dim Continuar As Boolean = False
|
|
|
|
Dim objTsoft As New ClsTSoft
|
|
objTsoft.IniciaTransacSQL()
|
|
Try
|
|
Continuar = objTsoft.AddRemisiones(FolioRemision, NoEconomico, CveEstatus, GeoInicial, GeoCarga, GeoEntrega, Fecha)
|
|
|
|
Dim objRem As New addRemisionObj
|
|
If Continuar Then
|
|
objRem.CveRemision = objTsoft.DtResultados.Rows(0)("CveRemision").ToString().ToEntero()
|
|
objRem.CurrentError = ""
|
|
Else
|
|
objRem.CveRemision = 0
|
|
objRem.CurrentError = objTsoft.MyCurrentError
|
|
End If
|
|
|
|
retorno = JsonConvert.SerializeObject(objRem)
|
|
objRem = Nothing
|
|
Catch ex As Exception
|
|
Continuar = False
|
|
Finally
|
|
If Continuar Then
|
|
objTsoft.Commit()
|
|
Else
|
|
objTsoft.RollBack()
|
|
End If
|
|
End Try
|
|
objTsoft.Dispose()
|
|
|
|
Return retorno
|
|
End Function
|
|
|
|
<WebMethod()>
|
|
Public Function UpEstatusRemision(FolioRemision As String, CveEstatus As Integer) As String
|
|
Dim retorno As String = ""
|
|
Dim objTsoft As New ClsTSoft
|
|
Dim Continuar As Boolean = objTsoft.UpEstatusRemision(FolioRemision, CveEstatus)
|
|
Dim objRem As New upEstatusRemisionObj
|
|
If Continuar Then
|
|
objRem.SeActualizo = 1
|
|
objRem.CurrentError = ""
|
|
Else
|
|
objRem.SeActualizo = 0
|
|
objRem.CurrentError = objTsoft.MyCurrentError
|
|
End If
|
|
objTsoft.Dispose()
|
|
retorno = JsonConvert.SerializeObject(objRem)
|
|
objRem = Nothing
|
|
Return retorno
|
|
End Function
|
|
<WebMethod()>
|
|
Public Function GetUltimaPosicion(DevID As String) As String
|
|
Dim retorno As String = ""
|
|
Dim DtPosicion As DataTable = Nothing
|
|
Dim Continuar As Boolean = False
|
|
|
|
Using ObjGPS As New ClsGPS
|
|
If ObjGPS.UltimaPosicionEquipoGetWS(DevID) Then
|
|
DtPosicion = ObjGPS.DtResultados.Copy()
|
|
Continuar = True
|
|
End If
|
|
End Using
|
|
|
|
Dim ObjPos As New LatLng
|
|
|
|
Try
|
|
|
|
If Continuar AndAlso DtPosicion IsNot Nothing Then
|
|
'CONSULTA DIRECCIONES
|
|
|
|
If DtPosicion IsNot Nothing AndAlso DtPosicion.Rows.Count > 0 Then
|
|
Try
|
|
|
|
Dim Direcciones As JArray = ConsultarDirecciones(DtPosicion, "Lat", "Lng")
|
|
|
|
If Direcciones IsNot Nothing Then
|
|
For Each Dir As JObject In Direcciones
|
|
DtPosicion.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
|
|
Next
|
|
End If
|
|
Catch ex As Exception
|
|
ObjPos.CurrentError = "No se pudo obtener la posición."
|
|
OnError("Ocurrió un error al asignar las direcciones", ex)
|
|
End Try
|
|
|
|
Dim RowPosicion As DataRow = DtPosicion.Rows(0)
|
|
|
|
ObjPos.Fecha = RowPosicion("Fecha").ToString().ToDateTime().ToString("dd/MM/yyyy HH:mm:ss")
|
|
ObjPos.Lat = RowPosicion("Lat").ToString()
|
|
ObjPos.Lng = RowPosicion("Lng").ToString()
|
|
ObjPos.Direccion = RowPosicion("Direccion").ToString()
|
|
Else
|
|
ObjPos.CurrentError = "No se encontraron resultados."
|
|
End If
|
|
|
|
Else
|
|
ObjPos.CurrentError = "No se pudo obtener la posición."
|
|
End If
|
|
|
|
If DtPosicion IsNot Nothing Then
|
|
DtPosicion.Dispose()
|
|
DtPosicion = Nothing
|
|
End If
|
|
|
|
retorno = JsonConvert.SerializeObject(ObjPos)
|
|
Catch ex As Exception
|
|
OnError("Ocurrió un error al obtener los datos", ex)
|
|
End Try
|
|
|
|
ObjPos = Nothing
|
|
Return retorno
|
|
End Function
|
|
|
|
<WebMethod()>
|
|
Public Function TerminoRemision(FolioRemision As String, NoEconomico As String) As String
|
|
Dim retorno As String = ""
|
|
Dim objTsoft As New ClsTSoft
|
|
Dim Continuar As Boolean = objTsoft.UpEstatusRemision(FolioRemision, 6)
|
|
Dim objRem As New upEstatusRemisionObj
|
|
If Continuar Then
|
|
objRem.SeActualizo = 1
|
|
objRem.CurrentError = ""
|
|
Else
|
|
objRem.SeActualizo = 0
|
|
objRem.CurrentError = objTsoft.MyCurrentError
|
|
End If
|
|
objTsoft.Dispose()
|
|
retorno = JsonConvert.SerializeObject(objRem)
|
|
objRem = Nothing
|
|
Return retorno
|
|
End Function
|
|
<WebMethod()>
|
|
Public Function GetRemisionHistorial(FolioRemision As String, NoEconomico As String) As String
|
|
Dim retorno As String = ""
|
|
Dim objTsoft As New ClsTSoft
|
|
Try
|
|
Dim Continuar As Boolean = objTsoft.GETRemisionesHistorial(FolioRemision, NoEconomico)
|
|
Dim objRem As New GetRemisionHistorialesObj
|
|
If Continuar Then
|
|
Dim Dt = objTsoft.DtResultados.Copy()
|
|
Try
|
|
Dt.Columns.Add("Direccion", GetType(String))
|
|
|
|
'CONSULTA DIRECCIONES
|
|
Dim Direcciones As JArray = ConsultarDirecciones(Dt, "Lat", "Lon")
|
|
If Direcciones IsNot Nothing Then
|
|
For Each Dir As JObject In Direcciones
|
|
Dt.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
|
|
Next
|
|
End If
|
|
|
|
objRem.CurrentError = ""
|
|
Catch ex As Exception
|
|
objRem.CurrentError = "Ocurrió un error al asignar las direcciones"
|
|
OnError("Ocurrió un error al asignar las direcciones", ex)
|
|
End Try
|
|
|
|
objRem.Historial = Dt.DataTableToObject(Of GetRemisionHistorialsObj)
|
|
Dt.Dispose()
|
|
Dt = Nothing
|
|
Else
|
|
objRem.Historial = New List(Of GetRemisionHistorialsObj)
|
|
objRem.CurrentError = objTsoft.MyCurrentError
|
|
End If
|
|
retorno = JsonConvert.SerializeObject(objRem)
|
|
objRem = Nothing
|
|
Catch ex As Exception
|
|
OnError("Ocurrió un error al obtener los datos", ex)
|
|
End Try
|
|
objTsoft.Dispose()
|
|
|
|
Return retorno
|
|
End Function
|
|
<WebMethod()>
|
|
Public Function GetInfoEventos(FechaInicio As String, FechaFin As String) As String
|
|
Dim retorno As String = "[]"
|
|
|
|
Dim objTsoft As New ClsTSoft
|
|
Try
|
|
If objTsoft.GetInfoEventosPenske(FechaInicio.ToDateTime(), FechaFin.ToDateTime()) Then
|
|
If objTsoft.DtResultados.Rows.Count > 0 Then
|
|
Try
|
|
'CONSULTA DIRECCIONES
|
|
Dim Direcciones As JArray = ConsultarDirecciones(objTsoft.DtResultados)
|
|
If Direcciones IsNot Nothing Then
|
|
For Each Dir As JObject In Direcciones
|
|
objTsoft.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
|
|
Next
|
|
End If
|
|
Catch ex As Exception
|
|
OnError("Ocurrió un error al asignar las direcciones", ex)
|
|
End Try
|
|
|
|
retorno = objTsoft.DtResultados.DataTableToJSONIPP()
|
|
Else
|
|
retorno = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.Mensaje = "No se encontraron resultados"})
|
|
End If
|
|
Else
|
|
retorno = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.Mensaje = "Ocurrío un error al consultar los datos"})
|
|
End If
|
|
Catch ex As Exception
|
|
retorno = "[]"
|
|
OnError("Ocurrió un error al obtener los datos", ex)
|
|
End Try
|
|
objTsoft.Dispose()
|
|
|
|
Return retorno
|
|
End Function
|
|
<WebMethod()>
|
|
Public Function TieneRemisionesActivas(NoEconomico As String) As String
|
|
Dim retorno As String = ""
|
|
Dim Continuar As Boolean = False
|
|
|
|
Dim ObjTSoft As New ClsTSoft
|
|
Try
|
|
If ObjTSoft.TieneRemisionesActivas(NoEconomico) Then
|
|
Dim objRem As New MTieneRemisiones With
|
|
{
|
|
.TieneRemisiones = Continuar,
|
|
.CurrentError = ObjTSoft.MyCurrentError
|
|
}
|
|
retorno = JsonConvert.SerializeObject(objRem)
|
|
objRem = Nothing
|
|
End If
|
|
Catch ex As Exception
|
|
OnError("Ocurrió un error al obtener los datos", ex)
|
|
End Try
|
|
ObjTSoft.Dispose()
|
|
|
|
Return retorno
|
|
End Function
|
|
|
|
|
|
Public Function ConsultarDirecciones(Dt As DataTable, Optional LatName As String = "Latitud", Optional LonName As String = "Longitud") As JArray
|
|
Dim retorno As JArray = Nothing
|
|
Dim posicionesArray = New JArray(From Row As DataRow In Dt
|
|
Let index = Dt.Rows().IndexOf(Row)
|
|
Select New JObject(
|
|
New JProperty("indice", index),
|
|
New JProperty("cveTrama", -1),
|
|
New JProperty("lat", Row(LatName).ToString.ToDouble),
|
|
New JProperty("lon", Row(LonName).ToString.ToDouble)
|
|
))
|
|
|
|
Dim Base64array = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(posicionesArray.ToString()))
|
|
|
|
Using wc As New HttpClient()
|
|
Try
|
|
Dim Url = New Uri(String.Format("{0}nominatim/reverseMultiple.php", ClsPaginas.UrlDirecciones))
|
|
Dim FormStuff = String.Format("formato=json&posiciones={0}", Base64array)
|
|
Dim content = New StringContent(FormStuff, Encoding.UTF8, "application/x-www-form-urlencoded")
|
|
Dim response = wc.PostAsync(Url, content).Result
|
|
Dim result = response.Content.ReadAsStringAsync().Result
|
|
retorno = JArray.Parse(result)
|
|
response.Dispose()
|
|
content = Nothing
|
|
Url = Nothing
|
|
FormStuff = Nothing
|
|
Catch ex As Exception
|
|
OnError("Ocurrió un error al obtener las direcciones", ex)
|
|
End Try
|
|
End Using
|
|
Return retorno
|
|
End Function
|
|
<Serializable>
|
|
Public Class addRemisionObj
|
|
Public CveRemision As Integer
|
|
Public CurrentError As String
|
|
End Class
|
|
<Serializable>
|
|
Public Class upEstatusRemisionObj
|
|
Public SeActualizo As Integer
|
|
Public CurrentError As String
|
|
End Class
|
|
<Serializable>
|
|
Public Class MTieneRemisiones
|
|
Public TieneRemisiones As Boolean
|
|
Public CurrentError As String
|
|
End Class
|
|
<Serializable>
|
|
Public Class LatLng
|
|
Public Property Lat As String
|
|
Public Property Lng As String
|
|
Public Property Fecha As String
|
|
Public Property Direccion As String
|
|
Public Property CurrentError As String
|
|
End Class
|
|
<Serializable>
|
|
Public Class GetRemisionHistorialsObj
|
|
Public Property Fecha As DateTime
|
|
Public Property FolioRemision As String
|
|
Public Property NoEconomico As String
|
|
Public Property Lat As String
|
|
Public Property Lon As String
|
|
Public Property Direccion As String
|
|
Public Property Distancia As String
|
|
Public Property TrackingNumber As String
|
|
Public Property CveEstatus As Integer
|
|
End Class
|
|
<Serializable>
|
|
Public Class GetRemisionHistorialesObj
|
|
Public Historial As List(Of GetRemisionHistorialsObj)
|
|
Public CurrentError As String
|
|
End Class
|
|
|
|
<Serializable>
|
|
Public Class ObjRemisiones
|
|
|
|
Public Property cveRemisiones() As Integer
|
|
Get
|
|
Return m_cveRemisiones
|
|
End Get
|
|
Set
|
|
m_cveRemisiones = Value
|
|
End Set
|
|
End Property
|
|
Private m_cveRemisiones As Integer
|
|
Public Property folioRemision() As String
|
|
Get
|
|
Return m_folioRemision
|
|
End Get
|
|
Set
|
|
m_folioRemision = Value
|
|
End Set
|
|
End Property
|
|
Private m_folioRemision As String
|
|
Public Property cveDispositivo() As Integer
|
|
Get
|
|
Return m_cveDispositivo
|
|
End Get
|
|
Set
|
|
m_cveDispositivo = Value
|
|
End Set
|
|
End Property
|
|
Private m_cveDispositivo As Integer
|
|
Public Property iMEI() As String
|
|
Get
|
|
Return m_iMEI
|
|
End Get
|
|
Set
|
|
m_iMEI = Value
|
|
End Set
|
|
End Property
|
|
Private m_iMEI As String
|
|
Public Property cveEstatus() As Integer
|
|
Get
|
|
Return m_cveEstatus
|
|
End Get
|
|
Set
|
|
m_cveEstatus = Value
|
|
End Set
|
|
End Property
|
|
Private m_cveEstatus As Integer
|
|
Public Property geoInicio() As String
|
|
Get
|
|
Return m_geoInicio
|
|
End Get
|
|
Set
|
|
m_geoInicio = Value
|
|
End Set
|
|
End Property
|
|
Private m_geoInicio As String
|
|
Public Property geoFin() As String
|
|
Get
|
|
Return m_geoFin
|
|
End Get
|
|
Set
|
|
m_geoFin = Value
|
|
End Set
|
|
End Property
|
|
Private m_geoFin As String
|
|
Public Property lat() As String
|
|
Get
|
|
Return m_lat
|
|
End Get
|
|
Set
|
|
m_lat = Value
|
|
End Set
|
|
End Property
|
|
Private m_lat As String
|
|
Public Property lon() As String
|
|
Get
|
|
Return m_lon
|
|
End Get
|
|
Set
|
|
m_lon = Value
|
|
End Set
|
|
End Property
|
|
Private m_lon As String
|
|
End Class
|
|
End Class
|