cambios casi terminados. Falta pasar horas a semanas y poner los excels separados

This commit is contained in:
2025-09-22 13:42:07 +02:00
parent c9d929c57d
commit 4d11042fb1
18 changed files with 153 additions and 99 deletions

View File

@@ -67,7 +67,7 @@
<NavLink class="nav-link" href="ConvenioColectivo">Convenio Colectivo</NavLink> <NavLink class="nav-link" href="ConvenioColectivo">Convenio Colectivo</NavLink>
</li> </li>
<li id="liMS" class="nav-item"> <li id="liMS" class="nav-item">
<NavLink class="nav-link" href="DocumentosUrban">Documentos URBAN</NavLink> <NavLink class="nav-link" href="DocumentosUrban">Documentos Urbanismo</NavLink>
</li> </li>
<li id="liMS" class="nav-item"> <li id="liMS" class="nav-item">
<NavLink class="nav-link" href="CalculoCDCI">Calculo CD+CI</NavLink> <NavLink class="nav-link" href="CalculoCDCI">Calculo CD+CI</NavLink>

View File

@@ -65,6 +65,9 @@
{ {
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 30).Descripcion) @UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 30).Descripcion)
} }
<b>Otros trabajos incluidos en el Encargo </b>
} }
else else
{ {
@@ -72,9 +75,9 @@
{ {
@UtilidadesCASA.CreateTooltip(objetoLicitaciones.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 36).Descripcion) @UtilidadesCASA.CreateTooltip(objetoLicitaciones.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 36).Descripcion)
} }
} <b>Otros trabajos incluidos en la Licitación </b>
<b>Otros trabajos incluidos en la Licitación </b> }
</div> </div>
</div> </div>
<div style="position:relative;margin-bottom: 15px;"> <div style="position:relative;margin-bottom: 15px;">

View File

@@ -52,7 +52,7 @@
<Tabs> <Tabs>
<Tab Title="Estadisticas Herramienta CASA" Active> <Tab Title="Estadisticas CASA - Edificación" Active>
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraCASATab ListadoHerraCASA="@listadoHerramientaEstadistica.Where(x=> x.idSimulacionNavigation.idTipoSimulacion == 31).ToList()"></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>
@@ -60,7 +60,7 @@
</Content> </Content>
</Tab> </Tab>
<Tab Title="Estadisticas Licitación CASA"> <Tab Title="Estadisticas Licitaciones Edificación">
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciCASATab ListadoLiciCASA="@listadoHerramientaEstadistica.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 32).ToList()"></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>
@@ -68,7 +68,7 @@
</Content> </Content>
</Tab> </Tab>
<Tab Title="Estadisticas Herramienta URBAN"> <Tab Title="Estadisticas CASA - Urbanismo">
<Content> <Content>
<div class="CajaTab p-2"> <div class="CajaTab p-2">
<HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaHerraURBANTab ListadoHerraURBAN="@listadoHerramientaEstadisticaUrban.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 34).ToList()"></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>
@@ -76,7 +76,7 @@
</Content> </Content>
</Tab> </Tab>
<Tab Title="Estadisticas Licitación URBAN"> <Tab Title="Estadisticas Licitación Urbanismo">
<Content> <Content>
<div class="CajaTab p-2"> <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> <HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciURBANTab ListadoLiciURBAN="@listadoHerramientaEstadisticaUrban.Where(x => x.idSimulacionNavigation.idTipoSimulacion == 35).ToList()"></HerramientaCASA.Components.Pages.ConfiguracionPages.EstadisticasTabs.EstadisticaLiciURBANTab>

View File

@@ -77,11 +77,6 @@
<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">
<label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">% externalización:</label> <label class="tituloLbl">% externalización:</label>
<label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion %</label> <label class="tituloLbl">@estadisticasTotales.porcentajeExternalizacion %</label>

View File

@@ -36,12 +36,6 @@
<label class="tituloLbl">Horas trabajo:</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">
<label class="tituloLbl">Horas trabajo:</label>
<label class="tituloLbl">@estadisticasTotales.horasTrabajo.MilesYDecimales() h</label>
</div>
<div class="col-2 formatoCampos pt-2"> <div class="col-2 formatoCampos pt-2">
<label class="tituloLbl">Plazo presentación:</label> <label class="tituloLbl">Plazo presentación:</label>
<label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label> <label class="tituloLbl">@estadisticasTotales.plazoPresentacion</label>

