- Update the judge and award report generators

This commit is contained in:
dave 2007-03-18 21:48:36 +00:00
parent 7b04204ede
commit d659999339
5 changed files with 97 additions and 39 deletions

View File

@ -22,6 +22,8 @@
*/
require_once("reports_students.inc.php"); /* $report_students_fields */
require_once("reports_judges.inc.php"); /* $report_students_fields */
require_once("reports_awards.inc.php"); /* $report_students_fields */
require_once('../lpdf.php');
require_once('../lcsv.php');
@ -136,7 +138,8 @@ foreach($stock as $n=>$v) {
function report_save_field($report, $type)
{
global $allow_options, $report_students_fields, $report_judges_fields;
global $allow_options;
global $report_students_fields, $report_judges_fields, $report_awards_fields;
switch($report['type']) {
case 'student': $allow_fields = array_keys($report_students_fields); break;
@ -373,8 +376,8 @@ foreach($stock as $n=>$v) {
$group_by[] = $fieldname[$f];
}
}
if(count($group_query)) {
if(count($group_by)) {
$group_query = "GROUP BY ".implode(",", $group_by);
} else {
$group_query = "";

View File

@ -24,8 +24,8 @@
$report_awards_fields = array(
'name' => array(
'name' => 'Award -- Name',
'header' => 'Name',
'width' => 2.0,
'header' => 'Award Name',
'width' => 3.0,
'table' => 'award_awards.name' ),
'cwsfaward' => array(
@ -35,6 +35,32 @@ $report_awards_fields = array(
'table' => 'award_awards.cwsfaward',
'value_map' => array ('0' => 'No', '1' => 'Yes')),
'type' => array(
'name' => 'Award -- Type',
'header' => 'Award Type',
'width' => 1.0,
'table' => 'award_types.type' ),
'judgeteamname' => array(
'name' => 'Judging Team -- Name',
'header' => 'Judging Team',
'width' => 3.0,
'table' => 'judges_teams.name'),
'judgeteamnum' => array(
'name' => 'Judging Team -- Number',
'header' => 'Num',
'width' => 0.5,
'table' => 'judges_teams.num'),
'judgeteammembers' => array(
'name' => 'Judging Team -- Members (REQUIRES MySQL 5.0)',
'header' => 'Team Members',
'width' => 3.0,
'table' => "GROUP_CONCAT(judges.firstname)",
'group_by' => array('judges_teams.num') ),
);
function report_awards_fromwhere($report)
@ -44,34 +70,28 @@ $report_awards_fields = array(
$fields = $report_awards_fields;
$year = $report['year'];
/*
$awards_join = '';
$awards_where = '';
$judges_join = '';
$judges_where = '';
if(in_array('awards', $report['col']) || in_array('pn_awards', $report['col'])
|| in_array('awards', $report['group']) || in_array('pn_awards', $report['group']) ) {
/* This requires some extra gymnastics
$awards_join = "LEFT JOIN winners ON(winners.projects_id = projects.id),award_prizes,award_awards,award_types";
$awards_where = " AND winners.awards_prizes_id=award_prizes.id
AND award_prizes.award_awards_id=award_award_awards.id
AND award_types.id=award_award_awards.award_types_id
AND winners.year='$year'
AND award_award_awards.year='$year'
AND award_prizes.year='$year'
AND award_types.year='$year' ";
if(in_array('judgeteammembers', $report['col'])
|| in_array('judgeteammembers', $report['group']) ) {
$judges_join = ', judges_teams_link, judges';
$judges_where = 'AND judges_teams_link.id=judges_teams.id
AND judges.id=judges_teams_link.judges_id';
}
$partner_join = '';
if(in_array('bothnames', $report['col']) || in_array('partner', $report['col'])) {
$partner_join = "LEFT JOIN awards AS awards2
ON(awards2.registrations_id=award_awards.registrations_id
AND awards2.id != award_awards.id)";
}
*/
$q = " FROM
award_awards
award_awards, judges_teams_awards_link, judges_teams,
award_types
$judges_join
WHERE
awards_years.year='$year'
award_awards.year='$year'
AND judges_teams_awards_link.award_awards_id=award_awards.id
AND judges_teams.id=judges_teams_awards_link.judges_teams_id
AND award_types.id=award_types_id
AND award_types.year='$year'
$judges_where
";
return $q;

View File

@ -194,7 +194,7 @@ function reportChange()
switch($report['type']) {
case 'student': $fields = $report_students_fields; break;
case 'judge': $fields = $report_judges_fields; break;
case 'awards': $fields = $report_awards_fields; break;
case 'award': $fields = $report_awards_fields; break;
}
echo "<a href=\"reports.php\">&lt;&lt; ".i18n("Back to Reports")."</a><br />";

View File

@ -23,14 +23,14 @@
$report_judges_fields = array(
'last_name' => array(
'name' => 'Last Name',
'header' => 'Judge -- Last Name',
'name' => 'Judge -- Last Name',
'header' => 'Last Name',
'width' => 1.0,
'table' => 'judges.lastname' ),
'first_name' => array(
'name' => 'First Name',
'header' => 'Judge -- First Name',
'name' => 'Judge -- First Name',
'header' => 'First Name',
'width' => 1.0,
'table' => 'judges.firstname' ),
@ -51,7 +51,7 @@ $report_judges_fields = array(
'email' => array(
'name' => 'Judge -- Email',
'header' => 'Email',
'width' => 1.5,
'width' => 2.0,
'table' => 'judges.email'),
'address' => array(
@ -92,11 +92,30 @@ $report_judges_fields = array(
'languages' => array(
'name' => 'Judges -- Languages (REQUIRES MySQL 5.0)',
'header' => 'Languages',
'header' => 'Lang',
'width' => 0.75,
'table' => "GROUP_CONCAT(judges_languages.languages_lang ORDER BY judges_languages.languages_lang SEPARATOR ' ')",
'group_by' => array('judges.id')),
'captain' => array(
'name' => 'Judge Team -- Captain?',
'header' => 'Cptn',
'width' => 0.5,
'table' => 'judges_teams_link.captain',
'value_map' => array ('no' => 'No', 'yes' => 'Yes')),
'team' => array(
'name' => 'Judge Team -- Name',
'header' => 'Team Name',
'width' => 3.0,
'table' => 'judges_teams.name'),
'teamnum' => array(
'name' => 'Judge Team -- Team Number',
'header' => 'Team',
'width' => 0.5,
'table' => 'judges_teams.num'),
'complete' => array(
'name' => 'Judge -- Registration Complete',
'header' => 'Complete',
@ -113,6 +132,14 @@ $report_judges_fields = array(
$fields = $report_judges_fields;
$year = $report['year'];
$languages_from = '';
$languages_where = '';
if(in_array('languages', $report['col'])) {
$languages_from = ', judges_languages';
$languages_where = 'AND judges_languages.judges_id=judges.id';
}
/*
$awards_join = '';
$awards_where = '';
@ -138,10 +165,16 @@ $report_judges_fields = array(
}
*/
$q = " FROM
judges, judges_years
judges, judges_years, judges_teams_link, judges_teams
$languages_from
WHERE
judges_years.judges_id = judges.id
AND judges_years.year='$year'
AND judges_teams_link.judges_id=judges.id
AND judges_teams_link.year='$year'
AND judges_teams.id=judges_teams_link.judges_teams_id
AND judges_teams.year='$year'
$languages_where
";
return $q;

View File

@ -62,9 +62,11 @@
if($numawards==1) $plural=""; else $plural="s";
$awardstr="$numawards Award$plural: ";
foreach($team['awards'] AS $award)
{
$awardstr.="(".$award['award_type'].") ".$award['name'].", ";
if(is_array($team['awards'])) {
foreach($team['awards'] AS $award)
{
$awardstr.="(".$award['award_type'].") ".$award['name'].", ";
}
}
//trim off the last ", "
$awardstr=substr($awardstr,0,-2);