Files
Antifraude.Net/Antifraude.Net/GestionPersonalWeb/Components/Pages/ComponentesInfoNomina/NominasIncidencias.razor
2025-10-24 08:46:31 +02:00

165 lines
5.6 KiB
Plaintext

@using System.Net.Http.Headers
@using System.Linq.Expressions
@using Newtonsoft.Json
@using System.Text
@using Serialize.Linq.Serializers
@using GestionPersonalWeb.Models
@using BlazorBootstrap
@using bdAntifraude.db
@using Microsoft.AspNetCore.Components
@rendermode InteractiveServer
@inject IJSRuntime JS
@inject NavigationManager NavigationManager
@inject IHttpClientFactory HttpClientFactory
@inject IHttpContextAccessor HttpContextAccessor
@inject UserState UserState
<Grid TItem="INCIDENCIAS"
Class="table tablaRegPers"
Data="listINC"
AllowFiltering="false"
PageSize="10"
AllowPaging="true"
AllowSorting="true"
EmptyText="No se han encontrado datos"
Height="100"
PageSizeSelectorVisible="false"
PageSizeSelectorItems="@(new int[] { 5, 10, 20, 50 })"
Responsive="true"
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
<GridColumns>
<GridColumn TItem="INCIDENCIAS" HeaderText="Persona">
@context.IDPERSONANavigation?.APELLIDOSNOMBRE
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Concepto">
@context.IDCONCEPTONOMINANavigation.DESCRIPCION
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="NIF">
@context.IDPERSONANavigation?.NIF
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Fecha Baja">
@context.IDPERSONANavigation?.FECHABAJA
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Fecha Baja">
@context.IDPERSONANavigation?.FECHABAJA
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Sustituye Concepto">
@if (context.SUSTITUYECONCEPTO == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Cotiza Seguridad Social">
@if (context.COTIZASEGURIDADSOCIAL == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Texto">
@context.TEXTO
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Cantidad">
@context.CANTIDAD
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Importe">
@context.IMPORTE
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="IRPF">
@context.IRPF
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="IRPF Ficha">
@if (context.IRPFFICHA == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Nómina Normal">
@if (context.NOMINANORMAL == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="Nómina Seguridad Social">
@if (context.NOMINASEGURIDADSOCIAL == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
<GridColumn TItem="INCIDENCIAS" HeaderText="No Para IRPF">
@if (context.NOPARAIRPF == true)
{
<i class="fa-regular fa-square-check"></i>
}
else { }
</GridColumn>
</GridColumns>
</Grid>
@code {
[Parameter]
public NOMINAS Nomina { get; set; } = new NOMINAS();
public int? idNom { get; set; }
[Parameter]
public EventCallback OnPersonaActualizada { get; set; }
private List<INCIDENCIAS> listINC = new List<INCIDENCIAS>();
protected override async Task OnInitializedAsync()
{
if (Nomina?.IDNOMINAS != null && Nomina.IDNOMINAS > 0)
{
await ObtListaNom();
}
else
{
Console.WriteLine("Persona no está completamente cargada.");
}
}
private async Task ObtListaNom()
{
try
{
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"));
idNom = Nomina.IDNOMINAS;
Expression<Func<INCIDENCIAS, bool>> filtro = x => x.IDNOMINA == idNom;
var serializer = new ExpressionSerializer(new Serialize.Linq.Serializers.JsonSerializer());
var TDExpression = serializer.SerializeText(filtro);
var TDjsonContent = JsonConvert.SerializeObject(new { Expression = TDExpression });
var TDcontent = new StringContent(TDjsonContent, Encoding.UTF8, "application/json");
var TDresponse = await client.PostAsync("/api/INCIDENCIAS/filtrar", TDcontent);
var TDCont = await TDresponse.Content.ReadAsStringAsync();
List<INCIDENCIAS> listINC = JsonConvert.DeserializeObject<List<INCIDENCIAS>>(TDCont) ?? new List<INCIDENCIAS>();
listINC = listINC
.OrderByDescending(x => x.FECHAINICIO)
.ToList();
}
catch (Exception ex)
{
string errorMessage = ex.Message;
Console.WriteLine($"Error durante la inicialización: {ex.Message}");
throw;
}
// listPersonas = personas;
}
}