View File

@@ -143,7 +143,7 @@
{ {
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 26).Descripcion) @UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 26).Descripcion)
} }
<b>Coste hora Despacho Profesional</b> <b>Coste hora de los trabajos realizados por el despacho profesional</b>
</div> </div>
</div> </div>

View File

@@ -16,27 +16,26 @@
<UsosTipologiaGrid objetoCASA="objetoCASA"></UsosTipologiaGrid> <UsosTipologiaGrid objetoCASA="objetoCASA"></UsosTipologiaGrid>
</CascadingValue> </CascadingValue>
</div> </div>
<div class="col-md-3"> <div class="col-md-4">
<CascadingValue Value="this"> <CascadingValue Value="this">
<FasesTrabajoProfesionalGrid objetoCASA="objetoCASA"></FasesTrabajoProfesionalGrid> <FasesTrabajoProfesionalGrid objetoCASA="objetoCASA"></FasesTrabajoProfesionalGrid>
</CascadingValue> </CascadingValue>
</div> </div>
<div class="col-md-9"> <div class="col-md-8">
<CascadingValue Value="this"> <CascadingValue Value="this">
<CoeficientesCorrectoresGrid objetoCASA="objetoCASA"></CoeficientesCorrectoresGrid> <CoeficientesCorrectoresGrid objetoCASA="objetoCASA"></CoeficientesCorrectoresGrid>
</CascadingValue> </CascadingValue>
</div> </div>
<div class="col-md-3 col-0"> <div class="col-md-4 ">
</div>
<div class="col-md-9 col-12">
<div class="row">
<div class="col-md-6 col-12">
<CascadingValue Value="this"> <CascadingValue Value="this">
<TablaHorasGrid objetoCASA="objetoCASA"></TablaHorasGrid> <TablaHorasGrid inputsEditables="false" objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue> </CascadingValue>
</div> </div>
</div> <div class="col-md-4 ">
<CascadingValue Value="this">
<TablaHorasGrid inputsEditables="true" objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue>
</div> </div>
} }
@if (modificarHoras) @if (modificarHoras)
@@ -48,7 +47,7 @@
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
<CascadingValue Value="this"> <CascadingValue Value="this">
<TablaHorasGrid objetoCASA="objetoCASA"></TablaHorasGrid> <TablaHorasGrid inputsEditables="true" objetoCASA="objetoCASA"></TablaHorasGrid>
</CascadingValue> </CascadingValue>
</div> </div>
} }

View File

@@ -1,14 +1,17 @@
<div class="row"> <div class="row">
<div class="col-md-6" style="margin-top:50px; width: 100%; display: flex;"> <div class="col-md-6" style="margin-top:50px; width:100%;">
<div class="d-flex justify-content-between mt-3 mb-2">
<div><b>@tituloTabla</b></div>
</div>
<table class="tablaAlter" style="width:100%"> <table class="tablaAlter" style="width:100%">
<tr> <tr>
<td class="tdAlter TotalesTabla"> HORAS TRABAJO PROFESIONAL EDIFICACIÓN: </td> <td class="@estiloTabla TotalesTabla"> HORAS TRABAJO PROFESIONAL EDIFICACIÓN: </td>
<td class="tdAlter TotalesTabla tdAlineadoDerecha" style="width: 30%; font-weight:bold;"> <td class="@estiloTabla TotalesTabla tdAlineadoDerecha" style="width: 30%; font-weight:bold;">
@if (!_Parent.modificarHoras) @if (!inputsEditables)
{ {
<span> <span>
@objetoCASA.TrabajoProfesional.TotalHorasTPE.MilesYDecimales() h @objetoCASA.TrabajoProfesional.HorasTPEEstimacion.MilesYDecimales() h
</span> </span>
} }
else else
@@ -23,10 +26,10 @@
<td class="TotalesTabla">Horas TPE Documentacion </td> <td class="TotalesTabla">Horas TPE Documentacion </td>
<td class="tdAlineadoDerecha TotalesTabla"> <td class="tdAlineadoDerecha TotalesTabla">
@if (!_Parent.modificarHoras) @if (!inputsEditables)
{ {
<span> <span>
@objetoCASA.TrabajoProfesional.HorasTPEDocumentacion.MilesYDecimales() h @objetoCASA.TrabajoProfesional.HorasTPEDocumentacionEstimacion.MilesYDecimales() h
</span> </span>
} }
else else
@@ -41,10 +44,10 @@
<td class="TotalesTabla">Horas TPE Dirección de obra </td> <td class="TotalesTabla">Horas TPE Dirección de obra </td>
<td class="tdAlineadoDerecha TotalesTabla"> <td class="tdAlineadoDerecha TotalesTabla">
@if (!_Parent.modificarHoras) @if (!inputsEditables)
{ {
<span> <span>
@objetoCASA.TrabajoProfesional.HorasTPEDireccion.MilesYDecimales() h @objetoCASA.TrabajoProfesional.HorasTPEDireccionEstimacion.MilesYDecimales() h
</span> </span>
} }
else else
@@ -63,9 +66,13 @@
@code { @code {
[CascadingParameter] [CascadingParameter]
public TrabajoProfesional _Parent { get; set; } public TrabajoProfesional _Parent { get; set; }
[Parameter]
public bool inputsEditables { get; set; }
[Parameter] [Parameter]
public CASA objetoCASA { get; set; } = new CASA(); public CASA objetoCASA { get; set; } = new CASA();
// private string estiloTabla => _Parent.modificarHoras == true ? "" : "";
private string estiloTabla => inputsEditables == true ? "tdAlter" : "";
private string tituloTabla => inputsEditables == true ? "Horas trabajo profesional Edificación" : "Estimación de horas necesarias";
} }

