From e4a9271ed0ecbf022b4ca9fbda778fdffaad24c4 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 28 Jul 2025 12:27:10 +0200 Subject: [PATCH] =?UTF-8?q?a=C3=B1adido=20incremento=20en=20licitaciones?= =?UTF-8?q?=20CASA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CostesProLicitaciones.razor | 9 +++- bdHerramientaCACOA/HerramientaUrban/URBAN.cs | 24 ++++++++++ bdHerramientaCACOA/LICITACIONES.cs | 47 +++++++++++++++++-- 3 files changed, 74 insertions(+), 6 deletions(-) diff --git a/HerramientaCASA/Components/Pages/LicitacionesGrids/CostesProLicitaciones.razor b/HerramientaCASA/Components/Pages/LicitacionesGrids/CostesProLicitaciones.razor index fae5e23..03ba451 100644 --- a/HerramientaCASA/Components/Pages/LicitacionesGrids/CostesProLicitaciones.razor +++ b/HerramientaCASA/Components/Pages/LicitacionesGrids/CostesProLicitaciones.razor @@ -15,7 +15,14 @@ - Plazo de presentación de la documentación: + + Plazo de presentación de la documentación: + @if (objetoLicitaciones.IncrementoUrgencia > 0) + { +
+ Incremento del @objetoLicitaciones.IncrementoUrgencia% en los costes de producción de la documentación por plazo de presentación reducido + } +
@* meses *@ diff --git a/bdHerramientaCACOA/HerramientaUrban/URBAN.cs b/bdHerramientaCACOA/HerramientaUrban/URBAN.cs index 510c0aa..456ca31 100644 --- a/bdHerramientaCACOA/HerramientaUrban/URBAN.cs +++ b/bdHerramientaCACOA/HerramientaUrban/URBAN.cs @@ -317,5 +317,29 @@ namespace bdHerramientaCACOA.HerramientaURBAN } #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; + // } + + //} } } diff --git a/bdHerramientaCACOA/LICITACIONES.cs b/bdHerramientaCACOA/LICITACIONES.cs index 5875ba5..6b93fd2 100644 --- a/bdHerramientaCACOA/LICITACIONES.cs +++ b/bdHerramientaCACOA/LICITACIONES.cs @@ -50,7 +50,7 @@ namespace bdHerramientaCACOA public int idGradMed { get; set; } = 0; public int idDelin { get; set; } = 0; - + public double IncrementoUrgencia { get; set; } = 0; public double PlazoPresentacionDocumentos { get; set; } = 0; public double CostesProduccionTrabProf { get; set; } = 0; @@ -102,7 +102,7 @@ namespace bdHerramientaCACOA ft.Codigo = enu.Codigo; ft.Denominacion = enu.ValorAlfabetico1; ft.Porcentaje = (double)enu.ValorNumerico1; - + ft.PlazoMinimo = enu.ValorNumerico2 == null ? null : (double)enu.ValorNumerico2; FasesTrabajo.Add(ft); } } @@ -295,14 +295,29 @@ namespace bdHerramientaCACOA // calcular coste hora de produccion costeHoraProduccion = CosteCDCI * (1 + tasaCostesVariables); + if (PlazoPresentacionDocumentos == 0) { CostesProduccionTrabProf = 0; } - else { - CostesProduccionTrabProf = (horasProduccion * coefPlazos * costeHoraProduccion).DosDecimales(); + else + { + 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); PrecioTrabProf = Math.Round(PrecioTrabProf, 2, MidpointRounding.AwayFromZero); @@ -465,7 +480,29 @@ namespace bdHerramientaCACOA 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 int idConvenioColectivo { get; set; } = 0;