acabado la parte de configuracion

This commit is contained in:
2025-09-17 14:31:40 +02:00
parent d80d2e2dc8
commit c9d929c57d
5 changed files with 386 additions and 465 deletions

View File

@@ -16,7 +16,7 @@
<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" /> <Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />
<div class="row" style="justify-content:space-between"> <div class="row container-fluid mt-4" style="justify-content:space-between">
<div class="form-group mt-4 col-6"> <div class="form-group mt-4 col-6">
<label>Fecha inicio:</label> <label>Fecha inicio:</label>
<InputDate TValue="DateTime?" <InputDate TValue="DateTime?"
@@ -32,6 +32,8 @@
</div> </div>
<button @onclick="generarExcel" class="btnBlue col-1 " style="background-color: #65b7c3 !important;"> <i class="fas fa-print pe-2"></i>Generar Excel</button>
<div class="mt-2"> <div class="mt-2">
@if (!string.IsNullOrEmpty(mensajeError)) @if (!string.IsNullOrEmpty(mensajeError))
@@ -42,7 +44,6 @@
} }
</div> </div>
<button @onclick="generarExcel" class="btnBlue" style="background-color: #65b7c3 !important;"> <i class="fas fa-print pe-2"></i>Generar Excel</button>
</div> </div>
@@ -54,7 +55,7 @@
<Tab Title="Estadisticas Herramienta CASA" Active> <Tab Title="Estadisticas Herramienta CASA" Active>
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraCASATab></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraCASATab> <HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraCASATab ListadoHerraCASA="@listadoHerramientaEstadistica.Where(x=> x.idSimulacionNavigation.idTipoSimulacion == 31).ToList()"></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraCASATab>
</div> </div>
</Content> </Content>
</Tab> </Tab>
@@ -62,7 +63,7 @@
<Tab Title="Estadisticas Licitación CASA"> <Tab Title="Estadisticas Licitación CASA">
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciCASATab></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciCASATab> <HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciCASATab ListadoLiciCASA="@listadoHerramientaEstadistica.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 32).ToList()"></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciCASATab>
</div> </div>
</Content> </Content>
</Tab> </Tab>
@@ -70,7 +71,15 @@
<Tab Title="Estadisticas Herramienta URBAN"> <Tab Title="Estadisticas Herramienta URBAN">
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraURBANTab></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraURBANTab> <HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraURBANTab ListadoHerraURBAN="@listadoHerramientaEstadisticaUrban.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 34).ToList()"></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraURBANTab>
</div>
</Content>
</Tab>
<Tab Title="Estadisticas Licitación URBAN">
<Content>
<div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciURBANTab ListadoLiciURBAN="@listadoHerramientaEstadisticaUrban.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 35).ToList()"></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciURBANTab>
</div> </div>
</Content> </Content>
</Tab> </Tab>

View File

