/**
 * 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;
}
Beispiel #2
0
        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 . "&nbsp;&nbsp;&nbsp;";
    }
Beispiel #3
0
<?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 ";
                }
            }
        }
    }