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

408 lines
18 KiB
Plaintext

@using System.Globalization
@using bdHerramientaCACOA.HerramientaURBAN
<div id="DespachoURBANImprimir" class="d-flex flex-column align-items-center">
@* DESPACHO URBAN*@
<div class="col-12 mx-auto mb-5">
<div class="mb-4 col-8 mx-auto justify-content-center d-flex">
<label style="color: #078b98 !important"><b>Despacho Profesional</b></label>
</div>
<div class="col-8 mx-auto" style="align-items: flex-end;">
<div style="height: 49px;">
<b>Coste hora Despacho Profesional</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Tipo de costes</th>
<th class="colorB fw-bold">Coste/hora</th>
</tr>
</thead>
<tbody>
<tr>
<td class="colorB w4">Costes directos</td>
<td class="text-end">@objetoURBAN.DespachoProfesional.CostesDirectos.MilesYDecimales() €/hora</td>
</tr>
<tr>
<td class="colorB ">Costes indirectos</td>
<td class="text-end">@objetoURBAN.DespachoProfesional.TasaCostesIndirectos.MilesYDecimales() €/hora</td>
</tr>
<tr>
<td class="colorB ">Costes variables</td>
<td class="text-end">@objetoURBAN.CostesProduccion.CostesVariables.MilesYDecimales() €/hora</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="text-end fw-bold colorC TotalesTabla">
<div style="height:28px; align-content:center;">
Total Coste hora Despacho Profesional: <span> @objetoURBAN.CostesProduccion.TotalCostes.MilesYDecimales() €/hora</span>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="col-8 mx-auto">
<div style="height: 49px;">
<b>Coste hora Externalización</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Externalización</th>
<th class="colorB fw-bold">Porcentaje</th>
</tr>
</thead>
<tbody>
<tr>
<td class="colorFilasIntro w4">Incremento por externalización</td>
<td class="text-end">
<span>
@objetoURBAN.CostesProduccion.CoeficienteCostesExternalizacion %
</span>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="text-end fw-bold colorC TotalesTabla">
Coste hora Externalización: <span> @objetoURBAN.CostesProduccion.CosteHoraExternalizacion.MilesYDecimales() €/hora</span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
@* TRABAJAO PROFESIONAL *@
<div class="col-12 mx-auto mb-5">
<div class="mb-4 col-8 mx-auto justify-content-center d-flex">
<label style="color: #078b98 !important"><b>Trabajo Profesional</b></label>
</div>
<div class="col-12 d-flex justify-content-center" style="gap:20px;">
<div class="formatoCampos pt-2">
<label class="tituloLbl">Tipo de Documento:</label>
<label>@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(@objetoURBAN.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == objetoURBAN.TrabajoProfesional.idTipoDocumentacion).Descripcion.ToLower())</label>
</div>
<div class="formatoCampos pt-2">
<label class="tituloLbl">Documento:</label>
@if (objetoURBAN.TrabajoProfesional.idTipoDocumentacion != 0)
{
<label>@objetoURBAN.Enumerados.ProyectosPorTipo(objetoURBAN.TrabajoProfesional.idTipoDocumentacion).First(x => x.idtipoproyectos == objetoURBAN.TrabajoProfesional.idTipoProyecto).Descripcion</label>
}
</div>
</div>
@* TABLAS DE DATOS MINIMOS Y OPCIONALES *@
<div class="col-11 mx-auto">
@* TABLA DE DATOS MINIMOS *@
<div style="height: 49px; margin-top:50px;">
<b>Documentación Mínima:</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.TrabajoProfesional.DocumentacionMinima)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
</tr>
}
</tbody>
</table>
</div>
@* TABLA DE DATOS OPCIONALES *@
<div style="height: 49px; margin-top:50px;">
<b>Documentación Opcional:</b>
</div>
@if (objetoURBAN.TrabajoProfesional.DocumentacionOpcional.Count != 0)
{
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
<th class="colorB fw-bold">Añadida</th>
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.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>
}
</tbody>
</table>
</div>
}
else
{
<label>Sin documentación</label>
}
</div>
@* TABLA DE DATOS NECESARIOS *@
<div class="col-11 mx-auto">
<div style="height: 49px; margin-top:50px;">
<b>Datos Necesarios:</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
<th class="colorB fw-bold">Valor</th>
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.TrabajoProfesional.DatosNecesarios)
{
<tr>
<td class="colorB w4">@item.Descripcion</td>
<td class="colorB w4 text-end">@item.ValorNecesario</td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div class="col-11 mx-auto">
<div style="height: 49px; margin-top:50px;">
<b>Datos Necesarios:</b>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Descripción</th>
<th class="colorB fw-bold"></th>
</tr>
</thead>
<tbody>
@foreach (var item in objetoURBAN.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 (objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) != 100)
{
<div>
Trabajo en misión parcial: <span> @objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
</div>
}
else
{
<div>
Total: <span> @objetoURBAN.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje) %</span>
</div>
}
</div>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
@* INNOVACIÓN INSTRUMENTOS*@
<div class="col-11 mx-auto mb-5">
<div>
<div class="mt-3 mb-3"><b>Innovacion de los instrumentos</b></div>
<p class="col-6">
<label>@objetoURBAN.TrabajoProfesional.valorInstrumentos %</label>
</p>
@foreach (var enu in objetoURBAN.Enumerados.ListaInstrumentos)
{
<div class="form-check" style="gap:10px;">
@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>
}
<table class="tablaAlter mt-4" style="width: 100%;">
<tr>
<td class="tdAlter TotalesTabla" style="width: 320px;">HORAS TRABAJO PROFESIONAL URBANISMO: </td>
<td class="tdAlter TotalesTabla tdAlineadoDerecha">@objetoURBAN.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h</td>
</tr>
</table>
</div>
</div>
@* PLAZOS Y HORAS *@
<div class="col-11 mx-auto mb-5">
<div class="row justify-content-center align-content-center align-items-center">
<div class="col-9 mb-5 align-items-center">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<tr>
<td style="width:60%" class="colorFilasIntro fw-bold w4">Plazo de presentación de la documentación:</td>
<td class="text-end">
<div class="justify-content-end d-flex" style="gap:3px;">
<span class="text-end">@objetoURBAN.CostesProduccion.PlazoPresentacionDocumentos</span>meses
</div>
</td>
</tr>
</table>
</div>
<div class="col-9 mb-5 ">
<div style="height: 49px;">
<b>Trabajo profesional</b>
</div>
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Trabajos</th>
<th class="colorB fw-bold">Horas</th>
</tr>
</thead>
<tbody>
<tr>
<td class="colorB ">Horas en despacho profesional</td>
<td class="text-end">@objetoURBAN.CostesProduccion.HorasEnPlazo.MilesYDecimales() h</td>
</tr>
<tr>
<td class="colorB ">Horas mediante externalización</td>
<td class="text-end">@objetoURBAN.CostesProduccion.NumHorasMinimoExt.MilesYDecimales() h</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="text-end colorC fw-bold w4 TotalesTabla">
Total horas del trabajo profesional: <span>@((objetoURBAN.CostesProduccion.HorasEnPlazo + objetoURBAN.CostesProduccion.NumHorasMinimoExt).MilesYDecimales()) h </span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
@* COSTE DE PRODUCCIÓN *@
<div class="col-12 mx-auto mb-5">
<div class="mb-4 col-8 mx-auto justify-content-center d-flex">
<label style="color: #078b98 !important"><b>Coste de producción</b></label>
</div>
<div class="col-8 mx-auto">
<div style="height: 49px;">
<b>Costes Asociados a los Servicios de Arquitectura</b>
</div>
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>
<tr>
<th class="colorB fw-bold">Concepto</th>
<th class="colorB fw-bold text-end"></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tdAlter TotalesTabla fw-bold ">COSTES DE PRODUCCIÓN DEL TRABAJO PROFESIONAL</td>
<td class=" tdAlter TotalesTabla text-end"><span> @objetoURBAN.CostesProduccion.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
</tr>
<tr>
<td class="TotalesTabla colorFilasIntro "><b>Beneficio</b> (antes de impuestos)</td>
<td class="TotalesTabla text-end">
<div class="text-end align-items-end" style="gap:3px;">
<label>@objetoURBAN.CostesProduccion.Beneficio</label> %
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2" class="TotalesTabla text-end fw-bold">
Precio del trabajo profesional: <span>@objetoURBAN.CostesProduccion.PrecioTrabajoProfesional.MilesYDecimales() € </span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
@code {
[Parameter]
public URBAN objetoURBAN { get; set; } = new URBAN();
public tsHerramientasCACOA bd;
protected override async Task OnInitializedAsync()
{
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
}
public void RefreshState()
{
this.StateHasChanged();
}
}