Files
HerramientaCASA/HerramientaCASA/Components/Pages/Imprimir/LicitacionesCASAImprimir.razor

236 lines
11 KiB
Plaintext

<div id="LicitacionesCASAImprimir" class="d-flex flex-column align-items-center pagePrincipal">
<div class="col-12 mx-auto mb-5">
@* ENCABEZADO DE LA PAGINA *@
<div class="EncabezadoImprimir">
<p>
Documento impreso del módulo de Servicios de Arquitectura Edificación con los datos y
estimación de Costes de Producción resultado de la simulación.
</p>
<div class="d-flex flex-column mt-3">
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoLicitaciones.Descripcion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>
@* TABLA USOS TIPOLOGIAS *@
<div class="col-11 mx-auto mb-5" style="align-items: flex-end;">
<div class="TituloTablaImprimir">
<b>Usos/Tipologías</b>
</div>
<div class="table-responsive">
<table class="TablaImprimir mb-0 espacioTablas" style="width:100%;">
<thead>
<tr>
<th width="15%">Superficie (m²)</th>
<th width="20%">Usos</th>
<th width="35%">Tipología</th>
<th width="30%">Intervención</th>
</tr>
</thead>
<tbody>
@if (objetoLicitaciones.Usos.Count != 0)
{
@foreach (var uso in objetoLicitaciones.Usos)
{
<tr>
<td class="text-end">@uso.superficie.MilesYDecimales()</td>
<td>@objetoLicitaciones.Enumerados.GruposTipologias?.FirstOrDefault(x => x.idEnumeracion == uso.idGrupoTipologia)?.ValorAlfabetico1</td>
<td>@objetoLicitaciones.Enumerados.Tipologias?.FirstOrDefault(x => x.idTipologia == uso.idTipologia)?.Descripcion</td>
<td>@objetoLicitaciones.Enumerados.Intervenciones?.FirstOrDefault(x => x.idEnumeracion == uso.idTipoIntervencion)?.ValorAlfabetico1</td>
</tr>
}
}
else
{
<tr>
<td colspan="4" class="text-center">No hay registros</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="4" class="text-start fw-bold colorC TotalesTabla">
<div style="height:28px; align-content:center;">
Total superficie: <span> @objetoLicitaciones.Usos.Sum(x => x.superficie).MilesYDecimales() m²</span>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
@* TABLA FASES *@
<div class="col-8 mx-auto" style="align-items: flex-end;">
<div class="TituloTablaImprimir" >
<b>Fases</b>
</div>
<div class="table-responsive">
<table class="TablaImprimir mb-0 espacioTablas" style="width:90%;">
<thead>
<tr>
<th class="text-start" >Fases</th>
<th ></th>
</tr>
</thead>
<tbody>
@foreach (var fase in objetoLicitaciones.FasesTrabajo)
{
<tr>
<td>@fase.Denominacion</td>
<td class="text-end">
<div>
<span style="margin-right:5px;">@fase.Porcentaje</span>
@if (fase.Seleccionado)
{
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-check-square" viewBox="0 0 16 16">
<path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z" />
<path d="M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425z" />
</svg>
}
else
{
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-square" viewBox="0 0 16 16">
<path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2z" />
</svg>
}
</div>
</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="2" class="text-end fw-bold colorC TotalesTabla">
<div class="d-flex justify-content-end">
<div style="align-self: center;">
@if (objetoLicitaciones.FasesTrabajo
.Where(f => f.Seleccionado)
.Sum(f => f.Porcentaje) != 100)
{
<div>
Trabajo en misión parcial: <span>
@objetoLicitaciones.FasesTrabajo.Where(f => f.Seleccionado).Sum(f => f.Porcentaje) %
</span>
</div>
}
else
{
<div>
Total: <span>
@objetoLicitaciones.FasesTrabajo.Where(f => f.Seleccionado).Sum(f => f.Porcentaje) %
</span>
</div>
}
</div>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
@* TABLA COSTES DE PRODUCCION *@
<div class="col-8 mx-auto" style="align-items: flex-end; margin-top:800px;">
<div class="TituloTablaImprimir" >
<b>Costes de producción</b>
</div>
<div class="table-responsive">
<table class="TablaImprimir mb-0 espacioTablas">
<thead>
<tr>
<th class="colorB fw-bold" style="width:60%">Concepto</th>
<th class="colorB fw-bold"></th>
</tr>
</thead>
<tbody>
<tr>
<td>Plazo de presentación de la documentación</td>
<td class="text-end">@objetoLicitaciones.PlazoPresentacionDocumentos meses</td>
</tr>
<tr>
<td>Coste hora de producción</td>
<td class="text-end"><span>@objetoLicitaciones.costeHoraProduccion.MilesYDecimales() €/h</span> </td>
</tr>
<tr>
<td>Horas trabajo profesional</td>
<td class="text-end"><span>@objetoLicitaciones.horasProduccion.MilesYDecimales() h</span> </td>
</tr>
<tr>
<td>COSTE DE PRODUCCIÓN DEL TRABAJO PROFESIONAL</td>
<td class="text-end"><span> @objetoLicitaciones.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
</tr>
<tr>
<td class="TotalesTabla colorB w4">
G.G. + B.I.
<span class="fw-normal" style="font-size:7pt;">(40/19 Junta Consultiva de Contratación Pública del Estado)</span>
</td>
<td class="TotalesTabla text-end" style="align-content:center;">
<div class="d-flex" style="justify-content: end; gap:3px;">
@objetoLicitaciones.Beneficio %
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="text-end fw-bold TotalesTabla tablaCACOA">
Precio del trabajo profesional: <span>@objetoLicitaciones.PrecioTrabProf.MilesYDecimales() € </span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="FooterImprimir">
<p>
Los resultados de esta simulación son una mera estimación del tiempo necesario en la realización del trabajo
profesional, que siempre estará supeditado a su determinación concreta por parte del autor de este estudio económico,
teniendo presente factores propios de eficiencia como la estandarización de procesos, eficiencia en el trabajo,
aprovechamiento de estudios y trabajos anteriores y mejoras en la productividad de su propio despacho profesional.
</p>
<p>
El presente documento no tiene validez contractual. Los datos obtenidos son meramente estimativos y generados por la
aplicación en función de los datos que posee y que el usuario ha introducido. En nigún caso tiene por qué corresponder
con la realidad ni el CACOA garantiza la veracidad de los mismos, pro lo que no es responsable de su veracidad en sí ni
sobre terceros.
</p>
</div>
</div>
</div>
@code {
[Parameter]
public LICITACIONES objetoLicitaciones { get; set; } = new LICITACIONES();
public tsHerramientasCACOA bd;
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
}
public void RefreshState()
{
this.StateHasChanged();
}
}