Off-duty officer opens fire on theft suspect