361 lines
15 KiB
Plaintext
361 lines
15 KiB
Plaintext
<div id="DespachoImprimir" class="pagePrincipal d-flex flex-column align-items-center">
|
|
<div class="col-12 mx-auto mb-5">
|
|
@* ENCABEZADO DE LA PAGINA *@
|
|
<div class="EncabezadoImprimir">
|
|
<p>
|
|
@msTextoEncabezado
|
|
</p>
|
|
|
|
<div class="mt-3">
|
|
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoCASA.NombreSimulacion</span></label>
|
|
<br />
|
|
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
|
|
</div>
|
|
</div>
|
|
|
|
@* TABLA COSTE HORA DESPACHO PROFESIONAL *@
|
|
|
|
<div class="col-8 mx-auto" style="align-items: flex-end; margin-bottom:30px;">
|
|
<div class="TituloTablaImprimir">
|
|
<b>Coste hora de los trabajos realizados por el despacho profesional</b>
|
|
</div>
|
|
|
|
<div class="table-responsive espacioTablas">
|
|
|
|
<table class="TablaImprimir mb-0" style="width:100%;">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>Tipo de costes</th>
|
|
<th>Coste/hora</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="colorB w4">Costes directos</td>
|
|
<td class="text-end">@objetoCASA.DespachoProfesional.CostesDirectos.MilesYDecimales() €/hora</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="colorB ">Costes indirectos</td>
|
|
<td class="text-end">@objetoCASA.DespachoProfesional.TasaCostesIndirectos.MilesYDecimales() €/hora</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="colorB ">Costes variables</td>
|
|
<td class="text-end">@objetoCASA.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;">
|
|
Coste hora Despacho Profesional: <span> @objetoCASA.CostesProduccion.TotalCostes.MilesYDecimales() €/hora</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@* TABLA COSTE HORA EXTERNALIZACION *@
|
|
|
|
<div class="col-8 mx-auto">
|
|
|
|
<div class="TituloTablaImprimir">
|
|
<b>Coste hora Externalización</b>
|
|
</div>
|
|
<div class="table-responsive espacioTablas">
|
|
<table class="TablaImprimir mb-0" style="width:100%;">
|
|
<thead>
|
|
<tr>
|
|
<th width="75%">Externalización</th>
|
|
<th>Porcentaje</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="colorFilasIntro w4">Incremento por externalización</td>
|
|
<td class="text-end">
|
|
<span>
|
|
@objetoCASA.CostesProduccion.CoeficienteCostesExternalizacion %
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="2" class="text-end fw-bold colorC TotalesTabla">
|
|
Coste hora Externalización: <span> @objetoCASA.CostesProduccion.CosteHoraExternalizacion.MilesYDecimales() €/hora</span>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-12 mx-auto mb-5">
|
|
|
|
@* TABLA USOS/TIPOLOGIAS *@
|
|
|
|
<div class="col-11 mx-auto" style="align-items: flex-end;">
|
|
<div class="TituloTablaImprimir">
|
|
<b>Usos/Tipologías</b>
|
|
</div>
|
|
<div class="table-responsive espacioTablas">
|
|
|
|
<table class="TablaImprimir mb-0" 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 (totalUsos != 0)
|
|
{
|
|
@foreach (var uso in objetoCASA.TrabajoProfesional.Usos)
|
|
{
|
|
<tr>
|
|
<td class="text-end">@uso.superficie.MilesYDecimales()</td>
|
|
<td>@objetoCASA.Enumerados.GruposTipologias?.FirstOrDefault(x => x.idEnumeracion == uso.idGrupoTipologia)?.ValorAlfabetico1</td>
|
|
<td>@objetoCASA.Enumerados.Tipologias?.FirstOrDefault(x => x.idTipologia == uso.idTipologia)?.Descripcion</td>
|
|
<td>@objetoCASA.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="fw-bold colorC TotalesTabla">
|
|
<div style="height:28px;">
|
|
Total superficie: <span> @objetoCASA.TrabajoProfesional.Usos.Sum(x => x.superficie).MilesYDecimales() m²</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-10 mx-auto d-flex justify-content-center" style="@estiloTrabajos">
|
|
<div class="col-md-10 row ">
|
|
<div class="TituloTablaImprimir">
|
|
<b>Trabajo profesional</b>
|
|
</div>
|
|
|
|
@* PLAZO DE PRESENTACION *@
|
|
<div style="font-size:9pt;" class="fw-bold">
|
|
<label>Plazo de presentación de la documentación: <span>@objetoCASA.CostesProduccion.PlazoPresentacionDocumentos meses</span></label>
|
|
</div>
|
|
<div class="mb-3" style="height:20px;">
|
|
@if (objetoCASA.CostesProduccion.IncrementoUrgencia > 0)
|
|
{
|
|
<label style="font-size:10px;">Incremento del @objetoCASA.CostesProduccion.IncrementoUrgencia% en los costes de producción de la documentación por plazo de presentación reducido</label>
|
|
}
|
|
</div>
|
|
|
|
@* TABLA TRABAJO/HORA *@
|
|
|
|
<table class="TablaImprimir mb-0">
|
|
<thead>
|
|
<tr>
|
|
<th>Trabajos</th>
|
|
<th>Horas</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Horas elaboración documentación</td>
|
|
<td class="text-end">@objetoCASA.TrabajoProfesional.HorasTPEDocumentacion.MilesYDecimales() h</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="text-end">Horas de documentación en Despacho Profesional</td>
|
|
<td class="text-start">@objetoCASA.CostesProduccion.HorasProduccionDespachoElabDocumentacion.MilesYDecimales() h</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="text-end">Horas de documentación mediante externalización</td>
|
|
<td class="text-start">@objetoCASA.CostesProduccion.NumHorasMinimoExt.MilesYDecimales() h</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Horas de dirección de obra</td>
|
|
<td class="text-end">@objetoCASA.TrabajoProfesional.HorasTPEDireccion.MilesYDecimales() h</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="2" class="TotalesTabla text-end fw-bold">Horas trabajo profesional @objetoCASA.TrabajoProfesional.TotalHorasTPE.MilesYDecimales() h</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
<div class="col-12 mx-auto" >
|
|
@* TABLA COSTES ASOCIADOS A LOS SEVICIOS DE ARQUITECTURA *@
|
|
|
|
<div class="col-8 mx-auto" style=" margin-top:70px;">
|
|
<div class="TituloTablaImprimir">
|
|
</div>
|
|
|
|
<div class="TituloTablaImprimir" style=" margin-top:70px;">
|
|
<p>
|
|
<b>Costes Asociados a los Servicios de Arquitectura</b>
|
|
</p>
|
|
</div>
|
|
|
|
<table class="tablaAlter" style="width:100%;">
|
|
<tbody style="font-size:9pt;">
|
|
<tr>
|
|
<td class="TotalesTabla" > COSTES DE PRODUCCIÓN DEL TRABAJO PROFESIONAL: </td>
|
|
|
|
<td class=" TotalesTabla tdAlineadoDerecha" style="width: 30%;">
|
|
@objetoCASA.CostesProduccion.CostesProduccionTrabProf.MilesYDecimales() €
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="TotalesTabla">Beneficio <span style="font-size:7pt;">(antes de impuestos)</span> </td>
|
|
<td class="tdAlineadoDerecha TotalesTabla">
|
|
<div class="justify-content-end" style="gap:3px;">
|
|
<span>@objetoCASA.CostesProduccion.Beneficio %</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot style=" border-top: 1px solid black;">
|
|
<tr>
|
|
<td colspan="2" class="text-end fw-bold TotalesTabla tablaCACOA">
|
|
Precio del trabajo profesional: <span>@objetoCASA.CostesProduccion.PrecioTrabProf.MilesYDecimales() € </span>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
|
|
</div>
|
|
|
|
@* TABLA OTROS TRABAJOS INCLUIDOS EN EL ENCARGO *@
|
|
@if (objetoCASA.CostesProduccion.OtrosTrabajos.Count != 0)
|
|
{
|
|
<div class="col-8 mx-auto">
|
|
|
|
<div class="TituloTablaImprimir" >
|
|
<b>Otros trabajos incluidos en el Encargo</b>
|
|
</div>
|
|
<div class="table-responsive espacioTablas">
|
|
|
|
<table class="TablaImprimir mb-0" style="width:100%;">
|
|
<thead>
|
|
<tr>
|
|
<th>Encargo</th>
|
|
<th >Precio</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
@foreach (var otroTrabajo in objetoCASA.CostesProduccion.OtrosTrabajos)
|
|
{
|
|
<tr>
|
|
<td>@otroTrabajo.Denominacion</td>
|
|
<td class="text-end">@otroTrabajo.Coste.MilesYDecimales() €</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
<tfoot style=" border-top: 1px solid black;">
|
|
<tr>
|
|
<td colspan="2" class="text-end fw-bold colorC TotalesTabla">
|
|
<div class="d-flex justify-content-end">
|
|
<div style="align-self: center;">
|
|
Total Otros trabajos:
|
|
<span> @objetoCASA.CostesProduccion.TotalOtrosTrabajos.MilesYDecimales() €</span>
|
|
</div>
|
|
</div>
|
|
|
|
</td>
|
|
</tr>
|
|
|
|
<tr style=" border-bottom: 1px solid black;">
|
|
<td colspan="2" style="font-size:10pt;" class="text-end fw-bold TotalesTabla">
|
|
Precio del encargo: <span>@objetoCASA.CostesProduccion.PrecioDelEncargo.MilesYDecimales() € </span>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
}
|
|
</div>
|
|
|
|
|
|
<div class="FooterImprimir">
|
|
|
|
<p>
|
|
@mspie1
|
|
</p>
|
|
<p>
|
|
@mspie2
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
@code {
|
|
|
|
[Parameter]
|
|
public bdHerramientaCACOA.CASA objetoCASA { get; set; } = new bdHerramientaCACOA.CASA();
|
|
|
|
public int totalUsos = 0;
|
|
|
|
public tsHerramientasCACOA bd;
|
|
|
|
public string estiloTrabajos = "";
|
|
|
|
|
|
MarkupString msTextoEncabezado => (MarkupString)textoEncabezado;
|
|
MarkupString mspie1 => (MarkupString)pie1;
|
|
MarkupString mspie2 => (MarkupString)pie2;
|
|
|
|
string textoEncabezado = "";
|
|
string pie1 = "";
|
|
string pie2 = "";
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
|
|
totalUsos = objetoCASA.TrabajoProfesional.Usos.Count;
|
|
|
|
estiloTrabajos = objetoCASA.TrabajoProfesional.Usos.Count != 0 ? "align-items: flex-end; margin-top:50px;" : "align-items: flex-end; margin-top:150px;";
|
|
|
|
textoEncabezado = bd.enumeraciones.First(x => x.Codigo.Contains("PDFCASA")).ValorAlfabeticoLargo;
|
|
|
|
pie1 = bd.enumeraciones.First(x => x.Codigo.Contains(".PDFPIE1")).ValorAlfabeticoLargo;
|
|
pie2 = bd.enumeraciones.First(x => x.Codigo.Contains(".PDFPIE2")).ValorAlfabeticoLargo;
|
|
}
|
|
public void RefreshState()
|
|
{
|
|
this.StateHasChanged();
|
|
}
|
|
|
|
}
|