Added optional $requestInstance parameter
[core.git] / inc / classes / main / points / class_UserPoints.php
index f4dbad4d5cb57280a2d94ae915b47b4f17d56096..13b210eba54818d47fc5e6be4070f55ed785aaae 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -43,7 +43,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         * @param       $userInstance           An instance of a user class
         * @return      $pointsInstance         An instance of this class
         */
-       public final static function createUserPoints (ManageableAccount $userInstance) {
+       public static final function createUserPoints (ManageableAccount $userInstance) {
                // Get a new instance
                $pointsInstance = new UserPoints();
 
@@ -63,6 +63,9 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
                // Get result back
                $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance);
 
+               // Advance to first entry by default
+               $resultInstance->next();
+
                // Set it in this instance
                $pointsInstance->setResultInstance($resultInstance);
 
@@ -90,10 +93,10 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
        }
 
        /**
-        * Checks wether the user has the required amount of points left for the specified action
+        * Checks whether the user has the required amount of points left for the specified action
         *
         * @param       $action                 The action or configuration entry plus prefix the user wants to perform
-        * @return      $hasRequired    Wether the user has the required points
+        * @return      $hasRequired    Whether the user has the required points
         * @todo        Finish loading part of points
         */
        public function ifUserHasRequiredPoints ($action) {
@@ -103,6 +106,9 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
                // Get the required points entry
                $requiredPoints = $this->getConfigInstance()->getConfigEntry($action . '_action_points');
 
+               // Rewind always
+               $this->getResultInstance()->rewind();
+
                // Do we have an entry?
                if ($this->getResultInstance()->next()) {
                        // Get the entry
@@ -123,6 +129,9 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         * @return      void
         */
        function bookPointsDirectly ($amount) {
+               // Rewind always
+               $this->getResultInstance()->rewind();
+
                // Do we have an entry?
                if ($this->getResultInstance()->next()) {
                        // Get the entry
@@ -157,10 +166,11 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
        /**
         * Adds registration elements to a given dataset instance
         *
-        * @param       $criteriaInstance       An instance of a storeable criteria
+        * @param       $criteriaInstance       An instance of a StoreableCriteria class
+        * @param       $requestInstance        An instance of a Requestable class
         * @return      void
         */
-       public function addElementsToDataSet (StoreableCriteria $criteriaInstance) {
+       public function addElementsToDataSet (StoreableCriteria $criteriaInstance, Requestable $requestInstance = NULL) {
                // Add user id
                $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId());