Exemple #1
0
	def get_riesgos_by_proyecto_2(self, proyecto):
		"""Devuelve todos los riesgos que esten asociados a un proyecto,
		como un array de diccionarios
		"""
		riesgo_dao = RiesgoDao()
		riesgos = riesgo_dao.get_riesgos_by_proyecto(proyecto)
		return self.raw_queryset_of_riesgos_as_values_list(riesgos)
    def obtener_respuestas_sugeridas(self, proyecto_id: int):
        """
        Consulta todas las respuestas asociadas a los riesgos
        del proyecto que no se hayan utilizado dentro del mismo proyecto
        :param proyecto_id:
        :return: dict
        """
        respuesta_dao = RespuestaDao()
        riesgo_dao = RiesgoDao()
        proyecto = Proyecto(proyecto_id=proyecto_id)
        riesgos = riesgo_dao.get_riesgos_by_proyecto(proyecto)
        aux = {}
        for riesgo in riesgos:
            key = "riesgo_" + str(riesgo.riesgo_id)
            aux[key] = []
            respuestas = respuesta_dao.obtener_respuestas_sugeridas_from_riesgo_by_proyecto(
                riesgo, proyecto)
            for respuesta in respuestas:
                aux[key].append(
                    dict(
                        respuesta_id=respuesta.respuesta_id,
                        respuesta_nombre=respuesta.respuesta_nombre,
                        respuesta_descripcion=respuesta.respuesta_descripcion,
                    ))

        return aux
Exemple #3
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
Exemple #4
0
	def registrar_riesgo_proyecto(self, nombre, causa, evento, efecto, tipo, subcategoria_id, proyecto_id):
		riesgo_dao = RiesgoDao()
		subcategoria_dao = SubcategoriaDao()
		proyecto_dao = ProyectoDao()
		return riesgo_dao.registrar_riesgo_proyecto(
			nombre,
			causa,
			evento,
			efecto,
			tipo,
			subcategoria_dao.obtener_subcategoria(subcategoria_id),
			proyecto_dao.obtener_proyecto(proyecto_id),
		)
Exemple #5
0
	def get_riesgos_by_proyecto(self, proyecto):
		"""Devuelve todos los riesgos que esten asociados a un riesgo,
		devuleve como un objeto raw query
		"""
		riesgo_dao = RiesgoDao()
		riesgos = riesgo_dao.get_riesgos_by_proyecto(proyecto)
		aa = []
		for riesgo in riesgos:
			riesgo_aux = model_to_dict(riesgo)
			#print("RRRRR", riesgo_aux)
			#riesgo_aux['fecha_manifestacion'] = riesgo.fecha_manifestacion.strftime("%Y-%m-%d")
			aa.append(riesgo_aux)
			#riesgo['fecha_manifestacion'] = riesgo['fecha_manifestacion'].strftime("%Y-%m-%d")
		return aa