View File

@@ -144,7 +144,7 @@
{ {
@UtilidadesCASA.CreateTooltip(objetoURBAN.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 51).Descripcion) @UtilidadesCASA.CreateTooltip(objetoURBAN.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 51).Descripcion)
} }
<b>Coste hora Despacho Profesional</b> <b>Coste hora de los trabajos realizados por el despacho profesional</b>
</div> </div>
</div> </div>

View File

@@ -27,6 +27,8 @@
<CascadingValue Value="this"> <CascadingValue Value="this">
<InstrumentosURBAN objetoURBAN="objetoURBAN"></InstrumentosURBAN> <InstrumentosURBAN objetoURBAN="objetoURBAN"></InstrumentosURBAN>
</CascadingValue> </CascadingValue>
</div> </div>
</div> </div>
} }
@@ -124,7 +126,7 @@ else
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
private async void CalcularWea() public async void CalcularWea()
{ {
objetoURBAN.CalcularCostesProduccion(); objetoURBAN.CalcularCostesProduccion();
} }

View File

@@ -41,8 +41,17 @@
} }
<table class="tablaAlter mt-4" style="width: 100%;"> <table class="tablaAlter mt-4" style="width: 100%;">
<tr> <tr>
<td class="tdAlter TotalesTabla" style="width: 70%;">HORAS TRABAJO PROFESIONAL URBANISMO: </td> <td class=" TotalesTabla" style="width: 70%;">Estimación de horas necesarias: </td>
<td class="tdAlter TotalesTabla tdAlineadoDerecha">@objetoURBAN.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h</td> <td class=" TotalesTabla tdAlineadoDerecha">@objetoURBAN.TrabajoProfesional.horasTrabProfesionalEstimacion.MilesYDecimales() h</td>
</tr>
<tr>
<td class="TotalesTabla tdAlter" style="width:50%;">Horas del trabajo profesional Urbanismo: </td>
<td class="TotalesTabla tdAlineadoDerecha">
<div class=" d-flex">
<InputNumber TValue="double" @onblur="_Parent.CalcularWea" @bind-Value="@objetoURBAN.TrabajoProfesional.horasTrabProfesional" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
</td>
</tr> </tr>
</table> </table>

View File

