añadida la nueva tabla y terminado HerramientaCASA de puntos info

This commit is contained in:
2025-09-04 14:21:45 +02:00
parent be2f55153a
commit bab4e591a1
21 changed files with 188 additions and 25 deletions

View File

@@ -12,7 +12,7 @@
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
<link href="_content/Blazor.Bootstrap/Blazor.Bootstrap.bundle.scp.css" rel="stylesheet" />
<link href="Content/Site.css?v=0.49" rel="stylesheet" />
<link href="Content/Site.css?v=0.50" rel="stylesheet" />
<link href="Content/all.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<script src="Scripts/jquery.min.js"></script>

View File

@@ -58,8 +58,15 @@
<div class="mt-3">
<div style="height: 24px;">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(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>
</div>
</div>
<div style="position:relative;margin-bottom: 15px;">
<Grid TItem="CASA.OtrosTrabajos"
Class="tablaCACOA table"

View File

@@ -16,7 +16,16 @@
</td>
</tr>
<tr>
<td class="TotalesTabla"><b>Beneficio</b> (antes de impuestos) </td>
<td class="TotalesTabla">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 29).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 29).Descripcion)
}
<b>Beneficio</b> (antes de impuestos)
</div></td>
<td class="tdAlineadoDerecha TotalesTabla">
<div class="d-flex" style="gap:3px;">
<InputNumber TValue="double" Locale="es-ES" Min="0" class="inputForm formatoMoneda inputTabla" Value="@objetoCASA.CostesProduccion.Beneficio" ValueExpression="() => objetoCASA.CostesProduccion.Beneficio" ValueChanged="(value) => BeneficioCambiado(value)"></InputNumber> %

View File

@@ -53,7 +53,15 @@
<div class="row">
<div class="col-md-4 mb-3">
<b>Costes variables</b>
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 25).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 25).Descripcion)
}
<b>Costes variables</b>
</div>
<div class="pt-1 col-md-12 d-flex" style="gap: 40px; height:25px;">
<div class="d-flex">
@@ -129,8 +137,15 @@
</div>
<div class="col-md-4" style="align-items: flex-end;">
<div style="height: 49px;">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(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>
</div>
</div>
<div class="table-responsive">
@@ -173,8 +188,15 @@
<div class="col-md-4">
<div style="height: 49px;">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 27).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 27).Descripcion)
}
<b>Coste hora Externalización</b>
</div>
</div>
<div class="table-responsive">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<thead>

View File

@@ -5,7 +5,16 @@
<div class="col-md-6 row">
<table class="table tablaCACOA tablaCACOA2 mb-0">
<tr>
<td class="colorFilasIntro fw-bold w4" style="width:43%;">Plazo de presentación de la documentación:</td>
<td class="colorFilasIntro fw-bold w4" style="width:43%;">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 28).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 28).Descripcion)
}
Plazo de presentación de la documentación:
</div></td>
<td class="text-end">
<div class="d-flex" style="gap:3px;">
<InputNumber TValue="double"

View File

@@ -21,8 +21,16 @@ Height="100"
Responsive="true">
<GridColumns>
<GridColumn TItem="CASA.CosteIndirecto" HeaderText="Concepto" HeaderTextAlignment="Alignment.Center" PropertyName="Concepto" Class="colorFilasIntro">
@context.Concepto
<GridColumn TItem="CASA.CosteIndirecto" HeaderText="Concepto" HeaderTextAlignment="Alignment.Center" PropertyName="Concepto" Class="colorFilasIntro columna30Ancho">
<div class="puntoInfo">
@if (context.idPuntoInformacion != 0 && !string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.FirstOrDefault(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion)
}
@context.Concepto
</div>
</GridColumn>
<GridColumn TItem="CASA.CosteIndirecto" HeaderTextAlignment="Alignment.Center" Class="formatoMoneda columna30Ancho" HeaderText="Importe" PropertyName="importe">
<div class="d-flex separadorMoneda">

View File

