private void fillOrders(List<Order> orders, AbstractDao dao) throws DaoException {
        if (orders != null) {
            for (Order order : orders) {
                Criteria tourCrit = new Criteria();
                tourCrit.addParam(DAO_ID_TOUR, order.getTour().getIdTour());
                tourCrit.addParam(DAO_TOUR_ALLDATE, true);
                tourCrit.addParam(DAO_TOUR_ALLSTATUS, true);
                List<Tour> tours = dao.findTours(tourCrit);
                if (!tours.isEmpty()) {
                    Tour tour = tours.get(0);
                    order.setTour(tour);
                    Criteria directCrit = new Criteria();
                    directCrit.addParam(DAO_ID_DIRECTION, tour.getDirection().getIdDirection());
                    directCrit.addParam(DAO_DIRECTION_ALLSTATUS, true);
                    List<Direction> dirs = dao.findDirections(directCrit);
                    if (!dirs.isEmpty()) {
                        new DirectionLogic().fillDirections(dirs, dao);
                        tour.setDirection(dirs.get(0));
                    }
                }

                Criteria userCrit = new Criteria();
                userCrit.addParam(DAO_ID_USER, order.getUser().getIdUser());
                List<User> users = dao.findUsers(userCrit);
                if (! users.isEmpty()) {
                    order.setUser(users.get(0));
                }

                Criteria touristCrit = new Criteria();
                touristCrit.addParam(DAO_ID_ORDER, order.getIdOrder());
                List<Tourist> tourists = dao.findTourists(touristCrit);
                Tourist.FioComparator comparator = new Tourist.FioComparator();
                Collections.sort(tourists, comparator);
                order.setTouristCollection(tourists);
            }
        }
    }