| 
    ILIAS
    release_10 Revision v10.1-43-ga1241a92c2f
    
   | 
  
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...
 Collaboration diagram for ilBookingPreferencesManager:Public Member Functions | |
| __construct (ilObjBookingPool $pool, ilBookingPrefBasedBookGatewayRepository $book_repo, ?int $current_time=null, int $bookings_per_user=self::BOOKINGS_PER_USER_DEFAULT) | |
| isGivingPreferencesPossible () | |
| Can participants hand in preferences.  More... | |
| isPreferenceDeadlineReached () | |
| Can participants hand in preferences.  More... | |
| storeBookings (ilBookingPreferences $preferences, ?array $booking_object_ids=null) | |
| Calculate and store bookings.  More... | |
| readBookings () | |
| calculateBookings (ilBookingPreferences $preferences, ?array $booking_object_ids=null, ?array $availability=null) | |
| Calculate bookings.  More... | |
| hasRun () | |
| resetRun () | |
Data Fields | |
| const | BOOKINGS_PER_USER_DEFAULT = 1 | 
Protected Member Functions | |
| addBooking (array &$bookings, array &$preferences, array &$availability, int $user_id, int $book_obj_id) | |
| selectRandomEntry (array $items) | |
| Select a random entry of an array.  More... | |
| getUsersForObject (array $preferences, int $sel_obj_id) | |
| Get users for object.  More... | |
| calculatePopularity (array $booking_object_ids, array $preferences) | |
| Calculate popularity (number of preferences each object got from users)  More... | |
| getObjectWithLowestPopularity (array $popularity, array $availability) | |
| Get an availabe object with lowest popularity > 0.  More... | |
| removePreference (int $user_id, int $obj_id, array $preferences) | |
| Remove a preference from the preference array.  More... | |
| removeObjectFromPreferences (int $obj_id, array $preferences) | |
| Remove an object from the preference array.  More... | |
| removeUserFromPreferences (int $user_id, array $preferences) | |
| Remove user from preference array.  More... | |
| chooseRandomUserFromPreferences (array $preferences) | |
| Choose random user from the preference array.  More... | |
| getMinimalAssignedEntryForUser (array $booking_object_ids, array $bookings, array $user_preferences, array $availability) | |
| Get an available object within the preferences (if no preferences left, even outside of preferences) of a user that is currently minimal assigned.  More... | |
Protected Attributes | |
| ilObjBookingPool | $pool | 
| int | $current_time | 
| int | $bookings_per_user | 
| ilBookingPrefBasedBookGatewayRepository | $book_repo | 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.
ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.
If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning Booking preferences business logic
Definition at line 23 of file class.ilBookingPreferencesManager.php.
| ilBookingPreferencesManager::__construct | ( | ilObjBookingPool | $pool, | 
| ilBookingPrefBasedBookGatewayRepository | $book_repo, | ||
| ?int | $current_time = null,  | 
        ||
| int | $bookings_per_user = self::BOOKINGS_PER_USER_DEFAULT  | 
        ||
| ) | 
Definition at line 32 of file class.ilBookingPreferencesManager.php.
References $book_repo, $bookings_per_user, and $pool.
      
  | 
  protected | 
Definition at line 170 of file class.ilBookingPreferencesManager.php.
References $user_id, removeObjectFromPreferences(), removePreference(), and removeUserFromPreferences().
Referenced by calculateBookings().
 Here is the call graph for this function:
 Here is the caller graph for this function:| ilBookingPreferencesManager::calculateBookings | ( | ilBookingPreferences | $preferences, | 
| ?array | $booking_object_ids = null,  | 
        ||
| ?array | $availability = null  | 
        ||
| ) | 
Calculate bookings.
| int[] | $booking_object_ids | 
| ilBookingCalculationException | 
Definition at line 95 of file class.ilBookingPreferencesManager.php.
References $user_id, addBooking(), calculatePopularity(), chooseRandomUserFromPreferences(), ilBookingObject\getList(), getMinimalAssignedEntryForUser(), ilBookingReservation\getNumAvailablesNoSchedule(), getObjectWithLowestPopularity(), ilBookingPreferences\getPreferences(), getUsersForObject(), isPreferenceDeadlineReached(), removeObjectFromPreferences(), removeUserFromPreferences(), and selectRandomEntry().
Referenced by storeBookings().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  protected | 
Calculate popularity (number of preferences each object got from users)
Definition at line 222 of file class.ilBookingPreferencesManager.php.
References $user_id.
Referenced by calculateBookings().
 Here is the caller graph for this function:
      
  | 
  protected | 
