/**
  * get single GameLeaderboardDaily instance from a DOMElement
  *
  * @param DOMElement $node
  * @return GameLeaderboardDaily
  */
 public static function fromDOMElement(DOMElement $node)
 {
     $o = new GameLeaderboardDaily();
     $o->assignByHash(self::domNodeToHash($node, self::$FIELD_NAMES, self::$DEFAULT_VALUES, self::$FIELD_TYPES));
     $o->notifyPristine();
     return $o;
 }
 public function add()
 {
     $log = KLogger::instance(KLOGGER_PATH . "processors/", KLogger::DEBUG);
     $log->logInfo("leaderboard > add > start userId : " . $this->userId . " diff Coin : " . $this->difCoin . " time : " . $this->time);
     if (!empty($this->userId)) {
         $user = GameUsers::getGameUserById($this->userId);
         if (!empty($user)) {
             $userId = $user->getUserId();
             if (!empty($userId)) {
                 $daily = GameLeaderboardDaily::getRecordByUserId($userId);
                 if (empty($daily)) {
                     $daily = new GameLeaderboardDaily();
                     $daily->setId(-1);
                     $daily->setUserId($userId);
                     $daily->setCoins(0);
                 }
                 $daily->setLastPlayed($this->time);
                 $weekly = GameLeaderboardWeekly::getRecordByUserId($userId);
                 if (empty($weekly)) {
                     $weekly = new GameLeaderboardWeekly();
                     $weekly->setId(-1);
                     $weekly->setUserId($userId);
                     $weekly->setCoins(0);
                 }
                 $weekly->setLastPlayed($this->time);
                 $dCoins = $daily->getCoins() + (int) $this->difCoin;
                 if ($dCoins < 0) {
                     $dCoins = 0;
                 }
                 $daily->setCoins($dCoins);
                 try {
                     $daily->updateInsertToDatabase(DBUtils::getConnection());
                     $log->logInfo("leaderboard > add >  daily success ");
                 } catch (Exception $exc) {
                     $log->logError("leaderboard > add > error daily : " . $exc->getMessage() . " detail : " . $exc->getTraceAsString());
                 }
                 $wCoins = $weekly->getCoins() + (int) $this->difCoin;
                 if ($wCoins < 0) {
                     $wCoins = 0;
                 }
                 $weekly->setCoins($wCoins);
                 try {
                     $weekly->updateInsertToDatabase(DBUtils::getConnection());
                     $log->logInfo("leaderboard > add >  weekly success ");
                 } catch (Exception $exc) {
                     $log->logError("leaderboard > add > error weekly : " . $exc->getMessage() . " detail : " . $exc->getTraceAsString());
                 }
                 $log->logInfo("leaderboard > add >  finished ");
                 unset($dCoins);
                 unset($wCoins);
                 unset($user);
                 unset($userId);
                 unset($weekly);
                 unset($daily);
             } else {
                 $log->logError("leaderboard > add > user found Id is empty");
             }
         } else {
             $log->logError("leaderboard > add > user Id not found");
         }
     } else {
         $log->logError("leaderboard > add > user Id is empty ");
     }
 }