@@ -59,7 +59,7 @@
<div class="row"> <div class="row">
<div class="col-md-6 mt-3 mb-2"> <div class="col-md-6 mt-3 mb-2">
<div><b>Convenio Colectivo:</b></div> @* <div><b>Convenio Colectivo:</b></div>
<InputSelect @bind-Value="@objetoLicitaciones.idProvincia" class="inputForm" @oninput="e => CalcularTabla(e.Value.ToString())" style="width: 225px;"> <InputSelect @bind-Value="@objetoLicitaciones.idProvincia" class="inputForm" @oninput="e => CalcularTabla(e.Value.ToString())" style="width: 225px;">
<option value="">Estatal</option> <option value="">Estatal</option>
<option value="04">Almería</option> <option value="04">Almería</option>
@@ -70,7 +70,8 @@
<option value="29">Málaga</option> <option value="29">Málaga</option>
<option value="41">Sevilla</option> <option value="41">Sevilla</option>
</InputSelect> </InputSelect>
</div> *@
</div>
<div class="col-md-12 d-flex mt-3" style="gap: 40px;"> <div class="col-md-12 d-flex mt-3" style="gap: 40px;">
<RadioInput style="margin-right: 10px;" Label="Cálculo por superficie y uso" Value="modificarTabla" ValueExpression="() => modificarTabla" ValueChanged="(value) => modificarTablaChanged(value)" /> <RadioInput style="margin-right: 10px;" Label="Cálculo por superficie y uso" Value="modificarTabla" ValueExpression="() => modificarTabla" ValueChanged="(value) => modificarTablaChanged(value)" />
<RadioInput style="margin-right: 10px;" Label="Cálculo por tiempo" Value="modificarHoras" ValueExpression="() => modificarHoras" ValueChanged="(value) => modificarHorasChanged(value)" /> <RadioInput style="margin-right: 10px;" Label="Cálculo por tiempo" Value="modificarHoras" ValueExpression="() => modificarHoras" ValueChanged="(value) => modificarHorasChanged(value)" />

View File

@@ -40,27 +40,34 @@
</div> </div>
</td> </td>
</tr> </tr>
@if (objetoLicitaciones.EsPorUsos == true)
{
<tr>
<td class="colorB w4">Estimación de horas necesarias</td>
<td class="text-end">
<span>
@objetoLicitaciones.horasProduccionEstimacion.MilesYDecimales() h
</span>
</td>
</tr>
}
<tr> <tr>
<td class="colorB w4">Coste hora de producción</td> <td class="colorB w4">Horas del trabajo profesional Edificación</td>
<td class="text-end"><span>@objetoLicitaciones.costeHoraProduccion.MilesYDecimales() €/h</span> <td class="text-end">
<div class="d-flex" style="gap: 3px;">
<InputNumber TValue="double" @onblur="calcularHoras" @bind-Value="@objetoLicitaciones.horasProduccion" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="colorB w4">Horas Trabajo profesional</td> <td class="colorB w4">Coste hora de producción</td>
<td class="text-end"> <td class="text-end"><span>@objetoLicitaciones.costeHoraProduccion.MilesYDecimales() €/h</span>
@if (objetoLicitaciones.EsPorUsos)
{
<span>
@objetoLicitaciones.horasProduccion.MilesYDecimales() h
</span>
}
else
{
<div class="d-flex" style="gap: 3px;">
<InputNumber TValue="double" @onblur="objetoLicitaciones.CalcularHorasSuperficie" @bind-Value="@objetoLicitaciones.horasProduccion" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
}
</td> </td>
</tr> </tr>
@@ -144,4 +151,15 @@
PlazoPresentacionDocumentosCambiado(objetoLicitaciones.PlazoPresentacionDocumentos); PlazoPresentacionDocumentosCambiado(objetoLicitaciones.PlazoPresentacionDocumentos);
} }
private void calcularHoras()
{
bool guardarSeleccion = objetoLicitaciones.EsPorUsos;
objetoLicitaciones.EsPorUsos = false;
objetoLicitaciones.CalcularHorasSuperficie();
objetoLicitaciones.EsPorUsos = guardarSeleccion;
}
} }

View File

