@using System.Globalization
<div class="row">

    <div class="mt-3">
        <div style="height: 24px;">
            <b>Costes Asociados a los Servicios de Arquitectura</b>
        </div>
        <table class="table tablaCACOA tablaCACOA2 mb-0">

              <thead>
                    <tr>
                    <th class="colorB fw-bold">Concepto</th>
                        <th class="colorB fw-bold text-end"></th>
                    </tr>
                </thead>
                <tbody>
            <tr>
                    <td class="colorFilasIntro fw-bold w4">Plazo de presentación de la documentación:</td>
                <td class="text-end">
                    <div class="d-flex" style="gap:3px;">
                        @* <InputNumber TValue="int" Locale="es-ES" Min="0" class="inputForm formatoMoneda inputTabla" Value="@objetoLicitaciones.PlazoPresentacionDocumentos" ValueExpression="() => objetoLicitaciones.PlazoPresentacionDocumentos" ValueChanged="(value) => PlazoPresentacionDocumentosCambiado(value)"></InputNumber> meses *@
                            <InputNumber TValue="double" @bind-Value="objetoLicitaciones.PlazoPresentacionDocumentos"
                                         step="any"
                                         @oninput="e =>  controlarMeses(e.Value?.ToString())"
                                         class="inputForm formatoMoneda inputTabla text-end" /> meses
                    </div>
                </td>
            </tr>
       
                <tr>
                    <td class="colorB fw-bold w4">Coste hora de producción</td>
                    <td class="text-end"><span> @objetoLicitaciones.costeHoraProduccion.MilesYDecimales() €</span></td>
                </tr>

                <tr>
                    <td class="colorB fw-bold w4">Horas Trabajo profesional</td>
                    <td class="text-end"><span> @objetoLicitaciones.horasProduccion.MilesYDecimales() €</span></td>
                </tr>

                <tr>
                    <td class="colorB fw-bold w4">Coste de producción del Trabajo Profesional</td>
                    <td class="text-end"><span> @objetoLicitaciones.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
                </tr>

            <tr>
                    <td class="colorB fw-bold w4">
                        G.G. + B.I. <br />
                        <span class="fw-normal" style="font-size:10px;">(40/19 Junta Consultiva de Contratación Pública del Estado)</span>
                    </td>
                <td class="text-end" style="align-content:center;">
                    <div class="d-flex" style="justify-content: end; gap:3px;">
                        @objetoLicitaciones.Beneficio %
                    </div>
                </td>
            </tr>

                <tr>
                    <td class="colorB fw-bold w4">COSTE DEL TRABAJO PROFESIONAL</td>
                    <td class="text-end"><span> @objetoLicitaciones.PrecioTrabProf.MilesYDecimales() €</span></td>
                </tr>

            </tbody>
            <tfoot>
                <tr>
                    <td colspan="2" class="text-end fw-bold" style="background: #ffc107;">
                        COSTES DE PRODUCCIÓN DEL TRABAJO PROFESIONAL: <span>@objetoLicitaciones.PrecioTrabProf.MilesYDecimales() €</span>
                    </td>
                </tr>
            </tfoot>
        </table>

    </div>

</div>


@code {
    [Parameter]
    public LICITACIONES objetoLicitaciones { get; set; } = new LICITACIONES();

    List<CASA.OtrosTrabajos> listOtrosTrabajos = new List<CASA.OtrosTrabajos>();

    [CascadingParameter]
    public Licitaciones _Parent { get; set; }

    protected override async Task OnInitializedAsync()
    {
        listOtrosTrabajos = objetoLicitaciones.OtrosTrabajos.ToList();
    }

    private async void PlazoPresentacionDocumentosCambiado(double e)
    {
        objetoLicitaciones.PlazoPresentacionDocumentos = e;
        objetoLicitaciones.CalcularHorasSuperficie();
        objetoLicitaciones.CalcularCostesProduccion();

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

    private void controlarMeses(string meses)
    {

        if (double.TryParse(meses, out var valor))
        {
            string parseado = meses.ToString().Replace(",", ".");
            objetoLicitaciones.PlazoPresentacionDocumentos = double.Parse(parseado, CultureInfo.InvariantCulture);
        }

        PlazoPresentacionDocumentosCambiado(objetoLicitaciones.PlazoPresentacionDocumentos);
    }
}
