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

399 lines
18 KiB
Plaintext

@using System.Globalization
<div id="LiciURBANImprimir" class="d-flex flex-column align-items-center pagePrincipal">
@* TRABAJAO PROFESIONAL *@
<div class="col-12 mx-auto">
@* 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">@objetoLicitacionUrban.NombreSimulacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>
<div class="col-12 d-flex justify-content-center" style="gap:20px;">
<div class="formatoCampos pt-2" style="font-size:9pt;">
<label class="tituloLbl">Tipo de Documento:</label>
@if (objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion != 0)
{
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoLicitacionUrban.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
<div class="formatoCampos pt-2" style="font-size:9pt;">
<label class="tituloLbl">Documento:</label>
@if (objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion != 0)
{
<label>@objetoLicitacionUrban.Enumerados.ProyectosPorTipo(objetoLicitacionUrban.TrabajoProfesional.idTipoDocumentacion).First(x => x.idtipoproyectos == objetoLicitacionUrban.TrabajoProfesional.idTipoProyecto).Descripcion</label>
}
else
{
<label>No Seleccionado</label>
}
</div>
</div>
@* TABLAS DE DATOS MINIMOS Y OPCIONALES *@
<div class="col-11 mx-auto">
@* TABLA DE DATOS MINIMOS *@
<div class="TituloTablaImprimir" style=" margin-top:50px;">
<b>Documentación Mínima:</b>
</div>
<div class="table-responsive espacioTablas" style="@espacioTabla">
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima.Count > 0)
{
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
</tr>
}
}
else
{
<tr><td class="text-center">No hay registros</td></tr>
}
</tbody>
</table>
</div>
@* TABLA DE DATOS OPCIONALES *@
<div class="TituloTablaImprimir" style=" margin-top:50px;">
<b>Documentación Opcional:</b>
</div>
<div class="table-responsive espacioTablas">
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
<th class="colorB fw-bold">Añadida</th>
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DocumentacionOpcional)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">
@if (@item.Checkeada)
{
<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>
}
</td>
</tr>
}
}
else
{
<tr><td class="text-center" colspan="2">No hay registros</td></tr>
}
</tbody>
</table>
</div>
</div>
@* DATOS NECESARIOS *@
<div class="col-12 mx-auto">
<div class="col-11 mx-auto">
<div class="TituloTablaImprimir" style=" margin-top:50px;">
<b>Datos Necesarios:</b>
</div>
<div class="table-responsive espacioTablas">
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th style="width:70%;" class="colorB fw-bold">Descripción</th>
<th class="colorB fw-bold">Valor</th>
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.TrabajoProfesional.DatosNecesarios.Count != 0)
{
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.DatosNecesarios)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">@item.ValorNecesario</td>
</tr>
}
}
else
{
<tr><td class="text-center" colspan="2">No hay registros</td></tr>
}
</tbody>
</table>
</div>
</div>
</div>
@* FASES *@
<div class="col-8 mx-auto" style="margin-top:250px;">
<div class="TituloTablaImprimir" style=" margin-top:50px;">
<b>Fases:</b>
</div>
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th style="width:70%;" class="colorB fw-bold">Fases</th>
<th class="colorB fw-bold"></th>
</tr>
</thead>
<tbody>
@foreach (var item in objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional)
{
<tr>
<td class="colorB w4">@item.Denominacion</td>
<td class="colorB w4 text-end">@item.Porcentaje %</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 (objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) != 100)
{
<div>
Trabajo en misión parcial: <span> @objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
</div>
}
else
{
<div>
Total: <span> @objetoLicitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
</div>
}
</div>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
@* INNOVACIÓN INSTRUMENTOS*@
<div class="col-11 mx-auto ">
<div>
<div class="mt-3 mb-3 TituloTablaImprimir"><b>Innovacion de los instrumentos</b></div>
<p style="font-size:9pt;" class="col-6">
<label>@objetoLicitacionUrban.TrabajoProfesional.valorInstrumentos %</label>
</p>
@foreach (var enu in objetoLicitacionUrban.Enumerados.ListaInstrumentos)
{
<div class="form-check" style="gap:10px; font-size:9pt;">
@if (enu.Seleccionado)
{
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-circle-fill" viewBox="0 0 16 16">
<circle cx="8" cy="8" r="8" />
</svg>
}
else
{
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-circle" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
</svg>
}
<label style="margin-left:10px;" class="form-check-label" for="@enu.idEnumeracion">@enu.Descripcion</label>
</div>
}
<div style="font-size:9pt;" class="fw-bold">
<label>HORAS TRABAJO PROFESIONAL URBANISMO: <span>@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h</span></label>
</div>
</div>
</div>
<div class="col-8 mx-auto mt-4">
@* Solvencia tecnica *@
<div class="TituloTablaImprimir">
<b>Solvencia técnica:</b>
</div>
<div class="table-responsive espacioTablas">
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th class="colorB fw-bold">Trabajadores</th>
<th class="colorB fw-bold">Nº Trabajadores</th>
<th class="colorB fw-bold">Categoría Profesional</th>
</tr>
</thead>
<tbody>
@if (objetoLicitacionUrban.ListaSolvenciaTecnica.Count > 0)
{
@foreach (var otroTrabajo in objetoLicitacionUrban.ListaSolvenciaTecnica)
{
<tr>
<td>@otroTrabajo.Descripcion</td>
<td class="text-end">@otroTrabajo.Cantidad</td>
<td>@otroTrabajo.TipoConvenio</td>
</tr>
}
}
else
{
<tr>
<td colspan="3" class="text-center">No hay registros</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="3" class="text-end fw-bold colorC TotalesTabla">
Total trabajadores:
<span> @objetoLicitacionUrban.ListaSolvenciaTecnica.Sum(x => x.Cantidad)</span>
</td>
</tr>
</tfoot>
</table>
</div>
@* costes asociados *@
<div class="TituloTablaImprimir" style=" margin-top:50px;">
<b>Costes Asociados a los Servicios de Arquitectura:</b>
</div>
<div class="table-responsive espacioTablas">
<table class="TablaImprimir mb-0" style="width:100%;">
<thead>
<tr>
<th class="colorB fw-bold">Concepto</th>
<th class="colorB fw-bold text-end"></th>
</tr>
</thead>
<tbody>
<tr>
<td class="colorFilasIntro w4">Plazo de presentación de la documentación:</td>
<td class="text-end columna40Ancho">
<div class="text-end" style="gap:3px;">
<label>@objetoLicitacionUrban.PlazoPresentacionDocumentos</label> meses
</div>
</td>
</tr>
<tr>
<td class="colorB w4">Coste hora de producción</td>
<td class="text-end columna40Ancho"><span> @objetoLicitacionUrban.CosteHP.MilesYDecimales() €/hora</span></td>
</tr>
<tr>
<td style="width:50%;">Horas Trabajo Profesional </td>
<td class="tdAlineadoDerecha">
<span>
@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h
</span>
</td>
</tr>
<tr>
<td class="colorB w4">Coste de producción del Trabajo Profesional</td>
<td class="text-end columna40Ancho"><span> @objetoLicitacionUrban.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
</tr>
<tr>
<td class="colorB fw-bold w4">
G.G. + B.I. <br />
<span class="fw-normal" style="font-size:7pt;">(40/19 Junta Consultiva de Contratación Pública del Estado)</span>
</td>
<td class="text-end columna40Ancho" style="align-content:center;">
<div class="d-flex" style="justify-content: end; gap:3px;">
@objetoLicitacionUrban.Beneficio %
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="TotalesTabla text-end fw-bold">
Precio del trabajo profesional: <span>@objetoLicitacionUrban.PrecioDelTrabajo.MilesYDecimales() €</span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
@* Costes de producción *@
<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>
@code {
[Parameter]
public bdHerramientaCACOA.LicitacionesURBAN objetoLicitacionUrban { get; set; } = new bdHerramientaCACOA.LicitacionesURBAN();
public tsHerramientasCACOA bd;
string espacioTabla = "margin-bottom:400px;";
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
if (objetoLicitacionUrban.TrabajoProfesional.DocumentacionMinima.Count == 0)
{
espacioTabla = "";
}
}
public void RefreshState()
{
this.StateHasChanged();
}
}