Files
HerramientaCASA/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabajoProfURBAN/InstrumentosURBAN.razor

157 lines
5.4 KiB
Plaintext

@using BlazorBootstrap
@using System.Text.Json
@using Microsoft.AspNetCore.WebUtilities
@using bdHerramientaCACOA.HerramientaURBAN
@using bdHerramientaCACOA.db
@using static bdHerramientaCACOA.CASA
@inject NavigationManager Navigation
<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />
<div>
<div class="mt-3 mb-3 puntoInfo">
@if (!string.IsNullOrEmpty(objetoURBAN.Enumerados.PuntosInformacion.FirstOrDefault(x => x.idPuntosInformacion == 49).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoURBAN.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 49).Descripcion)
}
<b>Innovacion de los instrumentos</b></div>
<p class="mt-2">
@* @if (!nuevaRedaccion)
{ *@
<InputNumber TValue="double" Value="@objetoURBAN.TrabajoProfesional.valorInstrumentos"
ValueExpression="() => objetoURBAN.TrabajoProfesional.valorInstrumentos"
ValueChanged="(value) => ValorModificado(value)"
step="any"
class="inputForm text-end" /> <span>%</span>
@* }
else
{
<label>100 %</label>
} *@
</p>
@foreach (var enu in listadoInstrumentos)
{
<div class="form-check" style="gap:10px;">
<input name="instrumentos" checked="@enu.Seleccionado" type="radio" id="@enu.idEnumeracion" class="form-check-input" value="@enu.ValorNumerico1" @onchange="() => Seleccionar(enu)">
<label class="form-check-label" for="@enu.idEnumeracion">@enu.Descripcion</label>
</div>
}
<table class="tablaAlter mt-4" style="width: 100%;">
<tr>
<td class=" TotalesTabla" style="width: 70%;">Estimación de horas necesarias: </td>
<td class=" TotalesTabla tdAlineadoDerecha">@objetoURBAN.TrabajoProfesional.horasTrabProfesionalEstimacion.MilesYDecimales() h</td>
</tr>
<tr>
<td class="TotalesTabla tdAlter" style="width:50%;">Horas del trabajo profesional Urbanismo: </td>
<td class="TotalesTabla tdAlineadoDerecha">
<div class=" d-flex">
<InputNumber TValue="double" @onblur="_Parent.CalcularWea" @bind-Value="@objetoURBAN.TrabajoProfesional.horasTrabProfesional" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
</td>
</tr>
<tr>
<td class="TotalesTabla" style="width:50%;"></td>
<td class="TotalesTabla tdAlineadoDerecha">
<div class="text-end">
<span>@UtilidadesCASA.pasarHorasASemana(objetoURBAN.TrabajoProfesional.horasTrabProfesional).MilesYDecimales() semanas</span>
</div>
</td>
</tr>
</table>
</div>
<div style="position:relative;margin-bottom: 15px;">
<div style="justify-content: end; display: flex;">
</div>
</div>
@code {
[CascadingParameter]
public TrabProfUrban _Parent { get; set; }
[Parameter]
public URBAN objetoURBAN { get; set; } = new URBAN();
private bool nuevaRedaccion = false;
private enumeracionesCASA itemSeleccinado;
public List<CASA.enumeracionesCASA> listadoInstrumentos { get; set; } = new List<CASA.enumeracionesCASA>();
private CASA.FasesTrabajo itemSeleccionado = new CASA.FasesTrabajo();
List<ToastMessage> mensajes = new List<ToastMessage>();
[Parameter]
public string? idSimulador { get; set; } = "";
protected override async Task OnInitializedAsync()
{
var url = Navigation.ToAbsoluteUri(Navigation.Uri);
if (QueryHelpers.ParseQuery(url.Query).TryGetValue("idSimulador", out var clValue))
{
idSimulador = clValue;
}
listadoInstrumentos = objetoURBAN.Enumerados.ListaInstrumentos.ToList();
if (string.IsNullOrEmpty(idSimulador))
{
Seleccionar(listadoInstrumentos.First());
}
else
{
Seleccionar(listadoInstrumentos.FirstOrDefault(x => x.Seleccionado == true));
}
}
private async void ValorModificado(double valor)
{
objetoURBAN.TrabajoProfesional.valorInstrumentos = Convert.ToDouble(valor);
objetoURBAN.TrabajoProfesional.idInstrumento = itemSeleccinado.idEnumeracion;
itemSeleccinado.ValorNumerico1 = Convert.ToDouble(valor);
objetoURBAN.CalcularHorasTrabajoProfesional();
await InvokeAsync(StateHasChanged);
_Parent.RefreshState();
}
private async void Seleccionar(enumeracionesCASA item)
{
if (item != null)
{
if (item.Codigo.Contains("NUEVARED"))
{
nuevaRedaccion = true;
}
else
{
nuevaRedaccion = false;
}
itemSeleccinado = item;
itemSeleccinado.Seleccionado = true;
foreach (var intru in listadoInstrumentos.Where(x => x.idEnumeracion != item.idEnumeracion))
{
intru.Seleccionado = false;
}
objetoURBAN.TrabajoProfesional.valorInstrumentos = Convert.ToDouble(item.ValorNumerico1);
objetoURBAN.TrabajoProfesional.idInstrumento = item.idEnumeracion;
objetoURBAN.CalcularHorasTrabajoProfesional();
await InvokeAsync(StateHasChanged);
_Parent.RefreshState();
}
}
}