element[add_team___similar_names]

$orgHometown = '{add_team___hometown_district}'; $thisHometown = '{add_team___hometown_district}'; $thisNickname = '{add_team___nickname}'; $thisHometown = htmlspecialchars_decode($thisHometown); $thisNickname = htmlspecialchars_decode($thisNickname); // SANITIZE INPUT // replace apostraphes with ` //$thisHometown = str_replace("‚", "`", $thisHometown); //$thisHometown = preg_replace("/'/", '`', $thisHometown); $thisHometown = str_replace("'", '`', $thisHometown); // TEST $thisTest = preg_replace('/[^\w]/', '', $thisHometown); //$thisHometown = preg_replace('/[^\w]/', '', $thisHometown); //removes spaces as well as quotes // ************ // split hometown name into array of words and remove any non alphas from each word // only needed to remove apostrophes (for some reason can't strig replace apostrophes or html equivalents) $delimiter = ' '; $wordsARR = explode($delimiter, $thisHometown); $cleanedDistrict = ""; $index= -1; foreach ($wordsARR as $word) { $index++; $word = preg_replace('/[^\w]/', '', $word); // removes non alphas in order to expose hidden chars (௟ => "039") $wordsARR[$index] = $word . " "; } $cleanedDistrict = ""; foreach ($wordsARR as $word) { $cleanedDistrict .= $word . " "; } // remove last space $cleanedDistrict = str_replace('039', "`", $cleanedDistrict); // replace apostrophes $cleanedDistrict = rtrim($cleanedDistrict); // remove any end spaces // replace double spaces with single space $cleanedDistrict = str_replace(' ', " ", $cleanedDistrict); // this does not work? // ************ $thisNickname = str_replace("'", "`", $thisNickname); // replace quotes $thisHometown = str_replace('"', "", $thisHometown); $thisNickname = str_replace('"', "", $thisNickname); // change to title caps $thisHometown = ucwords(strtolower($thisHometown)); $thisNickname = ucwords(strtolower($thisNickname)); unset($similarTeamsArr); $thisFullTeamName = $thisHometown . " " . $thisNickname; // ******************** // split nickname into array of words and remove any non alphas from each word // only needed to remove apostrophes (for some reason can't strig replace apostrophes or html equivalents) $delimiter = ' '; $wordsARR = explode($delimiter, $thisNickname); $cleanedNickname = ""; $index= -1; foreach ($wordsARR as $word) { $index++; $word = preg_replace('/[^\w]/', '', $word); // removes non alphas in order to expose hidden chars (௟ => "039") $wordsARR[$index] = $word . " "; } $cleanedNickname = ""; foreach ($wordsARR as $word) { $cleanedNickname .= $word . " "; } // remove last space $cleanedNickname = str_replace('039', "`", $cleanedNickname); // replace apostrophes $cleanedNickname = rtrim($cleanedNickname); // remove any end spaces // replace double spaces with single space $cleanedNickname = str_replace(' ', " ", $cleanedNickname); // this does not work? $cleanedDistrict = ucwords(strtolower($cleanedDistrict)); $cleanedNickname = ucwords(strtolower($cleanedNickname)); $cleanedTeamName = $cleanedDistrict . " " . $cleanedNickname; // ********************** if ($thisHometown !== "") { // user has entered something $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->select('last_name') ->from('world_tracks_individuals') ->where('BINARY last_name = ' . $myDb->quote($cleanedTeamName) ); $myDb->setQuery($myQuery); $matchingTeam = $myDb->loadResult(); if ($matchingTeam == "") { // team does not exist $thisSearchHome = "%" . $thisHometown ."%" ; $thisSearchNickname = "%" . $thisNickname ."%" ; // check for similar $thisSearchTeamName = "%" . $thisHometown ."%" . $thisNickname . "%"; $thisSearchTeamName = "%" . $thisHometown . "%"; // $thisSearchTeamName = $thisSearchHome . " " . $thisSearchNickname; $searchCleanedTeamName = "%" . $cleanedTeamName . "%"; $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->select('last_name') ->from('world_tracks_individuals') ->where('last_name LIKE ' . $myDb->quote($searchCleanedTeamName) ); $myDb->setQuery($myQuery); $similarTeamsArr = $myDb->loadObjectList(); // OUTPUT TEAMS $nameList = array(); foreach ($similarTeamsArr as $similarTeam) { $nameList[] = "
  • " .$similarTeam->last_name . "
  • "; } //return ">" . $thisTeamName. "<
    " . print_r($teamsInDrill); if (count($similarTeamsArr) != 0) { $summLabel = "" . " Similar Teams Found: " . $cleanedTeamName . "
    "; } else { $summLabel = ""; // . $thisHometown; } // ************************* // OUTPUT return $summLabel . "
      " . implode($nameList) . "
    "; /* // return new team $summLabel = "" . " Valid Team:
    "; return $summLabel . $thisFullTeamName; */ } else { // team already exists // ************************* // OUTPUT return "" . " Sorry that Team Already exists.
    "; } // end if matchingTeam } else { // user has not entered anything yet //$summLabel = "" . $thisFullTeamName; // ************************* // OUTPUT return "" ; }

    Team Added Successfully

    ✓ Team Added: South Hempstead Fire Deparment / INACTIVE / Nassau / Nassau Motorized + Add More | View Directory

    Other Recent Additions:
    1. 2023-01-06 10:29:56 / Glen Cove City Fire Department / John Mahoney
    2. 2023-01-05 10:55:27 / Wantagh Engine Company / John Mahoney
    3. 2023-01-05 10:53:52 / Glenwood Fire Company / John Mahoney
    4. 2022-12-21 10:11:54 / Franklin Square Rebels / John Mahoney
    5. 2022-12-08 11:40:26 / Babylon Fire Department / John Mahoney
    6. 2022-12-08 11:35:35 / East End Hares / John Mahoney
    7. 2022-12-08 11:28:08 / South Floral Park Fire Department / John Mahoney
    8. 2022-11-30 10:51:27 / Dix Hills Fire Department / John Mahoney
    9. 2022-11-30 10:49:43 / North Massapequa Fire Department / John Mahoney
    10. 2022-11-30 10:40:21 / Williston Park Flashes / John Mahoney
    11. 2022-11-29 10:56:34 / Wantagh H L Engine Co No 1 / John Mahoney
    12. 2022-11-29 10:54:29 / Lakeland Fire Department / John Mahoney
    13. 2022-11-29 10:51:08 / Malvern Fire Department / John Mahoney
    14. 2022-11-29 10:41:19 / East Rockaway Fire Department / John Mahoney
    15. 2022-11-29 10:37:38 / Westbury Tartails / John Mahoney
    16. 2022-11-29 10:33:48 / Glenwood Fire Co / John Mahoney
    17. 2022-11-19 14:07:39 / Cutchogue Jr Panthers / John Mahoney
    18. 2022-11-19 14:06:48 / North Lindenhurst Jr Piston Knockers / John Mahoney
    19. 2022-11-19 14:05:16 / Farmingdale Jr Coolies / John Mahoney
    20. 2022-11-19 14:03:07 / Centereach Jr Explorers / John Mahoney
    21. 2022-11-19 14:02:06 / East Hampton Jr Bonackers / John Mahoney

    [BKUP] form plugin: top records events

    // INIT 7.15.21 // GET PARENT ID ----------------------------------------------------------------------------------------- $sheetID = '{top_records_events___sheet_id}'; // GET SELECTED EVENT ------------------------------------------------------------------------------------ $selectedEvent = '{top_records_events___selected_event}'; $selectedEventRaw = "," . $selectedEvent ; // add delimiter so we can check for partial strings (example: 5 vs 15) // GET PAST EVENT PARAM ---------------------------------------------------------------------------------- $pastEventParams = '{top_records_events___event_params}'; $pastEventParams = strip_tags($pastEventParams); // GET PAST LOG ------------------------------------------------------------------------------------------ $pastLog = '{top_records_events___log}'; // GET CURRENT TRACK ------------------------------------------------------------------------------------- $drillID = '{top_records_events___project_rounds_id}'; $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('location'); $query->FROM('world_tracks_projects_rounds'); $query->WHERE ('id= ' . $db->quote($drillID)); $db->setQuery($query); $currentTrack = $db->loadResult(); // CREATE NEW LOG ---------------------------------------------------------------------------------------- // get admin $user = JFactory::getUser(); $adminID = $user->id; $adminName = $user->name; $adminUsername = $user->username; $thisAdmin = $adminUsername; // get mod date date_default_timezone_set('New York'); $thisDate = date('n/j/Y@g:ia', time()); // get new log addition $updatedLog = "[" . $thisAdmin . "]" . $thisDate . ":" . $selectedEvent . ", " . $pastLog; // CHECK TO SEE IF SELECTED EVENT IS ALREADY IN EVENT PARAMS --------------------------------------------- if (strpos($pastEventParams, $selectedEventRaw) !== false) { // event is already in event params, no need to add it again } else { // add selected event to event params // check if past event params is empty if ($pastEventParams == "") { // just add current params $updatedEventParams = $selectedEvent; } else { // combine past with present $updatedEventParams = $pastEventParams . "," . $selectedEvent; } // UPDATE EVENT PARAMS ----------------------------------------------- // write to log in top records generator $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->update('top_records_generator') ->set('event_params = ' . $myDb->quote($updatedEventParams)) ->where('sheet_id = ' . $myDb->quote($sheetID)); $myDb->setQuery($myQuery); $myDb->execute(); } // end if pastEventParams // UPDATE LOG -------------------------------------------------------------------------------------------- // write to log in top records generator $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->update('top_records_generator') ->set('event_log = ' . $myDb->quote($updatedLog)) ->where('sheet_id = ' . $myDb->quote($sheetID)); $myDb->setQuery($myQuery); $myDb->execute(); // ========================================================================================= // OUTPUT RECORDS // ========================================================================================= // INIT VARS $sheetID = '{top_records_events___sheet_id}'; $thisProjectRoundID = '{top_records_events___project_rounds_id}'; $thisSeasonID = '{top_records_events___season_id}'; // GET SELECTED EVENT-RECORD TYPE $selectedEventRecordType = '{top_records_events___selected_event}'; // format=> "1-All-Time" $eventRecordArr = explode('-', $selectedEventRecordType); // parse selected event record type $recordEventID = $eventRecordArr[0]; $recordType = $eventRecordArr[1]; if ($recordType == "All") { $recordType = "All-Time"; } // GET RUNNING ORDER OF TEAMS IN THIS DRILL ----------------------------------- $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->select('team, mro_num, team_id') ->from('fm_running_orders') ->where('projectround_id = ' . $myDb->quote($thisProjectRoundID)); $myQuery->order('mro_num asc'); $myDb->setQuery($myQuery); $teamsInDrill = $myDb->loadObjectList(); // UPDATE TEAM LIST (used for checking for post-entries) -------------------------------------------------------------------------------------------- // write to team_list in top records generator $teamList = ""; foreach ($teamsInDrill as $team) { $teamList .= $team->team_id . "," ; } $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->update('top_records_generator') ->set('team_list = ' . $myDb->quote($teamList)) ->where('sheet_id = ' . $myDb->quote($sheetID)); $myDb->setQuery($myQuery); $myDb->execute(); // -------------------------------------------------------- // DELETE PREVIOUS RECORDS OF SAME SHEET ID, EVENT and RECORD TYPE // -------------------------------------------------------- $db = JFactory::getDBO(); $q='DELETE FROM fm_top_records WHERE sheet_id = ' .$db->Quote($sheetID) . 'AND record_event = ' . $db->Quote($recordEventID) . 'AND record_type = ' . $db->Quote($recordType) ; $db->setQuery($q); $db->query(); // Get RECORDS FOR EACH TEAM ------------------------------------------------------------------------ foreach ($teamsInDrill as $team) { // =============================================================== $thisTeamID = $team->team_id; // --------------------------------------------------------------------------------------------------- // GET ALL RESULTS BASED ON RECORD TYPE if ($recordType == "Season") { // GET TOP TIMES THIS SEASON ================================ SEASON ================================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('seasons.id = ' . $db->quote($thisSeasonID) . 'and etypes.id= ' . $db->quote($recordEventID) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . // don't include blank entries 'and results.time*1 != ' . $db->quote(0)); // don't include 0 times $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } elseif ($recordType == "Track") { // GET OLD TRACK-NAMING CONVENTION $currentTrackDEP = str_replace(" Track", "", $currentTrack); // GET TOP TIMES AT THIS TRACK =================================== TRACK ============================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('etypes.id= ' . $db->quote($recordEventID) . 'and projrounds.location= ' . $db->quote($currentTrack) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . 'and results.time*1 != ' . $db->quote(0) . 'OR etypes.id= ' . $db->quote($recordEventID) . 'and projrounds.location= ' . $db->quote($currentTrackDEP) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . 'and results.time*1 != ' . $db->quote(0)); $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } elseif ($recordType == "All-Time") { // GET TOP TIMES OF ALL-TIME ===================================== ALL-TIME ============================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('etypes.id= ' . $db->quote($recordEventID) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . // don't include blank entries 'and results.time*1 != ' . $db->quote(0)); // don't include 0 times $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } // end if recordType // -------------------------------------------------------- // -------------------------------------------------------- // PROCESS RECORDS FOR EACH TEAM // -------------------------------------------------------- $recordRank = 0; foreach ($recordsBest as $best) { $recordTeam = $best->last_name; $recordTeamID = $best->individual_id; $recordTime = $best->time; $recordDate = $best->start_date_field; // date may be in multiple different formats $recordTrack = $best->location; $recordRank++; // get exact date and time for tracking error checking $currentDateTime = date('Y-m-d H:i:s') . "/" . $recordType . "/" . $recordEventID; // START INSERT / WRITE ********************************* $db = JFactory::getDBO(); $insertQuery = "INSERT INTO fm_top_records (projects_rounds_id,record_event,record_type,record_rank,record_team,record_time,record_date,record_track,sheet_id,rounds_id) VALUES ('$thisProjectRoundID','$recordEventID','$recordType','$recordRank','$recordTeam','$recordTime','$recordDate','$recordTrack','$sheetID','$currentDateTime')"; // borrowing rounds_id to track time, errors, double insertions etc $db->setQuery($insertQuery); $db->query(); // END INSERT / WRITE *********************************** } // endforeach recordsBest unset($recordsBest); // -------------------------------------------------------- } // end foreach teamsInDrill unset($teamsInDrill); // -------------------------------------------------------- // INIT 7.3.21 // GET PARENT ID ----------------------------------------------------------------------------------------- $sheetID = '{top_records_events___sheet_id}'; // GET SELECTED EVENT ------------------------------------------------------------------------------------ $selectedEvent = '{top_records_events___selected_event}'; $selectedEventRaw = "," . $selectedEvent ; // add delimiter so we can check for partial strings (example: 5 vs 15) // GET PAST EVENT PARAM ---------------------------------------------------------------------------------- $pastEventParams = '{top_records_events___event_params}'; $pastEventParams = strip_tags($pastEventParams); // GET PAST LOG ------------------------------------------------------------------------------------------ $pastLog = '{top_records_events___log}'; // GET CURRENT TRACK ------------------------------------------------------------------------------------- $drillID = '{top_records_events___project_rounds_id}'; $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('location'); $query->FROM('world_tracks_projects_rounds'); $query->WHERE ('id= ' . $db->quote($drillID)); $db->setQuery($query); $currentTrack = $db->loadResult(); // CREATE NEW LOG ---------------------------------------------------------------------------------------- // get admin $user = JFactory::getUser(); $adminID = $user->id; $adminName = $user->name; $adminUsername = $user->username; $thisAdmin = $adminUsername; // get mod date date_default_timezone_set('New York'); $thisDate = date('n/j/Y@g:ia', time()); // get new log addition $updatedLog = "[" . $thisAdmin . "]" . $thisDate . ":" . $selectedEvent . ", " . $pastLog; // CHECK TO SEE IF SELECTED EVENT IS ALREADY IN EVENT PARAMS --------------------------------------------- if (strpos($pastEventParams, $selectedEventRaw) !== false) { // event is already in event params, no need to add it again } else { // add selected event to event params // check if past event params is empty if ($pastEventParams == "") { // just add current params $updatedEventParams = $selectedEvent; } else { // combine past with present $updatedEventParams = $pastEventParams . "," . $selectedEvent; } // UPDATE EVENT PARAMS ----------------------------------------------- // write to log in top records generator $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->update('top_records_generator') ->set('event_params = ' . $myDb->quote($updatedEventParams)) ->where('sheet_id = ' . $myDb->quote($sheetID)); $myDb->setQuery($myQuery); $myDb->execute(); } // end if pastEventParams // UPDATE LOG -------------------------------------------------------------------------------------------- // write to log in top records generator $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->update('top_records_generator') ->set('event_log = ' . $myDb->quote($updatedLog)) ->where('sheet_id = ' . $myDb->quote($sheetID)); $myDb->setQuery($myQuery); $myDb->execute(); // ========================================================================================= // OUTPUT RECORDS // ========================================================================================= // INIT VARS $sheetID = '{top_records_events___sheet_id}'; $thisProjectRoundID = '{top_records_events___project_rounds_id}'; $thisSeasonID = '{top_records_events___season_id}'; // GET SELECTED EVENT-RECORD TYPE $selectedEventRecordType = '{top_records_events___selected_event}'; // format=> "1-All-Time" $eventRecordArr = explode('-', $selectedEventRecordType); // parse selected event record type $recordEventID = $eventRecordArr[0]; $recordType = $eventRecordArr[1]; if ($recordType == "All") { $recordType = "All-Time"; } // GET RUNNING ORDER OF TEAMS IN THIS DRILL ----------------------------------- $myDb = JFactory::getDbo(); $myQuery = $myDb->getQuery(true); $myQuery ->select('team, mro_num, team_id') ->from('fm_running_orders') ->where('projectround_id = ' . $myDb->quote($thisProjectRoundID)); $myQuery->order('mro_num asc'); $myDb->setQuery($myQuery); $teamsInDrill = $myDb->loadObjectList(); // -------------------------------------------------------- // DELETE PREVIOUS RECORDS OF SAME SHEET ID, EVENT and RECORD TYPE // -------------------------------------------------------- $db = JFactory::getDBO(); $q='DELETE FROM fm_top_records WHERE sheet_id = ' .$db->Quote($sheetID) . 'AND record_event = ' . $db->Quote($recordEventID) . 'AND record_type = ' . $db->Quote($recordType) ; $db->setQuery($q); $db->query(); // Get RECORDS FOR EACH TEAM ------------------------------------------------------------------------ foreach ($teamsInDrill as $team) { // =============================================================== $thisTeamID = $team->team_id; // --------------------------------------------------------------------------------------------------- // GET ALL RESULTS BASED ON RECORD TYPE if ($recordType == "Season") { // GET TOP TIMES THIS SEASON ================================ SEASON ================================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('seasons.id = ' . $db->quote($thisSeasonID) . 'and etypes.id= ' . $db->quote($recordEventID) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . // don't include blank entries 'and results.time*1 != ' . $db->quote(0)); // don't include 0 times $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } elseif ($recordType == "Track") { // GET TOP TIMES AT THIS TRACK =================================== TRACK ============================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('etypes.id= ' . $db->quote($recordEventID) . 'and projrounds.location= ' . $db->quote($currentTrack) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . // don't include blank entries 'and results.time*1 != ' . $db->quote(0)); // don't include 0 times $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } elseif ($recordType == "All-Time") { // GET TOP TIMES OF ALL-TIME ===================================== ALL-TIME ============================== $db = FabrikWorker::getDbo(false, 2); $query = $db->getQuery(true); $query->SELECT('results.time,teams.last_name,projrounds.start_date_field,projrounds.location'); $query->FROM('fm_event_results AS results'); $query->WHERE ('etypes.id= ' . $db->quote($recordEventID) . 'and teams.id= ' . $db->quote($thisTeamID) . 'and results.time <> ' . $db->quote('') . // don't include blank entries 'and results.time*1 != ' . $db->quote(0)); // don't include 0 times $query->order('time*1 asc'); $query->setLimit('5'); $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); $recordsBest = $db->loadObjectList(); } // end if recordType // -------------------------------------------------------- // -------------------------------------------------------- // PROCESS RECORDS FOR EACH TEAM // -------------------------------------------------------- $recordRank = 0; foreach ($recordsBest as $best) { $recordTeam = $best->last_name; $recordTeamID = $best->individual_id; $recordTime = $best->time; $recordDate = $best->start_date_field; // date may be in multiple different formats $recordTrack = $best->location; $recordRank++; // get exact date and time for tracking error checking $currentDateTime = date('Y-m-d H:i:s') . "/" . $recordType . "/" . $recordEventID; // START INSERT / WRITE ********************************* $db = JFactory::getDBO(); $insertQuery = "INSERT INTO fm_top_records (projects_rounds_id,record_event,record_type,record_rank,record_team,record_time,record_date,record_track,sheet_id,rounds_id) VALUES ('$thisProjectRoundID','$recordEventID','$recordType','$recordRank','$recordTeam','$recordTime','$recordDate','$recordTrack','$sheetID','$currentDateTime')"; // borrowing rounds_id to track time, errors, double insertions etc $db->setQuery($insertQuery); $db->query(); // END INSERT / WRITE *********************************** } // endforeach recordsBest unset($recordsBest); // -------------------------------------------------------- } // end foreach teamsInDrill unset($teamsInDrill); // --------------------------------------------------------

    [Bkup] form plugin(ID136) tally total points

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

    Our Mission

    NYS Drill Teams is a professional league of volunteer firefighters from across NY State who compete in firematic competitions. These competitions are geared towards honing basic firefighting proficiencies, developing and fostering teamwork, character-building, commitment, discipline, physical fitness and conditioning. Participation in the league complements each fire department's primary function of emergency response to fires, medical emergencies, and other calamities, while instilling members with a life-long commitment to serving their community as highly skilled volunteer firefighters.

    Official Facebook