def listar_responsables_riesgo(self, proyecto_id): p_h_r = ProyectoHasRiesgoDao() responsables = p_h_r.listar_responsables_riesgo(proyecto_id) aux = [] for responsable in responsables: aa = model_to_dict(responsable) aa['riesgo_id'] = responsable.riesgo_id aux.append(aa) return aux
def obtener_impactos_by_proyecto_id(self, proyecto_id): impacto_dao = ImpactoDao() proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() p_h_r = proyecto_has_riesgo_dao.get_all_by_proyecto_id(proyecto_id) proyecto = Proyecto(proyecto_id=proyecto_id) impactos = impacto_dao.listar_impactos_by_proyecto(proyecto) return self.set_has_riesgo_impactos(p_h_r, impactos)
def obtener_probabilidades_by_proyecto_id(self, proyecto_id): probabilidad_dao = ProbabilidadDao() proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() p_h_r = proyecto_has_riesgo_dao.get_all_by_proyecto_id(proyecto_id) proyecto = Proyecto(proyecto_id=proyecto_id) probabilidades = probabilidad_dao.listar_probabilidades_by_proyecto( proyecto) return self.set_has_riesgo_probabilidades(p_h_r, probabilidades)
def actualizar_valores_riesgo_proyecto(self, valores, proyecto_id): p_h_r = ProyectoHasRiesgoDao() for key in valores: p_h_r_aux = p_h_r.get_by_riesgo_and_proyecto( Proyecto(proyecto_id=proyecto_id), Riesgo(riesgo_id=valores[key]['riesgo'])) if 'impacto' in key: p_h_r_aux.impacto_id = valores[key]['id'] elif 'probabilidad' in key: p_h_r_aux.propabilidad_id = valores[key]['id'] p_h_r_aux.save()
def registrar_riesgo_proyecto(self, nombre, causa, evento, efecto, tipo, subcategoria, proyecto): riesgo = Riesgo( riesgo_nombre=nombre, riesgo_causa=limpiar_descripcion(causa), riesgo_evento=limpiar_descripcion(evento), riesgo_efecto=limpiar_descripcion(efecto), riesgo_tipo=tipo, sub_categoria=subcategoria ) riesgo.save() p_h_r_dao = ProyectoHasRiesgoDao() return p_h_r_dao.registrar_proyecto_riesgo(proyecto, riesgo)
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
def evaluar_riesgos_by_proyecto_id_linea(self, riesgos, proyecto_id, linea_base): """ Este metodo asume que llegan los riesgos del proyecto_id y el objetivo es buscar los valores de impacto y probabilidad y evaluarlos. :param riesgos: :param proyecto_id: :return: """ proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() proyecto = Proyecto.objects.using('base').get(proyecto_id=proyecto_id, proyecto_linea_base=linea_base) aux = {} for riesgo in riesgos: proyecto_has_riesgo = proyecto_has_riesgo_dao.get_by_riesgo_and_proyecto_2_linea(riesgo, proyecto, linea_base) aux['riesgo_' + str(riesgo.riesgo_id)] = dict( impacto_id=proyecto_has_riesgo.impacto_id, propabilidad_id=proyecto_has_riesgo.propabilidad_id ) return aux
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
def evaluar_riesgos_by_proyecto_id(self, riesgos, proyecto_id): """ Este metodo asume que llegan los riesgos del proyecto_id y el objetivo es buscar los valores de impacto y probabilidad y evaluarlos. :param riesgos: :param proyecto_id: :return: """ proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() proyecto = Proyecto(proyecto_id=proyecto_id) aux = {} for riesgo in riesgos: #print("SUPER IMPRESIONS", riesgo) aa = Riesgo(riesgo_id=riesgo.get('riesgo_id')) proyecto_has_riesgo = proyecto_has_riesgo_dao.get_by_riesgo_and_proyecto_2(aa, proyecto) aux['riesgo_' + str(aa.riesgo_id)] = dict( impacto_id=proyecto_has_riesgo.impacto_id, propabilidad_id=proyecto_has_riesgo.propabilidad_id, #fecha_manifestacion=riesgo['fecha_manifestacion'] ) return aux
def eliminar_responsable_riesgo(self, responsable_id, riesgo_id, proyecto_id): proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() return proyecto_has_riesgo_dao.set_responsable_null( responsable_id, riesgo_id, proyecto_id)
def asosiar_riesgos_proyecto(self, riesgos, proyecto): p_h_r = ProyectoHasRiesgoDao() for riesgo in riesgos: p_h_r.registrar_proyecto_riesgo(proyecto, Riesgo(riesgo_id=riesgo)) return True
def agregar_responsable_riesgo(self, riesgo_proyecto, responsable): p_h_r = ProyectoHasRiesgoDao() return p_h_r.agregar_responsable_riesgo(riesgo_proyecto, responsable)
def eliminar_riesgo_by_proyecto(self, riesgo_proyecto): p_h_r = ProyectoHasRiesgoDao() return p_h_r.eliminar_by_riesgo_and_proyecto(riesgo_proyecto)
def get_riesgo_by_proyecto(self, proyecto, riesgo): p_h_r = ProyectoHasRiesgoDao() return p_h_r.get_by_riesgo_and_proyecto(proyecto, riesgo)
def obtener_responsables_by_proyecto_group_for_riesgos(self, proyecto_id): responsable_dao = ResponsableDao() proyecto_has_riesgo_dao = ProyectoHasRiesgoDao() proyecto = Proyecto(proyecto_id=proyecto_id) proyectos_has_riesgos = proyecto_has_riesgo_dao.listar_proyecto_has_riesgo_by_proyecto(proyecto) return proyectos_has_riesgos
def riesgo_is_proyecto(self, riesgo, proyecto): p_h_r_dao = ProyectoHasRiesgoDao() return p_h_r_dao.get_by_riesgo_and_proyecto_2(riesgo, proyecto)