@@ -16,78 +16,110 @@
<label class="fw-bold">Total simulaciones herramienta CASA: <span>@totalProyectosTipo</span> </label> <label class="fw-bold">Total simulaciones herramienta CASA: <span>@totalProyectosTipo</span> </label>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes directos:</label> <label class="tituloLbl">Nº total trabajadores:</label>
<label class="tituloLbl">@estadisticasTotales.numeroTrabajadores.MilesYDecimales()</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Coste anual total:</label>
<label class="tituloLbl">@estadisticasTotales.costeAnualTotal.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Horas de producción:</label>
<label class="tituloLbl">@estadisticasTotales.horasProduccion.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Costes directos:</label>
<label class="tituloLbl">@estadisticasTotales.costesDirectos.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costesDirectos.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes indirectos:</label> <label class="tituloLbl">Costes indirectos:</label>
<label class="tituloLbl">@estadisticasTotales.costesIndirectos.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costesIndirectos.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes variables:</label> <label class="tituloLbl">Costes variables:</label>
<label class="tituloLbl">@estadisticasTotales.costesVariables.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costesVariables.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste hora despacho profesional:</label> <label class="tituloLbl">Costes despacho:</label>
<label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total fases:</label> <label class="tituloLbl">Total superficie:</label>
<label class="tituloLbl">@estadisticasTotales.totalSuperficie.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">% fases:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label> <label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas documentación:</label> <label class="tituloLbl">Horas documentación:</label>
<label class="tituloLbl">@estadisticasTotales.horasDocumentacion.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.horasDocumentacion.MilesYDecimales() h</label>
</div> </div>
</div>
<div class="row mt-3">
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas dirección obra:</label> <label class="tituloLbl">Horas dirección obra:</label>
<label class="tituloLbl">@estadisticasTotales.horasDireccionObra.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.horasDireccionObra.MilesYDecimales() h</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas TPE:</label> <label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total porcentaje externalización:</label> <label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion.MilesYDecimales() %</label> <label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total plazo presentación:</label> <label class="tituloLbl">% externalización:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Coste externalización:</label>
<label class="tituloLbl">@estadisticasTotales.costeExternalizacion.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Plazo presentación:</label>
<label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label> <label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste producción:</label> <label class="tituloLbl">Coste de producción:</label>
<label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Beneficio:</label>
<label class="tituloLbl">@estadisticasTotales.beneficio.MilesYDecimales() %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Precio trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.precioTrabajo.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total otros trabajos:</label> <label class="tituloLbl">Total otros trabajos:</label>
<label class="tituloLbl">@estadisticasTotales.totalOtrosTrabajos.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.totalOtrosTrabajos.MilesYDecimales() €</label>
</div> </div>
</div>
<div class="row mt-3">
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total porcentaje beneficio:</label>
<label class="tituloLbl">@estadisticasTotales.beneficio.MilesYDecimales() %</label>
</div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total número trabajadores:</label> <label class="tituloLbl">Precio encargo:</label>
<label class="tituloLbl">@estadisticasTotales.numeroTrabajadores</label> <label class="tituloLbl">@estadisticasTotales.precioEncargo.MilesYDecimales() €</label>
</div> </div>
</div> </div>
</div> </div>
@@ -99,141 +131,53 @@
</div> </div>
} }
<Grid TItem="estadisticas"
Class="tablaCACOA table"
Data="listadoHerramientaEstadistica"
AllowFiltering="false"
PageSize="10"
FixedHeader="true"
Height="750"
Unit="Unit.Px"
EmptyText="No hay registros."
PageSizeSelectorVisible="false"
Responsive="true">
<GridColumns>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes directos">
<span>@context.costeDirecto</span>
</GridColumn>
<GridColumn TItem="estadisticas" Class="text-end" HeaderTextAlignment="Alignment.Center" HeaderText="Total costes indirectos">
<span>@context.costeIndirecto</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes Variables">
<span>@context.costeVariable</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total coste hora despacho profesional">
<span>@context.costeHoraDespachoProf</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total superficie">
<span></span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total fases">
<span>@context.totalFases</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas documentación">
<span>@context.horasTPEDocumentacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas dirección de obra">
<span>@context.horasTPEDireccionObra</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas trabajo profesional">
<span>@context.horasTPE</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
<span>@context.porcentajeExternalizacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total plazos">
<span>@context.plazoPresentacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes de producción">
<span>@context.costeProduccion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total otros trabajos">
<span>@context.totalOtrosTrabajos</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
<span>@context.porcentajeExternalizacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje beneficio">
<span>@context.porcentajeBeneficio</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total número trabajadores">
<span>@context.numeroTrabajadores</span>
</GridColumn>
</GridColumns>
</Grid>
</div> </div>
@code { @code {
public List<estadisticas> listadoHerramientaEstadistica { get; set; } = new List<estadisticas>(); [Parameter]
public List<estadisticas> listadoHerramientaEstadisticaAux { get; set; } = new List<estadisticas>(); public List<estadisticas> ListadoHerraCASA { get; set; } = new List<estadisticas>();
public DateTime? fechaInicio { get; set; } = null;
public DateTime? fechaFinal { get; set; } = null;
public EstadistiaHerraCasaVM estadisticasTotales = new EstadistiaHerraCasaVM();
private int totalProyectosTipo = 0; private int totalProyectosTipo = 0;
private string mensajeError = ""; public EstadistiaHerraCasaVM estadisticasTotales = new EstadistiaHerraCasaVM();
public tsHerramientasCACOA bd; protected override void OnParametersSet()
protected override async Task OnInitializedAsync()
{ {
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
inicializarListado(); inicializarListado();
} }
private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica) private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
{ {
estadisticasTotales.costesDirectos =UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeDirecto),totalProyectosTipo);
estadisticasTotales.numeroTrabajadores = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.numeroTrabajadores), totalProyectosTipo);
estadisticasTotales.costeAnualTotal = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalCosteAnual), totalProyectosTipo);
estadisticasTotales.horasProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasProduccion), totalProyectosTipo);
estadisticasTotales.costesDirectos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeDirecto), totalProyectosTipo);
estadisticasTotales.costesIndirectos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeIndirecto), totalProyectosTipo); estadisticasTotales.costesIndirectos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeIndirecto), totalProyectosTipo);
estadisticasTotales.costesVariables = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeVariable), totalProyectosTipo); estadisticasTotales.costesVariables = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeVariable), totalProyectosTipo);
estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo); estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo);
estadisticasTotales.totalSuperficie= UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalSupeficie), totalProyectosTipo);
estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo); estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo);
estadisticasTotales.horasDocumentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPEDocumentacion), totalProyectosTipo); estadisticasTotales.horasDocumentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPEDocumentacion), totalProyectosTipo);
estadisticasTotales.horasDireccionObra = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPEDireccionObra), totalProyectosTipo); estadisticasTotales.horasDireccionObra = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPEDireccionObra), totalProyectosTipo);
estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo); estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo);
estadisticasTotales.porcentajeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeExternalizacion), totalProyectosTipo); estadisticasTotales.porcentajeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeExternalizacion), totalProyectosTipo);
estadisticasTotales.costeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraExternalizacion), totalProyectosTipo);
estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo); estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo);
estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo); estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo);
estadisticasTotales.totalOtrosTrabajos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalOtrosTrabajos), totalProyectosTipo);
estadisticasTotales.beneficio = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeBeneficio), totalProyectosTipo); estadisticasTotales.beneficio = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeBeneficio), totalProyectosTipo);
estadisticasTotales.numeroTrabajadores = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.numeroTrabajadores), totalProyectosTipo); estadisticasTotales.precioTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioTrabajo), totalProyectosTipo);
estadisticasTotales.totalOtrosTrabajos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalOtrosTrabajos), totalProyectosTipo);
estadisticasTotales.precioEncargo= UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioEncargo), totalProyectosTipo);
} }
private void inicializarListado() private void inicializarListado()
{ {
listadoHerramientaEstadistica = bd.estadisticas.Include(x => x.idSimulacionNavigation).Where(x => x.idSimulacionNavigation.idTipoSimulacion == 31).ToList(); totalProyectosTipo = ListadoHerraCASA.Count();
listadoHerramientaEstadisticaAux = listadoHerramientaEstadistica;
totalProyectosTipo = listadoHerramientaEstadistica.Count(); hacerCalculos(ListadoHerraCASA);
hacerCalculos(listadoHerramientaEstadistica);
} }
} }