Exemple #6
0
    def asosiar_riesgos_sugeridos_proyecto(self, riesgos, proyecto):
        p_h_r = ProyectoHasRiesgoDao()

        riesgo_dao = RiesgoDao()

        subcategoria_dao = SubcategoriaDao()

        categoria_dao = CategoriaDao()

        rbs_dao = RbsDao()
        rbs_controller = RbsController()
        rbs = rbs_controller.obtener_rbs_general(proyecto.gerente.gerente_id)
        rbs_model = rbs_dao.get_rbs_gerente_id(proyecto.gerente)

        for riesgo in riesgos:
            aux = riesgo_dao.obtener_riesgo(riesgo)
            sub_categoria_aux = aux.sub_categoria
            try:
                sub_aux = self.buscar_sub_categoria_by_uid(
                    rbs, sub_categoria_aux)
                if sub_aux:
                    riesgo_nuevo = riesgo_dao.registrar_riesgo(
                        aux.riesgo_nombre, "Sin Causa definida",
                        "Sin Evento definido", "Sin efecto definido", 0, 0,
                        sub_aux)
                else:
                    print("EEEEEEEEEEEE", sub_categoria_aux.categoria,
                          rbs_model)
                    print("CATENOMBRE",
                          sub_categoria_aux.categoria.categoria_nombre)
                    categoria_aux = categoria_dao.duplicar_categoria_2(
                        sub_categoria_aux.categoria, rbs_model)
                    print("CCCC", categoria_aux)
                    sub_categoria_aux = subcategoria_dao.duplicar_sub_categoria_2(
                        categoria_aux, sub_categoria_aux)
                    print("SSSSSSS", sub_categoria_aux)
                    rbs = rbs_controller.obtener_rbs_general(
                        proyecto.gerente.gerente_id)
                    print("RBSSSSS", rbs)
                    riesgo_nuevo = riesgo_dao.clonar_riesgo(
                        aux.riesgo_nombre, aux.riesgo_uid, sub_categoria_aux)
                    print("RRRRRRRR", riesgo_nuevo)
                p_h_r.registrar_proyecto_riesgo_editado(proyecto, riesgo_nuevo)
            except Exception as e:
                raise e
            finally:
                pass

        return True
Exemple #7
0
    def generar_reporte_evaluar(self, proyecto: Proyecto):
        """Llamar la función Exportar, la cuál esta en la clase reporteEXCEL,
       a esta clase le pasamos el título de la tabla, la cabecera, los
       registros y el nombre del archivo xlsx (EXCEL)."""
        propietario = proyecto.gerente.gerente_nombre
        titulo = "REPORTE PROYECTO " + proyecto.proyecto_nombre
        cabecera = ("CÓDIGO", "RIESGO", "IMPACTO", "PROBABILIDAD", "TOTAL")

        riesgo_dao = RiesgoDao()
        riesgos = riesgo_dao.get_riesgos_by_proyecto(proyecto)
        registros = self.raw_queryset_as_values_list_evaluar(riesgos, proyecto)
        nombreEXCEL = "reporte_" + self.get_datetime()
        reporte = reporteEXCEL(titulo, cabecera, registros, nombreEXCEL, propietario).exportar_evaluar(
            proyecto.proyecto_objetivo, proyecto.proyecto_alcance)
        return nombreEXCEL + ".xlsx"
Exemple #8
0
 def generar_reporte_identificar(self, proyecto):
     """Llamar la función Exportar, la cuál esta en la clase reporteEXCEL,
    a esta clase le pasamos el título de la tabla, la cabecera, los
    registros y el nombre del archivo xlsx (EXCEL)."""
     propietario = proyecto.gerente.gerente_nombre
     titulo = "REPORTE PROYECTO " + proyecto.proyecto_nombre
     cabecera = ("CODIGO", "RIESGO", "CAUSAS", "EVENTO", "EFECTOS")
     riesgo_dao = RiesgoDao()
     riesgos = riesgo_dao.get_riesgos_by_proyecto(proyecto)
     registros = self.raw_queryset_as_values_list(riesgos)
     """registros = [(1110800310, "Andres", "Niño", "06/06/2019", "we", 43),
          (1110800311, "Andres", "Niño", "06/06/2019",  "we", 43),
          (1110800312, "Andres", "Niño", "06/06/2019",  "we", 43),
          ]"""
     nombreEXCEL = "reporte_" + self.get_datetime()
     reporte = reporteEXCEL(titulo, cabecera, registros, nombreEXCEL, propietario).Exportar()
     return nombreEXCEL + ".xlsx"
