Imports System.Net Imports System.Net.Http Imports System.Net.Security Imports System.Threading.Tasks Imports Newtonsoft.Json Imports WebIntranet.Models Public Class intIncidenciaPers 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 OrElse Session("modo") IsNot "PERSONAL" Then Response.Redirect("default.aspx") End If 'seccionInci.Visible = False Dim sessionUsuario As String = Session("usuario") Dim idInci = Request.QueryString("idInci") Session.Add("idInci", idInci) Dim tipo = Request.QueryString("t") Session.Add("tipo", tipo) CargarListaPersonas() cargarListaIncidencias() 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 htmlMigas = "" 'migasDePanPI.InnerHtml = htmlMigas 'tituloPI.InnerText = incidencia.Nombre 'cargarBarraLateral() End Sub Public Sub CargarListaPersonas() Dim listUsus As List(Of Personal) = Session("Persona").personas Dim seleccionados = Session("usuariosSeleccionados") Dim listseleccionados As New List(Of Personal) For Each sel As String In seleccionados listseleccionados.Add(listUsus.FirstOrDefault(Function(x) x.Dni = sel)) Next listseleccionados.Add(Session("Persona").personas(0)) 'listseleccionados = listseleccionados.OrderBy(Function(x) x.Nombre).ToList() 'selPersonas.DataSource = listseleccionados 'selPersonas.ValueField = "IdPersona" 'selPersonas.TextField = "Nombre" 'selPersonas.DataBind() listseleccionados = listseleccionados.OrderBy(Function(x) x.Nombre).ToList Dim html = "" html += "" selPerDiv.InnerHtml = html 'html += "

PERSONA:

" 'html += "" 'selPersonasDiv.InnerHtml = html End Sub Public Sub cargarListaIncidencias() Dim usuario As String = "tecnosis" Dim contraseña As String = "patata2022" Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/listaIncidenciasPersonal" ' 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 html = "" 'If listaPicada.Count > 0 Then listaPicada = listaPicada.OrderBy(Function(x) x.Nombre).ToList 'selInci.DataSource = listaPicada 'selInci.ValueField = "idIncidencias" 'selInci.TextField = "Nombre" 'selInci.DataBind() 'End If html += "" selInDiv.InnerHtml = html End Sub Public Shared Async Function CargarInci(idInci As String) As Task(Of String) 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.idIncidencias = CInt(idInci)) Dim inciJson = JsonConvert.SerializeObject(incidencia) HttpContext.Current.Session.Add("incidencia", incidencia) Return inciJson '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 'seccionInci.Visible = True End Function '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 = "" ' Dim idInci = Session("idInci") ' Dim html = "" ' navLateral.InnerHtml = html ' 'listMenu.InnerHtml = html 'End Sub Public Shared Function inpIncidencia(idPers As String, 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") Dim listPersonas As List(Of Personal) = HttpContext.Current.Session("persona").personas Dim nif = listPersonas.FirstOrDefault(Function(x) x.idPersona = CInt(idPers)).Dni If nif Is Nothing Then Return "

Persona objetivo no disponible para este usuario

" End If 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 += "

" + objetoDatos.Mensaje + "

" Next Return txt End Function 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 'Protected Sub selInci_ValueChanged(sender As Object, e As EventArgs) ' CargarInci(selInci.Value) 'End Sub End Class