Ejemplo n.º 1
0
    $rs = safe_w_sql($query);
    if (!$rs) {
        $error = 1;
    }
    if ($recalc) {
        // ricalcolo il vecchio e il nuovo
        if (!is_null($indFEvent)) {
            RecalculateShootoffAndTeams($indFEvent, $teamFEvent, $country, $div, $cl, $zero);
        }
        // rank di classe x tutte le distanze
        $q = "SELECT ToNumDist FROM Tournament WHERE ToId={$_SESSION['TourId']}";
        $r = safe_r_sql($q);
        $tmpRow = safe_fetch($r);
        for ($i = 0; $i < $tmpRow->ToNumDist; ++$i) {
            if (!is_null($indFEvent)) {
                CalcQualRank($i, $div . $cl);
            }
        }
        MakeIndAbs();
    }
} else {
    $error = 1;
}
/****** End Controller ******/
/****** Output ******/
$xmlDoc = new DOMDocument('1.0', PageEncode);
$xmlRoot = $xmlDoc->createElement('response');
$xmlDoc->appendChild($xmlRoot);
// Header
$xmlHeader = $xmlDoc->createElement('header');
$xmlRoot->appendChild($xmlHeader);
Ejemplo n.º 2
0
 /**
  * Viene chiamata per azzerare gli shootoff delle qualifiche
  *
  * @param array int $ids: vettore degli id di cui bisogna azzerare lo shootoof
  * @param boolean &$error: true se il post processo genera un errore
  */
 private function resetQualsShootOff($ids, &$error)
 {
     /*
      * Se non ci sono ids buoni non ho shootoff, non ho la generazione di nulla
      * e il post-processing fallisce
      */
     if (count($ids) == 0) {
         $error = true;
         return;
     }
     // shootoff
     $query = "UPDATE Events INNER JOIN EventClass ON EvCode=EcCode AND (EvTeamEvent='0' OR EvTeamEvent='1') AND EcTournament=" . $this->getTourId() . " " . "INNER JOIN Entries ON EcDivision=EnDivision AND EcClass=EnClass  AND EnId IN(" . join(',', $ids) . ") " . "SET EvShootOff='0' " . "WHERE (EvTeamEvent='0' OR EvTeamEvent='1') AND EvTournament=" . $this->getTourId() . " ";
     $rs = safe_w_sql($query);
     set_qual_session_flags();
     if (debug) {
         print $query . '<br><br>';
     }
     // rank e squadre
     $query = "SELECT CONCAT(EnDivision,EnClass) AS MyEvent, EnCountry as MyTeam,EnDivision,EnClass " . "FROM Entries " . "WHERE EnId IN(" . join(',', $ids) . ") AND EnTournament=" . $this->getTourId() . " ";
     $rs = safe_r_sql($query);
     if (debug) {
         print $query . '<br><br>';
     }
     if (safe_num_rows($rs) > 0) {
         while ($rr = safe_fetch($rs)) {
             $Evento = $rr->MyEvent;
             $Category = $rr->MyEvent;
             $Societa = $rr->MyTeam;
             $Div = $rr->EnDivision;
             $Cl = $rr->EnClass;
             // rank distanza
             if (CalcQualRank($this->getDistance(), $Evento)) {
                 $error = true;
             } else {
                 // rank totale
                 if (CalcQualRank(0, $Evento)) {
                     $error = true;
                 } else {
                     // squadre
                     if (MakeTeams($Societa, $Category)) {
                         $error = true;
                     } else {
                         if (MakeTeamsAbs($Societa, $Div, $Cl)) {
                             $error = true;
                         }
                     }
                 }
             }
         }
     } else {
         $error = true;
     }
 }
Ejemplo n.º 3
0
     $Category = $rr->MyEvent;
     $Societa = $rr->MyTeam;
     $Div = $rr->EnDivision;
     $Cl = $rr->EnClass;
     if (CalcQualRank($_REQUEST['Dist'], $Evento)) {
         $Errore = 1;
     }
 } else {
     $Errore = 1;
 }
 if ($Errore == 0) {
     if (debug) {
         print $Evento . '<br>';
     }
     // se non ho errori calcolo la rank globale per l'evento
     if (CalcQualRank(0, $Evento)) {
         $Errore = 1;
     }
 }
 // eventi di cui calcolare le rank assolute
 $events4abs = array();
 $q = "SELECT EcCode FROM EventClass WHERE EcTournament={$_SESSION['TourId']} AND EcTeamEvent=0 AND EcDivision='" . $Div . "' AND EcClass='" . $Cl . "' ";
 $r = safe_r_sql($q);
 if ($r) {
     while ($tmp = safe_fetch($r)) {
         $events4abs[] = $tmp->EcCode;
     }
 } else {
     $Errore = 1;
 }
 // nuovo by simo
