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

393 lines
20 KiB
VB.net

Imports System.Net
Imports System.Net.Http
Imports System.Net.Security
Imports System.Threading.Tasks
Imports Newtonsoft.Json
Imports WebIntranet.Models
Public Class listadoFich
Public Property id As String
Public Property fichero As String
End Class
Public Class SolicitudesComunicaciones
Inherits System.Web.UI.Page
'Shared sessionUsuario As String
'Shared idInci As Integer
'Shared tipo As String
'Shared incidencia As Incidencia
'Shared idGrupo As Integer
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("Persona") Is Nothing Then
Response.Redirect("default.aspx")
End If
Dim sessionUsuario As String = Session("usuario")
Dim idInci = Request.QueryString("idInci")
Session.Add("idInci", idInci)
Dim tipo = Request.QueryString("t")
Session.Add("tipo", tipo)
If Not IsPostBack Then
horaIniPI1.Value = "00:00"
horaFinPI1.Value = "00:00"
horaTotPI1.Value = "00:00"
horaIniPI2.Value = "00:00"
horaFinPI2.Value = "00:00"
horaTotPI2.Value = "00:00"
'Dim fechaToday = DateTime.Now.ToString("yyyy-MM-dd")
'inpFechaInicio.Value = DateTime.Now.ToString("yyyy-MM") + "-01"
'inpFechaFin.Value = fechaToday
'inpFechaFinBolsa.Value = fechaToday
'inpIniRIM.Value = DateTime.Now.ToString("yyyy") + "-01-01"
'inpFinRIM.Value = fechaToday
'inpFechaIniBolsa.Value = DateTime.Now.ToString("yyyy") + "-01-01"
'fechaInicioListadoTeletrabajo.Value = DateTime.Now.ToString("yyyy") + "-01-01"
'inpAnyoVAAPBC.Value = DateTime.Now.ToString("yyyy")
'fechaFinListadoTeletrabajo.Value = fechaToday
End If
Dim usuario As String = "tecnosis"
Dim contraseña As String = "patata2022"
Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/IncidenciasControlHorario"
' Dim url3 As String = "http://192.168.41.14:81/api/IncidenciasControlHorario"
Dim credenciales3 As New Net.CredentialCache()
credenciales3.Add(New Uri(url3), "Basic", New Net.NetworkCredential(usuario, contraseña))
Dim clienteHTTP3 As New Net.WebClient()
clienteHTTP3.Encoding = System.Text.Encoding.UTF8
clienteHTTP3.Credentials = credenciales3
Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
deserializador3.MaxJsonLength = Integer.MaxValue
Dim listaPicada As List(Of Incidencia) =
deserializador3.Deserialize(Of List(Of Incidencia))(respuesta3)
Dim incidencia = listaPicada.FirstOrDefault(Function(x) x.EsInciReloj = False And x.idIncidencias = idInci)
listIncNoReloj.Value = JsonConvert.SerializeObject(incidencia)
Session.Add("incidencia", incidencia)
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GruposIncidenciasControlHorario"
Dim credenciales2 As New Net.CredentialCache()
Dim clienteHTTP2 As New Net.WebClient()
clienteHTTP2.Encoding = System.Text.Encoding.UTF8
clienteHTTP2.Credentials = credenciales2
Dim respuesta2 As String = clienteHTTP2.DownloadString(url2)
Dim deserializador2 As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
settings.CheckAdditionalContent = True
Dim Datos As List(Of Models.grupos) =
deserializador2.Deserialize(Of List(Of Models.grupos))(respuesta2)
Dim grupoInci = Datos.FirstOrDefault(Function(x) x.idGrupo = incidencia.idGrupo)
Dim idGrupo = grupoInci.idGrupo
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/SubGruposIncidenciasControlHorario?idGrupo=" + idGrupo.ToString
Dim credenciales1 As New Net.CredentialCache()
Dim clienteHTTP1 As New Net.WebClient()
clienteHTTP1.Encoding = System.Text.Encoding.UTF8
clienteHTTP1.Credentials = credenciales1
Dim respuesta1 As String = clienteHTTP1.DownloadString(url1)
Dim deserializador1 As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim settings1 As New Newtonsoft.Json.JsonSerializerSettings()
settings.CheckAdditionalContent = True
Dim Datos1 As ResultadoSubGruposIncidenciasControlHorario =
deserializador2.Deserialize(Of ResultadoSubGruposIncidenciasControlHorario)(respuesta1)
Dim subGrupos = Datos1.listaSubgrupos
Session.Add("idGrupo", idGrupo)
If incidencia.AdmiteIntervaloDias = False Then
inputfechafinPI.Visible = False
inputfechainiPI.Attributes.Add("class", "fechainiciosolo")
dateIniPI.Attributes.Add("class", "fechainiciosolo")
End If
If incidencia.AdmiteIntervaloHoras = False Then
If incidencia.AdmiteInstanteTemporal <> False Then
textoHorario.InnerText = "Hora"
horariotardePI.Visible = False
inputMananaDiv2.Visible = False
inputMananaDiv3.Visible = False
Else
horariomananaPI.Visible = False
horariotardePI.Visible = False
End If
End If
If incidencia.Adjunto = "NO" Then
inputarchivoadjuntoPI.Visible = False
End If
If incidencia.AdmiteRangosFechas = False Then
btnPlusTramo.Visible = False
End If
Dim htmlMigas = "<ul>"
htmlMigas += "<li class='migaActiva'>/" + If(tipo = "p", "Solicitudes", "Comunicaciones") + "</li>"
htmlMigas += "<li><a onclick=""redirigir()"" href=""/Menu.aspx?g=" + grupoInci.idGrupo.ToString + "&t=" + tipo + """>/ " + grupoInci.Descripcion + "</a></li>"
htmlMigas += If(incidencia.idSubgrupo IsNot "", "<li><a onclick=""redirigir()"" href=""/Menu.aspx?g=" + grupoInci.idGrupo.ToString + "&sg=" + subGrupos.FirstOrDefault(Function(x) x.idSubGrupo = incidencia.idSubgrupo).idSubGrupo.ToString + "&t=" + tipo + """>/ " + subGrupos.FirstOrDefault(Function(x) x.idSubGrupo = incidencia.idSubgrupo).descripcion.ToString + "</a></li>", "")
htmlMigas += "<li class='migaActiva'>/ " + incidencia.Nombre + "</li>" +
"</ul>"
migasDePanPI.InnerHtml = htmlMigas
tituloPI.InnerText = incidencia.Nombre
cargarBarraLateral()
End Sub
Public Sub cargarBarraLateral()
Dim usuario As String = "tecnosis"
Dim contraseña As String = "patata2022"
Dim tipo = Request.QueryString("t")
Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/IncidenciasControlHorario"
' Dim url3 As String = "http://192.168.41.14:81/api/IncidenciasControlHorario"
Dim credenciales3 As New Net.CredentialCache()
credenciales3.Add(New Uri(url3), "Basic", New Net.NetworkCredential(usuario, contraseña))
Dim clienteHTTP3 As New Net.WebClient()
clienteHTTP3.Encoding = System.Text.Encoding.UTF8
clienteHTTP3.Credentials = credenciales3
Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
deserializador3.MaxJsonLength = Integer.MaxValue
Dim listaPicada As List(Of Incidencia) =
deserializador3.Deserialize(Of List(Of Incidencia))(respuesta3)
Dim ListIncidenciasNoReloj = listaPicada.Where(Function(x) x.EsInciReloj = False).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList
Dim lista
Dim listaSub
'Dim descrip
'Dim sec
Dim idGrupo = Session("idGrupo")
If tipo = "p" Then
'sec = "Permisos"
'descrip = listaGruposSoli.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion
lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True And x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "" AndAlso x.visibleWeb = True)
listaSub = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True And x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "" AndAlso x.visibleWeb = True)
ElseIf tipo = "i" Then
'sec = "Incidencias"
'descrip = listaGruposInci.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion
lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = False And x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "" AndAlso x.visibleWeb = True)
listaSub = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = False And x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "" AndAlso x.visibleWeb = True)
ElseIf tipo Is Nothing OrElse tipo = "" Then
lista = ListIncidenciasNoReloj.Where(Function(x) x.idGrupo = idGrupo AndAlso x.idSubgrupo Is "")
listaSub = ListIncidenciasNoReloj.Where(Function(x) x.idGrupo = idGrupo AndAlso x.idSubgrupo IsNot "")
End If
'Dim html As String = "<ul class='ListaMenu'>"
'For Each item As Incidencia In lista
' html += "<li><a onclick=""redirigir()"" href=""/SolicitudesComunicaciones.aspx?idInci=" + item.idIncidencias + "&t=" + tipo + """>" + item.Descripcion.Replace("""", "") + "</a></li>"
'Next
'html += "</ul>"
Dim idInci = Session("idInci")
Dim html = "<ul>"
For Each inci As Incidencia In lista
If inci.idIncidencias = idInci Then
html += "<li id=""" + inci.Descripcion.Replace(" ", "") + "BL"" class=""obtListLat listActivo""><a onclick=""redirigir()"" href=""/SolicitudesComunicaciones.aspx?idInci=" + inci.idIncidencias.ToString + "&t=" + tipo + """>" + inci.Nombre + "</a></li>"
Else
html += "<li id=""" + inci.Descripcion.Replace(" ", "") + "BL"" class=""obtListLat""><a onclick=""redirigir()"" href=""/SolicitudesComunicaciones.aspx?idInci=" + inci.idIncidencias.ToString + "&t=" + tipo + """>" + inci.Nombre + "</a></li>"
End If
Next
For Each inci As Incidencia In listaSub
If inci.idIncidencias = idInci Then
html += "<li id=""" + inci.Descripcion.Replace(" ", "") + "BL"" class=""obtListLat listActivo""><a onclick=""redirigir()"" href=""/SolicitudesComunicaciones.aspx?idInci=" + inci.idIncidencias.ToString + "&t=" + tipo + """>" + inci.Nombre + "</a></li>"
Else
html += "<li id=""" + inci.Descripcion.Replace(" ", "") + "BL"" class=""obtListLat""><a onclick=""redirigir()"" href=""/SolicitudesComunicaciones.aspx?idInci=" + inci.idIncidencias.ToString + "&t=" + tipo + """>" + inci.Nombre + "</a></li>"
End If
Next
html += "</ul>"
navLateral.InnerHtml = html
'listMenu.InnerHtml = html
End Sub
<System.Web.Services.WebMethod()>
Public Shared Function InpIncidencia(FechaInicio As String, FechaFin As String, cadenaFechas As String, cadenaHoras As String, inicio As String, final As String, incidencia As String, horaIniManana As String, horaFinManana As String, totalHoraManana As String, horaIniTarde As String, horaFinTarde As String, totalHoraTarde As String, inpObservaciones As String, fichero As Object, EsPropuesta As Boolean) As String
Dim inciActual As Incidencia = HttpContext.Current.Session("incidencia")
Dim rangosDeFechas As New List(Of String)
Dim rangosDeHoras As New List(Of String)
rangosDeFechas.Add(FechaInicio)
If FechaFin = "" Then
FechaFin = FechaInicio
End If
rangosDeFechas.Add(FechaFin)
Dim fechas = cadenaFechas.Split(",")
Dim Horas = cadenaHoras.Split(",")
If fechas(0) <> "" Then
If inciActual.AdmiteIntervaloDias = True Then
For Each item As String In fechas
rangosDeFechas.Add(item)
Next
Else
For Each item As String In fechas
rangosDeFechas.Add(item)
rangosDeFechas.Add(item)
Next
End If
End If
If Horas(0) <> "" AndAlso Horas.Count > 1 Then
If Horas.Count > 0 Then
For Each item As String In Horas
rangosDeHoras.Add(item)
Next
End If
Else
Dim cantidadHoras As Integer = rangosDeFechas.Count * 3
For i As Integer = 1 To cantidadHoras
rangosDeHoras.Add("")
Next
End If
Dim ficherosAdjuntos As New List(Of listadoFich)
If inciActual.Adjunto <> "NO" Then
For num As Integer = 0 To fichero.length - 1
Dim newfich As New listadoFich
newfich.id = fichero(num)("id")
newfich.fichero = fichero(num)("fichero")
ficherosAdjuntos.Add(newfich)
Next
End If
Dim txt = ""
For numb As Integer = 0 To rangosDeFechas.Count - 1 Step 2
Dim inicioTick = rangosDeFechas(numb)
Dim FinalTick = rangosDeFechas(numb + 1)
Dim fechIni = rangosDeFechas(numb)
Dim fechFin = rangosDeFechas(numb + 1)
Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
Dim clienteHTTP1 As New Net.WebClient()
clienteHTTP1.Encoding = System.Text.Encoding.UTF8
Dim nif = sessionUsuario
If numb <> 0 Then
horaIniManana = rangosDeHoras(0)
horaFinManana = rangosDeHoras(1)
totalHoraManana = rangosDeHoras(2)
horaIniTarde = rangosDeHoras(3)
horaFinTarde = rangosDeHoras(4)
totalHoraTarde = rangosDeHoras(5)
rangosDeHoras = rangosDeHoras.Skip(6).ToList
End If
Dim ficheroInci As String
If inciActual.Adjunto <> "NO" Then
End If
If horaIniManana = "" Or horaIniManana = "undefined" Then
horaIniManana = "00:00"
End If
If horaFinManana = "" Or horaFinManana = "undefined" Then
horaFinManana = "00:00"
End If
If horaIniTarde = "" Or horaIniTarde = "undefined" Then
horaIniTarde = "00:00"
End If
If horaFinTarde = "" Or horaFinTarde = "undefined" Then
horaFinTarde = "00:00"
End If
If totalHoraManana = "" Or totalHoraManana = "undefined" Then
totalHoraManana = "00:00"
End If
If totalHoraTarde = "" Or totalHoraTarde = "undefined" Then
totalHoraTarde = "00:00"
End If
Dim tieneAdjunto = False
Dim ficheroActual As String
Dim respuesta
For Each fc As listadoFich In ficherosAdjuntos
Dim ficheroActual1 = ficherosAdjuntos.FirstOrDefault(Function(x) x.id = numb.ToString + "file")
If ficheroActual1 IsNot Nothing Then
tieneAdjunto = True
ficheroActual = ficheroActual1.fichero
End If
Next
Dim inpExpediente = ""
Dim FechaIniciores = fechIni.Substring(5, 2) & "%2F" & fechIni.Substring(8, 2) & "%2F" & fechIni.Substring(0, 4)
Dim FechaFinres = fechFin.Substring(5, 2) & "%2F" & fechFin.Substring(8, 2) & "%2F" & fechFin.Substring(0, 4)
Dim url1 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GenAsisEntreFechas?nif=" + nif + "&FechaInicio=" + FechaIniciores + "&FechaFin=" + FechaFinres + "&idincidencia=" + incidencia + "&horainiciomanana=" + horaIniManana.Replace(":", "%3A") + "&horafinmanana=" + horaFinManana.Replace(":", "%3A") + "&horastrabajadasmanana=" + totalHoraManana.Replace(":", "%3A") + "&horainiciotarde=" + horaIniTarde.Replace(":", "%3A") + "&horafintarde=" + horaFinTarde.Replace(":", "%3A") + "&horastrabajadastarde=" + totalHoraTarde.Replace(":", "%3A") + "&EsPropuesta=" + EsPropuesta.ToString.ToLower + "&observaciones=" + inpObservaciones + "&expediente=" & inpExpediente & "&Adjunto=" & tieneAdjunto.ToString
Dim sRespuesta1 As String = clienteHTTP1.UploadString(url1, "")
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)
Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
settings.CheckAdditionalContent = True
Dim objetoDatos As ResultadoGenAsisEntreFechas =
Newtonsoft.Json.JsonConvert.DeserializeObject(Of ResultadoGenAsisEntreFechas)(sRespuesta1, settings)
Debug.WriteLine("Resultado: " & objetoDatos.Resultado)
Debug.WriteLine("Mensaje: " & objetoDatos.Mensaje)
Dim clienteHTTP2 As New Net.WebClient()
Dim idAsistencia = objetoDatos.idAsistencia
'Dim objetoaAlmacenar As New Models.AlmacenaFicheroIncidencia
'objetoaAlmacenar.idAsistencia = idAsistencia
'objetoaAlmacenar.Fichero = ficheroActual
'Dim jsonalmacenar As String = JsonConvert.SerializeObject(objetoaAlmacenar)
If inciActual.Adjunto IsNot "NO" Then
If ficheroActual IsNot Nothing OrElse ficheroActual IsNot "" Then
respuesta = Almacenafichero(idAsistencia, ficheroActual)
End If
End If
txt += "<p style=""" + If(objetoDatos.Resultado = 0, "color:green", "color:red") + """>" + objetoDatos.Mensaje + "</p>"
Next
Return txt
End Function
<System.Web.Services.WebMethod()>
Public Shared Async Function Almacenafichero(id As String, cuerpo As String) As Task(Of String)
Try
Dim ruta = "incidencia/" + id + ".pdf"
'Dim archivo As Byte() = System.Text.Encoding.Unicode.GetBytes(file)
Dim ObjetoConsulta As New FicheroAtrasnmitir
ObjetoConsulta.idRegistro = id
ObjetoConsulta.tabla = "INCIDENCIA"
'ObjetoConsulta.Fichero = System.Convert.ToBase64String(archivo)
ObjetoConsulta.Fichero = cuerpo
Dim jsonConsulta As String = JsonConvert.SerializeObject(ObjetoConsulta)
Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/AlmacenaFicheroAtransmitir"
Dim clienteHTTP As New HttpClient
Dim contenidoConsultaHTTP As New StringContent(jsonConsulta, Encoding.UTF8, "application/json")
Debug.WriteLine("CargarListadodePicadasAsync:1===" + Now.ToLongTimeString)
Dim respuestaHTTP As HttpResponseMessage = Await clienteHTTP.PostAsync(url, contenidoConsultaHTTP).ConfigureAwait(False)
Debug.WriteLine("CargarListadodePicadasAsync:2===" + Now.ToLongTimeString)
Dim sRespuesta As String = Await respuestaHTTP.Content.ReadAsStringAsync().ConfigureAwait(False)
Debug.WriteLine("CargarListadodePicadasAsync:3===" + Now.ToLongTimeString)
Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
settings.CheckAdditionalContent = True
Dim objetoDatos As ResultadoAlmacenaFicheroAtransmitir =
Newtonsoft.Json.JsonConvert.DeserializeObject(Of ResultadoAlmacenaFicheroAtransmitir)(sRespuesta, settings)
'ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
'Dim clienteHTTP2 As New Net.WebClient()
'clienteHTTP2.Encoding = System.Text.Encoding.UTF8
'clienteHTTP2.Headers.Add("Content-Type", "application/json")
'Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/AlmacenaFicheroIncidencia"
'Dim sRespuesta2 As String = clienteHTTP2.UploadString(url2, cuerpo)
Catch ex As Exception
Debug.Print(ex.Message)
Debug.Print(ex.StackTrace)
End Try
End Function
End Class