Acabado excel, queda la parte de cofiguracion

This commit is contained in:
2025-09-17 12:09:19 +02:00
parent 029498c540
commit d80d2e2dc8
23 changed files with 1987 additions and 24 deletions

View File

@@ -3,6 +3,7 @@ using bdHerramientaCACOA.db;
using bdHerramientaCACOA.dbcontext;
using bdHerramientaCACOA.HerramientaURBAN;
using BlazorBootstrap;
using DocumentFormat.OpenXml.Office2013.Drawing.ChartStyle;
using HerramientaCASA.Components.Pages;
using HerramientaCASA.Components.Pages.HerramientaCASATabs;
using HerramientaCASA.Model;
@@ -661,13 +662,13 @@ namespace HerramientaCASA
if (!comprobarExisteEstadistica(bd, idSimulador))
{
mapearEstadisticasCASA(estadisticas,casa,idSimulador);
mapearEstadisticasCASA(bd,estadisticas,casa,idSimulador);
bd.estadisticas.Add(estadisticas);
}
else
{
var estadisticaExistente = bd.estadisticas.First(x => x.idSimulacion == idSimulador);
mapearEstadisticasCASA(estadisticaExistente, casa, idSimulador);
mapearEstadisticasCASA(bd,estadisticaExistente, casa, idSimulador);
}
break;
case TiposSimulaciones.BAJA:
@@ -677,13 +678,13 @@ namespace HerramientaCASA
if (!comprobarExisteEstadistica(bd, idSimulador))
{
mapearEstadisticasLicitacionCASA(estadisticas, licitacionCASA, idSimulador);
mapearEstadisticasLicitacionCASA(bd,estadisticas, licitacionCASA, idSimulador);
bd.estadisticas.Add(estadisticas);
}
else
{
var estadisticaExistente = bd.estadisticas.First(x => x.idSimulacion == idSimulador);
mapearEstadisticasLicitacionCASA(estadisticaExistente, licitacionCASA, idSimulador);
mapearEstadisticasLicitacionCASA(bd, estadisticaExistente, licitacionCASA, idSimulador);
}
break;
@@ -737,59 +738,369 @@ namespace HerramientaCASA
return existeEstadistica;
}
private static void mapearEstadisticasCASA(estadisticas estadistica, CASA casa, int idSimulador)
private static void mapearEstadisticasCASA(tsHerramientasCACOA bd,estadisticas estadistica, CASA casa, int idSimulador)
{
estadistica.idSimulacion = idSimulador;
estadistica.numeroTrabajadores = casa.DespachoProfesional.Trabajadores.Sum(x => x.NumTrabajadores);
estadistica.totalCosteAnual = casa.DespachoProfesional.CostesDirectosAnuales;
estadistica.horasProduccion = casa.DespachoProfesional.HorasTotalesProduccion;
estadistica.costeDirecto = casa.DespachoProfesional.CostesDirectos;
estadistica.costeIndirecto = casa.DespachoProfesional.TasaCostesIndirectos;
estadistica.costeVariable = casa.CostesProduccion.CostesVariables;
estadistica.costeHoraDespachoProf = casa.DespachoProfesional.CosteHoraDespachoProfesional;
estadistica.totalSupeficie = casa.TrabajoProfesional.Usos.Sum(x=> x.superficie);
estadistica.totalFases = casa.TrabajoProfesional.FasesTrabajo.Sum(x => x.Porcentaje);
estadistica.horasTPEDocumentacion = casa.TrabajoProfesional.HorasTPEDocumentacion;
estadistica.horasTPEDireccionObra = casa.TrabajoProfesional.HorasTPEDireccion;
estadistica.horasTPE = casa.TrabajoProfesional.TotalHorasTPE;
estadistica.porcentajeExternalizacion = casa.CostesProduccion.CoeficienteCostesExternalizacion;
estadistica.costeHoraExternalizacion = casa.CostesProduccion.CosteHoraExternalizacion;
estadistica.plazoPresentacion = casa.CostesProduccion.PlazoPresentacionDocumentos;
estadistica.costeProduccion = casa.CostesProduccion.CostesProduccionTrabProf;
estadistica.totalOtrosTrabajos = casa.CostesProduccion.TotalOtrosTrabajos;
estadistica.porcentajeBeneficio = casa.CostesProduccion.Beneficio;
estadistica.numeroTrabajadores = casa.DespachoProfesional.Trabajadores.Sum(x => x.NumTrabajadores);
estadistica.precioTrabajo = casa.CostesProduccion.PrecioTrabProf;
estadistica.totalOtrosTrabajos = casa.CostesProduccion.TotalOtrosTrabajos;
estadistica.precioEncargo = casa.CostesProduccion.PrecioDelEncargo;
// Rellenar listado usos
if (casa.TrabajoProfesional.Usos.Count != 0)
{
var listadoBorrar = bd.estadisticasusos.Where(x=> x.idSimulacion == idSimulador).ToList();
bd.estadisticasusos.RemoveRange(listadoBorrar);
foreach (var uso in casa.TrabajoProfesional.Usos)
{
bd.estadisticasusos.Add(new estadisticasusos
{
idSimulacion = idSimulador,
superficie = uso.superficie,
idUso = uso.idGrupoTipologia,
idTipologia = uso.idTipologia,
idIntervencion = uso.idTipoIntervencion
});
}
}
// Rellenar listado factores complejidad
if (casa.TrabajoProfesional.FactoresComplejidad.Count != 0)
{
var listadoBorrar = bd.estadisticasfactores.Where(x => x.idsimulacion == idSimulador).ToList();
bd.estadisticasfactores.RemoveRange(listadoBorrar);
foreach (var factor in casa.TrabajoProfesional.FactoresComplejidad)
{
bd.estadisticasfactores.Add(new estadisticasfactores
{
idsimulacion = idSimulador,
nombre = factor.Nombre,
coeficiente = factor.coeficiente,
tipo = "Complejidad"
});
}
}
// Rellenar listado factores rendimiento
if (casa.TrabajoProfesional.FactoresRendimiento.Count != 0)
{
var listadoBorrar = bd.estadisticasfactores.Where(x => x.idsimulacion == idSimulador).ToList();
bd.estadisticasfactores.RemoveRange(listadoBorrar);
foreach (var factor in casa.TrabajoProfesional.FactoresRendimiento)
{
bd.estadisticasfactores.Add(new estadisticasfactores
{
idsimulacion = idSimulador,
nombre = factor.Nombre,
coeficiente = factor.coeficiente,
tipo = "Rendimiento"
});
}
}
}
private static void mapearEstadisticasLicitacionCASA(estadisticas estadistica, LICITACIONES licitacion, int idSimulador)
private static void mapearEstadisticasLicitacionCASA(tsHerramientasCACOA bd, estadisticas estadistica, LICITACIONES licitacion, int idSimulador)
{
estadistica.idSimulacion = idSimulador;
estadistica.costeHoraDespachoProf = licitacion.costeHoraProduccion;
estadistica.totalSupeficie = licitacion.Usos.Sum(x => x.superficie);
estadistica.totalFases = licitacion.FasesTrabajo.Sum(x=> x.Porcentaje);
estadistica.horasTPE = licitacion.horasProduccion;
estadistica.plazoPresentacion = licitacion.PlazoPresentacionDocumentos;
estadistica.costeProduccion = licitacion.CostesProduccionTrabProf;
estadistica.precioTrabajo = licitacion.PrecioTrabProf;
estadistica.totalOtrosTrabajos = licitacion.TotalOtrosTrabajos;
estadistica.precioEncargo = licitacion.PrecioDelEncargo;
// Rellenar listado usos
if (licitacion.Usos.Count != 0)
{
var listadoBorrar = bd.estadisticasusos.Where(x => x.idSimulacion == idSimulador).ToList();
bd.estadisticasusos.RemoveRange(listadoBorrar);
foreach (var uso in licitacion.Usos)
{
bd.estadisticasusos.Add(new estadisticasusos
{
idSimulacion = idSimulador,
superficie = uso.superficie,
idUso = uso.idGrupoTipologia,
idTipologia = uso.idTipologia,
idIntervencion = uso.idTipoIntervencion
});
}
}
}
private static void mapearEstadisticasURBAN(estadisticas estadistica, URBAN urban, int idSimulador)
{
estadistica.idSimulacion = idSimulador;
estadistica.numeroTrabajadores = urban.DespachoProfesional.Trabajadores.Sum(x => x.NumTrabajadores);
estadistica.totalCosteAnual = urban.DespachoProfesional.CostesDirectosAnuales;
estadistica.costeDirecto = urban.DespachoProfesional.CostesDirectos;
estadistica.costeIndirecto = urban.DespachoProfesional.TasaCostesIndirectos;
estadistica.costeVariable = urban.CostesProduccion.CostesVariables;
estadistica.costeHoraDespachoProf = urban.DespachoProfesional.CosteHoraDespachoProfesional;
//obtener tipodocumento
estadistica.tipoDocumento = urban.Enumerados.TiposDeDocumentos.First(x=> x.idEnumeracion == urban.TrabajoProfesional.idTipoDocumentacion).ValorAlfabetico1;
//obtener documento
var listadoDocumentos = urban.Enumerados.ProyectosPorTipo(urban.TrabajoProfesional.idTipoDocumentacion);
estadistica.documento = listadoDocumentos.First(x=> x.idtipoproyectos == urban.TrabajoProfesional.idTipoProyecto).Descripcion;
//obtener datos necesarios
var listadoDocumentacionNecesaria = urban.TrabajoProfesional.DatosNecesarios;
estadistica.dato1 = listadoDocumentacionNecesaria[0].ValorNecesario.ToString();
estadistica.dato2 = listadoDocumentacionNecesaria[1].ValorNecesario.ToString();
var valorDato3 = listadoDocumentacionNecesaria[2].esCheckbox ? listadoDocumentacionNecesaria[2].esCheckbox.ToString() : listadoDocumentacionNecesaria[2].ValorNecesario.ToString();
if (valorDato3.ToLower().Contains("false"))
{
estadistica.dato3 = "FALSO";
}else if (valorDato3.ToLower().Contains("true"))
{
estadistica.dato3 = "VERDADERO";
}
else
{
estadistica.dato3 = valorDato3.ToString();
}
estadistica.totalFases = urban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje);
estadistica.innovacion = urban.TrabajoProfesional.valorInstrumentos;
estadistica.horasTPE = urban.TrabajoProfesional.horasTrabProfesional;
estadistica.porcentajeExternalizacion = urban.CostesProduccion.CoeficienteCostesExternalizacion;
estadistica.costeHoraExternalizacion = urban.CostesProduccion.CosteHoraExternalizacion;
estadistica.plazoPresentacion = urban.CostesProduccion.PlazoPresentacionDocumentos;
estadistica.costeProduccion = urban.CostesProduccion.CostesProduccionTrabProf;
estadistica.porcentajeBeneficio = urban.CostesProduccion.Beneficio;
estadistica.numeroTrabajadores = urban.DespachoProfesional.Trabajadores.Sum(x => x.NumTrabajadores);
estadistica.precioTrabajo = urban.CostesProduccion.PrecioTrabajoProfesional;
}
private static void mapearEstadisticasLicitacionURBAN(estadisticas estadistica, bdHerramientaCACOA.LicitacionesURBAN licitacionUrban, int idSimulador)
{
estadistica.idSimulacion = idSimulador;
estadistica.costeHoraDespachoProf = licitacionUrban.CosteHP;
//obtener tipodocumento
estadistica.tipoDocumento = licitacionUrban.Enumerados.TiposDeDocumentos.First(x => x.idEnumeracion == licitacionUrban.TrabajoProfesional.idTipoDocumentacion).ValorAlfabetico1;
//obtener documento
var listadoDocumentos = licitacionUrban.Enumerados.ProyectosPorTipo(licitacionUrban.TrabajoProfesional.idTipoDocumentacion);
estadistica.documento = listadoDocumentos.First(x => x.idtipoproyectos == licitacionUrban.TrabajoProfesional.idTipoProyecto).Descripcion;
//obtener datos necesarios
var listadoDocumentacionNecesaria = licitacionUrban.TrabajoProfesional.DatosNecesarios;
estadistica.dato1 = listadoDocumentacionNecesaria[0].ValorNecesario.ToString();
estadistica.dato2 = listadoDocumentacionNecesaria[1].ValorNecesario.ToString();
var valorDato3 = listadoDocumentacionNecesaria[2].esCheckbox ? listadoDocumentacionNecesaria[2].esCheckbox.ToString() : listadoDocumentacionNecesaria[2].ValorNecesario.ToString();
if (valorDato3.ToLower().Contains("false"))
{
estadistica.dato3 = "FALSO";
}
else if (valorDato3.ToLower().Contains("true"))
{
estadistica.dato3 = "VERDADERO";
}
else
{
estadistica.dato3 = valorDato3.ToString();
}
estadistica.totalFases = licitacionUrban.TrabajoProfesional.FasesTrabajoProfesional.Sum(x => x.Porcentaje);
estadistica.innovacion = licitacionUrban.TrabajoProfesional.valorInstrumentos;
estadistica.horasTPE = licitacionUrban.TrabajoProfesional.horasTrabProfesional;
estadistica.plazoPresentacion = licitacionUrban.PlazoPresentacionDocumentos;
estadistica.costeProduccion = licitacionUrban.CostesProduccionTrabProf;
estadistica.numeroTrabajadores = licitacionUrban.ListaSolvenciaTecnica.Sum(x => x.Cantidad);
estadistica.precioTrabajo = licitacionUrban.PrecioDelTrabajo;
}
public static double? comprobarNull(double? dato, int cantidadProyecto)
{
double? datoFinal = null;
if (dato != null)
{
datoFinal = dato / cantidadProyecto;
}
return datoFinal;
}
public static bool comprobarFechas(DateTime fechaInicio, DateTime fechaFinal)
{
bool fechaValida = false;
if (fechaFinal.Date >= fechaInicio.Date)
{
fechaValida = true;
}
return fechaValida;
}
public static bool comprobarFechasNulas(DateTime? fechaInicio, DateTime? fechaFinal)
{
bool fechaValida = false;
if (fechaFinal != null && fechaInicio != null)
{
fechaValida = true;
}
return fechaValida;
}
public static List<EstadistiaHerraCasaVM> rellenarListadoCASA(List<bdHerramientaCACOA.db.estadisticas> listadoEstadistica)
{
List<EstadistiaHerraCasaVM> listadoEstadisticasExcel = new List<EstadistiaHerraCasaVM> ();
foreach (estadisticas estadistica in listadoEstadistica)
{
listadoEstadisticasExcel.Add(new EstadistiaHerraCasaVM
{
idSimulacion = estadistica.idSimulacionNavigation?.Descripcion,
numeroTrabajadores = estadistica.numeroTrabajadores,
costeAnualTotal = estadistica.totalCosteAnual,
horasProduccion = estadistica.horasProduccion,
costesDirectos = estadistica.costeDirecto,
costesIndirectos = estadistica.costeIndirecto,
costesVariables = estadistica.costeVariable,
costeDespacho = estadistica.costeHoraDespachoProf,
totalSuperficie = estadistica.totalSupeficie,
porcentajeFases = estadistica.totalFases,
horasDocumentacion = estadistica.horasTPEDocumentacion,
horasDireccionObra = estadistica.horasTPEDireccionObra,
horasTrabajo = estadistica.horasTPE,
porcentajeExternalizacion = estadistica.porcentajeExternalizacion,
costeExternalizacion = estadistica.costeHoraExternalizacion,
plazoPresentacion = estadistica.plazoPresentacion,
costeProduccion = estadistica.costeProduccion,
beneficio = estadistica.porcentajeBeneficio,
precioTrabajo = estadistica.precioTrabajo,
totalOtrosTrabajos = estadistica.totalOtrosTrabajos,
precioEncargo = estadistica.precioEncargo
});
}
return listadoEstadisticasExcel;
}
public static List<EstadisticaUsosVM> rellenarListadoUsos(tsHerramientasCACOA bd, List<bdHerramientaCACOA.db.estadisticasusos> listadoEstadisticaUsos)
{
List<EstadisticaUsosVM> listadoEstadisticasUsosExcel = new List<EstadisticaUsosVM>();
foreach (estadisticasusos estadistica in listadoEstadisticaUsos)
{
listadoEstadisticasUsosExcel.Add(new EstadisticaUsosVM
{
idSimulacion = estadistica.idSimulacionNavigation?.Descripcion,
superficie = estadistica.superficie,
uso = bd.enumeraciones.First(x=> x.idEnumeracion == estadistica.idUso).ValorAlfabetico1,
tipologia = bd.tipologias.First(x=> x.idtipologia == estadistica.idTipologia).Descripcion,
intervencion = bd.enumeraciones.First(x=> x.idEnumeracion == estadistica.idIntervencion).ValorAlfabetico1,
});
}
return listadoEstadisticasUsosExcel;
}
public static List<EstadisticasFactoresVM> rellenarListadoFactores(tsHerramientasCACOA bd, List<bdHerramientaCACOA.db.estadisticasfactores> listadoEstadisticaFactores)
{
List<EstadisticasFactoresVM> listadoEstadisticaFactoresExcel = new List<EstadisticasFactoresVM>();
foreach (estadisticasfactores estadistica in listadoEstadisticaFactores)
{
listadoEstadisticaFactoresExcel.Add(new EstadisticasFactoresVM
{
idSimulacion = estadistica.idsimulacionNavigation?.Descripcion,
nombre = estadistica.nombre,
coeficiente =estadistica.coeficiente,
tipo = estadistica.tipo
});
}
return listadoEstadisticaFactoresExcel;
}
public static List<EstadisticasUrbanVM> rellenarListadoURBAN(tsHerramientasCACOA bd, List<bdHerramientaCACOA.db.estadisticas> listadoEstadisticaUrban)
{
List<EstadisticasUrbanVM> listadoEstadisticasUrbanExcel = new List<EstadisticasUrbanVM>();
foreach (estadisticas estadistica in listadoEstadisticaUrban)
{
listadoEstadisticasUrbanExcel.Add(new EstadisticasUrbanVM
{
idSimulacion = estadistica.idSimulacionNavigation?.Descripcion,
numeroTrabajadores = estadistica.numeroTrabajadores,
costeAnualTotal = estadistica.totalCosteAnual,
horasProduccion = estadistica.horasProduccion,
costesDirectos = estadistica.costeDirecto,
costesIndirectos = estadistica.costeIndirecto,
costesVariables = estadistica.costeVariable,
costeDespacho = estadistica.costeHoraDespachoProf,
tipoDocumento = estadistica.tipoDocumento,
documento = estadistica.documento,
dato1 = estadistica.dato1,
dato2 = estadistica.dato2,
dato3 = estadistica.dato3,
porcentajeFases = estadistica.totalFases,
innovacion = estadistica.innovacion,
horasTrabajo = estadistica.horasTPE,
porcentajeExternalizacion = estadistica.porcentajeExternalizacion,
costeExternalizacion = estadistica.costeHoraExternalizacion,
plazoPresentacion = estadistica.plazoPresentacion,
costeProduccion = estadistica.costeProduccion,
beneficio = estadistica.porcentajeBeneficio,
precioTrabajo = estadistica.precioTrabajo,
});
}
return listadoEstadisticasUrbanExcel;
}
}
}