@@ -55,7 +55,8 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6 mt-3 mb-2"> <div class="col-md-6 mt-3 mb-2">
<div><b>Convenio Colectivo:</b></div> @*
<div><b>Convenio Colectivo:</b></div>
<InputSelect @bind-Value="@objetoLicitacionUrban.idProvincia" class="inputForm" @oninput="e => CalcularTabla(e.Value.ToString())" style="width: 225px;"> <InputSelect @bind-Value="@objetoLicitacionUrban.idProvincia" class="inputForm" @oninput="e => CalcularTabla(e.Value.ToString())" style="width: 225px;">
<option value="">Estatal</option> <option value="">Estatal</option>
<option value="04">Almería</option> <option value="04">Almería</option>
@@ -65,7 +66,8 @@
<option value="15">Huelva</option> <option value="15">Huelva</option>
<option value="29">Málaga</option> <option value="29">Málaga</option>
<option value="41">Sevilla</option> <option value="41">Sevilla</option>
</InputSelect> </InputSelect>
*@
</div> </div>
</div> </div>
<div class="col-md-12 d-flex mt-3" style="gap: 40px;"> <div class="col-md-12 d-flex mt-3" style="gap: 40px;">
@@ -127,27 +129,35 @@
</div> </div>
</td> </td>
</tr> </tr>
@if (objetoLicitacionUrban.EsPorUsos == true)
{
<tr>
<td style="width:50%;">Estimación de horas necesarias </td>
<td class="tdAlineadoDerecha">
<span>
@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesionalEstimacion.MilesYDecimales() h
</span>
</td>
</tr>
}
<tr>
<td class="" style="width:50%;">Horas trabajo profesional Urbanismo</td>
<td class=" tdAlineadoDerecha">
<div class="d-flex" style="gap: 3px;">
<InputNumber TValue="double" @onblur="calcularHoras" @bind-Value="@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
</td>
</tr>
<tr> <tr>
<td class="colorB w4">Coste hora de producción</td> <td class="colorB w4">Coste hora de producción</td>
<td class="text-end columna40Ancho"><span> @objetoLicitacionUrban.CosteHP.MilesYDecimales() €/hora</span></td> <td class="text-end columna40Ancho"><span> @objetoLicitacionUrban.CosteHP.MilesYDecimales() €/hora</span></td>
</tr> </tr>
<tr>
<td style="width:50%;">Horas Trabajo Profesional </td>
<td class="tdAlineadoDerecha">
@if (objetoLicitacionUrban.EsPorUsos)
{
<span>
@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h
</span>
}
else
{
<div class="d-flex" style="gap: 3px;">
<InputNumber TValue="double" @onblur="objetoLicitacionUrban.CalcularHorasTrabajoProfesional" @bind-Value="@objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional" Min="0" class="inputForm inputTabla tdAlineadoDerecha" />h
</div>
}
</td>
</tr>
<tr> <tr>
<td class="w4 tdAlter fw-bold TotalesTabla">COSTE DE PRODUCCIÓN DEL TRABAJO PROFESIONAL</td> <td class="w4 tdAlter fw-bold TotalesTabla">COSTE DE PRODUCCIÓN DEL TRABAJO PROFESIONAL</td>
<td class="text-end columna40Ancho tdAlter TotalesTabla"><span> @objetoLicitacionUrban.CostesProduccionTrabProf.MilesYDecimales() €</span></td> <td class="text-end columna40Ancho tdAlter TotalesTabla"><span> @objetoLicitacionUrban.CostesProduccionTrabProf.MilesYDecimales() €</span></td>
@@ -341,7 +351,7 @@
} }
else else
{ {
idSimulador = crearSimulacion(jsonObjeto).ToString(); idSimulador = crearSimulacion(jsonObjeto).ToString();
} }
} }
else else
@@ -498,7 +508,7 @@
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' rel='stylesheet' integrity='sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN' crossorigin='anonymous'> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css' rel='stylesheet' integrity='sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN' crossorigin='anonymous'>
</head> </head>
<body> <body>
{contenidoHtml} {contenidoHtml}
</body> </body>
</html>"; </html>";
@@ -559,4 +569,16 @@
await JS.InvokeVoidAsync("mostrarPdf", Convert.ToBase64String(pdfBytes)); await JS.InvokeVoidAsync("mostrarPdf", Convert.ToBase64String(pdfBytes));
} }
private void calcularHoras()
{
bool guardarSeleccion = objetoLicitacionUrban.EsPorUsos;
objetoLicitacionUrban.EsPorUsos = false;
objetoLicitacionUrban.CalcularHorasTrabajoProfesional();
objetoLicitacionUrban.EsPorUsos = guardarSeleccion;
}
} }

View File