View File

@@ -8,107 +8,93 @@
<div> <div>
<div class="row" style="justify-content:space-between">
<div class="form-group mt-4 col-6">
<label>Fecha inicio:</label>
<InputDate TValue="DateTime?"
Value="fechaInicio"
ValueChanged="OnFechaInicioChanged"
ValueExpression="@(() => fechaInicio)" />
<label>Fecha final:</label>
<InputDate TValue="DateTime?"
Value="fechaFinal"
ValueChanged="OnFechaFinalChanged"
ValueExpression="@(() => fechaFinal)" />
</div>
<div class="mt-2">
@if (!string.IsNullOrEmpty(mensajeError))
{
<label class="text-danger fw-semibold">
@mensajeError
</label>
}
</div>
</div>
@if (totalProyectosTipo != 0) @if (totalProyectosTipo != 0)
{ {
<div class="mt-5" style="padding:50px;"> <div class="mt-2" style="padding:50px;">
<div class="mb-4"> <div class="mb-4">
<label class="fw-bold">Total simulaciones herramienta URBAN: <span>@totalProyectosTipo</span> </label> <label class="fw-bold">Total simulaciones herramienta URBAN: <span>@totalProyectosTipo</span> </label>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes directos:</label> <label class="tituloLbl">Nº total trabajadores:</label>
<label class="tituloLbl">@estadisticasTotales.costeDirecto.MilesYDecimales()</label> <label class="tituloLbl">@estadisticasTotales.numeroTrabajadores.MilesYDecimales()</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes indirectos:</label> <label class="tituloLbl">Coste anual total:</label>
<label class="tituloLbl">@estadisticasTotales.costeIndirecto.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeAnualTotal.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total costes variables:</label> <label class="tituloLbl">Horas de producción:</label>
<label class="tituloLbl">@estadisticasTotales.costeVariable.MilesYDecimales() </label> <label class="tituloLbl">@estadisticasTotales.horasProduccion.MilesYDecimales() h</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste hora despacho profesional:</label> <label class="tituloLbl">Costes directos:</label>
<label class="tituloLbl">@estadisticasTotales.costeHoraDespachoProf.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costesDirectos.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas documentación:</label> <label class="tituloLbl">Costes indirectos:</label>
<label class="tituloLbl">@estadisticasTotales.horasTPEDocumentacion.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.costesIndirectos.MilesYDecimales() </label>
</div>
</div>
<div class="row mt-3">
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas dirección obra:</label>
<label class="tituloLbl">@estadisticasTotales.horasTPEDireccionObra.MilesYDecimales() h</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas TPE:</label> <label class="tituloLbl">Costes variables:</label>
<label class="tituloLbl">@estadisticasTotales.horasTPE.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.costesVariables.MilesYDecimales() </label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total porcentaje externalización:</label> <label class="tituloLbl">Costes despacho:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion.MilesYDecimales() %</label> <label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() </label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">% fases:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total plazo presentación:</label> <label class="tituloLbl">Innovación:</label>
<label class="tituloLbl">@estadisticasTotales.innovacion.MilesYDecimales() %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">% externalización:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Coste externalización:</label>
<label class="tituloLbl">@estadisticasTotales.costeExternalizacion.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Plazo presentación:</label>
<label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label> <label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste producción:</label> <label class="tituloLbl">Coste de producción:</label>
<label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total otros trabajos:</label> <label class="tituloLbl">Beneficio:</label>
<label class="tituloLbl">@estadisticasTotales.totalOtrosTrabajos.MilesYDecimales() </label> <label class="tituloLbl">@estadisticasTotales.beneficio.MilesYDecimales() %</label>
</div>
</div>
<div class="row mt-3">
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total porcentaje beneficio:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeBeneficio.MilesYDecimales() %</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total número trabajadores:</label> <label class="tituloLbl">Precio trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.numeroTrabajadores</label> <label class="tituloLbl">@estadisticasTotales.precioTrabajo.MilesYDecimales() €</label>
</div> </div>
</div> </div>
</div> </div>
@@ -122,10 +108,10 @@
@*
<Grid TItem="estadisticas" <Grid TItem="estadisticas"
Class="tablaCACOA table" Class="tablaCACOA table"
Data="listadoHerramientaEstadistica" Data="ListadoHerraURBAN"
AllowFiltering="false" AllowFiltering="false"
PageSize="10" PageSize="10"
FixedHeader="true" FixedHeader="true"
@@ -200,141 +186,48 @@
</GridColumn> </GridColumn>
</GridColumns> </GridColumns>
</Grid> </Grid>
*@
</div> </div>
@code { @code {
public List<estadisticas> listadoHerramientaEstadistica { get; set; } = new List<estadisticas>(); [Parameter]
public List<estadisticas> listadoHerramientaEstadisticaAux { get; set; } = new List<estadisticas>(); public List<estadisticas> ListadoHerraURBAN { get; set; } = new List<estadisticas>();
public DateTime? fechaInicio { get; set; } = null; public EstadisticasUrbanVM estadisticasTotales = new EstadisticasUrbanVM();
public DateTime? fechaFinal { get; set; } = null;
public estadisticas estadisticasTotales = new estadisticas();
private int totalProyectosTipo = 0; private int totalProyectosTipo = 0;
private string mensajeError = "";
private async Task OnFechaInicioChanged(DateTime? value)
{
fechaInicio = value;
if (UtilidadesCASA.comprobarFechasNulas(fechaInicio, fechaFinal))
{
inicializarListado();
}
else
{
if (UtilidadesCASA.comprobarFechas((DateTime)fechaInicio, (DateTime)fechaFinal))
{
AplicarFiltros();
mensajeError = "";
}
else
{
mensajeError = "La fecha final no puede ser menor que la fecha inicial.";
}
}
}
private async Task OnFechaFinalChanged(DateTime? value)
{
fechaFinal = value;
if (UtilidadesCASA.comprobarFechasNulas(fechaInicio, fechaFinal))
{
inicializarListado();
}
else
{
if (UtilidadesCASA.comprobarFechas((DateTime)fechaInicio, (DateTime)fechaFinal))
{
AplicarFiltros();
mensajeError = "";
}
else
{
mensajeError = "La fecha final no puede ser menor que la fecha inicial.";
}
}
}
public tsHerramientasCACOA bd;
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
inicializarListado();
}
private void AplicarFiltros()
{
// Filtra la lista en función de los criterios ingresados
listadoHerramientaEstadistica = new List<bdHerramientaCACOA.db.estadisticas>();
foreach (bdHerramientaCACOA.db.estadisticas item in listadoHerramientaEstadisticaAux)
{
if (IsVisible(item) == true)
{
listadoHerramientaEstadistica.Add(item);
}
}
totalProyectosTipo = listadoHerramientaEstadistica.Count();
hacerCalculos(listadoHerramientaEstadistica);
}
public bool IsVisible(bdHerramientaCACOA.db.estadisticas listado)
{
DateTime? ultimaFecha;
if (listado.idSimulacionNavigation.FechaModificacion != null)
{
ultimaFecha = listado.idSimulacionNavigation.FechaModificacion;
}
else
{
ultimaFecha = listado.idSimulacionNavigation.FechaCreacion;
}
if (fechaFinal != null && listado.idSimulacionNavigation.FechaCreacion.Date >= fechaInicio?.Date && ultimaFecha?.Date <= fechaFinal?.Date)
{
return true;
}
return false;
}
private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica) private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
{ {
estadisticasTotales.costeDirecto = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeDirecto), totalProyectosTipo); estadisticasTotales.numeroTrabajadores = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.numeroTrabajadores), totalProyectosTipo);
estadisticasTotales.costeIndirecto = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeIndirecto), totalProyectosTipo); estadisticasTotales.costeAnualTotal = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalCosteAnual), totalProyectosTipo);
estadisticasTotales.costeVariable = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeVariable), totalProyectosTipo); estadisticasTotales.horasProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasProduccion), totalProyectosTipo);
estadisticasTotales.costeHoraDespachoProf = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo); estadisticasTotales.costesDirectos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeDirecto), totalProyectosTipo);
estadisticasTotales.costesIndirectos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeIndirecto), totalProyectosTipo);
estadisticasTotales.horasTPE = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo); estadisticasTotales.costesVariables = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeVariable), totalProyectosTipo);
estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo);
estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo);
estadisticasTotales.innovacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.innovacion), totalProyectosTipo);
estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo);
estadisticasTotales.porcentajeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeExternalizacion), totalProyectosTipo); estadisticasTotales.porcentajeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeExternalizacion), totalProyectosTipo);
estadisticasTotales.costeExternalizacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraExternalizacion), totalProyectosTipo);
estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo); estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo);
estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo); estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo);
estadisticasTotales.porcentajeBeneficio = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeBeneficio), totalProyectosTipo); estadisticasTotales.beneficio = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.porcentajeBeneficio), totalProyectosTipo);
estadisticasTotales.numeroTrabajadores = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.numeroTrabajadores), totalProyectosTipo); estadisticasTotales.precioTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioTrabajo), totalProyectosTipo);
}
protected override void OnParametersSet()
{
inicializarListado();
} }
private void inicializarListado() private void inicializarListado()
{ {
listadoHerramientaEstadistica = bd.estadisticas.Include(x => x.idSimulacionNavigation).Where(x => x.idSimulacionNavigation.idTipoSimulacion == 34).ToList(); totalProyectosTipo = ListadoHerraURBAN.Count();
listadoHerramientaEstadisticaAux = listadoHerramientaEstadistica;
totalProyectosTipo = listadoHerramientaEstadistica.Count(); hacerCalculos(ListadoHerraURBAN);
hacerCalculos(listadoHerramientaEstadistica);
} }
} }

