/** * Ejecutar la accion * * @param int $id_usuario id del usuario que realiza la accion * @throws \Exception usuario no encontrado * @return int 0 si completada con exito ; -1 en caso contrario */ public function ejecutar($id_accion) { // TODO $ret = 0; //COmpruebo si la accion existe $accGrup = AccionesGrupales::model()->findByPk($id_accion); if ($accGrup === null) { throw new Exception("Accion grupal inexistente.", 404); } $creador = $accGrup->usuarios; $equipo = $creador->equipos; $sigPartido = $equipo->sigPartido; //1.- Añadir bonificación al partido $ret = min($ret, Partidos::disminuir_factores($sigPartido->id_partido, $equipo->id_equipo, "nivel", Efectos::$datos_acciones['PublicarDifamaciones']['nivel_equipo'])); $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "ambiente", Efectos::$datos_acciones['PublicarDifamaciones']['ambiente'])); $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "aforo", Efectos::$datos_acciones['PublicarDifamaciones']['aforo'])); //2.- Dar bonificación al creador //3.- Devolver influencias $participantes = $accGrup->participaciones; foreach ($participantes as $participacion) { $infAportadas = $participacion->influencias_aportadas; $usuario = $participacion->usuarios_id_usuario; //if (Recursos::aumentar_recursos($usuario,"influencias",$infAportadas) == 0) { if (Recursos::disminuir_influencias_bloqueadas($usuario, $infAportadas) == 0) { $ret = min($ret, 0); } else { $ret = -1; } } //4.- Finalizar funciónK return $ret; }
/** * Ejecutar la accion * * @param int $id_usuario id del usuario que realiza la accion * @throws \Exception usuario no encontrado * @return int 0 si completada con exito ; -1 en caso contrario */ public function ejecutar($id_usuario, $id_partido, $id_equipo) { // TODO $ret = 0; //Traer el array de efectos parent::ejecutar($id_usuario, $id_partido, $id_equipo); //Validar usuario $us = Usuarios::model()->findByPk($id_usuario); if ($us === null) { throw new Exception("Usuario incorrecto.", 404); } $equipo = $us->equipos; // Modifico Los factores de ese partido $ret = min($ret, Partidos::aumentar_factores($id_partido, $equipo->id_equipo, "defensivo", Efectos::$datos_acciones['EntrevistaPartido']['defensivo'])); $ret = min($ret, Partidos::disminuir_factores($id_partido, $equipo->id_equipo, "ofensivo", Efectos::$datos_acciones['EntrevistaPartido']['ofensivo'])); // Incorporo un registro a la tabla acciones turno si el usuario aun no esta en ella AccionesTurno::incorporarAccion($id_usuario, $id_partido, $id_equipo); //Finalizar función return $ret; }