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(); }