function checkPrerequisites()
{
global $config;
$q=mysql_query("SELECT * FROM judges_schedulerconfig WHERE year='".$config['FAIRYEAR']."' ORDER BY var");
$schedulerconfig=array();
while($r=mysql_fetch_object($q))
{
$schedulerconfig[$r->var]=$r->val;
}
echo i18n("Based on your configuration data above, here are some calculations");
echo "
";
$totalteams=0;
$catq=mysql_query("SELECT * FROM projectcategories WHERE year='{$config['FAIRYEAR']}' ORDER BY mingrade");
while($catr=mysql_fetch_object($catq))
{
echo "
$catr->category
";
echo "";
echo "Division | Projects | Teams |
";
$divq=mysql_query("SELECT * FROM projectdivisions WHERE year='{$config['FAIRYEAR']}' ORDER BY id");
while($divr=mysql_fetch_object($divq))
{
$langq=mysql_query("SELECT * FROM languages WHERE active='Y'");
while($langr=mysql_fetch_object($langq))
{
$numq=mysql_query("SELECT COUNT(id) AS num FROM projects WHERE projectcategories_id='$catr->id' AND projectdivisions_id='$divr->id' AND year='{$config['FAIRYEAR']}' AND language='$langr->lang'");
$numr=mysql_fetch_object($numq);
echo "".i18n($divr->division)." ($langr->lang) | ";
echo "$numr->num | ";
$numteams=ceil($numr->num/$schedulerconfig['max_projects_per_team']*$schedulerconfig['num_times_judged']);
if($numteams<$schedulerconfig['num_times_judged']) $numteams=$schedulerconfig['num_times_judged'];
echo "$numteams | ";
$totalteams+=$numteams;
echo "
";
}
}
echo "
";
echo "
";
echo "
";
}
echo "";
echo "Total judging teams required: $totalteams";
echo "
";
$minjudges=($totalteams*$schedulerconfig['min_judges_per_team']);
$maxjudges=($totalteams*$schedulerconfig['max_judges_per_team']);
echo "Minimum number of judges required: $minjudges";
echo "
";
echo "Maximum number of judges acceptable: $maxjudges";
echo "
";
$jq=mysql_query("SELECT COUNT(judges.id) AS num FROM judges,judges_years WHERE complete='yes' AND judges_years.year='{$config['FAIRYEAR']}' AND judges_years.judges_id=judges.id");
$jr=mysql_fetch_object($jq);
$currentjudges=$jr->num;
echo "Current number of registered judges: $currentjudges";
echo "
";
echo "
";
$ok=true;
if($currentjudges<$minjudges)
{
echo error(i18n("You do not have sufficient number of judges based on your parameters"));
echo " ";
echo "".i18n("Update Scheduler Configuration")." (".i18n("or get more judges!").")";
$ok=false;
}
else
echo happy(i18n("You have a sufficient number of judges based on your parameters"));
//now check if we can find a divisional award for each division and category
$q=mysql_query("SELECT * FROM projectdivisions WHERE year='".$config['FAIRYEAR']."' ORDER BY id");
while($r=mysql_fetch_object($q))
$div[$r->id]=$r->division;
$q=mysql_query("SELECT * FROM projectcategories WHERE year='".$config['FAIRYEAR']."' ORDER BY id");
while($r=mysql_fetch_object($q))
$cat[$r->id]=$r->category;
$foundawards="";
$notfoundawards="";
$foundteams="";
foreach($div AS $d_id=>$d_division)
{
foreach($cat AS $c_id=>$c_category)
{
$q=mysql_query("SELECT award_awards.id FROM
award_awards,
award_awards_projectcategories,
award_awards_projectdivisions
WHERE
award_awards.year='{$config['FAIRYEAR']}'
AND award_awards_projectcategories.year='{$config['FAIRYEAR']}'
AND award_awards_projectdivisions.year='{$config['FAIRYEAR']}'
AND award_awards.id=award_awards_projectcategories.award_awards_id
AND award_awards.id=award_awards_projectdivisions.award_awards_id
AND award_awards_projectcategories.projectcategories_id='$c_id'
AND award_awards_projectdivisions.projectdivisions_id='$d_id'
AND award_awards.award_types_id='1'
");
echo mysql_error();
if(mysql_num_rows($q)!=1)
{
while($r=mysql_fetch_object($q))
print_r($r);
$notfoundawards.="$c_category - $d_division, ";
$ok=false;
}
else
{
$r=mysql_fetch_object($q);
$foundawards.="$c_category - $d_division, ";
//if we found an award thats good, but it would be bad if there's already a judges team
//that is assigned to the award, so now lets check the judges teams to see if ones assigned
//to this award.
$q=mysql_query("SELECT judges_teams.num,judges_teams.name
FROM judges_teams,
judges_teams_awards_link
WHERE
judges_teams_awards_link.award_awards_id='$r->id'
AND judges_teams.year='".$config['FAIRYEAR']."'
AND judges_teams_awards_link.judges_teams_id=judges_teams.id");
if(mysql_num_rows($q))
{
$r=mysql_fetch_object($q);
$ok=false;
$foundteams.=i18n("(%1) %2, ",array($r->num,$r->name));
}
}
}
}
$notfoundawards=substr($notfoundawards,0,-2);
$foundawards=substr($foundawards,0,-2);
$foundteams=substr($foundteams,0,-2);
if($notfoundawards)
{
echo error(i18n("Cannot find awards for: %1. These awards must be created first",array($notfoundawards)));
echo " ";
echo "".i18n("Awards Manager")."";
}
if($foundawards)
echo happy(i18n("Found awards for: %1",array($foundawards)));
if($foundteams)
{
echo error(i18n("Found judging teams that are currently assigned to divisional awards: %1. These teams must be removed first",array($foundteams)));
echo " ".i18n("Judging Teams Manager")."";
}
else
echo happy(i18n("No judging teams are assigned to divisional awards (good!)"));
//now check if we have enough timeslots available...
$q=mysql_query("SELECT COUNT(id) AS num FROM judges_timeslots WHERE year='".$config['FAIRYEAR']."' AND allowdivisional='yes'");
$r=mysql_fetch_object($q);
$numslots=$r->num;
if($numslots<$schedulerconfig['max_projects_per_team'])
{
echo error(i18n("You do not have enough judging timeslots available for divisional judging. Please create more timeslots first. Available: %1, Required: %2",array($numslots,$schedulerconfig['max_projects_per_team'])));
echo " ".i18n("Timeslot Manager")."";
$ok=false;
}
else
{
echo happy(i18n("You have sufficient timeslots available. Available: %1, Required: %2",array($numslots,$schedulerconfig['max_projects_per_team'])));
}
//asdf
return $ok;
}
?>