View File

@@ -8,70 +8,64 @@
<div> <div>
<div class="row" style="justify-content:space-between">
<div class="form-group mt-4 col-6">
<label>Fecha inicio:</label>
<InputDate TValue="DateTime?"
Value="fechaInicio"
ValueChanged="OnFechaInicioChanged"
ValueExpression="@(() => fechaInicio)" />
<label>Fecha final:</label>
<InputDate TValue="DateTime?"
Value="fechaFinal"
ValueChanged="OnFechaFinalChanged"
ValueExpression="@(() => fechaFinal)" />
</div>
<div class="mt-2">
@if (!string.IsNullOrEmpty(mensajeError))
{
<label class="text-danger fw-semibold">
@mensajeError
</label>
}
</div>
</div>
@if (totalProyectosTipo != 0) @if (totalProyectosTipo != 0)
{ {
<div class="mt-5" style="padding:50px;"> <div class="mt-2" style="padding:50px;">
<div class="mb-4"> <div class="mb-4">
<label class="fw-bold">Total simulaciones licitación CASA: <span>@totalProyectosTipo</span> </label> <label class="fw-bold">Total simulaciones licitación CASA: <span>@totalProyectosTipo</span> </label>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste hora despacho profesional:</label> <label class="tituloLbl">Costes despacho:</label>
<label class="tituloLbl">@estadisticasTotales.costeHoraDespachoProf.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total fases:</label> <label class="tituloLbl">Total superficie:</label>
<label class="tituloLbl">@estadisticasTotales.totalFases %</label> <label class="tituloLbl">@estadisticasTotales.totalSuperficie.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total horas TPE:</label> <label class="tituloLbl">% fases:</label>
<label class="tituloLbl">@estadisticasTotales.horasTPE.MilesYDecimales() h</label> <label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total plazo presentación:</label> <label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Plazo presentación:</label>
<label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label> <label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>
</div> </div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total coste producción:</label> <label class="tituloLbl">Coste de producción:</label>
<label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Precio trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.precioTrabajo.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Total otros trabajos:</label> <label class="tituloLbl">Total otros trabajos:</label>
<label class="tituloLbl">@estadisticasTotales.totalOtrosTrabajos.MilesYDecimales() €</label> <label class="tituloLbl">@estadisticasTotales.totalOtrosTrabajos.MilesYDecimales() €</label>
</div> </div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Precio encargo:</label>
<label class="tituloLbl">@estadisticasTotales.precioEncargo.MilesYDecimales() €</label>
</div>
</div> </div>
</div> </div>
} }
@@ -85,9 +79,9 @@
<Grid TItem="estadisticas" @* <Grid TItem="estadisticas"
Class="tablaCACOA table" Class="tablaCACOA table"
Data="listadoHerramientaEstadistica" Data="ListadoLiciCASA"
AllowFiltering="false" AllowFiltering="false"
PageSize="10" PageSize="10"
FixedHeader="true" FixedHeader="true"
@@ -121,135 +115,38 @@
<span>@context.totalOtrosTrabajos</span> <span>@context.totalOtrosTrabajos</span>
</GridColumn> </GridColumn>
</GridColumns> </GridColumns>
</Grid> </Grid> *@
</div> </div>
@code { @code {
[Parameter]
public List<estadisticas> ListadoLiciCASA { get; set; } = new List<estadisticas>();
public List<estadisticas> listadoHerramientaEstadistica { get; set; } = new List<estadisticas>(); public EstadistiaHerraCasaVM estadisticasTotales = new EstadistiaHerraCasaVM();
public List<estadisticas> listadoHerramientaEstadisticaAux { get; set; } = new List<estadisticas>();
public DateTime? fechaInicio { get; set; } = null;
public DateTime? fechaFinal { get; set; } = null;
public estadisticas estadisticasTotales = new estadisticas();
private int totalProyectosTipo = 0; private int totalProyectosTipo = 0;
private string mensajeError = "";
private async Task OnFechaInicioChanged(DateTime? value)
{
fechaInicio = value;
if (UtilidadesCASA.comprobarFechasNulas(fechaInicio, fechaFinal))
{
inicializarListado();
}
else
{
if (UtilidadesCASA.comprobarFechas((DateTime)fechaInicio, (DateTime)fechaFinal))
{
AplicarFiltros();
mensajeError = "";
}
else
{
mensajeError = "La fecha final no puede ser menor que la fecha inicial.";
}
}
}
private async Task OnFechaFinalChanged(DateTime? value)
{
fechaFinal = value;
if (UtilidadesCASA.comprobarFechasNulas(fechaInicio, fechaFinal))
{
inicializarListado();
}
else
{
if (UtilidadesCASA.comprobarFechas((DateTime)fechaInicio, (DateTime)fechaFinal))
{
AplicarFiltros();
mensajeError = "";
}
else
{
mensajeError = "La fecha final no puede ser menor que la fecha inicial.";
}
}
}
public tsHerramientasCACOA bd;
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
inicializarListado();
}
private void AplicarFiltros()
{
// Filtra la lista en función de los criterios ingresados
listadoHerramientaEstadistica = new List<bdHerramientaCACOA.db.estadisticas>();
foreach (bdHerramientaCACOA.db.estadisticas item in listadoHerramientaEstadisticaAux)
{
if (IsVisible(item) == true)
{
listadoHerramientaEstadistica.Add(item);
}
}
totalProyectosTipo = listadoHerramientaEstadistica.Count();
hacerCalculos(listadoHerramientaEstadistica);
}
public bool IsVisible(bdHerramientaCACOA.db.estadisticas listado)
{
DateTime? ultimaFecha;
if (listado.idSimulacionNavigation.FechaModificacion != null)
{
ultimaFecha = listado.idSimulacionNavigation.FechaModificacion;
}
else
{
ultimaFecha = listado.idSimulacionNavigation.FechaCreacion;
}
if (fechaFinal != null && listado.idSimulacionNavigation.FechaCreacion.Date >= fechaInicio?.Date && ultimaFecha?.Date <= fechaFinal?.Date)
{
return true;
}
return false;
}
private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica) private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
{ {
estadisticasTotales.costeHoraDespachoProf = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo); estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo);
estadisticasTotales.totalFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo); estadisticasTotales.totalSuperficie = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalSupeficie), totalProyectosTipo);
estadisticasTotales.horasTPE = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo); estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo);
estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo);
estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo); estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo);
estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo); estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo);
estadisticasTotales.precioTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioTrabajo), totalProyectosTipo);
estadisticasTotales.totalOtrosTrabajos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalOtrosTrabajos), totalProyectosTipo); estadisticasTotales.totalOtrosTrabajos = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalOtrosTrabajos), totalProyectosTipo);
estadisticasTotales.precioEncargo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioEncargo), totalProyectosTipo);
} }
protected override void OnParametersSet()
{
inicializarListado();
}
private void inicializarListado() private void inicializarListado()
{ {
listadoHerramientaEstadistica = bd.estadisticas.Include(x => x.idSimulacionNavigation).Where(x => x.idSimulacionNavigation.idTipoSimulacion == 32).ToList(); totalProyectosTipo = ListadoLiciCASA.Count();
listadoHerramientaEstadisticaAux = listadoHerramientaEstadistica; hacerCalculos(ListadoLiciCASA);
totalProyectosTipo = listadoHerramientaEstadistica.Count();
hacerCalculos(listadoHerramientaEstadistica);
} }
} }

