Exemplo n.º 1
0
 public function calculateCompetitionAdvancingToNextLevel($competition_id, $competition_category_id, $number_of_points_needed_for_advancing_to_next_level = 0)
 {
     if ($number_of_points_needed_for_advancing_to_next_level == 0) {
         return false;
     }
     // reset advancing_to_next_level to null to all competitiors
     CompetitionUser::model()->updateAll(array('advancing_to_next_level' => 0), 'competition_id=:competition_id and competition_category_id=:competition_category_id', array(':competition_id' => $competition_id, ':competition_category_id' => $competition_category_id));
     $cus = CompetitionUser::model()->findAll('competition_id=:competition_id and competition_category_id=:competition_category_id and disqualified=:disqualified', array(':competition_id' => $competition_id, ':competition_category_id' => $competition_category_id, ':disqualified' => 0));
     foreach ($cus as $cu) {
         if ($cu == null) {
             $cu = new CompetitionUser();
         }
         $result = $cu->getCompetitionNumericResult(true);
         if ((int) $result['result'] >= $number_of_points_needed_for_advancing_to_next_level) {
             $cu->advancing_to_next_level = 1;
             $cu->save(true, array('advancing_to_next_level'));
         }
     }
     return true;
 }