- 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_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('../lpdf.php');
require_once('../lcsv.php'); require_once('../lcsv.php');
@ -136,7 +138,8 @@ foreach($stock as $n=>$v) {
function report_save_field($report, $type) 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']) { switch($report['type']) {
case 'student': $allow_fields = array_keys($report_students_fields); break; case 'student': $allow_fields = array_keys($report_students_fields); break;
@ -373,8 +376,8 @@ foreach($stock as $n=>$v) {
$group_by[] = $fieldname[$f]; $group_by[] = $fieldname[$f];
} }
} }
if(count($group_query)) { if(count($group_by)) {
$group_query = "GROUP BY ".implode(",", $group_by); $group_query = "GROUP BY ".implode(",", $group_by);
} else { } else {
$group_query = ""; $group_query = "";

View File

@ -24,8 +24,8 @@
$report_awards_fields = array( $report_awards_fields = array(
'name' => array( 'name' => array(
'name' => 'Award -- Name', 'name' => 'Award -- Name',
'header' => 'Name', 'header' => 'Award Name',
'width' => 2.0, 'width' => 3.0,
'table' => 'award_awards.name' ), 'table' => 'award_awards.name' ),
'cwsfaward' => array( 'cwsfaward' => array(
@ -35,6 +35,32 @@ $report_awards_fields = array(
'table' => 'award_awards.cwsfaward', 'table' => 'award_awards.cwsfaward',
'value_map' => array ('0' => 'No', '1' => 'Yes')), '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) function report_awards_fromwhere($report)
@ -44,34 +70,28 @@ $report_awards_fields = array(
$fields = $report_awards_fields; $fields = $report_awards_fields;
$year = $report['year']; $year = $report['year'];
/*
$awards_join = ''; $judges_join = '';
$awards_where = ''; $judges_where = '';
if(in_array('awards', $report['col']) || in_array('pn_awards', $report['col']) if(in_array('judgeteammembers', $report['col'])
|| in_array('awards', $report['group']) || in_array('pn_awards', $report['group']) ) { || in_array('judgeteammembers', $report['group']) ) {
/* This requires some extra gymnastics $judges_join = ', judges_teams_link, judges';
$awards_join = "LEFT JOIN winners ON(winners.projects_id = projects.id),award_prizes,award_awards,award_types"; $judges_where = 'AND judges_teams_link.id=judges_teams.id
$awards_where = " AND winners.awards_prizes_id=award_prizes.id AND judges.id=judges_teams_link.judges_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' ";
} }
$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 $q = " FROM
award_awards award_awards, judges_teams_awards_link, judges_teams,
award_types
$judges_join
WHERE 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; return $q;

View File

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

View File

@ -23,14 +23,14 @@
$report_judges_fields = array( $report_judges_fields = array(
'last_name' => array( 'last_name' => array(
'name' => 'Last Name', 'name' => 'Judge -- Last Name',
'header' => 'Judge -- Last Name', 'header' => 'Last Name',
'width' => 1.0, 'width' => 1.0,
'table' => 'judges.lastname' ), 'table' => 'judges.lastname' ),
'first_name' => array( 'first_name' => array(
'name' => 'First Name', 'name' => 'Judge -- First Name',
'header' => 'Judge -- First Name', 'header' => 'First Name',
'width' => 1.0, 'width' => 1.0,
'table' => 'judges.firstname' ), 'table' => 'judges.firstname' ),
@ -51,7 +51,7 @@ $report_judges_fields = array(
'email' => array( 'email' => array(
'name' => 'Judge -- Email', 'name' => 'Judge -- Email',
'header' => 'Email', 'header' => 'Email',
'width' => 1.5, 'width' => 2.0,
'table' => 'judges.email'), 'table' => 'judges.email'),
'address' => array( 'address' => array(
@ -92,11 +92,30 @@ $report_judges_fields = array(
'languages' => array( 'languages' => array(
'name' => 'Judges -- Languages (REQUIRES MySQL 5.0)', 'name' => 'Judges -- Languages (REQUIRES MySQL 5.0)',
'header' => 'Languages', 'header' => 'Lang',
'width' => 0.75, 'width' => 0.75,
'table' => "GROUP_CONCAT(judges_languages.languages_lang ORDER BY judges_languages.languages_lang SEPARATOR ' ')", 'table' => "GROUP_CONCAT(judges_languages.languages_lang ORDER BY judges_languages.languages_lang SEPARATOR ' ')",
'group_by' => array('judges.id')), '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( 'complete' => array(
'name' => 'Judge -- Registration Complete', 'name' => 'Judge -- Registration Complete',
'header' => 'Complete', 'header' => 'Complete',
@ -113,6 +132,14 @@ $report_judges_fields = array(
$fields = $report_judges_fields; $fields = $report_judges_fields;
$year = $report['year']; $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_join = '';
$awards_where = ''; $awards_where = '';
@ -138,10 +165,16 @@ $report_judges_fields = array(
} }
*/ */
$q = " FROM $q = " FROM
judges, judges_years judges, judges_years, judges_teams_link, judges_teams
$languages_from
WHERE WHERE
judges_years.judges_id = judges.id judges_years.judges_id = judges.id
AND judges_years.year='$year' 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; return $q;

View File

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