@@ -456,6 +456,11 @@ namespace bdHerramientaCACOA
double totalHorasTPEDireccion = CalcularHorasTPEDireccion(); double totalHorasTPEDireccion = CalcularHorasTPEDireccion();
TrabajoProfesional.HorasTPEDireccion = double.IsNaN(totalHorasTPEDireccion) ? 0 : totalHorasTPEDireccion; TrabajoProfesional.HorasTPEDireccion = double.IsNaN(totalHorasTPEDireccion) ? 0 : totalHorasTPEDireccion;
TrabajoProfesional.TotalHorasTPE = totalHorasTPEDocu + totalHorasTPEDireccion; TrabajoProfesional.TotalHorasTPE = totalHorasTPEDocu + totalHorasTPEDireccion;
TrabajoProfesional.HorasTPEEstimacion = TrabajoProfesional.HorasTPE;
TrabajoProfesional.HorasTPEDocumentacionEstimacion = TrabajoProfesional.HorasTPEDocumentacion;
TrabajoProfesional.HorasTPEDireccionEstimacion = TrabajoProfesional.HorasTPEDireccion;
CalcularCostesProduccion(); CalcularCostesProduccion();
} }
public void CalcularHorasTPEManual(double horasDocu, double horasDireccion) public void CalcularHorasTPEManual(double horasDocu, double horasDireccion)
@@ -818,8 +823,10 @@ namespace bdHerramientaCACOA
public double HorasTPEDocumentacion { get; set; } = 0; public double HorasTPEDocumentacion { get; set; } = 0;
public double HorasTPEDireccion { get; set; } = 0; public double HorasTPEDireccion { get; set; } = 0;
public double HorasTPEEstimacion { get; set; } = 0;
public double HorasTPEDocumentacionEstimacion { get; set; } = 0;
public double HorasTPEDireccionEstimacion { get; set; } = 0;
} }
public class UsosTipologia public class UsosTipologia
{ {

View File

@@ -21,6 +21,7 @@ namespace bdHerramientaCACOA.HerramientaURBAN
public double valorInstrumentos { get; set; } = 0; public double valorInstrumentos { get; set; } = 0;
public double horasTrabProfesional { get; set; } = 0; public double horasTrabProfesional { get; set; } = 0;
public double horasTrabProfesionalEstimacion { get; set; } = 0;
public bool EsPorUsos { get; set; } = true; public bool EsPorUsos { get; set; } = true;
@@ -56,6 +57,7 @@ namespace bdHerramientaCACOA.HerramientaURBAN
double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos; double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos;
TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales(); TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales();
TrabajoProfesional.horasTrabProfesionalEstimacion = TrabajoProfesional.horasTrabProfesional;
CalcularCostesProduccion(); CalcularCostesProduccion();
} }

View File

