@inject NavigationManager Navigation
@layout ConfiguracionLayout
@rendermode InteractiveServer
@using BlazorBootstrap
@using System.Globalization
@using Microsoft.EntityFrameworkCore
@using bdHerramientaCACOA.db

<div>

    @if (totalProyectosTipo != 0)
    {

        <div class="col-12 text-end">
            <button @onclick="generarTablaUrban" class="btnBlue col-1 " style="background-color: #65b7c3 !important;"> <i class="fas fa-print pe-2"></i>Generar Excel</button>
        </div>

        <div class="mt-2" style="padding:50px;">
            <div class="mb-4">
                <label class="fw-bold">Total simulaciones licitación URBAN: <span>@totalProyectosTipo</span> </label>
            </div>
            <div class="row">

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Costes despacho:</label>
                    <label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() €</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">% fases:</label>
                    <label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Innovación:</label>
                    <label class="tituloLbl">@estadisticasTotales.innovacion.MilesYDecimales() %</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Horas trabajo:</label>
                    <label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Plazo presentación:</label>
                    <label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Coste de producción:</label>
                    <label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label>
                </div>

                <div class="col-2 formatoCampos pt-2">
                    <label class="tituloLbl">Precio trabajo:</label>
                    <label class="tituloLbl">@estadisticasTotales.precioTrabajo.MilesYDecimales() €</label>
                </div>
            </div>

        </div>
    }
    else
    {
        <div class="mt-5">
            <label class="tituloLbl">No hay datos entre esas fechas.</label>
        </div>
    }



@* 
    <Grid TItem="estadisticas"
          Class="tablaCACOA table"
          Data="ListadoLiciURBAN"
          AllowFiltering="false"
          PageSize="10"
          FixedHeader="true"
          Height="750"
          Unit="Unit.Px"
          EmptyText="No hay registros."
          PageSizeSelectorVisible="false"
          Responsive="true">
        <GridColumns>
            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes directos">
                <span>@context.costeDirecto</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" Class="text-end" HeaderTextAlignment="Alignment.Center" HeaderText="Total costes indirectos">
                <span>@context.costeIndirecto</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes Variables">
                <span>@context.costeVariable</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total coste hora despacho profesional">
                <span>@context.costeHoraDespachoProf</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total superficie">
                <span></span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total fases">
                <span>@context.totalFases</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas documentación">
                <span>@context.horasTPEDocumentacion</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas dirección de obra">
                <span>@context.horasTPEDireccionObra</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas trabajo profesional">
                <span>@context.horasTPE</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
                <span>@context.porcentajeExternalizacion</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total plazos">
                <span>@context.plazoPresentacion</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes de producción">
                <span>@context.costeProduccion</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total otros trabajos">
                <span>@context.totalOtrosTrabajos</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
                <span>@context.porcentajeExternalizacion</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje beneficio">
                <span>@context.porcentajeBeneficio</span>
            </GridColumn>

            <GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total número trabajadores">
                <span>@context.numeroTrabajadores</span>
            </GridColumn>
        </GridColumns>
    </Grid>
 *@

</div>

@code {

    [Parameter]
    public List<estadisticas> ListadoLiciURBAN { get; set; } = new List<estadisticas>();
    public EstadisticasUrbanVM estadisticasTotales = new EstadisticasUrbanVM();
    private int totalProyectosTipo = 0;


    [CascadingParameter]
    public ConfiguracionPages.EstadisticasConf _Parent { get; set; }

    public tsHerramientasCACOA bd;


    protected override async Task OnInitializedAsync()
    {
        bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
    }

    private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
    {
        estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo);
        estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo);
        estadisticasTotales.innovacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.innovacion), totalProyectosTipo);
        estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo);
        estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo);
        estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo);
        estadisticasTotales.precioTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioTrabajo), totalProyectosTipo);
    }

    protected override void OnParametersSet()
    {
        inicializarListado();
    }

    private void inicializarListado()
    {
        totalProyectosTipo = ListadoLiciURBAN.Count();

        hacerCalculos(ListadoLiciURBAN);
    }


    private async Task generarTablaUrban()
    {
        var bytes = UtilidadesCASA.GenerarExcelURBAN(bd, ListadoLiciURBAN, "Licitación URBAN");

        _Parent.generarExcel(bytes);
    }
}