View File

@@ -0,0 +1,178 @@
@inject NavigationManager Navigation
@layout ConfiguracionLayout
@rendermode InteractiveServer
@using BlazorBootstrap
@using System.Globalization
@using Microsoft.EntityFrameworkCore
@using bdHerramientaCACOA.db
<div>
@if (totalProyectosTipo != 0)
{
<div class="mt-2" style="padding:50px;">
<div class="mb-4">
<label class="fw-bold">Total simulaciones licitación URBAN: <span>@totalProyectosTipo</span> </label>
</div>
<div class="row">
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Costes despacho:</label>
<label class="tituloLbl">@estadisticasTotales.costeDespacho.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">% fases:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeFases %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Innovación:</label>
<label class="tituloLbl">@estadisticasTotales.innovacion.MilesYDecimales() %</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Plazo presentación:</label>
<label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Coste de producción:</label>
<label class="tituloLbl">@estadisticasTotales.costeProduccion.MilesYDecimales() €</label>
</div>
<div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Precio trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.precioTrabajo.MilesYDecimales() €</label>
</div>
</div>
</div>
}
else
{
<div class="mt-5">
<label class="tituloLbl">No hay datos entre esas fechas.</label>
</div>
}
@*
<Grid TItem="estadisticas"
Class="tablaCACOA table"
Data="ListadoLiciURBAN"
AllowFiltering="false"
PageSize="10"
FixedHeader="true"
Height="750"
Unit="Unit.Px"
EmptyText="No hay registros."
PageSizeSelectorVisible="false"
Responsive="true">
<GridColumns>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes directos">
<span>@context.costeDirecto</span>
</GridColumn>
<GridColumn TItem="estadisticas" Class="text-end" HeaderTextAlignment="Alignment.Center" HeaderText="Total costes indirectos">
<span>@context.costeIndirecto</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes Variables">
<span>@context.costeVariable</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total coste hora despacho profesional">
<span>@context.costeHoraDespachoProf</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total superficie">
<span></span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total fases">
<span>@context.totalFases</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas documentación">
<span>@context.horasTPEDocumentacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas dirección de obra">
<span>@context.horasTPEDireccionObra</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total horas trabajo profesional">
<span>@context.horasTPE</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
<span>@context.porcentajeExternalizacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total plazos">
<span>@context.plazoPresentacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total costes de producción">
<span>@context.costeProduccion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total otros trabajos">
<span>@context.totalOtrosTrabajos</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje externalización">
<span>@context.porcentajeExternalizacion</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total porcentaje beneficio">
<span>@context.porcentajeBeneficio</span>
</GridColumn>
<GridColumn TItem="estadisticas" HeaderTextAlignment="Alignment.Center" Class="text-end" HeaderText="Total número trabajadores">
<span>@context.numeroTrabajadores</span>
</GridColumn>
</GridColumns>
</Grid>
*@
</div>
@code {
[Parameter]
public List<estadisticas> ListadoLiciURBAN { get; set; } = new List<estadisticas>();
public EstadisticasUrbanVM estadisticasTotales = new EstadisticasUrbanVM();
private int totalProyectosTipo = 0;
private void hacerCalculos(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
{
estadisticasTotales.costeDespacho = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeHoraDespachoProf), totalProyectosTipo);
estadisticasTotales.porcentajeFases = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.totalFases), totalProyectosTipo);
estadisticasTotales.innovacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.innovacion), totalProyectosTipo);
estadisticasTotales.horasTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.horasTPE), totalProyectosTipo);
estadisticasTotales.plazoPresentacion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.plazoPresentacion), totalProyectosTipo);
estadisticasTotales.costeProduccion = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.costeProduccion), totalProyectosTipo);
estadisticasTotales.precioTrabajo = UtilidadesCASA.comprobarNull(listadoEstadistica.Sum(x => x.precioTrabajo), totalProyectosTipo);
}
protected override void OnParametersSet()
{
inicializarListado();
}
private void inicializarListado()
{
totalProyectosTipo = ListadoLiciURBAN.Count();
hacerCalculos(ListadoLiciURBAN);
}
}