Choose random user from the preference array.
Definition at line 304 of file class.ilBookingPreferencesManager.php.
References selectRandomEntry().
Referenced by calculateBookings().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  protected | 
Get an available object within the preferences (if no preferences left, even outside of preferences) of a user that is currently minimal assigned.
| int[] | $booking_object_ids | 
| int[][] | $bookings | 
| int[] | $user_preferences | 
| int[] | $availability | 
Definition at line 324 of file class.ilBookingPreferencesManager.php.
Referenced by calculateBookings().
 Here is the caller graph for this function:
      
  | 
  protected | 
Get an availabe object with lowest popularity > 0.
Definition at line 243 of file class.ilBookingPreferencesManager.php.
Referenced by calculateBookings().
 Here is the caller graph for this function:
      
  | 
  protected | 
Get users for object.
Definition at line 203 of file class.ilBookingPreferencesManager.php.
References $user_id, and ILIAS\Repository\int().
Referenced by calculateBookings().
 Here is the call graph for this function:
 Here is the caller graph for this function:| ilBookingPreferencesManager::hasRun | ( | ) | 
Definition at line 353 of file class.ilBookingPreferencesManager.php.
| ilBookingPreferencesManager::isGivingPreferencesPossible | ( | ) | 
Can participants hand in preferences.
Definition at line 49 of file class.ilBookingPreferencesManager.php.
References $current_time, and ilObjBookingPool\TYPE_NO_SCHEDULE_PREFERENCES.
| ilBookingPreferencesManager::isPreferenceDeadlineReached | ( | ) | 
Can participants hand in preferences.
Definition at line 58 of file class.ilBookingPreferencesManager.php.
References $current_time, and ilObjBookingPool\TYPE_NO_SCHEDULE_PREFERENCES.
Referenced by calculateBookings().
 Here is the caller graph for this function:| ilBookingPreferencesManager::readBookings | ( | ) | 
Definition at line 82 of file class.ilBookingPreferencesManager.php.
References ilBookingObject\getList().
 Here is the call graph for this function:
      
  | 
  protected | 
Remove an object from the preference array.
Definition at line 275 of file class.ilBookingPreferencesManager.php.
References $user_id.
Referenced by addBooking(), and calculateBookings().
 Here is the caller graph for this function:
      
  | 
  protected | 
Remove a preference from the preference array.
Definition at line 259 of file class.ilBookingPreferencesManager.php.
References $user_id.
Referenced by addBooking().
 Here is the caller graph for this function:
      
  | 
  protected | 
Remove user from preference array.
Definition at line 291 of file class.ilBookingPreferencesManager.php.
Referenced by addBooking(), and calculateBookings().
 Here is the caller graph for this function:| ilBookingPreferencesManager::resetRun | ( | ) | 
Definition at line 358 of file class.ilBookingPreferencesManager.php.
      
  | 
  protected | 
Select a random entry of an array.
Definition at line 193 of file class.ilBookingPreferencesManager.php.
Referenced by calculateBookings(), and chooseRandomUserFromPreferences().
 Here is the caller graph for this function:| ilBookingPreferencesManager::storeBookings | ( | ilBookingPreferences | $preferences, | 
| ?array | $booking_object_ids = null  | 
        ||
| ) | 
Calculate and store bookings.
| ilBookingPreferences | $preferences | |
| ?int[] | $booking_object_ids | 
| ilBookingCalculationException | 
Definition at line 71 of file class.ilBookingPreferencesManager.php.
References calculateBookings().
 Here is the call graph for this function:
      
  | 
  protected | 
Definition at line 30 of file class.ilBookingPreferencesManager.php.
Referenced by __construct().
      
  | 
  protected | 
Definition at line 29 of file class.ilBookingPreferencesManager.php.
Referenced by __construct().
      
  | 
  protected | 
Definition at line 28 of file class.ilBookingPreferencesManager.php.
Referenced by isGivingPreferencesPossible(), and isPreferenceDeadlineReached().
      
  | 
  protected | 
Definition at line 27 of file class.ilBookingPreferencesManager.php.
Referenced by __construct().
| const ilBookingPreferencesManager::BOOKINGS_PER_USER_DEFAULT = 1 | 
Definition at line 25 of file class.ilBookingPreferencesManager.php.