@@ -18,7 +18,12 @@
<BodyTemplate>
<div class="row">
<div class="col-12 formatoCampos">
<label class="tituloLbl">Denominación grupo:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 1).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 1).Descripcion)
}
Denominación grupo:</label>
<InputText @bind-Value="itemSeleccionadoTemporal.Nombre" class="inputForm" list="sugerenciasGrupo"></InputText>
<datalist id="sugerenciasGrupo">
@@ -31,14 +36,24 @@
</div>
<div class="row">
<div class="col-6 formatoCampos">
<label class="tituloLbl">Coste anual:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 2).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 2).Descripcion)
}
Coste anual:</label>
<div class="d-flex" style="gap:3px;">
<NumberInput TValue="double" Min="0" @bind-Value="itemSeleccionadoTemporal.CosteAnual" class="inputForm derecha formatoMoneda"></NumberInput> €
</div>
</div>
<div class="col-6 formatoCampos">
<label class="tituloLbl">Jornada laboral:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 3).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 3).Descripcion)
}
Jornada laboral:</label>
<div class="d-flex" style="gap:3px;">
<NumberInput TValue="double" Min="0" @bind-Value="itemSeleccionadoTemporal.JornadaLaboral" class="inputForm derecha"></NumberInput> h/sem
</div>
@@ -48,9 +63,10 @@
<div class="col-6 formatoCampos">
<label class="tituloLbl">
<Tooltip Title=@tituloInfo class="custom-tooltip" role="button">
<Icon Name="IconName.InfoCircleFill" Class="text-primary"></Icon>
</Tooltip>
@if (!string.IsNullOrEmpty( objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 4).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 4).Descripcion)
}
Porcentaje producción:
</label>
<div class="d-flex" style="gap:3px;">
@@ -60,7 +76,12 @@
</div>
<div class="col-6 formatoCampos">
<label class="tituloLbl">Nº de trabajadores:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 5).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 5).Descripcion)
}
Nº de trabajadores:</label>
<NumberInput TValue="double" Step="1" @oninput="EvitarDecimalesTrabajores" Min="0" @bind-Value="itemSeleccionadoTemporal.NumTrabajadores" class="inputForm derecha"></NumberInput>
</div>

View File

@@ -22,7 +22,15 @@
<GridColumns>
<GridColumn TItem="CASA.CoeficientesCorrectores" HeaderTextAlignment="Alignment.Center" HeaderText="Factores de Complejidad" PropertyName="Factores" Class="colorFilasIntro">
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion)
}
@context.Nombre
</div>
</GridColumn>
<GridColumn TItem="CASA.CoeficientesCorrectores" HeaderText="">
<InputSelect Value="@context.idCorrecion" class="inputForm selectTabla" ValueExpression="() => context.idCorrecion" TValue="int" ValueChanged="(value) => valorFCCambiado(value,context)">
@@ -55,7 +63,14 @@
<GridColumns>
<GridColumn TItem="CASA.CoeficientesCorrectores" HeaderTextAlignment="Alignment.Center" HeaderText="Factores de Rendimiento" PropertyName="Factores" Class="colorFilasIntro">
@context.Nombre
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == context.idPuntoInformacion).Descripcion)
}
@context.Nombre
</div>
</GridColumn>
<GridColumn TItem="CASA.CoeficientesCorrectores" HeaderText="" >
<InputSelect Value="@context.idCorrecion" class="inputForm selectTabla" ValueExpression="() => context.idCorrecion" TValue="int" ValueChanged="(value) => valorFRCambiado(value,context)">

View File

@@ -4,7 +4,12 @@
<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />
<div class="d-flex justify-content-between mt-3">
<div><b>Fases</b></div>
<div class="puntoInfo">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 12).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 12).Descripcion)
}
<b>Fases</b></div>
</div>
<div style="position:relative;margin-bottom: 15px;">

View File

