@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

<div class= "tablaTabLateral">


    <Accordion>
        @for (var y = 0; y <= annos.Count - 1; y++)
        {
            var listado = itmList.Where(x => x.IDNOMINANavigation.AÑO == annos[y]).ToList();
            titulo = "Año Nómina: "+annos[y].ToString();
            <AccordionItem Title="@titulo">
                <Content>
                    <div style="overflow-x:auto;" class="tablaDesk">
                        <Grid TItem="NOMINATRABAJADORCABECERA"
                              Class="table tablaRegPers"
                              Data="listado"
                              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="NOMINATRABAJADORCABECERA" HeaderText="Nómina">
                                    
                                    <NavLink class="btn btn-link" href="@HashRed(context)">@context.IDNOMINANavigation?.DESCRIPCION</NavLink>
                                    
                                    @* @context.IDNOMINANavigation?.DESCRIPCION *@
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Devengado">
                                    @context.TOTALDEVENGADO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Liquido">
                                    @context.TOTALLIQUIDO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Grupo">
                                    @context.IDGRUPOFUNCIONARIONavigation?.DESCRIPCION
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Nivel">
                                    @context.NIVEL
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Efectivos">
                                    @context.DIASEFECTIVOS
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Enfermo">
                                    @context.DIASENFERMOS
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Accidentes">
                                    @context.DIASACCIDENTES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Falta">
                                    @context.DIASFALTA
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Permisos Sin Retribuir">
                                    @context.DIASPERMISOSSINRETRIBUIR
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Maternidad">
                                    @context.DIASMATERNIDAD
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Acumulada">
                                    @if (context.ACUMULADA == true)
                                    {
                                        <i class="fa-regular fa-square-check"></i>
                                    }
                                    else { }
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Protegida">
                                    @if (context.PROTEGIDA == true)
                                    {
                                        <i class="fa-regular fa-square-check"></i>
                                    }
                                    else { }
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Pluriempleo">
                                    @context.PLURIEMPLEO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Nº Pluriempleo">
                                    @context.NUMEROPLURIEMPLEO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Seguridad Social">
                                    @context.TOTALSEGURIDADSOCIAL
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Prorrata Paga Extra">
                                    @context.PRORRATAPAGAEXTRA
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Prorrata Productividad">
                                    @context.PRORRATAPRODUCTIVIDAD
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Deducciones">
                                    @context.TOTALDEDUCCIONES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Haberes">
                                    @context.TOTALHABERES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Otras Deducciones">
                                    @context.OTRASDEDUCCIONES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Seguridad social Pago en Especie">
                                    @context.TOTALSEGURIDADSOCIALPAGOENESPECIE
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Epigrafe 126">
                                    @context.TOTALEPIGRAFE126
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Maternidad Paternidad">
                                    @context.TOTALMATERNIDADPATERNIDAD
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Total Permiso Sin Retribuir">
                                    @context.TOTALPERMISOSINRETRIBUIR
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="SINDICATO">
                                    @context.SINDICATO1
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Reducción Jornada">
                                    @context.REDUCCIONJORNADA
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Trabajo Tiempo Parcial">
                                    @context.TRABAJOTIEMPOPARCIAL
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Mutua">
                                    @context.MUTUA
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Enfermedad al 60">
                                    @context.DIASENFERMEDADAL60
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Base Enfermedad al 60">
                                    @context.BASEENFERMEDADAL60
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Enfermadad al 75">
                                    @context.DIASENFERMEDADAL75
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Accidentes">
                                    @context.DIASACCIDENTES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Base Accidentes">
                                    @context.BASEACCIDENTES
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Días Base Pago Directo">
                                    @context.DIASBASEPAGODIRECTO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Base Pago Directo">
                                    @context.BASEPAGODIRECTO
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Visible">
                                    @if (context.VISIBLE == true)
                                    {
                                        <i class="fa-regular fa-square-check"></i>
                                    }
                                    else { }
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Modificable">
                                    @if (context.MODIFICABLE == true)
                                    {
                                        <i class="fa-regular fa-square-check"></i>
                                    }
                                    else { }
                                </GridColumn>
                                <GridColumn TItem="NOMINATRABAJADORCABECERA" HeaderText="Mes Nomina">
                                    @context.MESNOMINA
                                </GridColumn>
                            </GridColumns>

                        </Grid>
                    </div>
                </Content>
            </AccordionItem>
        }
    </Accordion>
</div>

@code {
    [Parameter]
    public PERSONAS Persona{ get; set; } = new PERSONAS();
    public int? idNom { get; set; }
    [Parameter]
    public EventCallback OnPersonaActualizada { get; set; }
    private List<int> annos = new List<int>();
    private string titulo { get; set; }
    private List<NOMINATRABAJADORCABECERA> itmList = new List<NOMINATRABAJADORCABECERA>();
    protected override async Task OnInitializedAsync()
    {
        try
        {
            var listnom = Persona.NOMINATRABAJADORCABECERA;
            foreach (NOMINATRABAJADORCABECERA i in listnom)
            {
                itmList.Add(i);
            }
            for (var i = 0; i < itmList.Count; i++)
            {
                if (annos.Contains(itmList[i].IDNOMINANavigation.AÑO) == false)
                {
                    annos.Add(itmList[i].IDNOMINANavigation.AÑO);
                }
            }
            annos = annos.OrderDescending().ToList();
            // for (var i = 0; i < Persona.NOMINATRABAJADORCABECERA.Count; i++)
            // {
            //     NOMINATRABAJADORCABECERA nom = new NOMINATRABAJADORCABECERA();
            //     // nom = Persona.NOMINATRABAJADORCABECERA;


            //     // itmList.Add(Persona.NOMINATRABAJADORCABECERA[i])
            // }

        }
        catch (Exception e)
        {
            Console.WriteLine($"Error al obtener los datos: {e.Message}");
        }
    }
    private string HashRed(NOMINATRABAJADORCABECERA nom)
    {
        string link = "/NomPers?cl=" + tsUtilidades.crypt.FEncS(
            Persona.NIF + "-" + nom.IDNOMINA.ToString(),
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
            "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
             875421649);
        //  + "&cn=" + tsUtilidades.crypt.FEncS(nom.IDNOMINA.ToString(),
            // "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
            // "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
            // 875421649);
        return link;
}
}