@@ -57,19 +57,7 @@ namespace bdHerramientaCACOA
public bool EsPorUsos { get; set; } = true; public bool EsPorUsos { get; set; } = true;
public double CostesProduccionTrabProf { get; set; } = 0; public double CostesProduccionTrabProf { get; set; } = 0;
double _beneficio = 19; public double Beneficio { get; set; } = 19;
public double Beneficio
{
get
{
return _beneficio;
}
//set
//{
// _beneficio = value;
// CalcularHorasSuperficie();
//}
}
public double PrecioTrabProf { get; set; } = 0; public double PrecioTrabProf { get; set; } = 0;
@@ -86,6 +74,8 @@ namespace bdHerramientaCACOA
Variables.HorasProduccionMedia = (int)bd.enumeraciones.First(x => x.Codigo == "VARCASA.HORPRODMEDIA").ValorNumerico1; Variables.HorasProduccionMedia = (int)bd.enumeraciones.First(x => x.Codigo == "VARCASA.HORPRODMEDIA").ValorNumerico1;
Variables.IPCCosteIndirecto = (double) bd.enumeraciones.First(x => x.Codigo == "VARCASA.IPCCD").ValorNumerico1; Variables.IPCCosteIndirecto = (double) bd.enumeraciones.First(x => x.Codigo == "VARCASA.IPCCD").ValorNumerico1;
Beneficio = (double)bd.enumeraciones.First(x => x.Codigo == "VARCASA.GG+BI").ValorNumerico1;
idGradSup = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.TECGRADSUP").idEnumeracion; idGradSup = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.TECGRADSUP").idEnumeracion;
idGradMed = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.GESTPROY").idEnumeracion; idGradMed = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.GESTPROY").idEnumeracion;
@@ -201,6 +191,7 @@ namespace bdHerramientaCACOA
public double coefIntervencionTotal { get; set; } = 0; public double coefIntervencionTotal { get; set; } = 0;
public double fasesEncargadas { get; set; } = 0; public double fasesEncargadas { get; set; } = 0;
public double horasProduccion { get; set; } = 0; public double horasProduccion { get; set; } = 0;
public double horasProduccionEstimacion { get; set; } = 0;
public double horasPorcentaje { get; set; } = 0; public double horasPorcentaje { get; set; } = 0;
public double horasDocumentacion { get; set; } = 0; public double horasDocumentacion { get; set; } = 0;
public double plazoMedio { get; set; } = 0; public double plazoMedio { get; set; } = 0;
@@ -247,6 +238,8 @@ namespace bdHerramientaCACOA
// COMPROBAR SI ESTO ESTÁ BIEN, SINO EL COSTE HORA DE PRODUCCIÓN NO CAMBIA // COMPROBAR SI ESTO ESTÁ BIEN, SINO EL COSTE HORA DE PRODUCCIÓN NO CAMBIA
horasPorcentaje = FasesTrabajo.Where(x=>x.Seleccionado).Sum(x => x.Porcentaje); horasPorcentaje = FasesTrabajo.Where(x=>x.Seleccionado).Sum(x => x.Porcentaje);
horasDocumentacion = Math.Round(superficie * coefSupTotal * coefTipoTotal * coefIntervencionTotal * (horasPorcentaje / 100), 2, MidpointRounding.AwayFromZero); horasDocumentacion = Math.Round(superficie * coefSupTotal * coefTipoTotal * coefIntervencionTotal * (horasPorcentaje / 100), 2, MidpointRounding.AwayFromZero);
horasProduccionEstimacion = horasProduccion;
} }
else { else {

View File

@@ -82,6 +82,7 @@ namespace bdHerramientaCACOA
Variables.JornadaLaboral = (int)bd.enumeraciones.First(x => x.Codigo == "VARCASA.JORLABANUAL").ValorNumerico1; Variables.JornadaLaboral = (int)bd.enumeraciones.First(x => x.Codigo == "VARCASA.JORLABANUAL").ValorNumerico1;
Variables.HorasProduccionMedia = (int) bd.enumeraciones.First(x => x.Codigo == "VARCASA.HORPRODMEDIA").ValorNumerico1; Variables.HorasProduccionMedia = (int) bd.enumeraciones.First(x => x.Codigo == "VARCASA.HORPRODMEDIA").ValorNumerico1;
Variables.IPCCosteIndirecto = (double)bd.enumeraciones.First(x => x.Codigo == "VARCASA.IPCCD").ValorNumerico1; Variables.IPCCosteIndirecto = (double)bd.enumeraciones.First(x => x.Codigo == "VARCASA.IPCCD").ValorNumerico1;
Beneficio = (double)bd.enumeraciones.First(x => x.Codigo == "VARCASA.GG+BI").ValorNumerico1;
idGradSup = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.TECGRADSUP").idEnumeracion; idGradSup = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.TECGRADSUP").idEnumeracion;
idGradMed = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.GESTPROY").idEnumeracion; idGradMed = bd.enumeraciones.First(x => x.Codigo == "PUESTOTRABAJO.GESTPROY").idEnumeracion;
@@ -187,8 +188,8 @@ namespace bdHerramientaCACOA
CosteHP = ((CD+CI)*(1+CV)).DosDecimales(); CosteHP = ((CD+CI)*(1+CV)).DosDecimales();
CostesProduccionTrabProf = (TrabajoProfesional.horasTrabProfesional*CosteHP).DosDecimales(); CostesProduccionTrabProf = (TrabajoProfesional.horasTrabProfesional*CosteHP).DosDecimales();
Beneficio = 0.19; //Beneficio = 0.19;
PrecioDelTrabajo = (CostesProduccionTrabProf*(1+Beneficio)).DosDecimales(); PrecioDelTrabajo = (CostesProduccionTrabProf*(1+(Beneficio/100))).DosDecimales();
} }
private double ObtenerCDTabla(double horas) private double ObtenerCDTabla(double horas)
@@ -252,6 +253,7 @@ namespace bdHerramientaCACOA
double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos; double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos;
TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales(); TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales();
TrabajoProfesional.horasTrabProfesionalEstimacion = TrabajoProfesional.horasTrabProfesional;
} }
else { else {