$val) { $show_category[] = "projects.projectcategories_id='$id'"; } if ($show_unawarded_prizes == 'yes') { $show_category[] = 'projects.projectcategories_id IS NULL'; } $and_categories = join(' OR ', $show_category); } else { $and_categories = '1'; } $show_criteria = (get_value_from_array($_GET, 'show_criteria') == 'on') ? true : false; $type = $_GET['type']; if (!$type) $type = 'pdf'; $scriptformat = $_GET['scriptformat']; if (!$scriptformat) $scriptformat = 'default'; if ($type == 'pdf') { $rep = new lpdf(i18n($config['fairname']), i18n('Awards Ceremony Script'), $_SERVER['DOCUMENT_ROOT'] . $config['SFIABDIRECTORY'] . '/data/logo-200.gif'); $rep->newPage(); if ($scriptformat == 'default') $rep->setFontSize(12); if ($scriptformat == 'formatted') $rep->setFontSize(14); } else if ($type == 'csv') { $rep = new lcsv(i18n('Awards Ceremony Script')); } $q = $pdo->prepare("SELECT award_awards.id, award_awards.name, award_awards.presenter, award_awards.description, award_awards.criteria, award_awards.order AS awards_order, award_types.type, sponsors.organization FROM award_awards, award_types, sponsors WHERE award_awards.year=? AND award_types.year=? AND award_awards.award_types_id=award_types.id AND award_awards.sponsors_id=sponsors.id AND award_awards.excludefromac='0', ? ORDER BY awards_order"); $q->execute([$foryear,$foryear,$awardtype]); show_pdo_errors_if_any($pdo); // echo "
";
if (!$q->rowCount()) {
	$rep->output();
	exit;
}
$awards = array();

