forked from science-ation/science-ation
- A new judge report generator.. it's completely broken and not done, but I
wanted to get it into the repository so maybe I can work on it elsewhere later today.
This commit is contained in:
parent
1d068915be
commit
a9ca1718d1
259
admin/reports_judges_new.php
Normal file
259
admin/reports_judges_new.php
Normal file
@ -0,0 +1,259 @@
|
||||
<?
|
||||
/*
|
||||
This file is part of the 'Science Fair In A Box' project
|
||||
SFIAB Website: http://www.sfiab.ca
|
||||
|
||||
Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
|
||||
Copyright (C) 2005 James Grant <james@lightbox.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation, version 2.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
?>
|
||||
<?
|
||||
require("../common.inc.php");
|
||||
auth_required('admin');
|
||||
require("../lpdf.php");
|
||||
require("../ltxt.php");
|
||||
require("../lcsv.php");
|
||||
require("../questions.inc.php");
|
||||
|
||||
|
||||
$fields = array( 'id' => i18n('Judge ID'),
|
||||
'firstname' => i18n("Last Name"),
|
||||
'lastname' => i18n("First Name"),
|
||||
'email' => i18n("Email"),
|
||||
'homephone' => i18n("Phone Home"),
|
||||
'workphone' => i18n("Phone Work"),
|
||||
'workphoneext' => i18n("Phone Work Ext"),
|
||||
'cellphone' => i18n("Phone Cell"),
|
||||
'languages' => i18n("Languages"),
|
||||
'organization' => i18n("Organization"),
|
||||
'address' => i18n("Address"),
|
||||
'city' => i18n("City"),
|
||||
'province' => i18n("Province"),
|
||||
'postalcode' => i18n("Postal Code"),
|
||||
'questions' => i18n("Judging Questions Responses"),
|
||||
'expertise_other' => i18n("Expertise Other"));
|
||||
);
|
||||
|
||||
|
||||
|
||||
if(!$_GET['type']) $type="csv";
|
||||
else $type=$_GET['type'];
|
||||
|
||||
if($type=="pdf")
|
||||
{
|
||||
$rep=new lpdf( i18n($config['fairname']),
|
||||
i18n("Judge List"),
|
||||
$_SERVER['DOCUMENT_ROOT'].$config['SFIABDIRECTORY']."/data/logo-200.gif"
|
||||
);
|
||||
|
||||
$rep->newPage();
|
||||
$rep->setFontSize(11);
|
||||
}
|
||||
else if($type=="csv")
|
||||
{
|
||||
$rep=new lcsv(i18n("Judge List"));
|
||||
}
|
||||
else if($type=="txt")
|
||||
{
|
||||
$rep = new ltxt(i18n("Judge List"));
|
||||
}
|
||||
|
||||
$table=array();
|
||||
$table['header']=array( i18n("ID"),
|
||||
i18n("Last Name"),
|
||||
i18n("First Name"),
|
||||
i18n("Email"),
|
||||
i18n("Phone Home"),
|
||||
i18n("Phone Work"),
|
||||
i18n("Phone Work Ext"),
|
||||
i18n("Phone Cell"),
|
||||
i18n("Languages"),
|
||||
i18n("Organization"),
|
||||
i18n("Address 1"),
|
||||
i18n("Address 2"),
|
||||
i18n("City"),
|
||||
i18n("Province"),
|
||||
i18n("Postal Code"),
|
||||
i18n("Highest PostSecDeg"),
|
||||
i18n("Professional Quals"),
|
||||
i18n("Expertise Other"));
|
||||
|
||||
/* Append headers for all the custom questions */
|
||||
$qs=questions_load_questions('judgereg', $config['FAIRYEAR']);
|
||||
$keys = array_keys($qs);
|
||||
foreach($keys as $qid) {
|
||||
$table['header'][] = i18n($qs[$qid]['db_heading']);
|
||||
}
|
||||
|
||||
|
||||
//grab the list of divisions, because the last fields of the table will be the sub-divisions
|
||||
$q=mysql_query("SELECT * FROM projectcategories WHERE year='".$config['FAIRYEAR']."' ORDER BY id");
|
||||
$numcats=mysql_num_rows($q);
|
||||
$catheadings=array();
|
||||
while($r=mysql_fetch_object($q))
|
||||
{
|
||||
$cats[]=$r->id;
|
||||
$catheadings[]="$r->category (out of 5)";
|
||||
}
|
||||
//grab the list of divisions, because the last fields of the table will be the sub-divisions
|
||||
$q=mysql_query("SELECT * FROM projectdivisions WHERE year='".$config['FAIRYEAR']."' ORDER BY id");
|
||||
$divheadings=array();
|
||||
while($r=mysql_fetch_object($q))
|
||||
{
|
||||
$divs[]=$r->id;
|
||||
$divheadings[]="$r->division (out of 5)";
|
||||
$divheadings[]="$r->division subdivisions";
|
||||
}
|
||||
|
||||
//now append the arrays together
|
||||
$table['header']=array_merge($table['header'],array_merge($catheadings,$divheadings));
|
||||
|
||||
|
||||
//fill these in if we ever make this PDFable
|
||||
$table['widths']=array();
|
||||
$table['dataalign']=array();
|
||||
|
||||
$q=mysql_query("SELECT
|
||||
judges.*
|
||||
FROM
|
||||
judges,
|
||||
judges_years
|
||||
WHERE
|
||||
judges.complete='yes' AND
|
||||
judges_years.year='".$config['FAIRYEAR']."' AND
|
||||
judges.id=judges_years.judges_id
|
||||
ORDER BY
|
||||
lastname,
|
||||
firstname");
|
||||
while($r=mysql_fetch_object($q))
|
||||
{
|
||||
$expertise_other=str_replace("\n"," ",$r->expertise_other);
|
||||
$expertise_other=str_replace("\r","",$expertise_other);
|
||||
|
||||
$subdivq=mysql_query("SELECT judges_expertise.*,
|
||||
projectsubdivisions.subdivision,
|
||||
projectsubdivisions.projectdivisions_id AS parent_id
|
||||
FROM judges_expertise
|
||||
LEFT JOIN projectsubdivisions ON judges_expertise.projectsubdivisions_id=projectsubdivisions.id
|
||||
WHERE
|
||||
judges_id='$r->id' AND
|
||||
judges_expertise.year='".$config['FAIRYEAR']."'
|
||||
ORDER BY
|
||||
projectdivisions_id,
|
||||
projectsubdivisions_id");
|
||||
if(isset($judge_divs)) unset($judge_divs); $judge_divs=array();
|
||||
if(isset($judge_subdivs)) unset($judge_subdivs); $judge_subdivs=array();
|
||||
if(isset($divdata)) unset($divdata); $divdata=array();
|
||||
if(isset($catdata)) unset($catdata); $catdata=array();
|
||||
|
||||
while($subdivr=mysql_fetch_object($subdivq))
|
||||
{
|
||||
if($subdivr->projectdivisions_id)
|
||||
{
|
||||
$judge_divs[$subdivr->projectdivisions_id]=$subdivr->val;
|
||||
}
|
||||
else
|
||||
$judge_subdivs[$subdivr->parent_id][]=$subdivr->subdivision;
|
||||
}
|
||||
|
||||
|
||||
foreach($divs as $div)
|
||||
{
|
||||
$divdata[]=$judge_divs[$div];
|
||||
if(count($judge_subdivs[$div]))
|
||||
$divdata[]=implode(",",$judge_subdivs[$div]);
|
||||
else
|
||||
$divdata[]="";
|
||||
}
|
||||
|
||||
|
||||
$catprefq=mysql_query("SELECT judges_catpref.rank, projectcategories.category
|
||||
FROM judges_catpref,
|
||||
projectcategories
|
||||
WHERE
|
||||
projectcategories.year='".$config['FAIRYEAR']."' AND
|
||||
judges_catpref.year='".$config['FAIRYEAR']."' AND
|
||||
judges_catpref.judges_id='".$r->id."' AND
|
||||
judges_catpref.projectcategories_id=projectcategories.id
|
||||
ORDER BY
|
||||
judges_catpref.projectcategories_id");
|
||||
if(mysql_num_rows($catprefq)!=$numcats)
|
||||
{
|
||||
//somethings messed up, we're missing data or have too much, so we really cant draw any conclusions from the data we have
|
||||
//so instead, we will simply blank these out to 0
|
||||
for($x=0;$x<$numcats;$x++)
|
||||
$catdat $this->txtdata.=$this->str_seperator;
|
||||
a[]=0;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
while($cr=mysql_fetch_object($catprefq))
|
||||
{
|
||||
//this is stored in teh db as -2 ... +2 so if we add 2 we get a nice 0 ... 5
|
||||
$catdata[]=$cr->rank+2;
|
||||
}
|
||||
}
|
||||
|
||||
$languages="";
|
||||
//and finally, grab their languages
|
||||
$langq=mysql_query("SELECT * FROM judges_languages WHERE judges_id='".$r->id."' ORDER BY languages_lang");
|
||||
while($langr=mysql_fetch_object($langq))
|
||||
$languages.=$langr->languages_lang."/";
|
||||
//stip off the last /
|
||||
$languages=substr($languages,0,-1);
|
||||
|
||||
// print_r($judge_divs);
|
||||
// print_r($judge_subdivs);
|
||||
|
||||
$qarray = array();
|
||||
$qans = questions_load_answers('judgereg', $r->id, $config['FAIRYEAR']);
|
||||
$keys = array_keys($qans);
|
||||
foreach($keys as $qid) {
|
||||
$qarray[] = $qans[$qid];
|
||||
}
|
||||
|
||||
$tmp=array(
|
||||
$r->id,
|
||||
$r->lastname,
|
||||
$r->firstname,
|
||||
$r->email,
|
||||
$r->phonehome,
|
||||
$r->phonework,
|
||||
$r->phoneworkext,
|
||||
$r->phonecell,
|
||||
$languages,
|
||||
$r->organization,
|
||||
$r->address,
|
||||
$r->address2,
|
||||
$r->city,
|
||||
$r->province,
|
||||
$r->postalcode,
|
||||
$r->highest_psd,
|
||||
$r->professional_quals,
|
||||
$expertise_other
|
||||
);
|
||||
$tmp = array_merge($tmp, $qarray);
|
||||
|
||||
$extradata=array_merge($catdata,$divdata);
|
||||
$table['data'][]=array_merge($tmp,$extradata);
|
||||
}
|
||||
|
||||
$rep->addTable($table);
|
||||
$rep->output();
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user