/** * MakeIndividuals() * Aggiunge o toglie le righe ad Individuals. * * @param string[] $affected: contiene gli eventi assoluti che hanno subito una modifica (aggiunte o cancellazioni) * @param int $tournament: contiene il torneo su cui lavorare. se null prende dalla sessione * @return bool: true in caso di errore, false altrimenti */ function MakeIndividuals(&$affected, $tournament = null) { if (is_null($tournament)) { $tournament = $_SESSION['TourId']; } // get the QT nations //Se esiste il quota tournament cancello i "non elegible" $dbValues = array(); $QTNations = array(); $QTDates = array(); if (module_exists('QuotaTournament')) { $tmp = getModuleParameter("QuotaTournament", "allowedIOC", ''); if (strlen($tmp) > 0) { $dbValues = unserialize($tmp); foreach ($dbValues as $k => $v) { if (substr($k, 0, 3) == 'ev_') { $evCode = explode("_", $k); $evCode = $evCode[2]; $QTNations[$evCode] = $v; } } } } //Mi prendo gli eventi a cui agigungerò qualcuno $q = "\r\n\t\tSELECT DISTINCT\r\n\t\t\tEcCode, CoCode\r\n\t\tFROM\r\n\t\t\tEntries\r\n\t\tINNER JOIN\r\n\t\t\tEventClass ON EnTournament=EcTournament AND EcTeamEvent=0 AND EnDivision=EcDivision AND EnClass=EcClass\r\n\t\tINNER JOIN\r\n\t\t\tCountries ON CoId=EnCountry\r\n\t\tLEFT JOIN\r\n\t\t\tIndividuals ON IndId=EnId AND IndTournament=EnTournament AND IndEvent=EcCode\r\n\t\tWHERE EnTournament = {$tournament} AND IndEvent IS NULL AND EnIndFEvent=1 AND EnStatus<=1"; $r = safe_r_sql($q); //print $q;exit; if (safe_num_rows($r) > 0) { while ($myRow = safe_fetch($r)) { if (!in_array($myRow->EcCode, $affected, true) and !(!empty($QTNations[$myRow->EcCode]) and !in_array($myRow->CoCode, $QTNations[$myRow->EcCode]))) { $affected[] = $myRow->EcCode; } } //Siccome il nume_rows era >0, aggiungo chi mi manca $q = "\r\n\t\t\tINSERT INTO\r\n\t\t\t\tIndividuals (IndId,IndEvent,IndTournament,IndTimestamp)\r\n\t\t\tSELECT\r\n\t\t\t\tEnId, EcCode, EnTournament, NOW()\r\n\t\t\tFROM\r\n\t\t\t\tEntries\r\n\t\t\tINNER JOIN\r\n\t\t\t\tEventClass ON EnTournament=EcTournament AND EcTeamEvent=0 AND EnDivision=EcDivision AND EnClass=EcClass\r\n\t\t\tLEFT JOIN\r\n\t\t\t\tIndividuals ON IndId=EnId AND IndTournament=EnTournament AND IndEvent=EcCode\r\n\t\t\tWHERE EnTournament = {$tournament} AND IndEvent IS NULL AND EnIndFEvent=1 AND EnStatus<=1"; $r = safe_w_sql($q); } //Mi prendo gli eventi da cancellare $q = "\r\n\t\tSELECT DISTINCT\r\n\t\t\tIndEvent\r\n\t\tFROM\r\n\t\t\tIndividuals\r\n\t\tLEFT JOIN\r\n\t\t\t(SELECT\r\n\t\t\t\tEnId, EcCode\r\n\t\t\tFROM\r\n\t\t\t\tEntries\r\n\t\t\tINNER JOIN\r\n\t\t\t\tEventClass ON EnTournament = EcTournament AND EcTeamEvent =0 AND EnDivision = EcDivision AND EnClass = EcClass\r\n\t\t\tWHERE\r\n\t\t\t\tEnTournament = {$tournament} AND EnIndFEvent=1 AND EnStatus<=1\r\n\t\t\t) AS sq ON IndId = EnId AND IndEvent = EcCode\r\n\t\tWHERE\r\n\t\t\tIndTournament = {$tournament} AND EnId IS NULL"; $r = safe_r_sql($q); if (safe_num_rows($r) > 0) { while ($myRow = safe_fetch($r)) { if (!in_array($myRow->IndEvent, $affected, true)) { $affected[] = $myRow->IndEvent; } } //Siccome il nume_rows era >0, tolgo chi cresce $q = "\r\n\t\t\tDELETE Individuals FROM\r\n\t\t\t\tIndividuals\r\n\t\t\tLEFT JOIN\r\n\t\t\t\t(SELECT\r\n\t\t\t\t\tEnId, EcCode\r\n\t\t\t\tFROM\r\n\t\t\t\t\tEntries\r\n\t\t\t\tINNER JOIN\r\n\t\t\t\t\tEventClass ON EnTournament = EcTournament AND EcTeamEvent =0 AND EnDivision = EcDivision AND EnClass = EcClass\r\n\t\t\t\tWHERE\r\n\t\t\t\t\tEnTournament = {$tournament} AND EnIndFEvent=1 AND EnStatus<=1\r\n\t\t\t\t) AS sq ON IndId = EnId AND IndEvent = EcCode\r\n\t\t\tWHERE\r\n\t\t\t\tIndTournament = {$tournament} AND EnId IS NULL"; $r = safe_w_sql($q); } //Se esiste il quota tournament cancello i "non elegible" if (module_exists('QuotaTournament')) { $dbValues = array(); $tmp = getModuleParameter("QuotaTournament", "allowedIOC", ''); if (strlen($tmp) > 0) { $dbValues = unserialize($tmp); foreach ($dbValues as $k => $v) { if (substr($k, 0, 3) == 'ev_') { $evCode = explode("_", $k); $evCode = $evCode[2]; $q = "DELETE FROM Individuals\r\n\t\t\t\t\t\tUSING Individuals\r\n\t\t\t\t\t\tINNER JOIN Entries ON IndId = EnId AND IndTournament=EnTournament\r\n\t\t\t\t\t\tINNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament\r\n\t\t\t\t\t\tINNER JOIN EventClass ON EnTournament = EcTournament AND EcTeamEvent =0 AND\r\n\t\t\t\t\t\tEnDivision = EcDivision AND EnClass = EcClass AND IndEvent = EcCode\r\n\t\t\t\t\t\tWHERE EnTournament = {$tournament} AND EnIndFEvent=1 AND EnStatus<=1 AND EcCode='{$evCode}'\r\n\t\t\t\t\t\tAND CoCode NOT IN ('" . implode("', '", $v) . "')"; $r = safe_w_sql($q); if (safe_w_affected_rows()) { if (!in_array($k, $affected, true)) { $affected[] = $k; } } } else { if (substr($k, 0, 4) == 'dob_') { $evCode = explode("_", $k); $dobType = $evCode[1]; $evCode = $evCode[2]; $q = "DELETE FROM Individuals\r\n\t\t\t\t\t\tUSING Individuals\r\n\t\t\t\t\t\tINNER JOIN Entries ON IndId = EnId AND IndTournament=EnTournament\r\n\t\t\t\t\t\tINNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament\r\n\t\t\t\t\t\tINNER JOIN EventClass ON EnTournament = EcTournament AND EcTeamEvent =0 AND\r\n\t\t\t\t\t\tEnDivision = EcDivision AND EnClass = EcClass AND IndEvent = EcCode\r\n\t\t\t\t\t\tWHERE EnTournament = {$tournament} AND EnIndFEvent=1 AND EnStatus<=1 AND EcCode='{$evCode}'\r\n\t\t\t\t\t\tAND EnDob " . ($dobType == 's' ? "<=" : ">=") . " '{$v}'"; $r = safe_w_sql($q); if (safe_w_affected_rows()) { if (!in_array($k, $affected, true)) { $affected[] = $k; } } } } } } } return false; }
print '</td>'; print '<td onclick="insertInput(this,\'AwAwarders\')">'; print ManageHTML($MyRow->AwAwarders); print '</td>'; print '<td class="Center">'; print '<input type="button" value="' . get_text('CmdDelete', 'Tournament') . '" onClick="javascript:DeleteAwards(\'' . $MyRow->AwEvent . "'," . $MyRow->AwFinEvent . "," . $MyRow->AwTeam . ',\'' . get_text('MsgAreYouSure') . '\');">'; print '</td>'; print '</tr>' . "\n"; } } echo '<tr class="Divider"><td colspan="8"></td></tr>'; echo '<tr><th class="Title" colspan="8">' . get_text('Options', 'Tournament') . '</th></tr>'; $tmp = getModuleParameter('Awards', 'PlayAnthem', 1); echo '<tr><td class="Center" onclick="switchOption(\'PlayAnthem\')"><img src="' . $CFG->ROOT_DIR . 'Common/Images/Enabled' . $tmp . '.png" width="20" alt="' . get_text($tmp ? 'Yes' : 'No') . '"></td>'; echo '<td colspan="7">' . get_text('AwardPlayAnthem', 'Tournament') . '</td></tr>'; $tmp = getModuleParameter('Awards', 'RepresentCountry', 1); echo '<tr><td class="Center" onclick="switchOption(\'RepresentCountry\')"><img src="' . $CFG->ROOT_DIR . 'Common/Images/Enabled' . $tmp . '.png" width="20" alt="' . get_text($tmp ? 'Yes' : 'No') . '"></td>'; echo '<td colspan="7">' . get_text('AwardRepresentCountry', 'Tournament') . '</td></tr>'; echo '<tr class="Divider"><td colspan="8"></td></tr>'; echo '<tr><th class="Title" colspan="8">' . get_text('AwardAvailableEvents', 'Tournament') . '</th></tr>'; echo '<tr><td colspan="8"><form name="frmAdd" action="" method="get"><table class="Tabella">'; $needSubmit = false; //Individual Events $Sql = "SELECT EvCode as Event\r\n\t\tFROM Events\r\n\t\tLEFT JOIN Awards ON EvTournament=AwTournament AND EvCode=AwEvent AND AwFinEvent=1 AND EvTeamEvent=AwTeam\r\n\t\tWHERE EvTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND EvTeamEvent=0 AND AwEvent IS NULL"; $Rs = safe_r_SQL($Sql); if (safe_num_rows($Rs)) { $needSubmit = true; echo '<tr><th style="width: 15%">' . get_text('IndEventList') . '</th><td>'; while ($row = safe_fetch($Rs)) { echo '<input type="checkbox" name="addField[]" value="' . $row->Event . '|1|0">' . $row->Event . " "; }
<?php require_once dirname(dirname(__FILE__)) . '/config.php'; require_once 'Common/pdf/OrisPDF.inc.php'; require_once 'Common/Fun_Modules.php'; $arrPosition = array('', '1st', '2nd', '3rd', '4th', '5th'); $par_RepresentCountry = getModuleParameter('Awards', 'RepresentCountry', 1); $par_PlayAnthem = getModuleParameter('Awards', 'PlayAnthem', 1); $pdf = new OrisPDF('Awards', get_text('MenuLM_PrintAwards')); $idList = array(); //Lista Premiazione in Ordine $sqlOrder = "SELECT AwEvent, AwFinEvent, AwTeam, AwGroup " . "FROM Awards " . "WHERE AwTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND AwUnrewarded=0 AND AwGroup!=0 " . "ORDER BY AwGroup, AwOrder, AwEvent, AwFinEvent DESC, AwTeam"; $rsOrder = safe_r_sql($sqlOrder); while ($rowOrder = safe_fetch($rsOrder)) { $sql = ""; if ($rowOrder->AwFinEvent == 0 && $rowOrder->AwTeam == 0) { $sql = "SELECT EnId, CONCAT(EnName, ' ', UPPER(EnFirstName)) AS Athlete, CONCAT(" . ($_SESSION["ISORIS"] ? '' : "CoCode, ' ', ") . "CoName) AS Country, CONCAT(DivDescription, ' - ', ClDescription) as Category, 1 as Counter,\n\t\t\tQuClRank AS Rank, QuScore AS Score, QuGold AS Gold,QuXnine AS XNine, AwDescription, AwAwarders\n\t\t\tFROM Tournament\n\t\t\tINNER JOIN Entries ON ToId=EnTournament\n\t\t\tINNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament AND EnTournament=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tINNER JOIN Qualifications ON EnId=QuId\n\t\t\tINNER JOIN Classes ON EnClass=ClId AND ClTournament=EnTournament AND ClAthlete=1\n\t\t\tINNER JOIN Divisions ON EnDivision=DivId AND DivTournament=EnTournament AND DivAthlete=1\n\t\t\tINNER JOIN Awards ON EnTournament=AwTournament AND CONCAT(TRIM(EnDivision),TRIM(EnClass)) LIKE AwEvent AND AwFinEvent=0 AND AwTeam=0 AND AwUnrewarded=0 AND INSTR(AwPositions,QuClRank)!=0\n\t\t\tWHERE EnAthlete=1 AND EnIndClEvent=1 AND EnStatus <= 1 AND QuScore != 0 AND ToId=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tAND AwEvent=" . StrSafe_DB($rowOrder->AwEvent) . " AND AwFinEvent=" . $rowOrder->AwFinEvent . " AND AwTeam=" . $rowOrder->AwTeam . "\n\t\t\tORDER BY DivViewOrder, EnDivision, ClViewOrder, EnClass, QuClRank ASC, EnFirstName, EnName "; } else { if ($rowOrder->AwFinEvent == 1 && $rowOrder->AwTeam == 0) { $sql = "SELECT EnId, CONCAT(EnName, ' ', UPPER(EnFirstName)) AS Athlete, CONCAT(" . ($_SESSION["ISORIS"] ? '' : "CoCode, ' ', ") . "CoName) AS Country, EvEventName as Category, 1 as Counter,\n\t\t\tIF(EvFinalFirstPhase=0,IndRank,ABS(IndRankFinal)) as Rank, QuScore AS Score, QuGold AS Gold,QuXnine AS XNine, AwDescription, AwAwarders\n\t\t\tFROM Tournament\n\t\t\tINNER JOIN Entries ON ToId=EnTournament\n\t\t\tINNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament AND EnTournament=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tINNER JOIN Qualifications ON EnId=QuId\n\t\t\tINNER JOIN Individuals ON EnId=IndId AND EnTournament=IndTournament\n\t\t\tINNER JOIN Events ON IndEvent=EvCode AND EvTournament=ToId AND EvTeamEvent=0\n\t\t\tINNER JOIN Awards ON EnTournament=AwTournament AND EvCode LIKE AwEvent AND AwFinEvent=1 AND AwTeam=0 AND AwUnrewarded=0 AND INSTR(AwPositions,IF(EvFinalFirstPhase=0,IndRank,ABS(IndRankFinal)))!=0\n\t\t\tWHERE EnAthlete=1 AND EnIndClEvent=1 AND EnStatus <= 1 AND QuScore != 0 AND ToId=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tAND AwEvent=" . StrSafe_DB($rowOrder->AwEvent) . " AND AwFinEvent=" . $rowOrder->AwFinEvent . " AND AwTeam=" . $rowOrder->AwTeam . "\n\t\t\tORDER BY EvProgr, EvCode, IF(EvFinalFirstPhase=0,IndRank,ABS(IndRankFinal)) ASC, EnFirstName, EnName "; } else { if ($rowOrder->AwFinEvent == 0 && $rowOrder->AwTeam == 1) { $sql = " SELECT CONCAT(" . ($_SESSION["ISORIS"] ? '' : "CoCode, ' ', ") . "CoName, IF(TeSubTeam=0,'',CONCAT(' (',TeSubTeam,')'))) as Country, CONCAT(DivDescription, ' - ', ClDescription) as Category,\n\t\t\tEnId, group_concat( CONCAT(EnName, ' ', UPPER(EnFirstName)) order by EnSex DESC, EnFirstName, EnName separator '|') AS Athlete, Q as Counter,\n\t\t\tTeRank as Rank, TeScore as Score, TeGold as Gold, TeXnine AS XNine, AwDescription, AwAwarders\n\t\t\tFROM Tournament\n\t\t\tINNER JOIN Teams ON ToId=TeTournament AND TeFinEvent=0\n\t\t\tINNER JOIN Countries ON TeCoId=CoId AND TeTournament=CoTournament\n\t\t\tINNER JOIN\n\t\t\t\t(SELECT TcCoId, TcEvent, TcTournament, TcFinEvent, COUNT(TcId) as Q\n\t\t\t\tFROM TeamComponent\n\t\t\t\tGROUP BY TcCoId, TcEvent, TcTournament, TcFinEvent\n\t\t\t\t) AS sq ON TeCoId=sq.TcCoId AND TeEvent=sq.TcEvent AND TeTournament=sq.TcTournament AND TeFinEvent=sq.TcFinEvent\n\t\t\tINNER JOIN TeamComponent AS tc ON TeCoId=tc.TcCoId AND TeEvent=tc.TcEvent AND TeTournament=tc.TcTournament AND TeFinEvent=tc.TcFinEvent\n\t\t\tINNER JOIN Entries ON TcId=EnId\n\t\t\tLEFT JOIN\n\t\t\t\t(SELECT CONCAT(DivId, ClId) DivClass, Divisions.*, Classes.*\n\t\t\t\tFROM Divisions\n\t\t\t\tINNER JOIN Classes ON DivTournament=ClTournament\n\t\t\t\tWHERE DivAthlete AND ClAthlete\n\t\t\t\t) AS DivClass ON TeEvent=DivClass AND TeTournament=DivTournament\n\t\t\tINNER JOIN Awards ON AwTournament=ToId AND TeEvent LIKE AwEvent AND AwFinEvent=0 AND AwTeam=1 AND AwUnrewarded=0 AND INSTR(AwPositions,TeRank)!=0\n\t\t\tWHERE ToId=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tAND AwEvent=" . StrSafe_DB($rowOrder->AwEvent) . " AND AwFinEvent=" . $rowOrder->AwFinEvent . " AND AwTeam=" . $rowOrder->AwTeam . "\n\t\t\tgroup by DivClass, CoId, TeSubTeam\n\t\t\tORDER BY DivViewOrder, EnDivision, ClViewOrder, EnClass, TeEvent, Rank ASC, CoCode ASC, TcOrder "; // debug_svela($sql); } else { if ($rowOrder->AwFinEvent == 1 && $rowOrder->AwTeam == 1) { $sql = " SELECT CoId, CONCAT(" . ($_SESSION["ISORIS"] ? '' : "CoCode, ' ', ") . "CoName, IF(TeSubTeam=0,'',CONCAT(' (',TeSubTeam,')'))) as Country, EvEventName as Category,\n\t\t\tEnId, group_concat(CONCAT(EnName, ' ', UPPER(EnFirstName)) order by EnSex DESC, EnFirstName, EnName separator '|') AS Athlete, Q as Counter,\n\t\t\tIF(EvFinalFirstPhase=0,TeRank,TeRankFinal) as Rank, IF(EvFinalFirstPhase=0,TeScore,IFNULL(TfScore,'')) as Score, IF(EvFinalFirstPhase=0,TeGold,'') as Gold, IF(EvFinalFirstPhase=0,TeXnine,'') AS XNine, AwDescription, AwAwarders\n\t\t\tFROM Tournament\n\t\t\tINNER JOIN Teams ON ToId=TeTournament AND TeFinEvent=1\n\t\t\tINNER JOIN Countries ON TeCoId=CoId AND TeTournament=CoTournament\n\t\t\tINNER JOIN\n\t\t\t\t(SELECT TcCoId, TcEvent, TcTournament, TcFinEvent, TcSubTeam, COUNT(TcId) as Q\n\t\t\t\t\tFROM TeamComponent\n\t\t\t\t\tGROUP BY TcCoId, TcEvent, TcTournament, TcFinEvent, TcSubTeam\n\t\t\t\t) AS sq ON TeCoId=sq.TcCoId AND TeEvent=sq.TcEvent AND TeTournament=sq.TcTournament AND TeFinEvent=sq.TcFinEvent AND TeSubTeam=sq.TcSubTeam\n\t\t\tLEFT JOIN TeamFinComponent AS tfc ON TeCoId=tfc.TfcCoId AND TeEvent=tfc.TfcEvent AND TeTournament=tfc.TfcTournament AND TeSubTeam=tfc.tfcSubTeam AND TeFinEvent=1\n\t\t\tLEFT JOIN Entries ON TfcId=EnId\n\t\t\tLEFT JOIN TeamFinals ON TfEvent=TeEvent AND TfTournament=TeTournament AND TfMatchNo<4 AND TfTeam=TeCoId AND TfSubTeam=TeSubTeam\n\t\t\tINNER JOIN Events ON TeEvent=EvCode AND EvTournament=ToId AND EvTeamEvent=1\n\t\t\tINNER JOIN Awards ON AwTournament=ToId AND TeEvent like AwEvent AND AwFinEvent=1 AND AwTeam=1 AND AwUnrewarded=0 AND INSTR(AwPositions,IF(EvFinalFirstPhase=0,TeRank,TeRankFinal))!=0\n\t\t\tWHERE ToId=" . StrSafe_DB($_SESSION['TourId']) . "\n\t\t\tAND AwEvent=" . StrSafe_DB($rowOrder->AwEvent) . " AND AwFinEvent=" . $rowOrder->AwFinEvent . " AND AwTeam=" . $rowOrder->AwTeam . "\n\t\t\tgroup by EvCode, CoId, TeSubTeam\n\t\t\tORDER BY EvProgr, TeEvent, Rank ASC, CoCode ASC, TfcOrder "; } } } }