Files
HerramientaCASA/HerramientaCASA/Components/Pages/HerramientaCASATabs/TrabajoProfesional.razor
2025-07-25 12:56:07 +02:00

135 lines
4.7 KiB
Plaintext

@page "/TrabajoProfesional"
@rendermode InteractiveServer
@inject NavigationManager Navigation
@using HerramientaCASA.Components.Pages.HerramientaCASATabs.TrabajoProfesionalComponents
@using Microsoft.AspNetCore.WebUtilities
<div class="row p-0 m-0">
<div class="col-md-12 d-flex" style="gap: 40px;">
<RadioInput style="margin-right: 10px;" Label="Cálculo por superficie y uso" Value="modificarTabla" ValueExpression="() => modificarTabla" ValueChanged="(value) => modificarTablaChanged(value)" />
<RadioInput style="margin-right: 10px;" Label="Cálculo por tiempo" Value="modificarHoras" ValueExpression="() => modificarHoras" ValueChanged="(value) => modificarHorasChanged(value)" />
</div>
@if (modificarTabla)
{
<div class="col-md-12 mt-3 mb-5">
<CascadingValue Value="this">
<UsosTipologiaGrid objetoCASA="objetoCASA"></UsosTipologiaGrid>
</CascadingValue>
</div>
<div class="col-md-3">
<CascadingValue Value="this">
<FasesTrabajoProfesionalGrid objetoCASA="objetoCASA"></FasesTrabajoProfesionalGrid>
</CascadingValue>
<CascadingValue Value="this">
<TablaHorasGrid objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue>
</div>
<div class="col-md-9">
<div>
<CascadingValue Value="this">
<CoeficientesCorrectoresGrid objetoCASA="objetoCASA"></CoeficientesCorrectoresGrid>
</CascadingValue>
@* <CascadingValue Value="this">
<TablaHorasGrid objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue> *@
</div>
</div>
}
@if (modificarHoras)
{
<div class="col-md-3">
<CascadingValue Value="this">
<FasesTrabajoProfesionalGrid objetoCASA="objetoCASA"></FasesTrabajoProfesionalGrid>
</CascadingValue>
<CascadingValue Value="this">
<TablaHorasGrid objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue>
</div>
}
</div>
@code {
[Parameter]
public bdHerramientaCACOA.CASA objetoCASA { get; set; } = new CASA();
public bool modificarTabla = true;
public bool modificarHoras = false;
public tsHerramientasCACOA bd;
public double horasTPEOriginal = 0;
public double ultimaHoraDocumentacion = 0;
public double ultimaHoraObra = 0;
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
modificarTabla = objetoCASA.TrabajoProfesional.EsPorUsos;
if (!modificarTabla)
{
modificarHorasChanged(true);
}
}
public void RefreshState()
{
this.StateHasChanged();
}
public async void calcularModificarHora()
{
ultimaHoraDocumentacion = objetoCASA.TrabajoProfesional.HorasTPEDocumentacion;
ultimaHoraObra = objetoCASA.TrabajoProfesional.HorasTPEDireccion;
objetoCASA.CalcularHorasTPEManual(objetoCASA.TrabajoProfesional.HorasTPEDocumentacion, objetoCASA.TrabajoProfesional.HorasTPEDireccion);
horasTPEOriginal = objetoCASA.TrabajoProfesional.HorasTPE;
RefreshState();
}
public void restablecerHoras()
{
objetoCASA.TrabajoProfesional.HorasTPEDocumentacion= ultimaHoraDocumentacion;
objetoCASA.TrabajoProfesional.HorasTPEDireccion = ultimaHoraObra;
objetoCASA.CalcularHorasTPEManual(objetoCASA.TrabajoProfesional.HorasTPEDocumentacion, objetoCASA.TrabajoProfesional.HorasTPEDireccion);
horasTPEOriginal = objetoCASA.TrabajoProfesional.HorasTPE;
RefreshState();
}
private async void modificarTablaChanged(bool res)
{
objetoCASA.TrabajoProfesional.HorasTPE = 0;
objetoCASA.TrabajoProfesional.HorasTPEDocumentacion = 0;
objetoCASA.TrabajoProfesional.HorasTPEDireccion = 0;
if (objetoCASA.TrabajoProfesional.Usos.ToList().Count() != 0)
{
objetoCASA.CalcularHorasTPE();
}
modificarTabla = res;
modificarHoras = !res;
objetoCASA.TrabajoProfesional.EsPorUsos = true;
await InvokeAsync(StateHasChanged);
}
private async void modificarHorasChanged(bool res)
{
horasTPEOriginal = objetoCASA.TrabajoProfesional.HorasTPE;
ultimaHoraDocumentacion = objetoCASA.TrabajoProfesional.HorasTPEDocumentacion;
ultimaHoraObra = objetoCASA.TrabajoProfesional.HorasTPEDireccion;
modificarHoras = res;
modificarTabla = !res;
objetoCASA.TrabajoProfesional.EsPorUsos = false;
await InvokeAsync(StateHasChanged);
}
}