diff --git a/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor b/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor index 88dc566..f3c6f0e 100644 --- a/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor +++ b/Antifraude.Net/GestionPersonalWeb/Components/Pages/NominaPersona.razor @@ -536,6 +536,8 @@ + +
Periodo Siltra
- +
+ +
@if (PeriodoSiltra == null) {
- } + } else { -
+
- - + + +
@GetExternalValidationMessage(nameof(PeriodoSiltra.FECHAINICIO))
- +
- +
- + @if (lCuentaCoti != null) @@ -59,10 +63,10 @@
- + - @if (lTipLiq != null) + @if (lTipLiq != null) { @foreach (var enumera in lTipLiq) { @@ -72,15 +76,15 @@
- +
- +
- +
@@ -97,10 +101,10 @@
- + - @if (lTipPeriodo != null) + @if (lTipPeriodo != null) { @foreach (var enumera in lTipPeriodo) { @@ -110,7 +114,7 @@
- +
@@ -121,77 +125,140 @@
-
-
-
- - - +
+ @if (idDesencriptado != "0") + { +
+ +
+ + + + + @if (context.IDTIPOTRAMONavigation.MODIFICABLE == false && context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false) + { +

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

+ } + @if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == true && context.IDTIPOTRAMONavigation.MODIFICABLE == true) + { +

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

+ } + @if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false && context.IDTIPOTRAMONavigation.MODIFICABLE == true) + { +

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

+ } +
+ + @context.IMPORTE + + + @context.PORCENTAJEEMPRESA + + + @context.IMPORTEEMPRESA + + + @context.PORCENTAJETRABAJADOR + + + @context.IMPORTETRABAJADOR + + + @context.IMPORTEGLOBAL + + + @context.IDTIPOTRAMONavigation.IDTIPOTRAMOFICHEROXMLNavigation.DESCRIPCION + +
+
+
- @if (context.IDTIPOTRAMONavigation.MODIFICABLE == false && context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false) - { -

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

- } - @if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == true && context.IDTIPOTRAMONavigation.MODIFICABLE == true) - { -

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

- } - @if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false && context.IDTIPOTRAMONavigation.MODIFICABLE == true) - { -

@context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION

- } - - - @context.IMPORTE - - - @context.PORCENTAJEEMPRESA - - - @context.IMPORTEEMPRESA - - - @context.PORCENTAJETRABAJADOR - - - @context.IMPORTETRABAJADOR - - - @context.IMPORTEGLOBAL - - - @context.IDTIPOTRAMONavigation.IDTIPOTRAMOFICHEROXMLNavigation.DESCRIPCION - - -
- -
+ } }
@code { - private PERIODOSSILTRA PeriodoSiltra { get; set; } + private static PERIODOSSILTRA PeriodoSiltra = new PERIODOSSILTRA(); + public EventCallback OnValidationStateChanged { get; set; } private List annos = new List(); private string cl { get; set; } + private string idn { get; set; } + private string idDesencriptado { get; set; } private List lCuentaCoti = new List(); private List lTipLiq = new List(); private List lEstados = new List(); // private List lTipPeriodo = new List(); private List lTipPeriodo = new List(); private List lTraSil = new List(); + private EditContext editContext = new EditContext(PeriodoSiltra); + private HttpClient cliente = new HttpClient(); + private ValidationMessageStore? messageStore; + private string errorMessage = ""; + private Modal popupConfirmacion = default!; + List mensajes = new List(); + protected override async Task OnInitializedAsync() + { + var token = UserState.Token; + var client = HttpClientFactory.CreateClient(); + client.BaseAddress = new Uri(Utilidades.urlSwagger()); + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); + if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue)) + { + cl = clValue; + } + idDesencriptado = tsUtilidades.crypt.FEncS(cl, + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", + -875421649); + if (idDesencriptado != "0") + { + var response = await client.GetAsync($"/api/PERIODOSSILTRA/{idDesencriptado}"); + if (!response.IsSuccessStatusCode) + { + throw new Exception($"Error al obtener los datos de la persona. Código: {response.StatusCode}"); + } + var resultContent = await response.Content.ReadAsStringAsync(); + PeriodoSiltra = JsonConvert.DeserializeObject(resultContent) ?? throw new Exception("Error al deserializar los datos del Periodo Siltra."); + foreach (var i in PeriodoSiltra.TRAMOSSILTRA) + { + lTraSil.Add(i); + } + } + else + { + string idnSt = ""; + if (QueryHelpers.ParseQuery(url.Query).TryGetValue("idn", out var idnValue)) + { + idn = idnValue; + idnSt = (tsUtilidades.crypt.FEncS(idn, + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", + -875421649)); + } - + PeriodoSiltra = new PERIODOSSILTRA(); + PeriodoSiltra.IDNOMINATRABAJADORCABECERA = Int32.Parse(idnSt); + } + lTipLiq = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPLIQ"); + var rlCuentaCoti = await client.GetAsync("/api/CUENTASCOTIZACIONPATRONAL"); + var rcCuentaCoti = await rlCuentaCoti.Content.ReadAsStringAsync(); + lCuentaCoti = JsonConvert.DeserializeObject>(rcCuentaCoti) ?? throw new Exception("Error al deserializar los datos."); + lEstados = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/MUT"); + lTipPeriodo = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPPERTRAM"); + } private string _filter = ""; public string Filter { @@ -201,15 +268,57 @@ if (_filter != value) { _filter = value; - // AplicarFiltros(); + //AplicarFiltros(); } } } + private async Task GuardarPeriodoSILTRA() + { + // CerrarConfirmacion(); + cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); + // ValidarTodos(); + if (!editContext.GetValidationMessages().Any()) + { + if (PeriodoSiltra.IDPERIODOSILTRA == 0)//Nuevo + { + var response = await Utilidades.NuevoObjeto(cliente, "/api/PERIODOSSILTRA", PeriodoSiltra); + string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS(response.IDPERIODOSILTRA.ToString(), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", 875421649); + NavigationManager.NavigateTo(link, forceLoad: true); + } + else//Actualizar + { + var PeSilGuardar = PeriodoSiltra; + var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/PERIODOSSILTRA/" + PeSilGuardar.IDPERIODOSILTRA, PeSilGuardar); + var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); + 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, + + }); + + } + } private MarkupString FormatearNombre(string nombre) { if (string.IsNullOrEmpty(nombre)) @@ -225,54 +334,27 @@ } return new MarkupString(nombre); } - protected override async Task OnInitializedAsync() + private string GetExternalValidationMessage(string fieldName) { - - var token = UserState.Token; - var client = HttpClientFactory.CreateClient(); - client.BaseAddress = new Uri(Utilidades.urlSwagger()); - client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); - client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - - - var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); - - if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue)) - { - cl = clValue; - } - - if (string.IsNullOrEmpty(cl)) - { - PeriodoSiltra = new PERIODOSSILTRA(); - - } - string idDesencriptado = tsUtilidades.crypt.FEncS(cl, - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", - -875421649); - - var response = await client.GetAsync($"/api/PERIODOSSILTRA/{idDesencriptado}"); - if (!response.IsSuccessStatusCode) - { - throw new Exception($"Error al obtener los datos de la persona. Código: {response.StatusCode}"); - } - var resultContent = await response.Content.ReadAsStringAsync(); - PeriodoSiltra = JsonConvert.DeserializeObject(resultContent) ?? throw new Exception("Error al deserializar los datos del Periodo Siltra."); - - foreach (var i in PeriodoSiltra.TRAMOSSILTRA) { - lTraSil.Add(i); - } - - - lTipLiq = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPLIQ"); - var rlCuentaCoti = await client.GetAsync("/api/CUENTASCOTIZACIONPATRONAL"); - var rcCuentaCoti = await rlCuentaCoti.Content.ReadAsStringAsync(); - lCuentaCoti = JsonConvert.DeserializeObject>(rcCuentaCoti) ?? throw new Exception("Error al deserializar los datos."); - lEstados = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/MUT"); - lTipPeriodo = await Utilidades.ObtenerObjeto>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPPERTRAM"); - - - + var field = new FieldIdentifier(PeriodoSiltra, fieldName); + return messageStore?[field].FirstOrDefault() ?? string.Empty; } - } \ No newline at end of file + private void ValidarYActualizar(string fieldName) + { + OnValidationStateChanged.InvokeAsync(fieldName); + } + private void ValidarSelect(ChangeEventArgs e, string fieldName) + { + if (e?.Value?.ToString() != "") + { + int value = int.Parse(e?.Value?.ToString()!); + PeriodoSiltra?.GetType()?.GetProperty(fieldName)?.SetValue(PeriodoSiltra, value); + } + else + { + PeriodoSiltra?.GetType()?.GetProperty(fieldName)?.SetValue(PeriodoSiltra, null); + } + OnValidationStateChanged.InvokeAsync(fieldName); + } + +} \ No newline at end of file