Category: Uncategorised
Written by x9494r
// 7.1.2021 =======================================================================================
$targetYearID = {tally_total_points___season_raw}; $targetDivision = {tally_total_points___division}; $seasonDivID = {tally_total_points___target_id}; switch($targetDivision) { case 1: $nassCID = 1; break; case 2: $suffCID = 2; break; case 3: $ofCID = 3; break; case 4: $ofCID = 3; break; case 5: $ofCID = 3; break;
case 6: $wnyCID = 4; break; case 7: $nnyCID = 5; break; case 8: $jrCID = 6; break; case 9: $parCID = 8; break; }
$myDb=JFactory::getDbo(); $myQuery=$myDb->getQuery(true); $myQuery ->select('season_id') ->from('fm_season_bridge') ->where('id =' .
$myDb->quote($targetYearID)); $myDb->setQuery($myQuery); $seasonID = $myDb->loadResult(); $db = JFactory::getDBO();
$query='DELETE FROM fm_season_team_points WHERE season_division_id ='.
$db->Quote($seasonDivID); $db->setQuery($query); $db->query(); $db = JFactory::getDBO();
$q='DELETE FROM fm_team_contest_points WHERE season_div_id ='.$db->Quote($seasonDivID); $db->setQuery($q); $db->query();
function getRCPoints($cRank,$ttCount) { switch($cRank) { case 1: if ($ttCount == 1) { $rcPoints = (5 / $ttCount);}
elseif ($ttCount == 2) { $rcPoints = (9 / $ttCount);} elseif ($ttCount == 3) { $rcPoints = (12 / $ttCount);}
elseif ($ttCount == 4) { $rcPoints = (14 / $ttCount);} elseif ($ttCount >= 5) { $rcPoints = (15 / $ttCount);} break;
case 2: if ($ttCount == 1) { $rcPoints = (4 / $ttCount);} elseif ($ttCount == 2) { $rcPoints = (7 / $ttCount);} elseif ($ttCount == 3) {
$rcPoints = (9 / $ttCount);} elseif ($ttCount >= 4) { $rcPoints = (10 / $ttCount);} break; case 3: if ($ttCount == 1) {
$rcPoints = (3 / $ttCount);} elseif ($ttCount == 2) { $rcPoints = (5 / $ttCount);} elseif ($ttCount >= 3) {
$rcPoints = (6 / $ttCount);} break; case 4: if ($ttCount == 1) {$rcPoints = (2 / $ttCount); } elseif ($ttCount >= 2) { $rcPoints = (3 / $ttCount);
} break; case 5: if ($ttCount >= 1) { $rcPoints = (1 / $ttCount);} break; default; $rcPoints = ""; break;} return $rcPoints;
} switch($targetDivision) {
case "1" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($nassCID).'AND projects.season_id ='.$db->quote($seasonID).
'OR teams.class =' .$db->quote($ofCID).'AND teams.country_code =' .$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nass_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1). 'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam). 'AND results.time >'.$db->quote(0). 'AND projrounds.nass_cm_ >'.$db->quote(0).
'AND results.time >'.$myDb->quote(0). 'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.
$myDb->quote('DQ').'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').
'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id;
$resultsArr[3] = $results->nass_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0];
$thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4];
$thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else { $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.
$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.
$myDb->quote('NT').'AND eresults.time <>'. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--').'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($nassCID).'OR eresults.event_id = '.$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.
$myDb->quote('NT').'AND eresults.time <>'. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$db->quote($ofCID).'AND teams.country_code ='.
$db->quote(1) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')->where('eresults.event_id ='.$myDb->quote($thisEventID) .
'AND eresults.time ='.$myDb->quote($thisTopTime) .'AND teams.class ='.$myDb->quote($nassCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myDb->setQuery($myQuery);
$topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {
$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints;
$resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } } $keyTeams[] = $team; $valuePoints[] = $totalPoints;
$eventIndexARR = array("1","4","7","6","2","9","15","5");
$currentIndex=0; foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "2" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($suffCID).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.suff_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(1) .
'AND projrounds.suff_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .
'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(0) .
'AND projrounds.suff_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->suff_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->type;
$thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints;
$resultsCounter++; $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints;
} else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').
'AND eresults.time <> '. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($suffCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myQuery->order('eresults.time*1 asc limit 5'); $myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array();
$valueTPoints = array(); $valueTRanks = array(); $rankCounter = 0; foreach ($topTimesArr as $topTime) {
$thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' .
$myDb->quote($thisEventID) .'AND eresults.time = ' . $myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($suffCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter;
$valueTRanks[] = $rankCounter; if ($topTimeCount > 1) { $rankCounter = $rankCounter + ($topTimeCount - 1); }
$rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++;
$totalPoints = $totalPoints + $currentPoints; } }
$keyTeams[] = $team; $valuePoints[] = $totalPoints; $eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO(); $InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')"; $db->setQuery($InsertQuery); $db->query(); } } break;
case "3" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results');
$query->WHERE ('teams.class =' .$db->quote($ofCID).'AND projects.season_id ='.$db->quote($seasonID).'AND teams.country_code ='.$db->quote(1).
'OR teams.class ='.$db->quote($nassCID). 'AND projects.season_id ='.$db->quote($seasonID) );
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nassof_cm_, results.time, events.type, events.set');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND projrounds.nassof_cm_ >'.$db->quote(0).'AND events.set ='.$db->quote(0).'AND teams.last_name ='.$db->quote($targetTeam).
'AND results.time >'.$db->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.
$myDb->quote('DQ').'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.
$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id =' .
$db->quote($seasonID).'AND events.set ='.$db->quote(1).'AND events.nassof_cm_ >'.$db->quote(0).'AND teams.last_name ='.$db->quote($targetTeam).
'AND results.time >'.$db->quote(0).'AND results.time <>'.
$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.$myDb->quote('DQ').'AND results.time <>'.
$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_seasons AS seasons ON (projects.season_id = seasons.id)');
$query->JOIN ('LEFT', 'world_tracks_rounds AS rounds ON (projrounds.round_id = rounds.id)');
$query->JOIN ('LEFT', 'world_tracks_eventtypes AS etypes ON (events.type = etypes.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->nassof_cm_;
$resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $resultsArr[6] = $results->set; $thisPoints = $resultsArr[0];
$thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4];
$thisEventTypeID = $resultsArr[5]; $thisSet = $resultsArr[6];
$db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('nassof_cm_');
$query->FROM ('world_tracks_events'); $query->WHERE ('id ='.$db->quote($thisEventID) ); $db->setQuery($query); $thisContestCM = $db->loadResult();
if ($thisSet == 0) { if ($thisDrillCM == 0) { break; } else { $thisDrillCM = $thisDrillCM; } } elseif ($thisSet == 1) {
if ($thisContestCM == "No Value"){$thisDrillCM = 0; } elseif ($thisContestCM == "Real") { $thisDrillCM = 1; } else { $thisDrillCM = 2; } } else { $thisDrillCM = $thisDrillCM; } if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } elseif ($thisDrillCM == 2) {
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA').
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='. $myDb->quote($ofCID).
'OR eresults.event_id ='.$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').
'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').
'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').
'AND teams.class ='.$myDb->quote($nassCID) ); $myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' . $myDb->quote($thisEventID) .
'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '.$myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter;
if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);} switch($currentRank) { case 1;
if ($topTimeCount == 1) { $rcPoints = (5 / $topTimeCount);} elseif ($topTimeCount == 2) {
$rcPoints = (9 / $topTimeCount);} elseif ($topTimeCount == 3) { $rcPoints = (12 / $topTimeCount);} elseif ($topTimeCount == 4) {
$rcPoints = (14 / $topTimeCount);} elseif ($topTimeCount >= 5) { $rcPoints = (15 / $topTimeCount);} break;
case 2; if ($topTimeCount == 1) { $rcPoints = (4 / $topTimeCount);}
elseif ($topTimeCount == 2) { $rcPoints = (7 / $topTimeCount);} elseif ($topTimeCount == 3) { $rcPoints = (9 / $topTimeCount);}
elseif ($topTimeCount >= 4) { $rcPoints = (10 / $topTimeCount);} break; case 3; if ($topTimeCount == 1) {$rcPoints = (3 / $topTimeCount);}
elseif ($topTimeCount == 2) { $rcPoints = (5 / $topTimeCount);} elseif ($topTimeCount >= 3) { $rcPoints = (6 / $topTimeCount);} break;
case 4; if ($topTimeCount == 1) {$rcPoints = (2 / $topTimeCount);} elseif ($topTimeCount >= 2) { $rcPoints = (3 / $topTimeCount);} break;
case 5; if ($topTimeCount >= 1) { $rcPoints = (1 / $topTimeCount);} break; default; $rcPoints = ""; break;} $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints;
$resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } } $keyTeams[] = $team; $valuePoints[] = $totalPoints;
$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0; foreach ($eventTotalsARR as $eventTotal) {
$key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "4" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($ofCID).
'AND projects.season_id ='.$db->quote($seasonID).'AND teams.country_code =' .$db->quote(4));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.suffof_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.suffof_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <> '.$myDb->quote('NT').'AND results.time <> '.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').
'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)'); $db->setQuery($query);
$resultsList = $db->loadObjectList();
$resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->suffof_cm_; $resultsArr[4] = $results->time;
$resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2];
$thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5];if ($thisDrillCM == 1) {
$totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else {
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').'AND eresults.time <> '.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($ofCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' . $myDb->quote($thisEventID) .
'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult();
$currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);}
$rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex];
$currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "5" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($ofCID).
'AND projects.season_id ='.$db->quote($seasonID).'OR teams.class ='.$db->quote($nassCID).'AND projects.season_id ='.$db->quote($seasonID) );
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.liof_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1). 'AND projects.season_id =' .$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.liof_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <> '.$myDb->quote('NT').'AND results.time <> '.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.
$myDb->quote('') ); $query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->liof_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1];
$thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5];
if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints;
} else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($ofCID) . 'OR eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($nassCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id ='.$myDb->quote($thisEventID) .'AND eresults.time ='.$myDb->quote($thisTopTime) .'AND teams.class ='.$myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myDb->setQuery($myQuery);
$topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {
$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount);
$valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) {
$currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "6" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($wnyCID).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.wny_cm_, results.time, events.set');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(1) .
'AND projrounds.wny_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .
'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(0) .
'AND projrounds.wny_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->wny_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->set;
$thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisSet = $resultsArr[5]; if ($thisSet == 0) { $thisCM = $thisDrillCM; } elseif ($thisSet == 1) {
$query = $db->getQuery(true); $query->SELECT ('wny_cm_'); $query->FROM ('world_tracks_events'); $query->WHERE ('id ='.$db->quote($thisEventID) );
$db->setQuery($query); $thisContestCM = $db->loadResult(); if ($thisContestCM == "No Value") { $thisCM = 0; } elseif ($thisContestCM == "Real") {
$thisCM = 1; } else { $thisCM = 2; }} else { $thisCM = $thisDrillCM; } if ($thisCM == 1) { $totalPoints = $totalPoints + $thisPoints;
$resultsCounter++; } else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').
'AND eresults.time <> '. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($wnyCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myQuery->order('eresults.time*1 asc limit 5'); $myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array();
$valueTPoints = array(); $valueTRanks = array(); $rankCounter = 0; foreach ($topTimesArr as $topTime) {
$thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' .
$myDb->quote($thisEventID) .'AND eresults.time = ' . $myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($wnyCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter;
$valueTRanks[] = $rankCounter; if ($topTimeCount > 1) { $rankCounter = $rankCounter + ($topTimeCount - 1); } switch($currentRank) {
case 1; if ($topTimeCount == 1) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount == 2) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount == 3) { $rcPoints = (12 / $topTimeCount);} elseif ($topTimeCount == 4) { $rcPoints = (14 / $topTimeCount);
} elseif ($topTimeCount >= 5) { $rcPoints = (15 / $topTimeCount); } break; case 2; if ($topTimeCount == 1) { $rcPoints = (4 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (7 / $topTimeCount); } elseif ($topTimeCount == 3) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount >= 4) { $rcPoints = (10 / $topTimeCount);} break; case 3; if ($topTimeCount == 1) {$rcPoints = (3 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount >= 3) { $rcPoints = (6 / $topTimeCount);} break;
case 4; if ($topTimeCount == 1) {$rcPoints = (2 / $topTimeCount); } elseif ($topTimeCount >= 2) { $rcPoints = (3 / $topTimeCount);} break;
case 5; if ($topTimeCount >= 1) { $rcPoints = (1 / $topTimeCount);} break; default; $rcPoints = ""; break; } $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif ($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } }
$keyTeams[] = $team; $valuePoints[] = $totalPoints; $eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; } } break;
case "7" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($nnyCID).
'AND projects.season_id ='.$db->quote($seasonID)); $query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nny_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.nny_cm_ >'.$db->quote(0).
'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').
'AND results.time <>'.$myDb->quote('DQ') . 'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').
'AND results.time <>'.$myDb->quote('--'). 'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)'); $db->setQuery($query);
$resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) {
$resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->nny_cm_; $resultsArr[4] = $results->time;
$resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2];
$thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) {
$totalPoints = $totalPoints + $thisPoints; $resultsCounter++; $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints;
} else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0). 'AND eresults.time <>'.$myDb->quote('OT'). 'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ'). 'AND eresults.time <>'.$myDb->quote('TBA'). 'AND eresults.time <>'. $myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') . 'AND eresults.time <>'.$myDb->quote(''). 'AND teams.class ='. $myDb->quote($nnyCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array();
$valueTRanks = array(); $rankCounter = 0;
foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id = ' . $myDb->quote($thisEventID) .'AND eresults.time = ' .$myDb->quote($thisTopTime) .
'AND teams.class = '.$myDb->quote($nnyCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult();
$currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);}
$rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) {
$currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "8" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($jrCID).
'AND projects.season_id ='.$db->quote($seasonID)); $query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("21"=>0,"12"=>0,"11"=>0,"27"=>0,"22"=>0,"28"=>0,"29"=>0,"20"=>0,"19"=>0,"31"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true); $query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.jr_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id =' .$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.jr_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.
$myDb->quote('') ); $query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList();
$resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->jr_cm_;
$resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1];
$thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else { $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.
$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT'). 'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'. $myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='. $myDb->quote($jrCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id = ' . $myDb->quote($thisEventID) .'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '.
$myDb->quote($jrCID)); $myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter;
if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount);
$valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000;
$currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex];
$currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("21","12","11","27","22","28","29","20","19","31");
$currentIndex=0; foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break; }
$teamPointsArr = array_combine($keyTeams, $valuePoints); foreach($teamPointsArr as $teamName => $teamValue) { $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_season_team_points (season_division_id, team, points) VALUES ('$seasonDivID','$teamName','$teamValue')";
$db->setQuery($InsertQuery); $db->query(); } rsort($teamPointsArr); $teamPointsArr = array_unique($teamPointsArr);
$currentRank = 0; foreach ($teamPointsArr as $totalPoints) { $currentRank++; if ($totalPoints == 0) {$currentRank = 1000; }
$myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true);
$myQuery ->update('fm_season_team_points') ->set('rank ='.$myDb->quote($currentRank)) ->where('points =' .$myDb->quote($totalPoints) .
'AND season_division_id =' .$myDb->quote($seasonDivID) ); $myDb->setQuery($myQuery); $myDb->execute(); }
// v06.25.2021 =================================================================
$targetYearID = {tally_total_points___season_raw}; $targetDivision = {tally_total_points___division}; $seasonDivID = {tally_total_points___target_id};
switch($targetDivision) { case 1: $nassCID = 1; break; case 2: $suffCID = 2; break; case 3: $ofCID = 3; break; case 4: $ofCID = 3; break; case 5: $ofCID = 3; break;
case 6: $wnyCID = 4; break; case 7: $nnyCID = 5; break; case 8: $jrCID = 6; break; case 9: $parCID = 8; break; }
$myDb=JFactory::getDbo(); $myQuery=$myDb->getQuery(true); $myQuery ->select('season_id') ->from('fm_season_bridge') ->where('id =' .
$myDb->quote($targetYearID)); $myDb->setQuery($myQuery); $seasonID = $myDb->loadResult(); $db = JFactory::getDBO();
$query='DELETE FROM fm_season_team_points WHERE season_division_id ='.
$db->Quote($seasonDivID); $db->setQuery($query); $db->query(); $db = JFactory::getDBO();
$q='DELETE FROM fm_team_contest_points WHERE season_div_id ='.$db->Quote($seasonDivID); $db->setQuery($q); $db->query();
function getRCPoints($cRank,$ttCount) { switch($cRank) { case 1: if ($ttCount == 1) { $rcPoints = (5 / $ttCount);}
elseif ($ttCount == 2) { $rcPoints = (9 / $ttCount);} elseif ($ttCount == 3) { $rcPoints = (12 / $ttCount);}
elseif ($ttCount == 4) { $rcPoints = (14 / $ttCount);} elseif ($ttCount >= 5) { $rcPoints = (15 / $ttCount);} break;
case 2: if ($ttCount == 1) { $rcPoints = (4 / $ttCount);} elseif ($ttCount == 2) { $rcPoints = (7 / $ttCount);} elseif ($ttCount == 3) {
$rcPoints = (9 / $ttCount);} elseif ($ttCount >= 4) { $rcPoints = (10 / $ttCount);} break; case 3: if ($ttCount == 1) {
$rcPoints = (3 / $ttCount);} elseif ($ttCount == 2) { $rcPoints = (5 / $ttCount);} elseif ($ttCount >= 3) {
$rcPoints = (6 / $ttCount);} break; case 4: if ($ttCount == 1) {$rcPoints = (2 / $ttCount); } elseif ($ttCount >= 2) { $rcPoints = (3 / $ttCount);
} break; case 5: if ($ttCount >= 1) { $rcPoints = (1 / $ttCount);} break; default; $rcPoints = ""; break;} return $rcPoints;
} switch($targetDivision) {
case "1" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($nassCID).'AND projects.season_id ='.$db->quote($seasonID).
'OR teams.class =' .$db->quote($ofCID).'AND teams.country_code =' .$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nass_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1). 'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam). 'AND results.time >'.$db->quote(0). 'AND projrounds.nass_cm_ >'.$db->quote(0).
'AND results.time >'.$myDb->quote(0). 'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.
$myDb->quote('DQ').'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').
'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id;
$resultsArr[3] = $results->nass_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0];
$thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4];
$thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else { $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.
$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.
$myDb->quote('NT').'AND eresults.time <>'. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--').'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($nassCID).'OR eresults.event_id = '.$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.
$myDb->quote('NT').'AND eresults.time <>'. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$db->quote($ofCID).'AND teams.country_code ='.
$db->quote(1) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')->where('eresults.event_id ='.$myDb->quote($thisEventID) .
'AND eresults.time ='.$myDb->quote($thisTopTime) .'AND teams.class ='.$myDb->quote($nassCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myDb->setQuery($myQuery);
$topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {
$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints;
$resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } } $keyTeams[] = $team; $valuePoints[] = $totalPoints;
$eventIndexARR = array("1","4","7","6","2","9","15","5");
$currentIndex=0; foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "2" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($suffCID).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.suff_cm_, results.time, events.set');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(1) .
'AND projrounds.suff_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .
'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(0) .
'AND projrounds.suff_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->suff_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->set;
$thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisSet = $resultsArr[5]; if ($thisSet == 0) { $thisCM = $thisDrillCM; } elseif ($thisSet == 1) {
$query = $db->getQuery(true); $query->SELECT ('suff_cm_'); $query->FROM ('world_tracks_events'); $query->WHERE ('id ='.$db->quote($thisEventID) );
$db->setQuery($query); $thisContestCM = $db->loadResult(); if ($thisContestCM == "No Value") { $thisCM = 0; } elseif ($thisContestCM == "Real") {
$thisCM = 1; } else { $thisCM = 2; }} else { $thisCM = $thisDrillCM; } if ($thisCM == 1) { $totalPoints = $totalPoints + $thisPoints;
$resultsCounter++; } else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').
'AND eresults.time <> '. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($suffCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myQuery->order('eresults.time*1 asc limit 5'); $myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array();
$valueTPoints = array(); $valueTRanks = array(); $rankCounter = 0; foreach ($topTimesArr as $topTime) {
$thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' .
$myDb->quote($thisEventID) .'AND eresults.time = ' . $myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($suffCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter;
$valueTRanks[] = $rankCounter; if ($topTimeCount > 1) { $rankCounter = $rankCounter + ($topTimeCount - 1); } switch($currentRank) {
case 1; if ($topTimeCount == 1) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount == 2) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount == 3) { $rcPoints = (12 / $topTimeCount);} elseif ($topTimeCount == 4) { $rcPoints = (14 / $topTimeCount);
} elseif ($topTimeCount >= 5) { $rcPoints = (15 / $topTimeCount); } break; case 2; if ($topTimeCount == 1) { $rcPoints = (4 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (7 / $topTimeCount); } elseif ($topTimeCount == 3) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount >= 4) { $rcPoints = (10 / $topTimeCount);} break; case 3; if ($topTimeCount == 1) {$rcPoints = (3 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount >= 3) { $rcPoints = (6 / $topTimeCount);} break;
case 4; if ($topTimeCount == 1) {$rcPoints = (2 / $topTimeCount); } elseif ($topTimeCount >= 2) { $rcPoints = (3 / $topTimeCount);} break;
case 5; if ($topTimeCount >= 1) { $rcPoints = (1 / $topTimeCount);} break; default; $rcPoints = ""; break; } $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif ($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } }
$keyTeams[] = $team; $valuePoints[] = $totalPoints; $eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; } } break;
case "3" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results');
$query->WHERE ('teams.class =' .$db->quote($ofCID).'AND projects.season_id ='.$db->quote($seasonID).'AND teams.country_code ='.$db->quote(1).
'OR teams.class ='.$db->quote($nassCID). 'AND projects.season_id ='.$db->quote($seasonID) );
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nassof_cm_, results.time, events.type, events.set');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND projrounds.nassof_cm_ >'.$db->quote(0).'AND events.set ='.$db->quote(0).'AND teams.last_name ='.$db->quote($targetTeam).
'AND results.time >'.$db->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.
$myDb->quote('DQ').'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.
$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id =' .
$db->quote($seasonID).'AND events.set ='.$db->quote(1).'AND events.nassof_cm_ >'.$db->quote(0).'AND teams.last_name ='.$db->quote($targetTeam).
'AND results.time >'.$db->quote(0).'AND results.time <>'.
$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.$myDb->quote('DQ').'AND results.time <>'.
$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_seasons AS seasons ON (projects.season_id = seasons.id)');
$query->JOIN ('LEFT', 'world_tracks_rounds AS rounds ON (projrounds.round_id = rounds.id)');
$query->JOIN ('LEFT', 'world_tracks_eventtypes AS etypes ON (events.type = etypes.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->nassof_cm_;
$resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $resultsArr[6] = $results->set; $thisPoints = $resultsArr[0];
$thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4];
$thisEventTypeID = $resultsArr[5]; $thisSet = $resultsArr[6];
$db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('nassof_cm_');
$query->FROM ('world_tracks_events'); $query->WHERE ('id ='.$db->quote($thisEventID) ); $db->setQuery($query); $thisContestCM = $db->loadResult();
if ($thisSet == 0) { if ($thisDrillCM == 0) { break; } else { $thisDrillCM = $thisDrillCM; } } elseif ($thisSet == 1) {
if ($thisContestCM == "No Value"){$thisDrillCM = 0; } elseif ($thisContestCM == "Real") { $thisDrillCM = 1; } else { $thisDrillCM = 2; } } else { $thisDrillCM = $thisDrillCM; } if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } elseif ($thisDrillCM == 2) {
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA').
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='. $myDb->quote($ofCID).
'OR eresults.event_id ='.$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').
'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').
'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').
'AND teams.class ='.$myDb->quote($nassCID) ); $myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' . $myDb->quote($thisEventID) .
'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '.$myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter;
if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);} switch($currentRank) { case 1;
if ($topTimeCount == 1) { $rcPoints = (5 / $topTimeCount);} elseif ($topTimeCount == 2) {
$rcPoints = (9 / $topTimeCount);} elseif ($topTimeCount == 3) { $rcPoints = (12 / $topTimeCount);} elseif ($topTimeCount == 4) {
$rcPoints = (14 / $topTimeCount);} elseif ($topTimeCount >= 5) { $rcPoints = (15 / $topTimeCount);} break;
case 2; if ($topTimeCount == 1) { $rcPoints = (4 / $topTimeCount);}
elseif ($topTimeCount == 2) { $rcPoints = (7 / $topTimeCount);} elseif ($topTimeCount == 3) { $rcPoints = (9 / $topTimeCount);}
elseif ($topTimeCount >= 4) { $rcPoints = (10 / $topTimeCount);} break; case 3; if ($topTimeCount == 1) {$rcPoints = (3 / $topTimeCount);}
elseif ($topTimeCount == 2) { $rcPoints = (5 / $topTimeCount);} elseif ($topTimeCount >= 3) { $rcPoints = (6 / $topTimeCount);} break;
case 4; if ($topTimeCount == 1) {$rcPoints = (2 / $topTimeCount);} elseif ($topTimeCount >= 2) { $rcPoints = (3 / $topTimeCount);} break;
case 5; if ($topTimeCount >= 1) { $rcPoints = (1 / $topTimeCount);} break; default; $rcPoints = ""; break;} $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints;
$resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } } $keyTeams[] = $team; $valuePoints[] = $totalPoints;
$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0; foreach ($eventTotalsARR as $eventTotal) {
$key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "4" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($ofCID).
'AND projects.season_id ='.$db->quote($seasonID).'AND teams.country_code =' .$db->quote(4));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.suffof_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.suffof_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <> '.$myDb->quote('NT').'AND results.time <> '.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').
'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)'); $db->setQuery($query);
$resultsList = $db->loadObjectList();
$resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->suffof_cm_; $resultsArr[4] = $results->time;
$resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2];
$thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5];if ($thisDrillCM == 1) {
$totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else {
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').'AND eresults.time <> '.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($ofCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' . $myDb->quote($thisEventID) .
'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult();
$currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);}
$rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex];
$currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "5" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($ofCID).
'AND projects.season_id ='.$db->quote($seasonID).'OR teams.class ='.$db->quote($nassCID).'AND projects.season_id ='.$db->quote($seasonID) );
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"17"=>0,"16"=>0,"23"=>0,"10"=>0,"9"=>0,"18"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.liof_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1). 'AND projects.season_id =' .$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.liof_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <> '.$myDb->quote('NT').'AND results.time <> '.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.
$myDb->quote('') ); $query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->liof_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1];
$thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5];
if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints;
} else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($ofCID) . 'OR eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT').'AND eresults.time <>'.$myDb->quote('NT').'AND eresults.time <>'.
$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .'AND eresults.time <>'.$myDb->quote('--') .
'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='.$myDb->quote($nassCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id ='.$myDb->quote($thisEventID) .'AND eresults.time ='.$myDb->quote($thisTopTime) .'AND teams.class ='.$myDb->quote($ofCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myDb->setQuery($myQuery);
$topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {
$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount);
$valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) {
$currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","17","16","23","10","9","18","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "6" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT ('DISTINCT teams.last_name');
$query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($wnyCID).'AND projects.season_id ='.$db->quote($seasonID));
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.wny_cm_, results.time, events.set');
$query->FROM ('fm_event_results as results'); $query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(1) .
'AND projrounds.wny_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') .
'OR projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0). 'AND events.set ='.$db->quote(0) .
'AND projrounds.wny_cm_ >'.$db->quote(0).'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').
'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'. $myDb->quote('DQ') .'AND results.time <>'.$myDb->quote('TBA').
'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0;
foreach ($resultsList as $results) { $resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->wny_cm_; $resultsArr[4] = $results->time; $resultsArr[5] = $results->set;
$thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisSet = $resultsArr[5]; if ($thisSet == 0) { $thisCM = $thisDrillCM; } elseif ($thisSet == 1) {
$query = $db->getQuery(true); $query->SELECT ('wny_cm_'); $query->FROM ('world_tracks_events'); $query->WHERE ('id ='.$db->quote($thisEventID) );
$db->setQuery($query); $thisContestCM = $db->loadResult(); if ($thisContestCM == "No Value") { $thisCM = 0; } elseif ($thisContestCM == "Real") {
$thisCM = 1; } else { $thisCM = 2; }} else { $thisCM = $thisDrillCM; } if ($thisCM == 1) { $totalPoints = $totalPoints + $thisPoints;
$resultsCounter++; } else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id = '.$myDb->quote($thisEventID).
'AND eresults.time > '.$myDb->quote(0).'AND eresults.time <> '.$myDb->quote('OT').'AND eresults.time <> '.$myDb->quote('NT').
'AND eresults.time <> '. $myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'.$myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <> '.$myDb->quote('').'AND teams.class = '. $myDb->quote($wnyCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myQuery->order('eresults.time*1 asc limit 5'); $myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array();
$valueTPoints = array(); $valueTRanks = array(); $rankCounter = 0; foreach ($topTimesArr as $topTime) {
$thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults') ->where('eresults.event_id = ' .
$myDb->quote($thisEventID) .'AND eresults.time = ' . $myDb->quote($thisTopTime) .'AND teams.class = '. $myDb->quote($wnyCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter;
$valueTRanks[] = $rankCounter; if ($topTimeCount > 1) { $rankCounter = $rankCounter + ($topTimeCount - 1); } switch($currentRank) {
case 1; if ($topTimeCount == 1) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount == 2) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount == 3) { $rcPoints = (12 / $topTimeCount);} elseif ($topTimeCount == 4) { $rcPoints = (14 / $topTimeCount);
} elseif ($topTimeCount >= 5) { $rcPoints = (15 / $topTimeCount); } break; case 2; if ($topTimeCount == 1) { $rcPoints = (4 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (7 / $topTimeCount); } elseif ($topTimeCount == 3) { $rcPoints = (9 / $topTimeCount);
} elseif ($topTimeCount >= 4) { $rcPoints = (10 / $topTimeCount);} break; case 3; if ($topTimeCount == 1) {$rcPoints = (3 / $topTimeCount);
} elseif ($topTimeCount == 2) { $rcPoints = (5 / $topTimeCount); } elseif ($topTimeCount >= 3) { $rcPoints = (6 / $topTimeCount);} break;
case 4; if ($topTimeCount == 1) {$rcPoints = (2 / $topTimeCount); } elseif ($topTimeCount >= 2) { $rcPoints = (3 / $topTimeCount);} break;
case 5; if ($topTimeCount >= 1) { $rcPoints = (1 / $topTimeCount);} break; default; $rcPoints = ""; break; } $valueTPoints[] = $rcPoints; }
$timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0;
} elseif ($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex];
} else { $currentRank = 1000; $currentPoints = 0; } $resultsCounter++; $totalPoints = $totalPoints + $currentPoints; } }
$keyTeams[] = $team; $valuePoints[] = $totalPoints; $eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; } } break;
case "7" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($nnyCID).
'AND projects.season_id ='.$db->quote($seasonID)); $query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("1"=>0,"4"=>0,"7"=>0,"6"=>0,"2"=>0,"9"=>0,"15"=>0,"5"=>0); $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.nny_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id ='.$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.nny_cm_ >'.$db->quote(0).
'AND results.time >'.$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').
'AND results.time <>'.$myDb->quote('DQ') . 'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').
'AND results.time <>'.$myDb->quote('--'). 'AND results.time <>'.$myDb->quote('') );
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)'); $db->setQuery($query);
$resultsList = $db->loadObjectList(); $resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) {
$resultsArr[0] = $results->points; $resultsArr[1] = $results->event_id;
$resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->nny_cm_; $resultsArr[4] = $results->time;
$resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1]; $thisDrillID = $resultsArr[2];
$thisDrillCM = $resultsArr[3]; $thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) {
$totalPoints = $totalPoints + $thisPoints; $resultsCounter++; $eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints;
} else { $myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true);
$myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.$myDb->quote($thisEventID).
'AND eresults.time >'.$myDb->quote(0). 'AND eresults.time <>'.$myDb->quote('OT'). 'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ'). 'AND eresults.time <>'.$myDb->quote('TBA'). 'AND eresults.time <>'. $myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') . 'AND eresults.time <>'.$myDb->quote(''). 'AND teams.class ='. $myDb->quote($nnyCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array();
$valueTRanks = array(); $rankCounter = 0;
foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++; $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id = ' . $myDb->quote($thisEventID) .'AND eresults.time = ' .$myDb->quote($thisTopTime) .
'AND teams.class = '.$myDb->quote($nnyCID));
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult();
$currentRank = $rankCounter; $valueTRanks[] = $rankCounter; if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);}
$rcPoints = getRCPoints($currentRank,$topTimeCount); $valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true);
if ($timeIndex === "") { $currentRank = 1000; $currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) {
$currentRank = $valueTRanks[$timeIndex]; $currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("1","4","7","6","2","9","15","5"); $currentIndex=0;
foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break;
case "8" : $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true);
$query->SELECT ('DISTINCT teams.last_name'); $query->FROM ('fm_event_results AS results'); $query->WHERE ('teams.class =' .$db->quote($jrCID).
'AND projects.season_id ='.$db->quote($seasonID)); $query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$db->setQuery($query); $teamList = $db->loadObjectList(); $teamArr = array(); foreach ($teamList as $team) { $teamArr[] = $team->last_name; }
$keyTeams = array(); $valuePoints = array(); $valueRanks = array(); foreach ($teamArr as $team) { $targetTeam = $team;
$eventTotalsARR = array("21"=>0,"12"=>0,"11"=>0,"27"=>0,"22"=>0,"28"=>0,"29"=>0,"20"=>0,"19"=>0,"31"=>0); $db = FabrikWorker::getDbo(false, 2);
$query = $db->getQuery(true); $query->SELECT ('results.points, results.event_id, events.projectround_id, projrounds.jr_cm_, results.time, events.type');
$query->FROM ('fm_event_results as results');
$query->WHERE ('projrounds.sanctioned ='.$db->quote(1).'AND projects.season_id =' .$db->quote($seasonID).
'AND teams.last_name ='.$db->quote($targetTeam).'AND results.time >'.$db->quote(0).'AND projrounds.jr_cm_ >'.$db->quote(0).'AND results.time >'.
$myDb->quote(0).'AND results.time <>'.$myDb->quote('OT').'AND results.time <>'.$myDb->quote('NT').'AND results.time <>'.$myDb->quote('DQ') .
'AND results.time <>'.$myDb->quote('TBA').'AND results.time <>'.$myDb->quote('NA').'AND results.time <>'.$myDb->quote('--').'AND results.time <>'.
$myDb->quote('') ); $query->JOIN ('LEFT', 'world_tracks_events AS events ON (results.event_id = events.id)');
$query->JOIN ('LEFT', 'world_tracks_projects_rounds AS projrounds ON (events.projectround_id = projrounds.id)');
$query->JOIN ('LEFT', 'world_tracks_projects AS projects ON (projrounds.project_id = projects.id)');
$query->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (results.individual_id = teams.id)');
$db->setQuery($query); $resultsList = $db->loadObjectList();
$resultsArr = array(); $totalPoints=0; $resultsCounter=0; foreach ($resultsList as $results) { $resultsArr[0] = $results->points;
$resultsArr[1] = $results->event_id; $resultsArr[2] = $results->projectround_id; $resultsArr[3] = $results->jr_cm_;
$resultsArr[4] = $results->time; $resultsArr[5] = $results->type; $thisPoints = $resultsArr[0]; $thisEventID = $resultsArr[1];
$thisDrillID = $resultsArr[2]; $thisDrillCM = $resultsArr[3];
$thisTime = $resultsArr[4]; $thisEventTypeID = $resultsArr[5]; if ($thisDrillCM == 1) { $totalPoints = $totalPoints + $thisPoints; $resultsCounter++;
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $thisPoints; } else { $myDb = FabrikWorker::getDbo(false, 2);
$myQuery = $myDb->getQuery(true); $myQuery ->select('DISTINCT eresults.time') ->from('fm_event_results as eresults') ->where('eresults.event_id ='.
$myDb->quote($thisEventID).'AND eresults.time >'.$myDb->quote(0).'AND eresults.time <>'.$myDb->quote('OT'). 'AND eresults.time <>'.$myDb->quote('NT').
'AND eresults.time <>'.$myDb->quote('DQ').'AND eresults.time <>'.$myDb->quote('TBA').'AND eresults.time <>'. $myDb->quote('NA') .
'AND eresults.time <>'.$myDb->quote('--') .'AND eresults.time <>'.$myDb->quote('').'AND teams.class ='. $myDb->quote($jrCID) );
$myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)'); $myQuery->order('eresults.time*1 asc limit 5');
$myDb->setQuery($myQuery); $topTimesArr = $myDb->loadObjectList(); $keyTTimes = array(); $valueTPoints = array(); $valueTRanks = array();
$rankCounter = 0; foreach ($topTimesArr as $topTime) { $thisTopTime = $topTime->time; $keyTTimes[] = $thisTopTime; $rankCounter++;
$myDb = FabrikWorker::getDbo(false, 2); $myQuery = $myDb->getQuery(true); $myQuery ->select('COUNT(*)') ->from('fm_event_results as eresults')
->where('eresults.event_id = ' . $myDb->quote($thisEventID) .'AND eresults.time = ' .$myDb->quote($thisTopTime) .'AND teams.class = '.
$myDb->quote($jrCID)); $myQuery->JOIN ('LEFT', 'world_tracks_individuals AS teams ON (eresults.individual_id = teams.id)');
$myQuery->JOIN ('LEFT', 'world_tracks_events AS events ON (eresults.event_id = events.id)');
$myDb->setQuery($myQuery); $topTimeCount = $myDb->loadResult(); $currentRank = $rankCounter; $valueTRanks[] = $rankCounter;
if ($topTimeCount > 1) {$rankCounter = $rankCounter + ($topTimeCount - 1);} $rcPoints = getRCPoints($currentRank,$topTimeCount);
$valueTPoints[] = $rcPoints; } $timeIndex = array_search($thisTime, $keyTTimes, true); if ($timeIndex === "") { $currentRank = 1000;
$currentPoints = 0; } elseif($timeIndex > 0 OR $timeIndex === 0) { $currentRank = $valueTRanks[$timeIndex];
$currentPoints = $valueTPoints[$timeIndex]; } else { $currentRank = 1000; $currentPoints = 0; }
$eventTotalsARR[$thisEventTypeID] = $eventTotalsARR[$thisEventTypeID] + $currentPoints; $resultsCounter++; $totalPoints = $totalPoints + $currentPoints;
} } $keyTeams[] = $team; $valuePoints[] = $totalPoints;$eventIndexARR = array("21","12","11","27","22","28","29","20","19","31");
$currentIndex=0; foreach ($eventTotalsARR as $eventTotal) { $key = $eventIndexARR[$currentIndex]; $currentIndex++; $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_team_contest_points (season_div_id, event_type, team, points) VALUES ('$seasonDivID', '$key','$targetTeam','$eventTotal')";
$db->setQuery($InsertQuery); $db->query(); } } break; }
$teamPointsArr = array_combine($keyTeams, $valuePoints); foreach($teamPointsArr as $teamName => $teamValue) { $db = JFactory::getDBO();
$InsertQuery="INSERT INTO fm_season_team_points (season_division_id, team, points) VALUES ('$seasonDivID','$teamName','$teamValue')";
$db->setQuery($InsertQuery); $db->query(); } rsort($teamPointsArr); $teamPointsArr = array_unique($teamPointsArr);
$currentRank = 0; foreach ($teamPointsArr as $totalPoints) { $currentRank++; if ($totalPoints == 0) {$currentRank = 1000; }
$myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true);
$myQuery ->update('fm_season_team_points') ->set('rank ='.$myDb->quote($currentRank)) ->where('points =' .$myDb->quote($totalPoints) .
'AND season_division_id =' .$myDb->quote($seasonDivID) ); $myDb->setQuery($myQuery); $myDb->execute(); }