@page "/DespachoProfesional"
@using HerramientaCASA.Components.Pages.Comun
@using HerramientaCASA.Components.Pages.HerramientaCASATabs.DespachoProfesionalComponents
@using HerramientaCASA.Model
@using Microsoft.AspNetCore.WebUtilities
@using Microsoft.EntityFrameworkCore
@using bdHerramientaCACOA
@using bdHerramientaCACOA.db
@inject NavigationManager Navigation
@inject UserState UserState


<div>
    <CascadingValue Value="this">
        <ClonarDespacho datosDespachoClonado="datosClonar"></ClonarDespacho>
    </CascadingValue>
</div>


<div  class="container-fluid m-0 p-0">
    <div class="row">
        <div class="col-md-8 d-flex flex-column">
            <div>
            <CascadingValue Value="this">
                <TrabajadorGrid objetoCASA="objetoCASA"></TrabajadorGrid>
            </CascadingValue>
            </div>
            <div class="row mt-auto">
                <div class="col-md-12 d-flex justify-content-end">
                    <table class="tablaAlter">
                        <tr>
                            <td class="tdAlter TotalesTabla" style="width:320px">COSTE/HORA DESPACHO PROFESIONAL: </td>
                            <td class="tdAlter TotalesTabla tdAlineadoDerecha" style="font-weight:bold;">
                                @objetoCASA.DespachoProfesional.CosteHoraDespachoProfesional.MilesYDecimales() €/h
                            </td>
                        </tr>
                        <tr>
                            <td class="TotalesTabla">Costes directos </td>
                            <td class="tdAlineadoDerecha TotalesTabla">
                                @objetoCASA.DespachoProfesional.CostesDirectos.MilesYDecimales() €/h
                            </td>
                        </tr>
                        <tr>
                            <td class="TotalesTabla">Costes indirectos</td>
                            <td class="tdAlineadoDerecha TotalesTabla">
                                @objetoCASA.DespachoProfesional.TasaCostesIndirectos.MilesYDecimales() €/h
                            </td>
                        </tr>
                    </table>
                </div>
            </div>

        </div>
        <div class="col-md-4">
                        <CascadingValue Value="this">
			<CosteIndirectoGrid objetoCASA="objetoCASA"></CosteIndirectoGrid>
            </CascadingValue>
        </div>
    </div>
</div>

@code {
    [Parameter]
    public bdHerramientaCACOA.CASA objetoCASA { get; set; }

    [Parameter]
    public string? idSimulador { get; set; } = "";


    private int idFicheroObtenido = 0;

    public tsHerramientasCACOA bd;

    public ClonarDespachoVM datosClonar = new ClonarDespachoVM();

    private string htmlContent;

    protected override async Task OnInitializedAsync()
    {
        var url = Navigation.ToAbsoluteUri(Navigation.Uri);

        bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);


        if (QueryHelpers.ParseQuery(url.Query).TryGetValue("idSimulador", out var clValue))
        {
            idSimulador = clValue;
        }


        string idDesencriptado = tsUtilidades.crypt.FEncS(idSimulador,
                           "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
                           "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
                           -875421649);

        datosClonar.despachoProf = objetoCASA.DespachoProfesional;
        datosClonar.idSimulacion = !string.IsNullOrEmpty(idDesencriptado) ? int.Parse(idDesencriptado) : 0;
    }

    public void RefreshState()
    {
        this.StateHasChanged();
    }

    public void hacerCalculos()
    {
        objetoCASA.CalcularFinales();
        StateHasChanged();
    }


 



    // private void clonarDespacho()
    // {
    //     var byteFichero = bd.ficheros.First(x=> x.idFichero == idFicheroObtenido).Fichero;

    //     string CASAJson = System.Text.Encoding.UTF8.GetString(byteFichero);

    //     var casaCopiada = System.Text.Json.JsonSerializer.Deserialize<CASA>(CASAJson);


    //     objetoCASA.DespachoProfesional = casaCopiada.DespachoProfesional;
    //     objetoCASA.CalcularFinales();

    //     StateHasChanged();
    //     // Navigation.NavigateTo("/HerramientaCASAS?idClonado=" + tsUtilidades.crypt.FEncS(idFicheroObtenido.ToString(), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", 875421649), true);
    // }
}

