@using System.Globalization
@using bdHerramientaCACOA.HerramientaURBAN
<div class="d-flex flex-column">
    <div class="d-flex justify-content-center">

        <div class="col-md-6 row">
            <table class="table tablaCACOA tablaCACOA2 mb-0">
                <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="@objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos" ValueExpression="() => objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos" ValueChanged="(value) => PlazoPresentacionDocumentosCambiado(value)"></InputNumber> meses *@
                            <InputNumber TValue="double" @bind-Value="objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos"
                                         step="any"
                                         @oninput="e =>  controlarMeses(e.Value?.ToString())"
                                         class="inputForm formatoMoneda inputTabla text-end" /> meses
                        </div>
                    </td>
                </tr>
            </table>

        </div>
    </div>

    <div class="d-flex mt-3 justify-content-center">
        <div class="col-md-6 row">
            <div style="height: 24px;">
                <b>Trabajo profesional</b>
            </div>
            <table class="table tablaCACOA tablaCACOA2 mb-0">
                <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>

                  @*   <tr>
                        <td class="colorB fw-bold">Horas de producción en este plazo</td>
                        <td class="text-end">@objetoURBAN.CostesProduccion.HorasEnPlazo.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 class="col-md-6">
            <p>Horas Trabajo profesional: @objetoURBAN.CostesProduccion.HorasTrabajoProfesional </p>
            <p>Horas Anuales de produccion del desapacho profesional: @objetoURBAN.DespachoProfesional.HorasTotalesProduccion</p>
            <p>Horas de produccion del despacho en ese plazo: @objetoURBAN.CostesProduccion.HorasEnPlazo</p>
            <p>nº horas mínimo de externalizacion: @objetoURBAN.CostesProduccion.NumHorasMinimoExt</p>
        </div> *@



    </div>
</div>

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

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

    protected override async Task OnInitializedAsync()
    {

    }
    private async void PlazoPresentacionDocumentosCambiado(double e)
    {
        objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos = e;

        objetoURBAN.CalcularCostesProduccion();


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

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

        PlazoPresentacionDocumentosCambiado(objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos);
    }
}
