client.updateOfficeJoiningDate(todaysDate);
if (client.getGroups().size() == 1) {
if (destinationGroup == null) {
throw new TransferNotSupportedException(TRANSFER_NOT_SUPPORTED_REASON.CLIENT_DESTINATION_GROUP_NOT_SPECIFIED,
client.getId());
} else if (!destinationGroup.isActive()) { throw new GroupNotActiveException(destinationGroup.getId()); }
transferClientBetweenGroups(Iterables.get(client.getGroups(), 0), client, destinationGroup, true, staff);
} else if (client.getGroups().size() == 0 && destinationGroup != null) {
client.getGroups().add(destinationGroup);
client.updateStaff(destinationGroup.getStaff());
if (staff != null) {