@using System.Globalization
@using bdHerramientaCACOA.HerramientaURBAN
<div id="DespachoURBANImprimir" class="d-flex flex-column align-items-center pagePrincipal">
    @* DESPACHO URBAN*@
    <div class="col-12 mx-auto mb-5">
        @* ENCABEZADO DE LA PAGINA *@
        <div class="EncabezadoImprimir">
            <p>
                Documento impreso del módulo de Servicios de Arquitectura Edificación con los datos y
                estimación de Costes de Producción resultado de la simulación.
            </p>

            <div class="d-flex flex-column mt-3">
                <label>Simulación:   <span class="NombreSimulacionImprimir">@objetoURBAN.NombreSimulacion</span></label>
                <label>Fecha de creación:   <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
            </div>
        </div>

        <div class="col-8 mx-auto" style="align-items: flex-end;">
            <div class="TituloTablaImprimir">
                <b>Coste hora Despacho Profesional</b>
            </div>

            <div class="table-responsive espacioTablas">

                <table class="TablaImprimir mb-0" style="width:100%;">

                    <thead>
                        <tr>
                            <th>Tipo de costes</th>
                            <th>Coste/hora</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="colorB w4">Costes directos</td>
                            <td class="text-end">@objetoURBAN.DespachoProfesional.CostesDirectos.MilesYDecimales() €/hora</td>
                        </tr>

                        <tr>
                            <td class="colorB ">Costes indirectos</td>
                            <td class="text-end">@objetoURBAN.DespachoProfesional.TasaCostesIndirectos.MilesYDecimales() €/hora</td>
                        </tr>
                        <tr>
                            <td class="colorB ">Costes variables</td>
                            <td class="text-end">@objetoURBAN.CostesProduccion.CostesVariables.MilesYDecimales() €/hora</td>
                        </tr>
                    </tbody>
                    <tfoot>
                        <tr>
                            <td colspan="2" class="text-end fw-bold colorC TotalesTabla">
                                <div style="height:28px; align-content:center;">
                                    Total Coste hora Despacho Profesional: <span>  @objetoURBAN.CostesProduccion.TotalCostes.MilesYDecimales() €/hora</span>
                                </div>
                            </td>
                        </tr>
                    </tfoot>
                </table>
            </div>

        </div>
        <div class="col-8 mx-auto" style="margin-top:50px;">

            <div class="TituloTablaImprimir" >
                <b>Coste hora Externalización</b>
            </div>
            <div class="table-responsive espacioTablas">
                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Externalización</th>
                            <th class="colorB fw-bold">Porcentaje</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="colorFilasIntro  w4">Incremento por externalización</td>
                            <td class="text-end">
                                <span>
                                    @objetoURBAN.CostesProduccion.CoeficienteCostesExternalizacion %
                                </span>
                            </td>
                        </tr>
                    </tbody>
                    <tfoot>
                        <tr>
                            <td colspan="2" class="text-end fw-bold colorC TotalesTabla">
                                Coste hora Externalización: <span>  @objetoURBAN.CostesProduccion.CosteHoraExternalizacion.MilesYDecimales() €/hora</span>
                            </td>
                        </tr>
                    </tfoot>
                </table>
            </div>

        </div>
    </div>

    @* TRABAJAO PROFESIONAL *@
    <div class="@separacionTabla">
        <div class="col-12 d-flex justify-content-center" style="gap:20px;">
            <div class="formatoCampos pt-2" style="font-size:9pt;">
                <label class="tituloLbl">Tipo de Documento:</label>
                @if (objetoURBAN.TrabajoProfesional.idTipoDocumentacion != 0)
                {
                    <label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoURBAN.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoURBAN.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
                }
                else
                {
                <label>No Seleccionado</label>    
                }
            </div>
            <div class="formatoCampos pt-2" style="font-size:9pt;">
                <label class="tituloLbl">Documento:</label>
                @if (objetoURBAN.TrabajoProfesional.idTipoDocumentacion != 0)
                {
                    <label>@objetoURBAN.Enumerados.ProyectosPorTipo(objetoURBAN.TrabajoProfesional.idTipoDocumentacion).First(x => x.idtipoproyectos == objetoURBAN.TrabajoProfesional.idTipoProyecto).Descripcion</label>
                }
                else
                {
                    <label>No Seleccionado</label>
                }
            </div>
        </div>
        @* TABLAS DE DATOS MINIMOS Y OPCIONALES *@
        <div class="col-11 mx-auto" style="margin-top:200px;">
            @* TABLA DE DATOS MINIMOS *@

            <div class="TituloTablaImprimir" style="margin-top:50px;">
                <b>Documentación Mínima:</b>
            </div>
            <div class="table-responsive espacioTablas">
                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Descripción</th>
                        </tr>
                    </thead>
                    <tbody>
                        @if (objetoURBAN.TrabajoProfesional.DocumentacionMinima.Count > 0)
                        {
                            @foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionMinima)
                            {
                                <tr>
                                    <td class="colorB w4">@item.Descripcion</td>
                                </tr>
                            }

                        }
                        else
                        {
                            <tr>
                                <td class="colorB w4 text-center">No hay registros</td>
                            </tr>
                        }
                    </tbody>
                </table>
            </div>

            @* TABLA DE DATOS OPCIONALES *@

            <div class="TituloTablaImprimir" style="margin-top:50px;">
                <b>Documentación Opcional:</b>
            </div>
            <div class="table-responsive espacioTablas">
                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Descripción</th>
                            <th class="colorB fw-bold">Añadida</th>
                        </tr>
                    </thead>
                    <tbody>
                        @if (objetoURBAN.TrabajoProfesional.DocumentacionOpcional.Count != 0)
                        {

                            @foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionOpcional)
                            {
                                <tr>
                                    <td class="colorB w4">@item.Descripcion</td>
                                    <td class="colorB w4 text-end">

                                        @if (@item.Checkeada)
                                        {
                                            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-square" viewBox="0 0 16 16">
                                                <path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z" />
                                                <path d="M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425z" />
                                            </svg>
                                        }
                                        else
                                        {
                                            <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-square" viewBox="0 0 16 16">
                                                <path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z" />
                                            </svg>
                                        }

                                    </td>
                                </tr>
                            }
                        }
                        else
                        {
                            <tr>
                                <td colspan="2" class="colorB text-center">No hay registros</td>
                            </tr>
                        }
                    </tbody>
                </table>
                </div>
        </div>
        @* TABLA DE DATOS NECESARIOS *@
        <div class="col-11 mx-auto">
            <div class="TituloTablaImprimir" style="margin-top:50px;">
                <b>Datos Necesarios:</b>
            </div>
            <div class="table-responsive espacioTablas">
                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Descripción</th>
                            <th class="colorB fw-bold">Valor</th>
                        </tr>
                    </thead>
                    <tbody>
                        @if (objetoURBAN.TrabajoProfesional.DatosNecesarios.Count != 0)
                        {
                            @foreach (var item in objetoURBAN.TrabajoProfesional.DatosNecesarios)
                            {
                                <tr>
                                    <td class="colorB w4">@item.Descripcion</td>
                                    <td class="colorB w4 text-end">@item.ValorNecesario</td>
                                </tr>
                            }
                        }
                        else
                        {
                            <tr>
                                <td colspan="2" class="colorB text-center">No hay registros</td>
                            </tr>
                        }

                    </tbody>
                </table>
            </div>
        </div>

        @* TABLA FASES *@
        <div class="col-11 mx-auto">
            <div class="TituloTablaImprimir" style=" margin-top:50px;">
                <b>Fases:</b>
            </div>
            <div class="table-responsive espacioTablas">
                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Descripción</th>
                            <th class="colorB fw-bold"></th>
                        </tr>
                    </thead>
                    <tbody>
                        @foreach (var item in objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional)
                        {
                            <tr>
                                <td class="colorB w4">@item.Denominacion</td>
                                <td class="colorB w4 text-end">@item.Porcentaje %</td>
                            </tr>
                        }
                    </tbody>

                    <tfoot>
                        <tr>
                            <td colspan="2" class="text-end fw-bold colorC TotalesTabla">

                                <div class="d-flex justify-content-end">
                                    <div style="align-self: center;">
                                        @if (objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) != 100)
                                        {
                                            <div>
                                                Trabajo en misión parcial: <span> @objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
                                            </div>
                                        }
                                        else
                                        {
                                            <div>
                                                Total: <span> @objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
                                            </div>
                                        }
                                    </div>
                                </div>

                            </td>
                        </tr>
                    </tfoot>
                </table>
            </div>
        </div>

    </div>

    @* INNOVACIÓN INSTRUMENTOS*@
    <div class="col-11 mx-auto mb-5">
        <div>
            <div class="mt-3 mb-3 TituloTablaImprimir"><b>Innovacion de los instrumentos</b></div>
            <p style="font-size:9pt;" class="col-6">
                <label>@objetoURBAN.TrabajoProfesional.valorInstrumentos %</label>
            </p>

            @foreach (var enu in objetoURBAN.Enumerados.ListaInstrumentos)
            {
                <div class="form-check" style="gap:10px; font-size:9pt;">
                    @if (enu.Seleccionado)
                    {
                        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-circle-fill" viewBox="0 0 16 16">
                            <circle cx="8" cy="8" r="8" />
                        </svg>
                    }
                    else
                    {
                        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-circle" viewBox="0 0 16 16">
                            <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
                        </svg>

                    }
                    <label style="margin-left:10px;" class="form-check-label" for="@enu.idEnumeracion">@enu.Descripcion</label>
                </div>
            }
        
            <div style="font-size:9pt;" class="fw-bold">
                <label>HORAS TRABAJO PROFESIONAL URBANISMO:  <span>@objetoURBAN.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h</span></label>
            </div>
        </div>


    </div>

    @* PLAZOS Y HORAS *@
    <div class="col-11 mx-auto mb-5" >
        <div class="row justify-content-center align-content-center align-items-center">
           
            <div class="col-9 mb-5 ">
                <div class="TituloTablaImprimir" >
                    <b>Trabajo profesional</b>
                </div>

                <div class="col-9 mb-5 align-items-center">
                    @* PLAZO DE PRESENTACION *@
                    <div style="font-size:9pt;" class="fw-bold">
                        <label>Plazo de presentación de la documentación:  <span>@objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos meses</span></label>
                    </div>
                </div>

                @* HORAS TRABAJO *@

                <table class="TablaImprimir mb-0" style="width:100%;">
                    <thead>
                        <tr>
                            <th class="colorB fw-bold">Trabajos</th>
                            <th class="colorB fw-bold">Horas</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="colorB ">Horas en despacho profesional</td>
                            <td class="text-end">@objetoURBAN.CostesProduccion.HorasEnPlazo.MilesYDecimales() h</td>
                        </tr>

                        <tr>
                            <td class="colorB ">Horas mediante externalización</td>
                            <td class="text-end">@objetoURBAN.CostesProduccion.NumHorasMinimoExt.MilesYDecimales() h</td>
                        </tr>
                    </tbody>
                    <tfoot>
                        <tr>
                            <td colspan="2" class="text-end colorC fw-bold w4 TotalesTabla">
                                Total horas del trabajo profesional:  <span>@((objetoURBAN.CostesProduccion.HorasEnPlazo + objetoURBAN.CostesProduccion.NumHorasMinimoExt).MilesYDecimales()) h </span>
                            </td>
                        </tr>
                    </tfoot>
                </table>
            </div>
        </div>
        
    </div>

    @* COSTE DE PRODUCCIÓN *@
    <div class="col-12 mx-auto mb-5">
        <div class="col-8 mx-auto">
            <div class="TituloTablaImprimir" >
                <b>Costes Asociados a los Servicios de Arquitectura</b>
            </div>
            <table class="TablaImprimir mb-0" style="width:100%;">

                <thead>
                    <tr>
                        <th class="colorB fw-bold">Concepto</th>
                        <th class="colorB fw-bold text-end"></th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class=" TotalesTabla  ">COSTES  DE PRODUCCIÓN DEL TRABAJO PROFESIONAL</td>
                        <td class="  TotalesTabla text-end"><span> @objetoURBAN.CostesProduccion.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
                    </tr>

                    <tr>
                        <td class="TotalesTabla colorFilasIntro ">Beneficio <span style="font-size:7pt;" > (antes de impuestos) </span> </td>
                        <td class="TotalesTabla text-end">
                            <div class="text-end align-items-end" style="gap:3px;">
                                <label>@objetoURBAN.CostesProduccion.Beneficio</label> %
                            </div>
                        </td>
                    </tr>
                </tbody>
                <tfoot>
                    <tr>
                        <td colspan="2" class="TotalesTabla text-end fw-bold">
                            Precio del trabajo profesional:  <span>@objetoURBAN.CostesProduccion.PrecioTrabajoProfesional.MilesYDecimales() € </span>
                        </td>
                    </tr>
                </tfoot>
            </table>
        </div>
        </div>


    <div class="FooterImprimir">

        <p>
            Los resultados de esta simulación son una mera estimación del tiempo necesario en la realización del trabajo
            profesional, que siempre estará supeditado a su determinación concreta por parte del autor de este estudio económico,
            teniendo presente factores propios de eficiencia como la estandarización de procesos, eficiencia en el trabajo,
            aprovechamiento de estudios y trabajos anteriores y mejoras en la productividad de su propio despacho profesional.
        </p>
        <p>
            El presente documento no tiene validez contractual. Los datos obtenidos son meramente estimativos y generados por la
            aplicación en función de los datos que posee y que el usuario ha introducido. En nigún caso tiene por qué corresponder
            con la realidad ni el CACOA garantiza la veracidad de los mismos, pro lo que no es responsable de su veracidad en sí ni
            sobre terceros.
        </p>

    </div>
</div>



@code {
    [Parameter]
    public URBAN objetoURBAN { get; set; } = new URBAN();

    public tsHerramientasCACOA bd;
    string separacionTabla = "col-12 mx-auto mb-5";

    protected override async Task OnInitializedAsync()
    {
        bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
        if (objetoURBAN.TrabajoProfesional.DocumentacionMinima.Count == 0)
        {
            separacionTabla = "col-12 mx-auto mb-4";
        }
    }
    public void RefreshState()
    {
        this.StateHasChanged();
    }
}
