. */ namespace SP\Core\Upgrade; use SP\Core\Exceptions\SPException; use SP\Storage\DB; use SP\Storage\QueryData; /** * Class Group * @package SP\Core\Upgrade */ class Group { /** * Actualizar registros con grupos no existentes * @param int $groupId Id de grupo por defecto * @return bool */ public static function fixGroupId($groupId) { $Data = new QueryData(); $Data->setQuery('SELECT usergroup_id FROM usrGroups ORDER BY usergroup_id'); $groups = DB::getResultsArray($Data); $paramsIn = trim(str_repeat(',?', count($groups)), ','); $Data->addParam($groupId); foreach ($groups as $group) { $Data->addParam($group->usergroup_id); } try { DB::beginTransaction(); $query = /** @lang SQL */ 'UPDATE usrData SET user_groupId = ? WHERE user_groupId NOT IN (' . $paramsIn . ') OR user_groupId IS NULL'; $Data->setQuery($query); DB::getQuery($Data); $query = /** @lang SQL */ 'DELETE FROM usrToGroups WHERE usertogroup_groupId <> ? AND usertogroup_groupId NOT IN (' . $paramsIn . ') OR usertogroup_groupId IS NULL'; $Data->setQuery($query); DB::getQuery($Data); DB::endTransaction(); return true; } catch (SPException $e) { DB::rollbackTransaction(); return false; } } }