X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fpoints%2Fclass_UserPoints.php;h=efbd9c82e4f4892636dbc4349499604f47aca967;hp=8da3eb94074a47a993daa6c0817dd3367ef82402;hb=51caaa61ae7ee017abdfd116bbd8c438451315b2;hpb=0cd57c3885f00ad77fc599e53ed2f2d5e7ac267f diff --git a/inc/classes/main/points/class_UserPoints.php b/inc/classes/main/points/class_UserPoints.php index 8da3eb94..efbd9c82 100644 --- a/inc/classes/main/points/class_UserPoints.php +++ b/inc/classes/main/points/class_UserPoints.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -35,10 +35,6 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); - - // Clean up a little - $this->removeNumberFormaters(); - $this->removeSystemArray(); } /** @@ -54,6 +50,25 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo // Set user instance $pointsInstance->setUserInstance($userInstance); + // Get a critieria instance + $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); + + // Add search criteria + $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $userInstance->getUserId()); + $searchInstance->setLimit(1); + + // Get a wrapper instance + $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); + + // Get result back + $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + + // Advance to first entry by default + $resultInstance->next(); + + // Set it in this instance + $pointsInstance->setResultInstance($resultInstance); + // Return instance return $pointsInstance; } @@ -89,23 +104,18 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo $hasRequired = false; // Get the required points entry - $requiredPoints = $this->getConfigInstance()->readConfig($action . '_action_points'); - - // Now get a search criteria and set the user's name as criteria - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId()); - $searchInstance->setLimit(1); - - // Get a wrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); + $requiredPoints = $this->getConfigInstance()->getConfigEntry($action . '_action_points'); - // Get result back - $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + // Rewind always + $this->getResultInstance()->rewind(); // Do we have an entry? - if ($resultInstance->next()) { - // @TODO Load points here - $this->partialStub("Load points here for comparison."); + if ($this->getResultInstance()->next()) { + // Get the entry + $currEntry = $this->getResultInstance()->current(); + + // Has he enought points? + $hasRequired = ($currEntry['points'] >= $requiredPoints); } // END - if // Return the result @@ -119,24 +129,13 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo * @return void */ function bookPointsDirectly ($amount) { - // Get a critieria instance - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - - // Add search criteria - $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class'); - $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId()); - $searchInstance->setLimit(1); - - // Get a wrapper instance - $wrapperInstance = ObjectFactory::createObjectByConfiguredName('user_points_db_wrapper_class'); - - // Get result back - $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance); + // Rewind always + $this->getResultInstance()->rewind(); // Do we have an entry? - if ($resultInstance->next()) { + if ($this->getResultInstance()->next()) { // Get the entry - $entry = $resultInstance->current(); + $entry = $this->getResultInstance()->current(); // Add the points $amount += $entry[UserPointsDatabaseWrapper::DB_COLUMN_POINTS]; @@ -154,10 +153,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo $updateInstance->setWrapperConfigEntry('user_points_db_wrapper_class'); // Remember the update in database result - $resultInstance->add2UpdateQueue($updateInstance); - - // Set it - $this->setResultInstance($resultInstance); + $this->getResultInstance()->add2UpdateQueue($updateInstance); } else { // Set the amount in class $this->setAmount($amount);