@@ -19,7 +19,13 @@
<BodyTemplate>
<div class="row">
<div class="col-12 formatoCampos pt-2">
<label class="tituloLbl">Superficie:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 10).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 10).Descripcion)
}
Superficie:</label>
<InputNumber TValue="double" @bind-Value="itemSeleccionadoTemporal.superficie"
step="any"
@oninput="e => ValidarYActualizar(e, nameof(itemSeleccionadoTemporal.superficie))"
@@ -51,7 +57,12 @@
</div>
<div class="col-12 formatoCampos pt2">
<label class="tituloLbl">Intervención:</label>
<label class="tituloLbl">
@if (!string.IsNullOrEmpty(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 11).Descripcion))
{
@UtilidadesCASA.CreateTooltip(objetoCASA.Enumerados.PuntosInformacion.First(x => x.idPuntosInformacion == 11).Descripcion)
}
Intervención:</label>
<InputSelect @bind-Value="@itemSeleccionadoTemporal.idTipoIntervencion" class="inputForm">
@foreach (var intervencion in intervencionesAux)
{
@@ -85,7 +96,7 @@
Style="table-layout:fixed !important"
PageSizeSelectorVisible="false"
Responsive="true">
<GridColumns>
<GridColumn Class="columna20Ancho text-end" HeaderTextAlignment="Alignment.Center" TItem="CASA.UsosTipologia" HeaderText="Superficie">
<span>

View File

@@ -40,7 +40,6 @@
<div class="col-6 formatoCampos">
<label class="tituloLbl">
@UtilidadesCASA.CreateTooltip("Texto del tooltip")
Jornada laboral:
</label>
<div class="d-flex" style="gap:3px;">

View File

@@ -9,7 +9,7 @@
<div class="d-flex flex-column mt-3">
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoCASA.NombreSimulacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">poner aqui la fecha de creacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>

View File

@@ -12,7 +12,7 @@
<div class="d-flex flex-column mt-3">
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoURBAN.NombreSimulacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">poner aqui la fecha de creacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>

View File

@@ -10,7 +10,7 @@
<div class="d-flex flex-column mt-3">
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoLicitaciones.Descripcion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">poner aqui la fecha de creacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>

View File

@@ -12,7 +12,7 @@
<div class="d-flex flex-column mt-3">
<label>Simulación: <span class="NombreSimulacionImprimir">@objetoLicitacionUrban.NombreSimulacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">poner aqui la fecha de creacion</span></label>
<label>Fecha de creación: <span class="NombreSimulacionImprimir">@DateTime.Now</span></label>
</div>
</div>

View File

@@ -848,4 +848,10 @@ div.content {
padding-right: 20px;
margin-top: 100px;
font-size: 9pt;
}
.puntoInfo{
display:flex;
gap:5px;
}

View File

@@ -34,6 +34,7 @@ namespace bdHerramientaCACOA
public double OtrosCostes { get; set; } = 0.03;
}
public class EnumeradosCASA {
public List<puntosinformacion> PuntosInformacion { get; set; } = new List<puntosinformacion>();
public List<enumeracionesCASA> Periodos { get; set; } = new List<enumeracionesCASA>();
public List<enumeracionesCASA> GruposTipologias { get; set; } = new List<enumeracionesCASA>();
public List<enumeracionesCASA> Intervenciones { get; set; } = new List<enumeracionesCASA>();
@@ -98,6 +99,7 @@ namespace bdHerramientaCACOA
ci.Concepto = enu.ValorAlfabetico1;
ci.idPeriodicidad = perMensual.idEnumeracion;
ci.valorPeriodo = (double)perMensual.ValorNumerico1;
ci.idPuntoInformacion = string.IsNullOrEmpty(enu.ValorAlfabetico4) ? 0 : int.Parse(enu.ValorAlfabetico4);
DespachoProfesional.CostesIndirectos.Add(ci);
}
}
@@ -105,6 +107,9 @@ namespace bdHerramientaCACOA
checkListCostIndirectos(listaCosteIndirectos);
Enumerados.PuntosInformacion = bd.puntosinformacion.Where(x=>x.idTipoHerramienta == 31).ToList();
Enumerados.ListaFactoresCorrecion = ListaFactoresCorreccionCASA(bd.factorescorreccion.ToList());
//Cargamos los coeficientes correctores
//Complejidad
@@ -118,6 +123,7 @@ namespace bdHerramientaCACOA
fc.idTipoFactor = enu.idEnumeracion;
fc.Nombre = enu.ValorAlfabetico1;
fc.idCorrecion = Enumerados.FactoresCorreccionPorGrupo(fc.idTipoFactor).First(x => x.Coeficiente == 0).idFactorCorreccion;
fc.idPuntoInformacion = string.IsNullOrEmpty(enu.ValorAlfabetico4) ? 0 : int.Parse(enu.ValorAlfabetico4);
TrabajoProfesional.FactoresComplejidad.Add(fc);
}
@@ -134,7 +140,7 @@ namespace bdHerramientaCACOA
fc.idTipoFactor = enu.idEnumeracion;
fc.Nombre = enu.ValorAlfabetico1;
fc.idCorrecion = Enumerados.FactoresCorreccionPorGrupo(fc.idTipoFactor).First(x => x.Coeficiente == 0).idFactorCorreccion;
fc.idPuntoInformacion = string.IsNullOrEmpty(enu.ValorAlfabetico4) ? 0 : int.Parse(enu.ValorAlfabetico4);
TrabajoProfesional.FactoresRendimiento.Add(fc);
}
}
@@ -757,6 +763,7 @@ namespace bdHerramientaCACOA
public double importe { get; set; } = 0;
public int idPeriodicidad { get; set; } = 0;
public double valorPeriodo { get; set; } = 0;
public int idPuntoInformacion { get; set; } = 0;
public double coste { get; set; } = 0;
}
public class CostesPersonal
@@ -831,6 +838,7 @@ namespace bdHerramientaCACOA
public string Nombre { get; set; } = "";
public int idCorrecion { get; set; } = 0;
public double coeficiente { get; set; } = 0;
public int idPuntoInformacion { get; set; } = 0;
}
public class FasesTrabajo
{
@@ -907,6 +915,7 @@ namespace bdHerramientaCACOA
Descripcion = enu.Descripcion,
ValorAlfabetico1 = enu.ValorAlfabetico1,
ValorAlfabetico2 = enu.ValorAlfabetico2,
idPuntoInformacion = string.IsNullOrEmpty( enu.ValorAlfabetico4) ? null : int.Parse(enu.ValorAlfabetico4),
ValorNumerico1 = enu.ValorNumerico1
};
}
@@ -923,7 +932,7 @@ namespace bdHerramientaCACOA
public string? ValorAlfabetico1 { get; set; }
public string? ValorAlfabetico2 { get; set; }
public int? idPuntoInformacion { get; set; }
public double? ValorNumerico1 { get; set; }
public bool Seleccionado { get; set; } = false!;

