Мне, пока, видится что Вы делаете какую-то лишнюю работу.
В приложении должно проверяться только доступен ли пользователю цех. Когда доступен, то он может брать любую запчасть или станок.
Когда доступа нет, то и дальше мы не идем остаемся на месте. Т.е. до запчасти в этом случае и станка просто не доходим.