public static void ActualizarHorasSubproyecto(Proyecto proy) { List <SUBPROYECTO> subproyectos = ObtenerSubproyectosHijos(proy); decimal total = 0; foreach (var subp in subproyectos) { total += ControladorSubproyecto.ActualizarHorasSubproyecto(subp); } proy.total_hora = total; Update(proy); }
internal static void ActualizarHorasProyectosActivos() { List <Proyecto> proyectos_activos = ObtenerProyectosActivos(); decimal totalProy = 0; decimal totalSub = 0; foreach (var proyecto in proyectos_activos) { totalProy = 0; List <SUBPROYECTO> subproyectos = ObtenerSubproyectosHijos(proyecto); foreach (var subpro in subproyectos) { List <SUBPROYECTO> subproyectosHijos = ControladorSubproyecto.ObtenerSubproyectosHijos(subpro); List <Actividad_proyecto> actividades = ControladorActividades.ObtenerActividadesProyectoDeSubproyecto(subpro); List <SUBPROYECTO> hijos; totalSub = 0; //Función recursiva para calcular las horas de los subproyectos hijos foreach (var sub in subproyectosHijos) { totalSub += ControladorSubproyecto.ActualizarHorasSubproyecto(sub); } //Recorre las actividades y suma sus horas foreach (var item in actividades) { item.cantidad_hora = (decimal)ControladorActividades.ObtenerHorasTotalesActividad(item); ControladorActividades.ActualizarActividadProyecto(item); totalSub += (decimal)ControladorActividades.ObtenerHorasTotalesActividad(item); } totalProy += totalSub; subpro.horas_estimadas = totalSub; ControladorSubproyecto.ActualizarSubproyecto(subpro); } proyecto.total_hora = totalProy; Update(proyecto); } }