@@ -1,11 +1,16 @@
using bdHerramientaCACOA ;
using bdHerramientaCACOA.db ;
using bdHerramientaCACOA.dbcontext ;
using bdHerramientaCACOA.HerramientaURBAN ;
using BlazorBootstrap ;
using HerramientaCASA.Components.Pages ;
using HerramientaCASA.Components.Pages.HerramientaCASATabs ;
using HerramientaCASA.Model ;
using HerramientaCASA.ViewModel ;
using IbanNet ;
using Microsoft.AspNetCore.Components ;
using System.Text ;
using static bdHerramientaCACOA . CASA ;
using static HerramientaCASA . Components . Pages . ConfiguracionPages . ConvenioColectivo ;
namespace HerramientaCASA
@@ -641,5 +646,150 @@ namespace HerramientaCASA
__builder . CloseComponent ( ) ;
}
} ;
public static void guardarEstadisticas ( tsHerramientasCACOA bd , HerramientaCASA . UtilidadesCASA . TiposSimulaciones tipoSimulacion , string jsonObjeto , int idSimulador )
{
estadisticas estadisticas = new estadisticas ( ) ;
try
{
switch ( tipoSimulacion )
{
case TiposSimulaciones . CASA :
var casa = System . Text . Json . JsonSerializer . Deserialize < CASA > ( jsonObjeto ) ;
casa . CalcularFinales ( ) ;
if ( ! comprobarExisteEstadistica ( bd , idSimulador ) )
{
mapearEstadisticasCASA ( estadisticas , casa , idSimulador ) ;
bd . estadisticas . Add ( estadisticas ) ;
}
else
{
var estadisticaExistente = bd . estadisticas . First ( x = > x . idSimulacion = = idSimulador ) ;
mapearEstadisticasCASA ( estadisticaExistente , casa , idSimulador ) ;
}
break ;
case TiposSimulaciones . BAJA :
break ;
case TiposSimulaciones . LICITACIONCASA :
var licitacionCASA = System . Text . Json . JsonSerializer . Deserialize < LICITACIONES > ( jsonObjeto ) ;
if ( ! comprobarExisteEstadistica ( bd , idSimulador ) )
{
mapearEstadisticasLicitacionCASA ( estadisticas , licitacionCASA , idSimulador ) ;
bd . estadisticas . Add ( estadisticas ) ;
}
else
{
var estadisticaExistente = bd . estadisticas . First ( x = > x . idSimulacion = = idSimulador ) ;
mapearEstadisticasLicitacionCASA ( estadisticaExistente , licitacionCASA , idSimulador ) ;
}
break ;
case TiposSimulaciones . URBAN :
var urban = System . Text . Json . JsonSerializer . Deserialize < URBAN > ( jsonObjeto ) ;
urban . CalcularFinales ( ) ;
if ( ! comprobarExisteEstadistica ( bd , idSimulador ) )
{
mapearEstadisticasURBAN ( estadisticas , urban , idSimulador ) ;
bd . estadisticas . Add ( estadisticas ) ;
}
else
{
var estadisticaExistente = bd . estadisticas . First ( x = > x . idSimulacion = = idSimulador ) ;
mapearEstadisticasURBAN ( estadisticaExistente , urban , idSimulador ) ;
}
break ;
case TiposSimulaciones . URBANDSIMP :
var licitacionUrban = System . Text . Json . JsonSerializer . Deserialize < bdHerramientaCACOA . LicitacionesURBAN > ( jsonObjeto ) ;
if ( ! comprobarExisteEstadistica ( bd , idSimulador ) )
{
mapearEstadisticasLicitacionURBAN ( estadisticas , licitacionUrban , idSimulador ) ;
bd . estadisticas . Add ( estadisticas ) ;
}
else
{
var estadisticaExistente = bd . estadisticas . First ( x = > x . idSimulacion = = idSimulador ) ;
mapearEstadisticasLicitacionURBAN ( estadisticaExistente , licitacionUrban , idSimulador ) ;
}
break ;
}
bd . SaveChanges ( ) ;
}
catch ( Exception ex ) {
throw new Exception ( ex . Message ) ;
}
}
private static bool comprobarExisteEstadistica ( tsHerramientasCACOA bd , int idSimulacion )
{
bool existeEstadistica = false ;
if ( bd . estadisticas . Any ( x = > x . idSimulacion = = idSimulacion ) )
{
existeEstadistica = true ;
}
return existeEstadistica ;
}
private static void mapearEstadisticasCASA ( estadisticas estadistica , CASA casa , int idSimulador )
{
estadistica . idSimulacion = idSimulador ;
estadistica . costeDirecto = casa . DespachoProfesional . CostesDirectos ;
estadistica . costeIndirecto = casa . DespachoProfesional . TasaCostesIndirectos ;
estadistica . costeVariable = casa . CostesProduccion . CostesVariables ;
estadistica . costeHoraDespachoProf = casa . DespachoProfesional . CosteHoraDespachoProfesional ;
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 . 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 ) ;
}
private static void mapearEstadisticasLicitacionCASA ( estadisticas estadistica , LICITACIONES licitacion , int idSimulador )
{
estadistica . idSimulacion = idSimulador ;
estadistica . costeHoraDespachoProf = licitacion . costeHoraProduccion ;
estadistica . totalFases = licitacion . FasesTrabajo . Sum ( x = > x . Porcentaje ) ;
estadistica . horasTPE = licitacion . horasProduccion ;
estadistica . plazoPresentacion = licitacion . PlazoPresentacionDocumentos ;
estadistica . costeProduccion = licitacion . CostesProduccionTrabProf ;
estadistica . totalOtrosTrabajos = licitacion . TotalOtrosTrabajos ;
}
private static void mapearEstadisticasURBAN ( estadisticas estadistica , URBAN urban , int idSimulador )
{
estadistica . idSimulacion = idSimulador ;
estadistica . costeDirecto = urban . DespachoProfesional . CostesDirectos ;
estadistica . costeIndirecto = urban . DespachoProfesional . TasaCostesIndirectos ;
estadistica . costeVariable = urban . CostesProduccion . CostesVariables ;
estadistica . costeHoraDespachoProf = urban . DespachoProfesional . CosteHoraDespachoProfesional ;
estadistica . horasTPE = urban . TrabajoProfesional . horasTrabProfesional ;
estadistica . porcentajeExternalizacion = urban . CostesProduccion . CoeficienteCostesExternalizacion ;
estadistica . plazoPresentacion = urban . CostesProduccion . PlazoPresentacionDocumentos ;
estadistica . costeProduccion = urban . CostesProduccion . CostesProduccionTrabProf ;
estadistica . porcentajeBeneficio = urban . CostesProduccion . Beneficio ;
estadistica . numeroTrabajadores = urban . DespachoProfesional . Trabajadores . Sum ( x = > x . NumTrabajadores ) ;
}
private static void mapearEstadisticasLicitacionURBAN ( estadisticas estadistica , bdHerramientaCACOA . LicitacionesURBAN licitacionUrban , int idSimulador )
{
estadistica . idSimulacion = idSimulador ;
estadistica . costeHoraDespachoProf = licitacionUrban . CosteHP ;
estadistica . horasTPE = licitacionUrban . TrabajoProfesional . horasTrabProfesional ;
estadistica . plazoPresentacion = licitacionUrban . PlazoPresentacionDocumentos ;
estadistica . costeProduccion = licitacionUrban . CostesProduccionTrabProf ;
estadistica . numeroTrabajadores = licitacionUrban . ListaSolvenciaTecnica . Sum ( x = > x . Cantidad ) ;
}
}
}