while ($r = $q->fetch(PDO::FETCH_OBJ)) {
	$pq = $pdo->prepare("SELECT 
						award_prizes.prize,
						award_prizes.number,
						award_prizes.id,
						award_prizes.cash,
						award_prizes.scholarship,
						winners.projects_id,
						projects.projectnumber,
						projects.title,
						projects.projectcategories_id,
						projects.registrations_id AS reg_id
					FROM 
						award_prizes 
						LEFT JOIN winners ON winners.awards_prizes_id=award_prizes.id
						LEFT JOIN projects ON projects.id=winners.projects_id
					WHERE 
						award_awards_id=? 
						AND award_prizes.year=?
						AND award_prizes.excludefromac='0'
						AND (?)
					ORDER BY 
						`order`,
						projects.projectnumber");
	$pq->execute([$r->id,$foryear,$and_categories]);
	show_pdo_errors_if_any($pdo);

	$r->winners = array();
	$r->awarded_count = 0;

	while ($w = $pq->fetch(PDO::FETCH_OBJ)) {
		if ($w->projects_id) {
			$r->awarded_count++;
		}
		if ($r->type == 'Divisional' && $group_by_prize == true) {
			/* Search awards for an award name that matches this prize */
			$found = false;
			foreach ($awards as &$p_award) {
				if ($p_award->name == $w->prize) {
					/*
					 * Match!  Set the prize name to the award name,
					 * and add the prize to the award
					 */
					$w->prize = $r->name;
					$p_award->winners[] = $w;
					$found = true;
					//						echo "Add to award {$p_award->name}: ";		print_r($w);
					break;
				}
			}
			if ($found == false) {
				/* Make a new award and set it equal to the prize name */
				$n = $r->name;
				$new_award = clone ($r);
				$new_award->name = $w->prize;
				/* Now add the prize with the award's name */
				$w->prize = $n;
				$new_award->winners[] = $w;
				$awards[] = $new_award;
				//					echo "Create Award:"; print_r($new_award);
			}
		} else {
			//				echo "Add non-div winner\n";
			$r->winners[] = $w;
		}
	}

	if ($show_unawarded_awards == 'no' && $r->awarded_count == 0) {
		/* No winners */
		continue;
	}

	if ($r->type == 'Divisional' && $group_by_prize == true) {
		/* Do nothing */
	} else {
		$awards[] = $r;
	}
}
//	echo '
';	print_r($awards);

foreach ($awards as $r) {
	if ($scriptformat == 'formatted')
		$rep->newPage();

	if ($scriptformat == 'default')
		$rep->heading("$r->name  ($r->type)");
	if ($scriptformat == 'formatted') {
		$rep->setFontBold();
		$rep->addText("$r->name  ($r->type)");
		$rep->setFontNormal();
	}
	if ($r->type != 'Divisional')
		$rep->addText(i18n('Sponsored by: %1', array($r->organization)));
	if ($r->presenter)
		$rep->addText(i18n('Presented by: %1', array($r->presenter)));
	if ($r->description)
		$rep->addText(i18n('Description: %1', array($r->description)));
	if ($show_criteria)
		$rep->addText(i18n('Criteria: %1', array($r->criteria)));

	if ($scriptformat == 'formatted')
		$rep->nextline();

	if ($r->awarded_count == 0) {
		$rep->addText('Not awarded');
	}

	$prevprizeid = -1;

	foreach ($r->winners as $pr) {
		if ($pr->projectnumber || $show_unawarded_prizes == 'yes') {
			if ($prevprizeid != $pr->id) {
				$prizetext = $pr->prize;

				if ($pr->cash || $pr->scholarship) {
					$prizetext .= ' (';
					if ($pr->cash && $pr->scholarship)
						$prizetext .= "\$$pr->cash cash / \$$pr->scholarship scholarship";
					else if ($pr->cash)
						$prizetext .= "\$$pr->cash cash";
					else if ($pr->scholarship)
						$prizetext .= "\$$pr->scholarship scholarship";
					$prizetext .= ')';
				}
				if ($scriptformat == 'default')
					$rep->addText($prizetext);
				if ($scriptformat == 'formatted') {
					$rep->setFontBold();
					$rep->addText($prizetext);
					$rep->setFontNormal();
					$rep->nextline();
				}

				$prevprizeid = $pr->id;
			}

			if ($pr->projectnumber) {
				if ($scriptformat == 'default')
					$rep->addText("    ($pr->projectnumber) $pr->title");

				$sq = $pdo->prepare("SELECT students.firstname,
									students.lastname,
									students.pronunciation,
									students.schools_id,
									schools.school
								FROM
									students,
									schools
								WHERE
									students.registrations_id=?
									AND students.schools_id=schools.id
								");
				$sq->execute([$pr->reg_id]);

				$students = '       Students: ';
				$studnum = 0;
				$pronounce = '';
				$rawpronounce = '';
				while ($studentinfo = $sq->fetch(PDO::FETCH_OBJ)) {
					if ($studnum > 0)
						$students .= ', ';
					$students .= "$studentinfo->firstname $studentinfo->lastname";

					if ($studnum > 0)
						$pronounce .= ', ';
					$pronounce .= "\"{$studentinfo->pronunciation}\"";
					$rawpronounce .= "{$studentinfo->pronunciation}";

					$student_winner[$studnum] = "$studentinfo->firstname $studentinfo->lastname";
					$student_win_pronunc[$studnum] = "$studentinfo->pronunciation";
					$student_school[$studnum] = $studentinfo->school;
					$studnum++;
				}

				if ($scriptformat == 'default') {
					$rep->addText($students);
					if (trim($rawpronounce) != '' && $show_pronunciation == TRUE)
						$rep->addText("       Pronunciation: $pronounce");
					$rep->addText("       School: {$student_school[0]}");
				}
				if ($scriptformat == 'formatted') {
					$rep->addTextX("$pr->projectnumber", 0.5);
					for ($x = 0; $x < $studnum; $x++) {
						$rep->addTextX($student_winner[$x], 1.4);
						$rep->addTextX($student_school[$x], 5.5);
						if ($show_pronunciation == TRUE && $student_win_pronunc[$x]) {
							$rep->nextline();
							$rep->addTextX("({$student_win_pronunc[$x]})", 2.0);
						}
						if ($type == 'pdf')
							$rep->nextline();
					}
					if (($studnum == 1) && ($type == 'csv'))
						$rep->addTextX('');
					if (($studnum == 1) && ($type == 'csv'))
						$rep->addTextX('');
					$rep->addText($pr->title, 'left', 1.4);
					if ($type == 'pdf')
						$rep->nextline();
					$rep->nextline();
				}
			} else {
				$rep->addText('    Prize not awarded');
			}
		}
	}
	$rep->nextLine();
}

$rep->output();
?>