From 84305493de9245bd8efb019dc82045c246b54571 Mon Sep 17 00:00:00 2001 From: Alejandro Date: Tue, 16 Jun 2026 14:12:59 +0200 Subject: [PATCH] arreglo y gestionpersonal --- .../InfoPersComponents/EnfermedadesGrid.razor | 141 +++++++++++++++++- .../InfoPersComponents/IncidenciaGrid.razor | 100 ++++++++++--- .../InfoPersComponents/MaternidadesGrid.razor | 120 ++++++++++++++- .../Pages/InfoPuestosDeTrabajo.razor | 1 + .../Controllers/ENFERMEDADESController.cs | 23 +++ 5 files changed, 361 insertions(+), 24 deletions(-) create mode 100644 Antifraude.Net/SwaggerAntifraude/Controllers/ENFERMEDADESController.cs diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/EnfermedadesGrid.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/EnfermedadesGrid.razor index d9a9cc1..5e0e3d4 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/EnfermedadesGrid.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/EnfermedadesGrid.razor @@ -15,7 +15,7 @@ @inject UserState UserState
- +
+ + + @context.FECHAINICIO?.ToString("dd/MM/yyyy") @@ -42,7 +45,7 @@ @context.BASE - @context.IDTIPONavigation.DESCRIPCION + @if(@context.IDTIPONavigation != null){@context.IDTIPONavigation.DESCRIPCION} @if (context.CONTINUIDAD) @@ -66,17 +69,109 @@
+ + + + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + + @foreach (ENUMERACIONES con in lTipo) + { + + } + +
+
+ + + + + + + + +
+
+
+ + + @if (ItemEnEdicion.IDENFERMEDADES != 0) + { + + } + else + { + + } + +
+ @code { [Parameter] public PERSONAS Persona { get; set; } = new PERSONAS(); private HttpClient cliente = new HttpClient(); + private Modal popupGestionDatos = default; [Parameter] public EventCallback OnPersonaActualizada { get; set; } + private string itmTipo { get; set; } private List itmList = new List(); + private List lTipo = new List(); + private ENFERMEDADES ItemEnEdicion { get; set; } = new ENFERMEDADES(); + + //TIPENF + // + + private async Task abrirPopupModificacion(ENFERMEDADES objeto, bool esNuevo) + { + ItemEnEdicion = objeto; + if (objeto.IDENFERMEDADES != 0) + { + itmTipo = objeto.IDTIPONavigation.DESCRIPCION; + // itmNomina = objeto.IDNOMINANavigation.DESCRIPCION; + // itmConcepto = objeto.IDCONCEPTONOMINANavigation.DESCRIPCION; + // FECHANOM = DateTime.ParseExact(objeto.AÑONOMINA.ToString() + "-" + objeto.MESNOMINA.ToString() + "-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", + // System.Globalization.CultureInfo.InvariantCulture); + } + else + { + // itmNomina = ""; + // itmConcepto = ""; + // FECHANOM = DateTime.ParseExact("0001-01-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", + // System.Globalization.CultureInfo.InvariantCulture); + } + await popupGestionDatos.ShowAsync(); + } + private async Task cerrarPopupModificacion() + { + await popupGestionDatos.HideAsync(); + } protected override async Task OnInitializedAsync() { + cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); + await CargarListas(); + } + private async Task CargarListas() + { + itmList.Clear(); + lTipo.Clear(); try { foreach (ENFERMEDADES enf in Persona.ENFERMEDADES) @@ -84,11 +179,51 @@ { itmList.Add(enf); } - + lTipo = await Utilidades.ObtenerObjeto>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPENF"); + StateHasChanged(); } catch (Exception e) { Console.WriteLine($"Error al obtener los datos: {e.Message}"); } } + private async Task GestionarDatos(bool tipo) + { + var inci = ItemEnEdicion; + if (tipo == true) + { + inci.IDENFERMEDADES = 0; + } + inci.IDPERSONA = Persona.IDPERSONA; + + string chbCont = "chbCont"; + inci.CONTINUIDAD = await JS.InvokeAsync("obtenerCheck", chbCont); + string chbNominaNormal = "chbNominaNormal"; + inci.NOMINANORMAL = await JS.InvokeAsync("obtenerCheck", chbNominaNormal); + string chbNominaSS = "chbNominaSS"; + inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync("obtenerCheck", chbNominaSS); + + + inci.IDTIPO = lTipo.FirstOrDefault(x => x.DESCRIPCION == itmTipo).IDENUMERACION; + if (inci.IDENFERMEDADES != 0) + { + var response = await Utilidades.ActualizarObjeto(cliente, "/api/ENFERMEDADES/" + inci.IDENFERMEDADES, inci); + } + else + { + var response = await Utilidades.NuevoObjeto(cliente, "/api/ENFERMEDADES/", inci); + } + await cerrarPopupModificacion(); + var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}"); + if (!response1.IsSuccessStatusCode) + { + throw new Exception($"Error al obtener los datos de la persona. Código: {response1.StatusCode}"); + } + + var resultContent = await response1.Content.ReadAsStringAsync(); + Persona = JsonConvert.DeserializeObject(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona."); + await CargarListas(); + + + } } \ No newline at end of file diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/IncidenciaGrid.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/IncidenciaGrid.razor index 4695edd..971729d 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/IncidenciaGrid.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/IncidenciaGrid.razor @@ -15,7 +15,7 @@ @inject UserState UserState
- + @foreach (var año in annos.Take(annos.Count)) { @@ -149,7 +149,30 @@
+
+ + + @foreach(NOMINAS nom in lNom) + { + + } + +
+
+ + + @foreach (CONCEPTOSGENERALES con in lConceptos) + { + + } + +
+
+ + +
+ @@ -192,7 +215,13 @@ - + @if(ItemEnEdicion.IDINCIDENCIA != 0){ + + } + else + { + + } @@ -203,7 +232,10 @@ public PERSONAS Persona { get; set; } = new PERSONAS(); private Modal popupGestionDatos = default; public int? idNom { get; set; } + private DateTime FECHANOM { get; set; } private string titulo { get; set; } + private string itmNomina { get; set; } + private string itmConcepto { get; set; } private HttpClient cliente = new HttpClient(); [Parameter] public EventCallback OnPersonaActualizada { get; set; } @@ -211,14 +243,31 @@ // private List meses = new List(); private List itmList = new List(); private List nombMeses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]; + private List lNom = new List(); + private List lConceptos = new List(); private INCIDENCIAS ItemEnEdicion { get; set; } = new INCIDENCIAS(); protected override async Task OnInitializedAsync() { + cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); CargarListas(); } private async Task abrirPopupModificacion(INCIDENCIAS objeto, bool esNuevo) { ItemEnEdicion = objeto; + if(objeto.IDINCIDENCIA != 0) + { + itmNomina = objeto.IDNOMINANavigation.DESCRIPCION; + itmConcepto = objeto.IDCONCEPTONOMINANavigation.DESCRIPCION; + FECHANOM = DateTime.ParseExact( objeto.AÑONOMINA.ToString() + "-" + objeto.MESNOMINA.ToString() + "-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", + System.Globalization.CultureInfo.InvariantCulture); + } + else + { + itmNomina = ""; + itmConcepto = ""; + FECHANOM = DateTime.ParseExact( "0001-01-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", + System.Globalization.CultureInfo.InvariantCulture); + } await popupGestionDatos.ShowAsync(); } private async Task cerrarPopupModificacion() @@ -229,14 +278,11 @@ { try { + itmList.Clear(); + annos.Clear(); var listnom = Persona.INCIDENCIAS.Where(x => x.ESDELIQUIDACION == false).ToList(); var nominaIncidenciadelcarajo = listnom.FirstOrDefault(x => x.IDINCIDENCIA == 56543); - foreach (INCIDENCIAS i in listnom) - { - itmList.Add(i); - } - - + foreach (INCIDENCIAS i in listnom){ itmList.Add(i); } for (var i = 0; i < itmList.Count; i++) { int? year = itmList[i].AÑONOMINA; @@ -249,7 +295,10 @@ } } annos = annos.OrderDescending().ToList(); - Task.Delay(1); + var lNomi = await Utilidades.ObtenerObjeto>(cliente, "/api/NOMINAS"); + lNom = lNomi.OrderBy(x => x.FECHAINICIO).ToList(); + lConceptos = await Utilidades.ObtenerObjeto>(cliente, "/api/CONCEPTOSGENERALES/"); + // Task.Delay(1); StateHasChanged(); } @@ -259,10 +308,22 @@ } } // GUARDAR - - private async Task GestionarDatos() + private async Task GestionarDatos(bool tipo) { + var inci = ItemEnEdicion; + if (tipo == true) + { + inci.IDINCIDENCIA = 0; + } + inci.IDPERSONA = Persona.IDPERSONA; + inci.MESNOMINA = FECHANOM.Month; + inci.AÑONOMINA = FECHANOM.Year; + + var nomSelect = lNom.FirstOrDefault(x => x.DESCRIPCION == itmNomina); + var concSelect = lConceptos.FirstOrDefault(x => x.DESCRIPCION == itmConcepto); + inci.IDNOMINA = nomSelect.IDNOMINAS; + inci.IDCONCEPTONOMINA = concSelect.IDCONCEPTOSGENERALES; string chbSusConcepto = "chbSusConcepto"; inci.SUSTITUYECONCEPTO = await JS.InvokeAsync("obtenerCheck", chbSusConcepto); string chbCotizaSS = "chbCotizaSS"; @@ -276,9 +337,13 @@ string chbNominaSS = "chbNominaSS"; inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync("obtenerCheck", chbNominaSS); - - var cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); - var response = await Utilidades.ActualizarObjeto(cliente, "/api/INCIDENCIAS/" + inci.IDINCIDENCIA, inci); + if(inci.IDINCIDENCIA != 0){ + var response = await Utilidades.ActualizarObjeto(cliente, "/api/INCIDENCIAS/" + inci.IDINCIDENCIA, inci); + } + else + { + var response = await Utilidades.NuevoObjeto(cliente, "/api/INCIDENCIAS/", inci); + } await cerrarPopupModificacion(); var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}"); if (!response1.IsSuccessStatusCode) @@ -289,11 +354,6 @@ var resultContent = await response1.Content.ReadAsStringAsync(); Persona = JsonConvert.DeserializeObject(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona."); await CargarListas(); - // itmList.First(x => x.IDINCIDENCIA == inci.IDINCIDENCIA).IDNOMINANavigation = inci.IDNOMINANavigation; - // itmList.First(x => x.IDINCIDENCIA == inci.IDINCIDENCIA).IDCONCEPTONOMINANavigation= inci.IDCONCEPTONOMINANavigation; - - - - // await InvokeAsync(StateHasChanged); + } } diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/MaternidadesGrid.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/MaternidadesGrid.razor index 441d5bd..e15adff 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/MaternidadesGrid.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPersComponents/MaternidadesGrid.razor @@ -15,7 +15,7 @@ @inject UserState UserState
- +
+ + + @context.FECHAINICIO?.ToString("dd/MM/yyyy") @@ -67,12 +70,62 @@
+ + + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + + + + + +
+
+
+ + + @if (ItemEnEdicion.IDMATERNIDADES != 0) + { + + } + else + { + + } + +
+ + @code { [Parameter] public PERSONAS Persona { get; set; } = new PERSONAS(); private HttpClient cliente = new HttpClient(); + private Modal popupGestionDatos = default; [Parameter] public EventCallback OnPersonaActualizada { get; set; } + private MATERNIDADES ItemEnEdicion { get; set; } = new MATERNIDADES(); // private List meses = new List(); private List itmList = new List(); protected override async Task OnInitializedAsync() @@ -87,4 +140,69 @@ Console.WriteLine($"Error al obtener los datos: {e.Message}"); } } + private async Task CargarListas() + { + itmList.Clear(); + try + { + foreach (MATERNIDADES enf in Persona.MATERNIDADES) + + { + itmList.Add(enf); + } + StateHasChanged(); + } + catch (Exception e) + { + Console.WriteLine($"Error al obtener los datos: {e.Message}"); + } + } + private async Task GestionarDatos(bool tipo) + { + var inci = ItemEnEdicion; + if (tipo == true) + { + inci.IDMATERNIDADES = 0; + } + inci.IDPERSONA = Persona.IDPERSONA; + + string chbRiesgoEmbarazo = "chbRiesgoEmbarazo"; + inci.RIESGOEMBARAZO = await JS.InvokeAsync("obtenerCheck", chbRiesgoEmbarazo); + string chbNominaNormal = "chbNominaNormal"; + inci.NOMINANORMAL = await JS.InvokeAsync("obtenerCheck", chbNominaNormal); + string chbNominaSS = "chbNominaSS"; + inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync("obtenerCheck", chbNominaSS); + + + + if (inci.IDMATERNIDADES != 0) + { + var response = await Utilidades.ActualizarObjeto(cliente, "/api/MATERNIDADES/" + inci.IDMATERNIDADES, inci); + } + else + { + var response = await Utilidades.NuevoObjeto(cliente, "/api/MATERNIDADES/", inci); + } + await cerrarPopupModificacion(); + var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}"); + if (!response1.IsSuccessStatusCode) + { + throw new Exception($"Error al obtener los datos de la persona. Código: {response1.StatusCode}"); + } + + var resultContent = await response1.Content.ReadAsStringAsync(); + Persona = JsonConvert.DeserializeObject(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona."); + await CargarListas(); + + + } + private async Task abrirPopupModificacion(MATERNIDADES objeto, bool esNuevo) + { + ItemEnEdicion = objeto; + await popupGestionDatos.ShowAsync(); + } + private async Task cerrarPopupModificacion() + { + await popupGestionDatos.HideAsync(); + } } diff --git a/Antifraude.Net/RegistroPersonalAN/Components/Pages/InfoPuestosDeTrabajo.razor b/Antifraude.Net/RegistroPersonalAN/Components/Pages/InfoPuestosDeTrabajo.razor index 3ca29d1..fee0ab7 100644 --- a/Antifraude.Net/RegistroPersonalAN/Components/Pages/InfoPuestosDeTrabajo.razor +++ b/Antifraude.Net/RegistroPersonalAN/Components/Pages/InfoPuestosDeTrabajo.razor @@ -205,6 +205,7 @@ else
@GetExternalValidationMessage(nameof(Model.DENOMINACION))
diff --git a/Antifraude.Net/SwaggerAntifraude/Controllers/ENFERMEDADESController.cs b/Antifraude.Net/SwaggerAntifraude/Controllers/ENFERMEDADESController.cs new file mode 100644 index 0000000..ffc5009 --- /dev/null +++ b/Antifraude.Net/SwaggerAntifraude/Controllers/ENFERMEDADESController.cs @@ -0,0 +1,23 @@ +using bdAntifraude.db; +using bdAntifraude.dbcontext; +using Microsoft.AspNetCore.Mvc; +using System.Diagnostics; +using Microsoft.AspNetCore.Authorization; +using Serialize.Linq.Serializers; +using System.Linq.Expressions; +using Microsoft.EntityFrameworkCore; + +namespace SwaggerAntifraude.Controllers +{ + [ApiController] + [Route("api/[controller]")] + public class ENFERMEDADESController : GenericoController + { + public ENFERMEDADESController() + : base() + { + Debug.WriteLine("aqui"); + } + + } +}