diff --git a/asmx/WsTSoft.asmx b/asmx/WsTSoft.asmx index 541ab2d77..3288b8237 100644 --- a/asmx/WsTSoft.asmx +++ b/asmx/WsTSoft.asmx @@ -60,23 +60,40 @@ Public Class WsTSoft End Function Public Function GetUltimaPosicion(DevID As String) As String - Dim retorno As String = "" - Dim ObjGPS As New ClsGPS - Dim Continuar As Boolean = ObjGPS.UltimaPosicionEquipoGetWS(DevID) + 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 - If Continuar Then + + If Continuar AndAlso DtPosicion IsNot Nothing Then 'CONSULTA DIRECCIONES - Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados, "Lat", "Lng") Try - If Direcciones IsNot Nothing Then - For Each Dir As JObject In Direcciones - ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() - Next - End If - If ObjGPS.DtResultados IsNot Nothing AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then - ObjPos.Lat = ObjGPS.DtResultados.Rows("0")("Lat").ToString - ObjPos.Lng = ObjGPS.DtResultados.Rows("0")("Lng").ToString - ObjPos.Direccion = ObjGPS.DtResultados.Rows("0")("Direccion").ToString + If DtPosicion IsNot Nothing AndAlso DtPosicion.Rows.Count > 0 Then + + 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 + + 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 Catch ex As Exception @@ -85,12 +102,18 @@ Public Class WsTSoft End Try Else ObjPos.CurrentError = "No se pudo obtener la posición." - End If - ObjGPS.Dispose() + End If + + If DtPosicion IsNot Nothing Then + DtPosicion.Dispose() + DtPosicion = Nothing + End If + retorno = JsonConvert.SerializeObject(ObjPos) ObjPos = Nothing Return retorno End Function + Public Function TerminoRemision(FolioRemision As String, NoEconomico As String) As String Dim retorno As String = "" @@ -244,6 +267,7 @@ Public Class WsTSoft 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