añadido incremento en licitaciones CASA

This commit is contained in:
2025-07-28 12:27:10 +02:00
parent 4fd3b09eb0
commit e4a9271ed0
3 changed files with 74 additions and 6 deletions

View File

@@ -15,7 +15,14 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td class="colorFilasIntro fw-bold w4">Plazo de presentación de la documentación:</td> <td class="colorFilasIntro fw-bold w4">
Plazo de presentación de la documentación:
@if (objetoLicitaciones.IncrementoUrgencia > 0)
{
<br />
<span class="fw-normal" style="font-size:10px;">Incremento del @objetoLicitaciones.IncrementoUrgencia% en los costes de producción de la documentación por plazo de presentación reducido</span>
}
</td>
<td class="text-end"> <td class="text-end">
<div class="d-flex" style="gap:3px;"> <div class="d-flex" style="gap:3px;">
@* <InputNumber TValue="int" Locale="es-ES" Min="0" class="inputForm formatoMoneda inputTabla" Value="@objetoLicitaciones.PlazoPresentacionDocumentos" ValueExpression="() => objetoLicitaciones.PlazoPresentacionDocumentos" ValueChanged="(value) => PlazoPresentacionDocumentosCambiado(value)"></InputNumber> meses *@ @* <InputNumber TValue="int" Locale="es-ES" Min="0" class="inputForm formatoMoneda inputTabla" Value="@objetoLicitaciones.PlazoPresentacionDocumentos" ValueExpression="() => objetoLicitaciones.PlazoPresentacionDocumentos" ValueChanged="(value) => PlazoPresentacionDocumentosCambiado(value)"></InputNumber> meses *@

View File

@@ -317,5 +317,29 @@ namespace bdHerramientaCACOA.HerramientaURBAN
} }
#endregion #endregion
//public double CalcularIncremento()
//{
// double incremento = 3.5;
// var listaPlazos = TrabajoProfesional.FasesTrabajo.Where(x => x.Porcentaje > 0 && x.PlazoMinimo != null).ToList();
// if (listaPlazos.Count > 0)
// {
// double meses = (double)listaPlazos.Sum(x => x.PlazoMinimo);
// if (CostesProduccion.PlazoPresentacionDocumentos < meses)
// {
// return (meses - CostesProduccion.PlazoPresentacionDocumentos) * incremento;
// }
// else
// {
// return 0;
// }
// }
// else
// {
// return 0;
// }
//}
} }
} }

View File

@@ -50,7 +50,7 @@ namespace bdHerramientaCACOA
public int idGradMed { get; set; } = 0; public int idGradMed { get; set; } = 0;
public int idDelin { get; set; } = 0; public int idDelin { get; set; } = 0;
public double IncrementoUrgencia { get; set; } = 0;
public double PlazoPresentacionDocumentos { get; set; } = 0; public double PlazoPresentacionDocumentos { get; set; } = 0;
public double CostesProduccionTrabProf { get; set; } = 0; public double CostesProduccionTrabProf { get; set; } = 0;
@@ -102,7 +102,7 @@ namespace bdHerramientaCACOA
ft.Codigo = enu.Codigo; ft.Codigo = enu.Codigo;
ft.Denominacion = enu.ValorAlfabetico1; ft.Denominacion = enu.ValorAlfabetico1;
ft.Porcentaje = (double)enu.ValorNumerico1; ft.Porcentaje = (double)enu.ValorNumerico1;
ft.PlazoMinimo = enu.ValorNumerico2 == null ? null : (double)enu.ValorNumerico2;
FasesTrabajo.Add(ft); FasesTrabajo.Add(ft);
} }
} }
@@ -295,14 +295,29 @@ namespace bdHerramientaCACOA
// calcular coste hora de produccion // calcular coste hora de produccion
costeHoraProduccion = CosteCDCI * (1 + tasaCostesVariables); costeHoraProduccion = CosteCDCI * (1 + tasaCostesVariables);
if (PlazoPresentacionDocumentos == 0) if (PlazoPresentacionDocumentos == 0)
{ {
CostesProduccionTrabProf = 0; CostesProduccionTrabProf = 0;
} }
else { else
CostesProduccionTrabProf = (horasProduccion * coefPlazos * costeHoraProduccion).DosDecimales(); {
IncrementoUrgencia = CalcularIncremento();
if (IncrementoUrgencia == 0)
{
CostesProduccionTrabProf = (horasProduccion * coefPlazos * costeHoraProduccion).DosDecimales();
}
else
{
var incr = 1 + (IncrementoUrgencia / 100);
CostesProduccionTrabProf = ((horasProduccion * incr) *
(coefPlazos * incr) *
(costeHoraProduccion * incr)).DosDecimales();
}
} }
PrecioTrabProf = (CostesProduccionTrabProf * (1 + (Beneficio / 100))).DosDecimales();
PrecioTrabProf = (CostesProduccionTrabProf * (1 + (Beneficio / 100))).DosDecimales();
CostesProduccionTrabProf = Math.Round(CostesProduccionTrabProf, 2, MidpointRounding.AwayFromZero); CostesProduccionTrabProf = Math.Round(CostesProduccionTrabProf, 2, MidpointRounding.AwayFromZero);
PrecioTrabProf = Math.Round(PrecioTrabProf, 2, MidpointRounding.AwayFromZero); PrecioTrabProf = Math.Round(PrecioTrabProf, 2, MidpointRounding.AwayFromZero);
@@ -465,7 +480,29 @@ namespace bdHerramientaCACOA
return listaCDCI; return listaCDCI;
} }
public double CalcularIncremento()
{
double incremento = 3.5;
var listaPlazos = FasesTrabajo.Where(x => x.Porcentaje > 0 && x.PlazoMinimo != null && x.Seleccionado==true).ToList();
if (listaPlazos.Count > 0)
{
double meses = (double)listaPlazos.Sum(x => x.PlazoMinimo);
if (PlazoPresentacionDocumentos < meses)
{
return (meses - PlazoPresentacionDocumentos) * incremento;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
public class ConvenioColectivoConcurso public class ConvenioColectivoConcurso
{ {
public int idConvenioColectivo { get; set; } = 0; public int idConvenioColectivo { get; set; } = 0;