Files
Antifraude.Net/.codex-links/WebIntranet/bolsaDeHoras.aspx.vb
2026-04-30 08:55:00 +02:00

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