Ejemplo n.º 4
0
             $Update = "UPDATE Qualifications SET " . "QuD" . $Dist . "Score=" . StrSafe_DB($Score) . "," . "QuD" . $Dist . "Gold=" . StrSafe_DB($Gold) . "," . "QuD" . $Dist . "Xnine=" . StrSafe_DB($XNine) . "," . "QuD" . $Dist . "ArrowString=" . StrSafe_DB($ArrowString) . "," . "QuD" . $Dist . "Hits=GREATEST(LENGTH(RTRIM(QuD" . $Dist . "ArrowString))," . StrSafe_DB($LastArr) . ")," . "QuScore=QuD1Score+QuD2Score+QuD3Score+QuD4Score+QuD5Score+QuD6Score+QuD7Score+QuD8Score," . "QuGold=QuD1Gold+QuD2Gold+QuD3Gold+QuD4Gold+QuD5Gold+QuD6Gold+QuD7Gold+QuD8Gold," . "QuXnine=QuD1Xnine+QuD2Xnine+QuD3Xnine+QuD4Xnine+QuD5Xnine+QuD6Xnine+QuD7Xnine+QuD8Xnine, " . "QuHits=QuD1Hits+QuD2Hits+QuD3Hits+QuD4Hits+QuD5Hits+QuD6Hits+QuD7Hits+QuD8Hits, " . "QuTimestamp=" . StrSafe_DB(date('Y-m-d H:i:s')) . " " . "WHERE QuId=" . StrSafe_DB($myRow->HdEnId) . " ";
             $RsUp = safe_w_sql($Update);
             useArrowsSnapshot($xSession, $Dist, substr($myRow->HdTargetNo, 1, -1), substr($myRow->HdTargetNo, 1, -1), $LastArr);
             recalSnapshot($xSession, $Dist, substr($myRow->HdTargetNo, 1, -1), substr($myRow->HdTargetNo, 1, -1));
             //print $Update . '<br><br>';
             //							if()
             if ($RsUp) {
                 $Msg .= get_text('CmdOk') . '<br>';
             } else {
                 $Msg .= '<br>';
             }
         }
         // rank distanza
         CalcQualRank($Dist, '%');
         // rank totale
         CalcQualRank(0, '%');
         // rank abs sulla distanza
         CalcRank($Dist);
         // rank abs totale
         CalcRank(0);
         // squadre
         MakeTeams(NULL, NULL);
         MakeTeamsAbs(NULL, null, null);
         $Msg .= get_text('CmdImport', 'HTT') . ": " . get_text('CmdOk');
     }
     if (!empty($_SESSION['OvrHost'])) {
         OvrExport($xSession, $Dist, $LastArr);
     }
 } else {
     $Sql = "SELECT HhtData.* " . "FROM HhtData " . ($team == 0 ? "INNER JOIN Finals ON HdEvent=FinEvent AND HdMatchNo=FinMatchNo AND HdTournament=FinTournament AND HdTeamEvent=0 " : "INNER JOIN TeamFinals ON HdEvent=TfEvent AND HdMatchNo=TfMatchNo AND HdTournament=TfTournament AND HdTeamEvent=1 ") . "WHERE HdFinScheduling=" . StrSafe_DB($when) . " AND HdTeamEvent=" . StrSafe_DB($team) . " AND HdArrowStart=" . StrSafe_DB($FirstArr) . " AND HdTournament=" . StrSafe_DB($_SESSION['TourId']) . " AND HdHhtId=" . StrSafe_DB($_REQUEST['x_Hht']) . " " . "ORDER BY HdTargetNo ASC ";
     $Rs = safe_r_sql($Sql);
/**
 * calcola la rank abs di distanza o totale
 * @param int $Dist
 * @return int: 0->ok, 1->errore
 */
function CalcRank($Dist = 0, $IncludeNullPoints = false)
{
    $Errore = 0;
    $affected = array();
    if (MakeIndividuals($affected)) {
        //		debug_svela('qui');
        $Errore = 1;
    } else {
        if (CalcQualRank($Dist, '%')) {
            $Errore = 1;
        } else {
            // eventi a cui azzerare gli spareggi (oltre agli $affected)
            $events = array();
            // se la dist non è zero faccio la rank di distanza su tutti
            if ($Dist != 0) {
                if (!Obj_RankFactory::create('Abs', array('events' => '%', 'dist' => $Dist))->calculate()) {
                    $Errore = 1;
                }
            } else {
                // salvo la tabella
                if (CreateTmpIndAndSnap() == 1) {
                    $Errore = 1;
                } else {
                    // faccio la rank ma non tocco i valori già esistenti
                    $Opts = array('events' => '%', 'dist' => $Dist, 'skipExisting' => 1);
                    if ($IncludeNullPoints) {
                        $Opts['includeNullPoints'] = true;
                    }
                    if (!Obj_RankFactory::create('Abs', $Opts)->calculate()) {
                        $Errore = 1;
                    }
                    // confronto con la vecchia tabella
                    $events = FindIndEventsWithSOChanged();
                    if ($events === false) {
                        $Errore = 1;
                    } else {
                        if (count($events) > 0) {
                            $affected = array_merge($affected, $events);
                        }
                        // azzero gli shootoff
                        foreach ($affected as $e) {
                            $x = ResetShootoff($e, 0, 0);
                            if (!$x) {
                                $Errore = 1;
                            }
                        }
                        if ($Errore == 0) {
                            // adesso gli eventi senza spareggi (anche quelli che non provengono da questa elaborazione)
                            $events = array();
                            $q = "\r\n\t\t\t\t\t\t\t\tSELECT EvCode FROM Events\r\n\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\tEvTournament={$_SESSION['TourId']} AND EvTeamEvent=0 AND\r\n\t\t\t\t\t\t\t\t\tEvShootOff=0 AND EvE1ShootOff=0 AND EvE2ShootOff=0\r\n\t\t\t\t\t\t\t";
                            $r = safe_r_sql($q);
                            if (!$r) {
                                $Errore = 1;
                            } else {
                                while ($row = safe_fetch($r)) {
                                    $events[] = $row->EvCode;
                                }
                                // ricalcolo la loro rank
                                if (count($events) > 0) {
                                    if (!Obj_RankFactory::create('Abs', array('events' => $events, 'dist' => $Dist))->calculate()) {
                                        $Errore = 1;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    DropTmpInd();
    return $Errore;
}