private void borrowMenu() throws Exception {
        System.out.println("You chose to borrow something from the stock.");
        Boolean valid = false;
        Integer itemId = 0;
        while (!valid) {
            itemId = pickItemInStock();
            if (itemId == -1) {
                // go back
                mainMenu();
                return;
            }
            valid = true;
            Integer quantity = selectQuantity();
            DateInterval interval = selectDuration();
            String reason = null;
            System.out.println("Enter a reason for this booking :");
            try {
                reason = br.readLine();
            } catch (IOException e) {
                // do nothing
            }

            if (tryToBook(itemId, quantity, interval, reason)) {
                System.out
                        .println("You registered your booking successfuly."
                                + (generalController.getAutoValidationState() ? ""
                                        : " Your booking still has to be confirmed by a stock manager."));
                mainMenu();
            } else {
                System.out
                        .println("There was an error during the booking process. Please try again.");
                borrowMenu();
                return;
            }
        }
    }