def obtener_rbs_general(self, gerente_id): """Construye la rbs general del gerente. Devuelve en un diccionario la informacion de las categorias junto con las subcategorias asociadas. Se encarga de consultar la rbs del gerente y a partir de su id consultar todas las categorias y subcategorias asociados. Parámetros: gerente_id -- corresponde al id del gerente en la base de datos Excepciones: ValueError -- Si gerente no existe """ gerente_dao = GerenteDao() gerente = gerente_dao.get_by_id(gerente_id) categoria_dao = CategoriaDao() categorias = categoria_dao.get_categorias_by_gerente(gerente) rbs = [] sub_categoria_dao = SubcategoriaDao() for categoria in categorias: subcategorias = sub_categoria_dao.get_sub_categorias_by_categoria( categoria) rbs.append({ "categoria": model_to_dict(categoria), "subcategorias": list(subcategorias.values()) }) return rbs
def obtener_rbs_completa_by_proyecto(self, gerente_id, proyecto_id): """Construye la rbs con los riesgos por subcategoria del gerente. Devuelve en un diccionario la informacion de las categorias junto con las subcategorias asociadas y sus riesgos. Se encarga de consultar la rbs del gerente y a partir de su id consultar todas las categorias y subcategorias asociados. Parámetros: gerente_id -- corresponde al id del gerente en la base de datos Excepciones: ValueError -- Si gerente no existe """ gerente_dao = GerenteDao() gerente = gerente_dao.get_by_id(gerente_id) categoria_dao = CategoriaDao() categorias = categoria_dao.get_categorias_by_gerente(gerente) proyecto_dao = ProyectoDao() proyecto = proyecto_dao.obtener_proyecto(proyecto_id) rbs = [] sub_categoria_dao = SubcategoriaDao() riesgo_dao = RiesgoDao() for categoria in categorias: subcategorias = sub_categoria_dao.get_sub_categorias_by_categoria( categoria) aux = [] for subcategoria in subcategorias: riesgos = riesgo_dao.get_riesgo_by_subcategoria(subcategoria) if riesgos == None: aux.append({ "subcategoria": model_to_dict(subcategoria), "riesgos": [] }) else: riesgos = list(riesgos.values()) if (len(riesgos) > 0): for riesgo in riesgos: e = riesgo_dao.riesgo_is_proyecto( Riesgo(riesgo_id=riesgo["riesgo_id"]), proyecto) if (e != None): riesgo['is_assigned'] = True riesgo[ 'fecha_manifestacion'] = e.fecha_manifestacion.strftime( "%Y-%m-%d") else: riesgo['is_assigned'] = False aux.append({ "subcategoria": model_to_dict(subcategoria), "riesgos": riesgos }) rbs.append({ "categoria": model_to_dict(categoria), "subcategorias": aux }) return rbs
def crear_rbs_sugerida(self, gerente_id): gerente_dao = GerenteDao() gerente = gerente_dao.get_by_id(gerente_id) rbs = self.rbs_dao.crear_rbs(gerente, 2) categoria_dao = CategoriaDao() categorias = categoria_dao.get_categorias_by_sector(gerente.sector) sub_categoria_dao = SubcategoriaDao() rbs_sugerida = self.obtener_rbs_sugerida(gerente.sector.sector_id) for aux in rbs_sugerida: categoria = categoria_dao.duplicar_categoria(aux["categoria"], rbs) if (aux["subcategorias"]): for subcategoria in aux["subcategorias"]: sub_categoria_dao.duplicar_sub_categoria( categoria, subcategoria) return rbs
def obtener_gerente(self, id): gerente_dao = GerenteDao() return gerente_dao.obtener_gerente(id)
def registrar_gerente(self, id, usuario, correo, nombre, sector, profesion, empresa, pais, metodologia, certificacion, fecha_creacion): gerente_dao = GerenteDao() return gerente_dao.registrar_gerente(id, usuario, correo, nombre, sector, profesion, empresa, pais, metodologia, certificacion, fecha_creacion)
def actualizar_gerente(self, gerente, nombre, correo, profesion, empresa, sector, certificacion, metodologia): gerente_dao = GerenteDao() return gerente_dao.actualizar_gerente(gerente, nombre, correo, profesion, empresa, sector, certificacion, metodologia)
def validar_gerente(self, usuario): gerente_dao = GerenteDao() return gerente_dao.validar_gerente(usuario)