81 lines
3.8 KiB
VB.net
81 lines
3.8 KiB
VB.net
Imports System.Net
|
|
Imports System.Net.Security
|
|
|
|
Public Class bolsaDeHoras
|
|
Inherits System.Web.UI.Page
|
|
'Shared sessionUsuario As String
|
|
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
|
|
If Session("usuario") = "" Then
|
|
Response.Redirect("default.aspx")
|
|
End If
|
|
If Session("modo") = "PERSONAL" Then
|
|
intPicadaBL.Visible = False
|
|
VAAPBCBL.Visible = False
|
|
'bolsaDeHorasBL.Visible = False
|
|
End If
|
|
|
|
|
|
'sessionUsuario = Session("usuario")
|
|
Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd")
|
|
inpFechaFinBolsa.Value = fechaToday
|
|
inpFechaIniBolsa.Value = DateTime.Now.ToString("yyyy") + "-01-01"
|
|
End Sub
|
|
<System.Web.Services.WebMethod()>
|
|
Public Shared Function ListaBolsaHoras(fechaInit As String, fechaEnd As String) As String
|
|
Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
|
|
'Dim url1 As String = "https://172.16.89.216:81/api/HorasExtrasEntreFechas?Nif=28466610Q&FechaInicio=06%2F01%2F2022&FechaFin=06%2F30%2F2022"
|
|
Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/HorasExtrasEntreFechas?Nif=" + sessionUsuario + "&FechaInicio=" + fechaInit + "&FechaFin=" + fechaEnd
|
|
' Dim url1 As String = "https://192.168.41.122/api/HorasExtrasEntreFechas?Nif=28466610Q&FechaInicio=06%2F01%2F2022&FechaFin=06%2F30%2F2022"
|
|
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
|
|
Dim clienteHTTP1 As New Net.WebClient()
|
|
clienteHTTP1.Encoding = System.Text.Encoding.UTF8
|
|
Dim sRespuesta1 As String = clienteHTTP1.DownloadString(url1)
|
|
'Me.TextBoxResultados.Text = sRespuesta1
|
|
|
|
|
|
'// Esta es una manera "genérica" de acceder a datos JSON mediante LINQ,
|
|
'// usando la biblioteca Newtonsoft.Json.
|
|
Dim datos As Newtonsoft.Json.Linq.JObject =
|
|
Newtonsoft.Json.JsonConvert.DeserializeObject(Of Newtonsoft.Json.Linq.JObject)(sRespuesta1)
|
|
Dim sbResultado As New Text.StringBuilder()
|
|
sbResultado.AppendFormat("Resultado: {0}{1}", datos.Item("Resultado").ToString, vbCrLf)
|
|
sbResultado.AppendFormat("Mensaje: {0}{1}", datos.Item("Mensaje"), vbCrLf)
|
|
sbResultado.AppendFormat("ListadoEF: {0}{1}", datos.Item("ListadoEF"), vbCrLf)
|
|
|
|
'// Deserializar a una clase.
|
|
Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
|
|
settings.CheckAdditionalContent = True
|
|
Dim objetoDatos As Models.ResultadoHorasExtrasEntreFechas =
|
|
Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoHorasExtrasEntreFechas)(sRespuesta1, settings)
|
|
|
|
Debug.WriteLine("Resultado: " & objetoDatos.Resultado)
|
|
Debug.WriteLine("Mensaje: " & objetoDatos.Mensaje)
|
|
' Debug.WriteLine("ListadoEF.FechaInicio: " & objetoDatos.ListadoEF.FechaInicio)
|
|
|
|
objetoDatos.HorasEF.ListadoHorasExtras.Sort(Function(x, y) x.Fecha.CompareTo(y.Fecha))
|
|
|
|
Dim json = ""
|
|
json += "[{""Nombre"":""" + objetoDatos.HorasEF.Nombre + """,""HorasExtra"":"
|
|
Dim cont = 0
|
|
|
|
json += "["
|
|
If Not objetoDatos.HorasEF.ListadoHorasExtras.Count = 0 Then
|
|
For Each item As Models.HoraExtra In objetoDatos.HorasEF.ListadoHorasExtras
|
|
If cont >= 1 Then
|
|
json += ","
|
|
End If
|
|
cont += 1
|
|
json += "{""Fecha"":""" + item.Fecha + """,""Horas"":""" + item.Horas + """,""Descripcion"":""" + item.Descripcion + """}"
|
|
Next
|
|
Else
|
|
json += ""
|
|
End If
|
|
json += "],"
|
|
|
|
|
|
json += """SaldoPeriodo"":""" + objetoDatos.HorasEF.SaldoPeriodo + """,""SaldoAcumulado"":""" + objetoDatos.HorasEF.SalcoAcumulado + """}]"
|
|
Return json
|
|
|
|
End Function
|
|
|
|
End Class |