Exemple #9
0
	def editar_riesgo_proyecto(self, proyecto_id, riesgo_id, nombre, causa, evento, efecto, tipo ):

		riesgo_dao = RiesgoDao()
		proyecto_dao = ProyectoDao()
		proyecto_has_riesgo_dao = ProyectoHasRiesgoDao()

		riesgo = riesgo_dao.obtener_riesgo(riesgo_id)
		proyecto = proyecto_dao.obtener_proyecto(proyecto_id)
		#print("VARIABLES", riesgo, proyecto)
		proyecto_has_riesgo = proyecto_has_riesgo_dao.get_by_riesgo_and_proyecto_2(riesgo, proyecto)
		#print("MI OBJETO", proyecto_has_riesgo)
		if proyecto_has_riesgo.is_editado == 1:
			#proyecto_has_riesgo_dao.actualizar_fecha(proyecto_has_riesgo, fecha)
			return riesgo_dao.editar_riesgo(riesgo, nombre, causa, evento, efecto, tipo, riesgo.sub_categoria)
		else:
			proyecto_has_riesgo.delete()
			riesgo_nuevo = riesgo_dao.registrar_riesgo_2(nombre, causa, evento, efecto, tipo, riesgo.sub_categoria)
			proyecto_has_riesgo_dao.registrar_proyecto_riesgo_editado(proyecto, riesgo_nuevo)
			return riesgo_nuevo
Exemple #10
0
    def obtener_rbs_completa(self, gerente_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)
        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:
                    aux.append({
                        "subcategoria": model_to_dict(subcategoria),
                        "riesgos": list(riesgos.values())
                    })
            rbs.append({
                "categoria": model_to_dict(categoria),
                "subcategorias": aux
            })
        return rbs
Exemple #11
0
	def get_riesgos_sugeridos(self, sector, gerente_id):
		""" Busca todos los riesgos dentro de todos los proyectos
		de un sector especifico, excluyendo a los riesgos propios del gerente"""

		riesgo_dao = RiesgoDao()
		gerente = Gerente(gerente_id=gerente_id)

		r = riesgo_dao.listar_riesgos(gerente_id)

		riesgos_propios = self.raw_queryset_as_dictionary(r)

		riesgos_sugeridos = riesgo_dao.get_riesgos_by_sector_distinct_gerente(sector, gerente)

		riesgos_sugeridos_aux = []

		for aux in riesgos_sugeridos:
			key = riesgos_propios.get(aux.riesgo_nombre)
			if (key == None):
				riesgos_sugeridos_aux.append(aux)

		return riesgos_sugeridos_aux
Exemple #12
0
	def get_riesgos_by_proyecto_base(self, proyecto):
		riesgo_dao = RiesgoDao()
		riesgos = riesgo_dao.get_riesgos_by_proyecto_base(proyecto)
		return self.raw_queryset_of_riesgos_as_values_list(riesgos)
Exemple #13
0
	def get_riesgos_by_proyecto_linea(self, proyecto, linea_base):        
		riesgo_dao = RiesgoDao()
		return riesgo_dao.get_riesgos_by_proyecto_linea(proyecto, linea_base)
Exemple #14
0
	def eliminar_riesgo(self, riesgo):
		riesgo_dao = RiesgoDao()
		return riesgo_dao.eliminar_riesgo(riesgo)
Exemple #15
0
	def obtener_riesgo(self, id):
		riesgo_dao = RiesgoDao()
		return riesgo_dao.obtener_riesgo(id)
Exemple #16
0
	def editar_riesgo(self, riesgo, nombre, causa, evento, efecto, tipo, subcategoria):
		riesgo_dao = RiesgoDao()
		return riesgo_dao.editar_riesgo(riesgo, nombre, causa, evento, efecto, tipo, subcategoria)
Exemple #17
0
	def registrar_riesgo(self, nombre, causa, evento, efecto, tipo, subcategoria):
		riesgo_dao = RiesgoDao()
		return riesgo_dao.registrar_riesgo(nombre, causa, evento, efecto, tipo, subcategoria)
Exemple #18
0
	def listar_riesgos(self, id):
		riesgo_dao = RiesgoDao()
		return riesgo_dao.listar_riesgos(id)