From d066628241c2e52a1705ed650ccc548f542d875e Mon Sep 17 00:00:00 2001 From: Alejandro Date: Thu, 23 Apr 2026 14:23:37 +0200 Subject: [PATCH 1/2] actualizacion gestionWeb --- .../Components/Pages/InfoPers.razor | 4 +- .../Components/Pages/NominaPersona.razor | 122 ++++++++++++++---- .../GestionPersonalWeb/Models/Utilidades.cs | 4 +- .../Components/Pages/ListadoPersonas.razor | 2 +- .../NOMINATRABAJADORCABECERAController.cs | 6 +- .../extensiones/NOMINATRABAJADORCABECERA.cs | 12 +- 6 files changed, 119 insertions(+), 31 deletions(-) diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPers.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPers.razor index 4ec0d80..42fee09 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPers.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/InfoPers.razor @@ -404,7 +404,9 @@ } else//Actualizar { - var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/PERSONAS/" + persona.IDPERSONA, persona); + var personaGuardar = persona; + personaGuardar.NOMINATRABAJADORCABECERA = null; + var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/PERSONAS/" + personaGuardar.IDPERSONA, personaGuardar); var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue)) { cl = clValue; } cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor index 8f6b1db..88dc566 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor @@ -22,19 +22,19 @@
- +
- +
- +
- + @if (lSexo != null) { @@ -47,7 +47,7 @@
- + @if (lTipoContra != null) { @@ -60,6 +60,20 @@ @* *@
+ + + + +

Se van a dar de alta o modificar datos de la persona seleccionada ¿desea continuar?

+
+ + + + + + +
+
@@ -125,11 +139,11 @@ @if (Nomina.IDSINDICATO1Navigation != null) { - + } else { - + }
@@ -149,7 +163,7 @@ @if (Nomina.IDSINDICATO2Navigation != null) { - + } else { @@ -591,7 +605,7 @@ @code { [Parameter] public PERSONAS Persona { get; set; } = new PERSONAS(); - public NOMINATRABAJADORCABECERA Nomina { get; set; } = new NOMINATRABAJADORCABECERA(); + public static NOMINATRABAJADORCABECERA Nomina { get; set; } = new NOMINATRABAJADORCABECERA(); private HttpClient cliente = new HttpClient(); [Parameter] public EventCallback OnPersonaActualizada { get; set; } @@ -605,10 +619,23 @@ private List lSiltra= new List(); private ValidationMessageStore? messageStore; private string errorMessage = ""; + public string nifDesencriptado { get; set; } + public int NominaDesencriptada { get; set; } public string? cl { get; set; } = ""; public string? cn { get; set; } = ""; private Tabs tabsDtsPer { get; set; } = new Tabs(); private Tabs tabsDtsNom { get; set; } = new Tabs(); + private Modal popupConfirmacion = default!; + List mensajes = new List(); + private EditContext editContext = new EditContext(Nomina); + private async Task abrirGuardar() + { + await popupConfirmacion.ShowAsync(); + } + private async Task CerrarConfirmacion() + { + await popupConfirmacion.HideAsync(); + } private async Task OnTabShownAsync(TabsEventArgs args) { var panelActivo = args.ActiveTabName; @@ -625,22 +652,17 @@ if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue)) { cl = clValue; - } - // if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cn", out var cnValue)) - // { - // cn = cnValue; - // } - + } cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); - // ListaSexos = await Utilidades.ObtenerObjeto>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/SEXO"); + string clDesencriptado = tsUtilidades.crypt.FEncS(cl, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", -875421649); var clCn = clDesencriptado.Split("-"); - var nifDesencriptado = clCn[0]; - var NominaDesencriptada = Int32.Parse(clCn[1]); + nifDesencriptado = clCn[0]; + NominaDesencriptada = Int32.Parse(clCn[1]); // int NominaDesencriptada = Int32.Parse(tsUtilidades.crypt.FEncS(cn, // "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", // "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", @@ -678,8 +700,6 @@ Console.WriteLine($"Error durante la inicialización: {ex.Message}"); } } - - private string HashRed(string id) { string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS( @@ -689,8 +709,6 @@ 875421649); return link; } - - private async Task CargarSelects() { try @@ -712,6 +730,66 @@ } } + private async Task GuardarNomina() + { + CerrarConfirmacion(); + cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); + // ValidarTodos(); + if (!editContext.GetValidationMessages().Any()) + + { + if (Nomina.IDNOMINATRABAJADOR== 0)//Nuevo + { + + var response = await Utilidades.NuevoObjeto(cliente, "/api/NOMINATRABAJADORCABECERA", Nomina); + string link = "/NomPers?cl=" + tsUtilidades.crypt.FEncS(response.IDNOMINATRABAJADOR.ToString(), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", 875421649); + NavigationManager.NavigateTo(link, forceLoad: true); + + } + else//Actualizar + { + // Nomina.IMPORTESEGURO = null; + var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/NOMINATRABAJADORCABECERA/" + Nomina.IDNOMINATRABAJADOR, Nomina); + var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); + if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue)) { cl = clValue; } + cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); + var responsePers = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{nifDesencriptado}"); + if (!responsePers.IsSuccessStatusCode) + { + throw new Exception($"Error al obtener los datos de la persona. Código: {responsePers.StatusCode}"); + } + + var resultContentPers = await responsePers.Content.ReadAsStringAsync(); + Persona = JsonConvert.DeserializeObject(resultContentPers) ?? throw new Exception("Error al deserializar los datos de la persona."); + Nomina = Persona.NOMINATRABAJADORCABECERA?.FirstOrDefault(x => x.IDNOMINA == NominaDesencriptada); + + mensajes.Add(new ToastMessage + { + Type = ToastType.Primary, + Message = $"Guardado correctamente.", + }); + } + } + else + { + var html = ""; + html += "Revise los errores antes de guardar:"; + foreach (string m in editContext.GetValidationMessages()) + { + html += "\n" + m + ". "; + } + + mensajes.Add(new ToastMessage + { + Type = ToastType.Danger, + + Message = html, + + }); + + } + + } } diff --git a/Antifraude.Net/GestionPersonalWeb/Models/Utilidades.cs b/Antifraude.Net/GestionPersonalWeb/Models/Utilidades.cs index 575086b..78cc176 100644 --- a/Antifraude.Net/GestionPersonalWeb/Models/Utilidades.cs +++ b/Antifraude.Net/GestionPersonalWeb/Models/Utilidades.cs @@ -198,13 +198,13 @@ namespace GestionPersonalWeb.Models public static async Task ActualizarObjeto(HttpClient cliente, String uri, T objeto, List mensajes = null) { try - { + { // Limpiar propiedades de navegación VaciarPropiedadesDeNavegacion(objeto); // Realizar la solicitud PUT var response = await cliente.PutAsJsonAsync(uri, objeto); - + if (response.IsSuccessStatusCode) { //var resultContent = await response.Content.ReadAsStringAsync(); diff --git a/Antifraude.Net/RegistroPersonalAN/Components/Pages/ListadoPersonas.razor b/Antifraude.Net/RegistroPersonalAN/Components/Pages/ListadoPersonas.razor index 3f8a0bf..2c0ff0a 100644 --- a/Antifraude.Net/RegistroPersonalAN/Components/Pages/ListadoPersonas.razor +++ b/Antifraude.Net/RegistroPersonalAN/Components/Pages/ListadoPersonas.razor @@ -1,4 +1,4 @@ -@page "/ListadoPersonas" + @page "/ListadoPersonas" @using System.Net.Http.Headers @using System.Linq.Expressions @using Newtonsoft.Json diff --git a/Antifraude.Net/SwaggerAntifraude/Controllers/NOMINATRABAJADORCABECERAController.cs b/Antifraude.Net/SwaggerAntifraude/Controllers/NOMINATRABAJADORCABECERAController.cs index 39eddae..1524e7e 100644 --- a/Antifraude.Net/SwaggerAntifraude/Controllers/NOMINATRABAJADORCABECERAController.cs +++ b/Antifraude.Net/SwaggerAntifraude/Controllers/NOMINATRABAJADORCABECERAController.cs @@ -26,10 +26,10 @@ namespace SwaggerAntifraude.Controllers using (var context = tsGestionAntifraude.NuevoContexto(SoloLectura: true, UseLazyLoadingProxies: false)) { //var dbSet = context.Set(); - var entities = context.PERIODOSSILTRA - .Include(x => x.TRAMOSSILTRA) + var entities = context.NOMINATRABAJADORCABECERA + .Include(x => x.IDPERSONANavigation) .AsNoTracking() - .FirstOrDefault(v => v.IDPERIODOSILTRA == id); + .FirstOrDefault(v => v.IDNOMINATRABAJADOR == id); diff --git a/Antifraude.Net/bdAntifraude/extensiones/NOMINATRABAJADORCABECERA.cs b/Antifraude.Net/bdAntifraude/extensiones/NOMINATRABAJADORCABECERA.cs index d44579d..dd9991d 100644 --- a/Antifraude.Net/bdAntifraude/extensiones/NOMINATRABAJADORCABECERA.cs +++ b/Antifraude.Net/bdAntifraude/extensiones/NOMINATRABAJADORCABECERA.cs @@ -1631,11 +1631,19 @@ namespace bdAntifraude.db } } [NotMapped] - public double IMPORTESEGURO + public double? IMPORTESEGURO { get { - return (double)(this.IDPERSONANavigation.SEGUROACCIDENTE); + if (this.IDPERSONANavigation != null) + { +return (double)(this.IDPERSONANavigation.SEGUROACCIDENTE); + } + else + { + return 0; + } + } } From 3d6288ca34ada5f902e92bec65f5e8698b1e1bd9 Mon Sep 17 00:00:00 2001 From: Alejandro Date: Thu, 23 Apr 2026 14:52:51 +0200 Subject: [PATCH 2/2] cambios gestionWeb --- .../GestionPersonalWeb/Components/Layout/MainLayout.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Layout/MainLayout.razor b/Antifraude.Net/GestionPersonalWeb/Components/Layout/MainLayout.razor index 9bffa19..6db8bba 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Layout/MainLayout.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Layout/MainLayout.razor @@ -92,7 +92,7 @@