View File

@@ -43,6 +43,8 @@ public partial class enumeraciones
public virtual gruposenumeraciones? idGrupoEnumeracionNavigation { get; set; }
public virtual ICollection<puntosinformacion> puntosinformacion { get; set; } = new List<puntosinformacion>();
public virtual ICollection<simulaciones> simulaciones { get; set; } = new List<simulaciones>();
public virtual ICollection<tipologias> tipologias { get; set; } = new List<tipologias>();

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace bdHerramientaCACOA.db;
public partial class puntosinformacion
{
public int idPuntosInformacion { get; set; }
public string? Titulo { get; set; }
public string? Descripcion { get; set; }
public int? idTipoHerramienta { get; set; }
public virtual enumeraciones? idTipoHerramientaNavigation { get; set; }
}

View File

@@ -36,6 +36,8 @@ public partial class herramientascacoaContext : DbContext
public virtual DbSet<provincias> provincias { get; set; }
public virtual DbSet<puntosinformacion> puntosinformacion { get; set; }
public virtual DbSet<simulaciones> simulaciones { get; set; }
public virtual DbSet<tipologias> tipologias { get; set; }
@@ -232,6 +234,22 @@ public partial class herramientascacoaContext : DbContext
entity.Property(e => e.Nombre).HasMaxLength(80);
});
modelBuilder.Entity<puntosinformacion>(entity =>
{
entity.HasKey(e => e.idPuntosInformacion).HasName("PRIMARY");
entity.HasIndex(e => e.idTipoHerramienta, "FK_enumeraciones_idEnumeracion_idx");
entity.Property(e => e.idPuntosInformacion).HasColumnType("int(11)");
entity.Property(e => e.Descripcion).HasMaxLength(400);
entity.Property(e => e.Titulo).HasMaxLength(60);
entity.Property(e => e.idTipoHerramienta).HasColumnType("int(11)");
entity.HasOne(d => d.idTipoHerramientaNavigation).WithMany(p => p.puntosinformacion)
.HasForeignKey(d => d.idTipoHerramienta)
.HasConstraintName("FK_enumeraciones_idEnumeracion");
});
modelBuilder.Entity<simulaciones>(entity =>
{
entity.HasKey(e => e.idSimulacion).HasName("PRIMARY");

View File

@@ -4,6 +4,7 @@
"ContextNamespace": null,
"FilterSchemas": false,
"IncludeConnectionString": false,
"MinimumProductVersion": "2.6.1080",
"ModelNamespace": null,
"OutputContextPath": "dbcontext",
"OutputPath": "db",
@@ -62,6 +63,10 @@
"Name": "provincias",
"ObjectType": 0
},
{
"Name": "puntosinformacion",
"ObjectType": 0
},
{
"Name": "simulaciones",
"ObjectType": 0