From d180046348abc4275a4c58becf31175af2fb61ca Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 30 Jul 2025 08:47:10 +0200 Subject: [PATCH] cambios pre vacaciones perea pa subir --- .../CostesProducURBAN/HorasCostesURBAN.razor | 2 +- .../HerramientaURBANTabs/TrabProfUrban.razor | 93 ++++++++-- .../TrabajoProfURBAN/FasesURBAN.razor | 2 +- .../Components/Pages/Licitaciones.razor | 59 ++++-- .../CostesProLicitaciones.razor | 19 +- .../Components/Pages/LicitacionesURBAN.razor | 170 ++++++++++++------ .../URBANTrabajoProfesional.cs | 3 + bdHerramientaCACOA/LICITACIONES.cs | 22 ++- bdHerramientaCACOA/LicitacionesURBAN.cs | 16 +- 9 files changed, 284 insertions(+), 102 deletions(-) diff --git a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/CostesProducURBAN/HorasCostesURBAN.razor b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/CostesProducURBAN/HorasCostesURBAN.razor index 734f258..c8294a3 100644 --- a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/CostesProducURBAN/HorasCostesURBAN.razor +++ b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/CostesProducURBAN/HorasCostesURBAN.razor @@ -53,7 +53,7 @@ - Total horas del trabajo profesional: @objetoURBAN.CostesProduccion.HorasTrabajoProfesional.MilesYDecimales() h + Total horas del trabajo profesional: @((objetoURBAN.CostesProduccion.HorasEnPlazo + objetoURBAN.CostesProduccion.NumHorasMinimoExt).MilesYDecimales()) h diff --git a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabProfUrban.razor b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabProfUrban.razor index 50a92a9..d1a4e97 100644 --- a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabProfUrban.razor +++ b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabProfUrban.razor @@ -3,34 +3,61 @@ @inject NavigationManager Navigation @using HerramientaCASA.Components.Pages.HerramientaURBANTabs.TrabajoProfURBAN @using bdHerramientaCACOA.HerramientaURBAN - -
+
+ + +
+@if (modificarTabla) +{ +
- +
-
+
-
-
- - - +
+
+ + + +
+
+ + + +
-
- - - +} +else +{ +
+
+ + + + + + + + +
HORAS TRABAJO PROFESIONAL URBANISMO: +
+ h +
+
+
-
+} @code { [Parameter] public URBAN objetoURBAN { get; set; } = new URBAN(); public tsHerramientasCACOA bd; - + public bool modificarTabla = true; + public bool modificarHoras = false; protected override async Task OnInitializedAsync() { bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false); @@ -39,4 +66,40 @@ { this.StateHasChanged(); } + + private async void modificarTablaChanged(bool res) + { + // objetoCASA.TrabajoProfesional.HorasTPE = 0; + // objetoCASA.TrabajoProfesional.HorasTPEDocumentacion = 0; + // objetoCASA.TrabajoProfesional.HorasTPEDireccion = 0; + + // if (objetoCASA.TrabajoProfesional.Usos.ToList().Count() != 0) + // { + // objetoCASA.CalcularHorasTPE(); + // } + + modificarTabla = res; + modificarHoras = !res; + objetoURBAN.TrabajoProfesional.EsPorUsos = true; + //objetoLicitaciones.CalcularHorasSuperficie(); + await InvokeAsync(StateHasChanged); + } + private async void modificarHorasChanged(bool res) + { + // horasTPEOriginal = objetoCASA.TrabajoProfesional.HorasTPE; + // ultimaHoraDocumentacion = objetoCASA.TrabajoProfesional.HorasTPEDocumentacion; + // ultimaHoraObra = objetoCASA.TrabajoProfesional.HorasTPEDireccion; + + + modificarHoras = res; + modificarTabla = !res; + objetoURBAN.TrabajoProfesional.EsPorUsos = false; + //objetoLicitaciones.CalcularHorasSuperficie(); + await InvokeAsync(StateHasChanged); + } + + private async void CalcularWea() + { + objetoURBAN.CalcularCostesProduccion(); + } } diff --git a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabajoProfURBAN/FasesURBAN.razor b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabajoProfURBAN/FasesURBAN.razor index 4d43cf2..c68d6db 100644 --- a/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabajoProfURBAN/FasesURBAN.razor +++ b/HerramientaCASA/Components/Pages/HerramientaURBANTabs/TrabajoProfURBAN/FasesURBAN.razor @@ -104,7 +104,7 @@ { objeto.Porcentaje = (double)e; objetoURBAN.ActualizarFase(objeto); - + await InvokeAsync(StateHasChanged); _Parent.RefreshState(); } diff --git a/HerramientaCASA/Components/Pages/Licitaciones.razor b/HerramientaCASA/Components/Pages/Licitaciones.razor index 055213c..fd432c8 100644 --- a/HerramientaCASA/Components/Pages/Licitaciones.razor +++ b/HerramientaCASA/Components/Pages/Licitaciones.razor @@ -54,7 +54,7 @@
Convenio Colectivo:
- + @@ -65,23 +65,26 @@
-
+
+ @if (modificarTabla) + {
+ + }
- -
- - - -
+
+ + + +
@@ -118,7 +121,7 @@
*@ -
+

Datos configuración para revisión de datos

superficie @objetoLicitaciones.superficie;
Coef sup total @objetoLicitaciones.coefSupTotal; (sin redondeo:@objetoLicitaciones.coefsinredondeo)
@@ -139,7 +142,7 @@ tasa costes var @objetoLicitaciones.tasaCostesVariables;
coste hora prod @objetoLicitaciones.costeHoraProduccion;
-
+
Tabla CD+CI para visualizacion de datos, se quitara cuando se vea que los calculos son correctos
IPC Coste Indirecto:@objetoLicitaciones.Variables.IPCCosteIndirecto;
- Coste hora de producción - @objetoLicitaciones.costeHoraProduccion.MilesYDecimales() € + @objetoLicitaciones.costeHoraProduccion.MilesYDecimales() h + Horas Trabajo profesional - @objetoLicitaciones.horasProduccion.MilesYDecimales() € + + @if (objetoLicitaciones.EsPorUsos) + { + + @objetoLicitaciones.horasProduccion.MilesYDecimales() h + + } + else + { +
+ h +
+ } + diff --git a/HerramientaCASA/Components/Pages/LicitacionesURBAN.razor b/HerramientaCASA/Components/Pages/LicitacionesURBAN.razor index 417e4ad..61f3ded 100644 --- a/HerramientaCASA/Components/Pages/LicitacionesURBAN.razor +++ b/HerramientaCASA/Components/Pages/LicitacionesURBAN.razor @@ -14,67 +14,71 @@ -

- @TextoSuperior -

+

+ @TextoSuperior +

@if (!actualizado) - { -
- Esta simulación utiliza valores desactualizados. ¿Quiere Realizar una copia actualizada? - -
- } - - -
+{ +
+ Esta simulación utiliza valores desactualizados. ¿Quiere Realizar una copia actualizada? + +
+} + + +
- @if (TituloBoton == "Guardar") - { -

Se va a guardar esta nueva simulación podrá acceder a ella para consultarla y editarla desde el apartado Mis Simulaciones

- } - else - { + @if (TituloBoton == "Guardar") + { +

Se va a guardar esta nueva simulación podrá acceder a ella para consultarla y editarla desde el apartado Mis Simulaciones

+ } + else + {

Se van a sobrescribir los datos de la simulación actual con los cambios realizados, esta opción no puede deshacerse.

¿Desea continuar?

- } -
-
- - - - -
+ } +
+
+ + + + +
Nombre de la licitación:
-
-
-
Convenio Colectivo:
- - - - - - - - - - +
+
+
Convenio Colectivo:
+ + + + + + + + + + +
-
- - -
-
+
+ + +
+ @if (modificarTabla) + { +
+
- -
+ } +
@@ -82,12 +86,12 @@
- + - @* + @* *@
@@ -109,7 +113,7 @@ @* meses *@ meses
@@ -120,7 +124,20 @@ Horas Trabajo Profesional - @objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h + + @if (objetoLicitacionUrban.EsPorUsos) + { + + @objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional.MilesYDecimales() h + + } + else + { +
+ h +
+ } + Coste de producción del Trabajo Profesional @@ -150,18 +167,18 @@
-
+
Tabla CD+CI para visualizacion de datos, se quitara cuando se vea que los calculos son correctos
IPC Coste Indirecto:@objetoLicitacionUrban.Variables.IPCCosteIndirecto;
+ Class="tablaCACOA table" + Data="objetoLicitacionUrban.Enumerados.ListaCDCI" + AllowFiltering="false" + PageSize="10" + Height="100" + EmptyText="No hay registros." + PageSizeSelectorVisible="false" + Responsive="true"> @context.NumeroTrabajadores @@ -214,6 +231,9 @@ private int idUser = 0; + public bool modificarTabla = true; + public bool modificarHoras = false; + protected override async Task OnInitializedAsync() { try @@ -405,5 +425,37 @@ { await popupGuardar.HideAsync(); } + + private async void modificarTablaChanged(bool res) + { + // objetoCASA.TrabajoProfesional.HorasTPE = 0; + // objetoCASA.TrabajoProfesional.HorasTPEDocumentacion = 0; + // objetoCASA.TrabajoProfesional.HorasTPEDireccion = 0; + + // if (objetoCASA.TrabajoProfesional.Usos.ToList().Count() != 0) + // { + // objetoCASA.CalcularHorasTPE(); + // } + + modificarTabla = res; + modificarHoras = !res; + objetoLicitacionUrban.EsPorUsos = true; + objetoLicitacionUrban.TrabajoProfesional.horasTrabProfesional = 0; + // objetoLicitacionUrban.CalcularHorasSuperficie(); + await InvokeAsync(StateHasChanged); + } + private async void modificarHorasChanged(bool res) + { + // horasTPEOriginal = objetoCASA.TrabajoProfesional.HorasTPE; + // ultimaHoraDocumentacion = objetoCASA.TrabajoProfesional.HorasTPEDocumentacion; + // ultimaHoraObra = objetoCASA.TrabajoProfesional.HorasTPEDireccion; + + + modificarHoras = res; + modificarTabla = !res; + objetoLicitacionUrban.EsPorUsos = false; + // objetoLicitacionUrban.CalcularHorasSuperficie(); + await InvokeAsync(StateHasChanged); + } } diff --git a/bdHerramientaCACOA/HerramientaUrban/URBANTrabajoProfesional.cs b/bdHerramientaCACOA/HerramientaUrban/URBANTrabajoProfesional.cs index a31d0fd..8b523bb 100644 --- a/bdHerramientaCACOA/HerramientaUrban/URBANTrabajoProfesional.cs +++ b/bdHerramientaCACOA/HerramientaUrban/URBANTrabajoProfesional.cs @@ -22,6 +22,8 @@ namespace bdHerramientaCACOA.HerramientaURBAN public double horasTrabProfesional { get; set; } = 0; + public bool EsPorUsos { get; set; } = true; + public List DocumentacionMinima { get; set; } = new List(); public List DocumentacionOpcional { get; set; } = new List(); @@ -54,6 +56,7 @@ namespace bdHerramientaCACOA.HerramientaURBAN double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos; TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales(); + CalcularCostesProduccion(); } public double ObtenerHoraTipoDocumento() diff --git a/bdHerramientaCACOA/LICITACIONES.cs b/bdHerramientaCACOA/LICITACIONES.cs index 6b93fd2..8d03828 100644 --- a/bdHerramientaCACOA/LICITACIONES.cs +++ b/bdHerramientaCACOA/LICITACIONES.cs @@ -52,7 +52,7 @@ namespace bdHerramientaCACOA public double IncrementoUrgencia { get; set; } = 0; public double PlazoPresentacionDocumentos { get; set; } = 0; - + public bool EsPorUsos { get; set; } = true; public double CostesProduccionTrabProf { get; set; } = 0; double _beneficio = 19; @@ -207,8 +207,8 @@ namespace bdHerramientaCACOA public double costeHoraProduccion { get; set; } = 0; public void CalcularHorasSuperficie() { // calcular superficie total - superficie = Usos.Sum(x => x.superficie); - if (superficie > 0) { + superficie = Usos.Sum(x => x.superficie); + if (superficie > 0 || !EsPorUsos) { // calcular coef superficie total coefsinredondeo = -0.1375 * Math.Log(superficie) + 2.4; coefSupTotal = Math.Round( coefsinredondeo,2, MidpointRounding.AwayFromZero); @@ -231,12 +231,18 @@ namespace bdHerramientaCACOA // calcular fases encargadas fasesEncargadas = FasesTrabajo.Where(x=>x.Seleccionado).Sum(x=> x.Porcentaje); - // calcular horas produccion trabajo profesional - horasProduccion = Math.Round((superficie*coefSupTotal*coefTipoTotal*coefIntervencionTotal*(fasesEncargadas/100)), 2, MidpointRounding.AwayFromZero); ; + // calcular horas produccion trabajo profesional + if (EsPorUsos) + { + horasProduccion = Math.Round((superficie * coefSupTotal * coefTipoTotal * coefIntervencionTotal * (fasesEncargadas / 100)), 2, MidpointRounding.AwayFromZero); + // calcular horas elaboracion documentacion + horasPorcentaje = FasesTrabajo.Where(x => x.Codigo.Contains("ESTPREVIO") || x.Codigo.Contains("ANTEPROYECTO") || x.Codigo.Contains("PROYBASICO") || x.Codigo.Contains("PROYEJEC")).Sum(x => x.Porcentaje); + horasDocumentacion = Math.Round(superficie * coefSupTotal * coefTipoTotal * coefIntervencionTotal * (horasPorcentaje / 100), 2, MidpointRounding.AwayFromZero); + } + else { + horasDocumentacion = horasProduccion; + } - // calcular horas elaboracion documentacion - horasPorcentaje = FasesTrabajo.Where(x=> x.Codigo.Contains("ESTPREVIO") || x.Codigo.Contains("ANTEPROYECTO") || x.Codigo.Contains("PROYBASICO") || x.Codigo.Contains("PROYEJEC")).Sum(x=>x.Porcentaje) ; - horasDocumentacion = Math.Round(superficie * coefSupTotal * coefTipoTotal * coefIntervencionTotal*(horasPorcentaje/100), 2, MidpointRounding.AwayFromZero); // calcular plazo medio(meses) esto hay que preguntarlo plazoMedio = 3; diff --git a/bdHerramientaCACOA/LicitacionesURBAN.cs b/bdHerramientaCACOA/LicitacionesURBAN.cs index c4a304e..4ba7087 100644 --- a/bdHerramientaCACOA/LicitacionesURBAN.cs +++ b/bdHerramientaCACOA/LicitacionesURBAN.cs @@ -32,6 +32,8 @@ namespace bdHerramientaCACOA public double Beneficio { get; set; } = 19; public double PrecioDelTrabajo { get; set; } = 0; + public bool EsPorUsos { get; set; } = true; + private URBANTrabajoProfesional _TrabajoProfesional = new URBANTrabajoProfesional(); public URBANTrabajoProfesional TrabajoProfesional { @@ -220,11 +222,17 @@ namespace bdHerramientaCACOA } public void CalcularHorasTrabajoProfesional() { - double valorhoras = ObtenerHoraTipoDocumento(); - double totalEncargo = TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); - double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos; + if (EsPorUsos) + { + double valorhoras = ObtenerHoraTipoDocumento(); + double totalEncargo = TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje); + double porcentajeInnovacion = TrabajoProfesional.valorInstrumentos; - TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales(); + TrabajoProfesional.horasTrabProfesional = (valorhoras * (totalEncargo / 100) * (porcentajeInnovacion / 100)).DosDecimales(); + } + else { + + } CalcularLicitacion(); } public double ObtenerHoraTipoDocumento()