@using BlazorBootstrap @using System.Text.Json @using bdHerramientaCACOA.HerramientaURBAN @using bdHerramientaCACOA.db
@if (!string.IsNullOrEmpty(objetoLicitacionUrban.Enumerados.PuntosInformacion.FirstOrDefault(x => x.idPuntosInformacion == 59).Descripcion)) { @UtilidadesCASA.CreateTooltip(objetoLicitacionUrban.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 59).Descripcion) } Fases
@context.Denominacion
%
@if (totalPorcentaje != 100) {
Trabajo en misión parcial: @totalPorcentaje %
} else {
Total: @totalPorcentaje %
}
@code { [CascadingParameter] public HerramientaCASA.Components.Pages.LicitacionesURBAN _Parent { get; set; } [Parameter] public bdHerramientaCACOA.LicitacionesURBAN objetoLicitacionUrban { get; set; } = new bdHerramientaCACOA.LicitacionesURBAN(); private double totalPorcentaje = 0; public List listadoFases { get; set; } = new List(); private string tituloPopup = ""; private Modal popupGestionDatos = default!; private Modal popupConfirmarBorrado = default!; private CASA.FasesTrabajo itemSeleccionado = new CASA.FasesTrabajo(); List mensajes = new List(); protected override async Task OnInitializedAsync() { listadoFases = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.ToList(); totalPorcentaje = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); } private async Task OnRowClick(GridRowEventArgs objeto) { itemSeleccionado = objeto.Item; } private async void porcentajeCambiado(double e, URBAN.FasesURBAN objeto) { double porcentajeTotal = calcularPorcentaje(e, objeto); if (porcentajeTotal <= 100) { objeto.Porcentaje = (double)e; objetoLicitacionUrban.ActualizarFase(objeto); await InvokeAsync(StateHasChanged); _Parent.RefreshState(); } else { objeto.Porcentaje = 0; objetoLicitacionUrban.ActualizarFase(objeto); mensajes.Add(new ToastMessage { Type = ToastType.Danger, Message = $"La suma de los porcentajes no puede ser mayor de 100.", }); } totalPorcentaje = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); } private double calcularPorcentaje(double e, URBAN.FasesURBAN objeto) { double porcentajeTotal = 0; objeto.Porcentaje = e; int indice = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional .FindIndex(x => x.idFase == objeto.idFase); if (indice >= 0) { objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional[indice] = objeto; } porcentajeTotal = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); return porcentajeTotal; } private async void restablecerValores() { var lista = JsonSerializer.Deserialize>(JsonSerializer.Serialize(objetoLicitacionUrban.Enumerados.FasesTrabajo)); objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional = lista; listadoFases = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.ToList(); totalPorcentaje = objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); objetoLicitacionUrban.CalcularHorasTrabajoProfesional(); await InvokeAsync(StateHasChanged); _Parent.RefreshState(); } }