예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
	def obtener_gerente(self, id):
		gerente_dao = GerenteDao()
		return gerente_dao.obtener_gerente(id)
예제 #5
0
	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)
예제 #6
0
	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)
예제 #7
0
	def validar_gerente(self, usuario):
		gerente_dao = GerenteDao()
		return gerente_dao.validar_gerente(usuario)