@using BlazorBootstrap
@using bdHerramientaCACOA.db

<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />



<div class="row">
    <div class="col-md-6">
        <div class="d-flex justify-content-between mt-3">
            <div><b>Coeficientes correctores por Complejidad</b></div>
        </div>
        <Grid TItem="CASA.CoeficientesCorrectores"
              Class="tablaCACOA table"
              Data="listadoFactoresComplejidad"
              AllowFiltering="false"
              PageSize="10"
              EmptyText="No hay registros."
              Height="100"
              Responsive="true"
              PaginationItemsTextFormat="{0} - {1} de {2} elementos">

            <GridColumns>
                <GridColumn TItem="CASA.CoeficientesCorrectores" HeaderTextAlignment="Alignment.Center"  HeaderText="Factores de Complejidad" PropertyName="Factores" Class="colorFilasIntro">
                    <div class="puntoInfo">

                    @if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion))
                    {
                        @UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion)
                    }

                    @context.Nombre
                    </div>
                </GridColumn>
                <GridColumn TItem="CASA.CoeficientesCorrectores" HeaderText="">
                    <InputSelect Value="@context.idCorrecion" class="inputForm selectTabla" ValueExpression="() => context.idCorrecion" TValue="int" ValueChanged="(value) => valorFCCambiado(value,context)">
                        @foreach (var factor in objetoCASA.Enumerados.FactoresCorreccionPorGrupo(@context.idTipoFactor))
                        {
                            <option value="@factor.idFactorCorreccion">@factor.Descripcion</option>
                        }
                    </InputSelect>
                </GridColumn>
            </GridColumns>
        </Grid>

        
    </div>

    <div class="col-md-6">
        <div class="d-flex justify-content-between mt-3">
            <div><b>Coeficientes correctores por Rendimiento</b></div>
        </div>
        <Grid TItem="CASA.CoeficientesCorrectores"
              Class="tablaCACOA table"
              Data="listadoFactoresRendimiento"
              AllowFiltering="false"
              PageSize="10"
              Height="100"
              PageSizeSelectorVisible="false"
              PageSizeSelectorItems="@(new int[] { 5, 10, 20, 50 })"
              Responsive="true"
              PaginationItemsTextFormat="{0} - {1} de {2} elementos">

            <GridColumns>
                <GridColumn TItem="CASA.CoeficientesCorrectores" HeaderTextAlignment="Alignment.Center" HeaderText="Factores de Rendimiento" PropertyName="Factores" Class="colorFilasIntro">
                    <div class="puntoInfo">
                        @if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion))
                        {
                            @UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion)
                        }
                        @context.Nombre
                    </div>
                  
                </GridColumn>
                <GridColumn TItem="CASA.CoeficientesCorrectores" HeaderText="" >
                    <InputSelect Value="@context.idCorrecion" class="inputForm selectTabla" ValueExpression="() => context.idCorrecion" TValue="int" ValueChanged="(value) => valorFRCambiado(value,context)">
                        @foreach (var factor in objetoCASA.Enumerados.FactoresCorreccionPorGrupo(@context.idTipoFactor))
                        {
                            <option value="@factor.idFactorCorreccion">@factor.Descripcion</option>
                        }
                    </InputSelect>
                </GridColumn>
            </GridColumns>
        </Grid>
    </div>
</div>


@code {
    [CascadingParameter]
    public TrabajoProfesional _Parent { get; set; }
    [Parameter]
    public CASA objetoCASA { get; set; } = new CASA();

    private bool desactivarSelects;

    public List<CASA.CoeficientesCorrectores> listadoFactoresComplejidad { get; set; } = new List<CASA.CoeficientesCorrectores>();
    public List<CASA.CoeficientesCorrectores> listadoFactoresRendimiento { get; set; } = new List<CASA.CoeficientesCorrectores>();

    private List<factorescorreccion> listFactoresComplejidad = new List<factorescorreccion>();
    private List<conveniocolectivo> listFactoresRendimiento = new List<conveniocolectivo>();

    private CASA.CoeficientesCorrectores itemSeleccionado = new CASA.CoeficientesCorrectores();

    private string tituloPopup = "";
    private Modal popupGestionDatos = default!;
    private Modal popupConfirmarBorrado = default!;

    private bool nuevoElemento;

    List<ToastMessage> mensajes = new List<ToastMessage>();

    protected override async Task OnInitializedAsync()
    {

        listadoFactoresComplejidad = objetoCASA.TrabajoProfesional.FactoresComplejidad;
        listadoFactoresRendimiento = objetoCASA.TrabajoProfesional.FactoresRendimiento;
    }

    private async Task GestionarDatos(string accion)
    {
        await InvokeAsync(StateHasChanged);
    }

    private async void valorFCCambiado(int e, CASA.CoeficientesCorrectores objeto)
    {
        objeto.idCorrecion = (int)e;
        objetoCASA.ActualizarFactorComplejidad(objeto);

        await InvokeAsync(StateHasChanged);
        _Parent.RefreshState();
    }

    private async void valorFRCambiado(int e, CASA.CoeficientesCorrectores objeto)
    {
        objeto.idCorrecion = (int)e;
        objetoCASA.ActualizarFactorRendimiento(objeto);

        await InvokeAsync(StateHasChanged);
        _Parent.RefreshState();
    }
}
