function SetElimArrowValue($Phase, $Event, $Target, $ArIndex, $ArSymbol, $Output = 'XML', $CompId = '') { require_once 'Common/Lib/Obj_RankFactory.php'; $JsonResult = array(); $JsonResult['error'] = 1; $JsonResult['qutarget'] = $_REQUEST['qutarget']; $JsonResult['distnum'] = $_REQUEST['distnum']; $JsonResult['arrowindex'] = $_REQUEST['arrowindex']; $JsonResult['arrowsymbol'] = ''; $JsonResult['curscore'] = ''; $JsonResult['curgold'] = ''; $JsonResult['curxnine'] = ''; $JsonResult['score'] = ''; $JsonResult['gold'] = ''; $JsonResult['xnine'] = ''; if (empty($CompId)) { $CompId = $_SESSION['TourId']; } $q = safe_r_sql("select * from Eliminations\r\n\t\twhere ElElimPhase=" . ($Phase[1] - 1) . "\r\n\t\tand ElEventCode='{$Event}'\r\n\t\tand ElTargetNo='{$Target}'\r\n\t\tand ElTournament={$CompId}\r\n\t\t"); if ($r = safe_fetch($q)) { $Arrowstring = str_pad($r->ElArrowString, $ArIndex + 1, ' ', STR_PAD_RIGHT); $xx = GetLetterFromPrint($ArSymbol); $Arrowstring[$ArIndex] = str_pad($xx, 1, ' ', STR_PAD_RIGHT); list($CurScore, $CurGold, $CurXNine) = ValutaArrowStringGX($Arrowstring); safe_w_sql("update Eliminations\r\n\t\t\tset ElArrowString='{$Arrowstring}',\r\n\t\t\tElScore={$CurScore},\r\n\t\t\tElGold={$CurGold},\r\n\t\t\tElXnine={$CurXNine}\r\n\t\t\twhere ElElimPhase=" . ($Phase[1] - 1) . "\r\n\t\t\tand ElEventCode='{$Event}'\r\n\t\t\tand ElTargetNo='{$Target}'\r\n\t\t\tand ElTournament={$CompId}"); if (safe_w_affected_rows()) { if ($Phase[1] == 1) { require_once 'Common/Fun_Sessions.inc.php'; ResetElimRows($Event, 2); } Obj_RankFactory::create('ElimInd', array('tournament' => $CompId, 'eventsC' => array($Event . '@' . $Phase[1])))->calculate(); } $JsonResult['error'] = 0; $JsonResult['arrowsymbol'] = $xx ? strtoupper($ArSymbol) : ''; $JsonResult['curscore'] = $CurScore; $JsonResult['curgold'] = $CurGold; $JsonResult['curxnine'] = $CurXNine; $JsonResult['score'] = $CurScore; $JsonResult['gold'] = $CurGold; $JsonResult['xnine'] = $CurXNine; } return $JsonResult; }
//print '..' . safe_w_affected_rows() . '<br>'; if (safe_w_affected_rows() == 1 && $OldValue != $Value) { /* * QUI il reset della fase successiva delle elim (se c'è) * e il calcolo della rank elim della fase attuale. * * Se fase è 0 sicuramente ho anche la 1 perchè in caso di solo un girone l'unica fase buona è la 1 */ $q = "SELECT ElEventCode FROM Eliminations WHERE ElId={$Atleta} AND ElElimPhase={$Fase}"; $r = safe_r_sql($q); $ev = ''; $row = safe_fetch($r); $ev = $row->ElEventCode; if ($ev != '') { if ($Fase == 0) { ResetElimRows($ev, 2); } Obj_RankFactory::create('ElimInd', array('eventsC' => array($ev . '@' . ($Fase + 1))))->calculate(); } // azzero gli shootoff /*$Update = "UPDATE Events INNER JOIN EventClass ON EvCode=EcCode AND EvTeamEvent='0' AND EcTournament=" . StrSafe_DB($_SESSION['TourId']) . " " . "INNER JOIN Entries ON EcDivision=EnDivision AND EcClass=EnClass AND EnId=" . StrSafe_DB($Atleta) . " " . "SET EvShootOff='0' " . ($Fase==0 ? ", EvE2ShootOff='0' " : "") . "WHERE EvTeamEvent='0' AND EvTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; $Rs=safe_w_sql($Update); set_qual_session_flags();*/ $q = "\r\n\t\t\t\t\t\tSELECT EvCode\r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\tEvents\r\n\t\t\t\t\t\t\tINNER JOIN\r\n\t\t\t\t\t\t\t\tEventClass\r\n\t\t\t\t\t\t\tON EvCode=EcCode AND EvTeamEvent='0' AND EcTournament={$_SESSION['TourId']}\r\n\t\t\t\t\t\t\tINNER JOIN\r\n\t\t\t\t\t\t\t\tEntries\r\n\t\t\t\t\t\t\tON EcDivision=EnDivision AND EcClass=EnClass AND EnId={$Atleta}\r\n\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t EvTeamEvent='0' AND EvTournament={$_SESSION['TourId']}\r\n\t\t\t\t\t"; $Rs = safe_w_sql($q); if ($Rs && safe_num_rows($Rs) > 0) { while ($row = safe_fetch($Rs)) {
} //exit; if (count($Ties) > 0) { /*print '<pre>'; print_r($Ties); print '</pre>';Exit;*/ foreach ($Ties as $Key => $Value) { list($ev, $ath) = explode('_', $Key); $x = $rank->setRow(array(array('ath' => $ath, 'event' => $ev, 'dist' => 0, 'phase' => $RequestedElim - 1, 'tiebreak' => $Value))); } } if (count($IdAffected) > 0) { // se non sto passando alle finali resetto i gironi successivi all'attuale if ($RequestedElim < 2) { for ($i = $RequestedElim; $i <= 1; ++$i) { ResetElimRows($RequestedEvent, $i + 1); } } /* rifaccio le griglie */ $Delete = "DELETE FROM Finals " . "WHERE FinTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND FinEvent = " . StrSafe_DB($RequestedEvent); $Rs = safe_w_sql($Delete); // ricreo la griglia distrutta $Insert = "INSERT INTO Finals (FinEvent,FinMatchNo,FinTournament,FinDateTime) " . "SELECT EvCode,GrMatchNo," . StrSafe_DB($_SESSION['TourId']) . "," . StrSafe_DB(date('Y-m-d H:i')) . " " . "FROM Events INNER JOIN Grids ON GrPhase<=EvFinalFirstPhase AND EvTeamEvent='0' " . "AND EvTournament=" . StrSafe_DB($_SESSION['TourId']) . " " . "WHERE EvCode = " . StrSafe_DB($RequestedEvent); $RsIns = safe_w_sql($Insert); } if (!$NotResolved) { /* * Adesso metto a posto gli id delle Eliminations. * Per farlo rileggo la rank (la prima lettura avviene al carimento della pagina quando non si passa di qua) * e uso i dati per scrivere gli id nei posti giusti */
if (debug) { print $Update . ' <br><br>'; } //print '..' . safe_w_affected_rows() . '<br>'; if (safe_w_affected_rows() == 1 && $OldValue != $Value) { // distruggo e ricreo le eliminatorie // scopro in che evento elim si trova la divcl del tipo $q = "\n\t\t\t\t\t\tSELECT EvCode\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\tEntries\n\t\t\t\t\t\t\tINNER JOIN\n\t\t\t\t\t\t\t\tEventClass\n\t\t\t\t\t\t\tON EnTournament=EcTournament AND EcTeamEvent=0 AND EnDivision=EcDivision AND EnClass=EcClass\n\t\t\t\t\t\t\tINNER JOIN\n\t\t\t\t\t\t\t\tEvents\n\t\t\t\t\t\t\tON EcCode=EvCode AND EcTournament=EvTournament AND EvTeamEvent=EcTeamEvent AND EcTeamEvent=0 AND (EvElim1+EvElim2)>0\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tEnId={$Atleta}\n\t\t\t\t\t"; $r = safe_r_sql($q); //print $q;exit; if ($r && safe_num_rows($r) > 0) { while ($row = safe_fetch($r)) { $ev = $row->EvCode; for ($j = 1; $j <= 2; ++$j) { //print 'pp'; ResetElimRows($ev, $j); } } } // azzero gli shootoff $q = "\n\t\t\t\t\t\tSELECT DISTINCT EvCode,EvTeamEvent\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\tEvents\n\t\t\t\t\t\t\tINNER JOIN\n\t\t\t\t\t\t\t\tEventClass\n\t\t\t\t\t\t\tON EvCode=EcCode AND (EvTeamEvent='0' OR EvTeamEvent='1') AND EcTournament={$_SESSION['TourId']}\n\t\t\t\t\t\t\tINNER JOIN\n\t\t\t\t\t\t\t\tEntries\n\t\t\t\t\t\t\tON TRIM(EcDivision)=TRIM(EnDivision) AND TRIM(EcClass)=TRIM(EnClass) AND EnId={$Atleta}\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t (EvTeamEvent='0' AND EnIndFEvent='1') OR (EvTeamEvent='1' AND EnTeamFEvent='1') AND EvTournament={$_SESSION['TourId']}\n\t\t\t\t\t"; //print $q; $Rs = safe_r_sql($q); if ($Rs && safe_num_rows($Rs) > 0) { while ($row = safe_fetch($Rs)) { ResetShootoff($row->EvCode, $row->EvTeamEvent, 0); } } if (debug) { print $Update . '<br>'; }