forked from science-ation/science-ation
431 lines
18 KiB
PHP
431 lines
18 KiB
PHP
<?
|
|
|
|
/*
|
|
* 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.
|
|
*/
|
|
|
|
// This file was modified March of 2015 by Sebastian Ruan
|
|
// Receive all button was added
|
|
|
|
?>
|
|
<?
|
|
require ('../common.inc.php');
|
|
include '../config/signaturepage_or_permissionform.php';
|
|
require_once ('../user.inc.php');
|
|
user_auth_required('committee', 'admin');
|
|
require ('../register_participants.inc.php');
|
|
|
|
send_header("Input Received $plural_participationform",
|
|
array('Committee Main' => 'committee_main.php',
|
|
'Administration' => 'admin/index.php',
|
|
'Participant Registration' => 'admin/registration.php'));
|
|
echo '<br />';
|
|
|
|
$showformatbottom = true;
|
|
if (get_value_from_array($_POST, 'action') == 'received' && get_value_from_array($_POST, 'registration_number')) {
|
|
$q = $pdo->prepare("SELECT * FROM registrations WHERE num=? AND year=?");
|
|
$q->execute([$_POST['registration_number'],$config['FAIRYEAR']]);
|
|
if ($q->rowCount() == 1) {
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
$reg_id = $r->id;
|
|
$reg_num = $r->num;
|
|
$reg_status = $r->status;
|
|
|
|
if ($r->status == 'new') {
|
|
echo error(i18n('Invalid Registration Status (%1 is New). Cannot receive an empty form.', array($_POST['registration_number'])));
|
|
} else {
|
|
// make sure all of the statuses are correct
|
|
$statusstudent = studentStatus($reg_id);
|
|
$statusemergencycontact = emergencycontactStatus($reg_id);
|
|
$statusproject = projectStatus($reg_id);
|
|
if ($config['participant_mentor'] == 'yes')
|
|
$statusmentor = mentorStatus($reg_id);
|
|
else
|
|
$statusmentor = 'complete';
|
|
$statussafety = safetyStatus($reg_id);
|
|
$statusnamecheck = namecheckStatus($reg_id);
|
|
|
|
if (
|
|
$statusstudent == 'complete' &&
|
|
$statusemergencycontact == 'complete' &&
|
|
$statusproject == 'complete' &&
|
|
$statusmentor == 'complete' &&
|
|
$statussafety == 'complete' &&
|
|
$statusnamecheck == 'complete'
|
|
) {
|
|
$q = $pdo->prepare("SELECT projects.title,
|
|
projectcategories.category,
|
|
projectdivisions.division
|
|
FROM
|
|
projects,projectcategories,projectdivisions
|
|
WHERE
|
|
projects.registrations_id=?
|
|
AND
|
|
projects.projectcategories_id=projectcategories.id
|
|
AND
|
|
projects.projectdivisions_id=projectdivisions.id
|
|
AND
|
|
projectcategories.year=projects.year
|
|
AND
|
|
projectdivisions.year=projects.year
|
|
");
|
|
$q->execute([$reg_id]);
|
|
|
|
show_pdo_errors_if_any($pdo);
|
|
$projectinfo = $q->fetch(PDO::FETCH_OBJ);
|
|
echo '<table class="summarytable">';
|
|
echo '<tr><th colspan="2">' . i18n('Registration Summary for %1', array($reg_num)) . '</th></tr>';
|
|
switch ($reg_status) {
|
|
case 'paymentpending':
|
|
$status_text = 'Payment Pending';
|
|
break;
|
|
case 'complete':
|
|
$status_text = 'Complete';
|
|
break;
|
|
case 'open':
|
|
$status_text = 'Open';
|
|
break;
|
|
}
|
|
echo '<tr><td><b>' . i18n('Registration Status') . "</b></td><td>$status_text</td></tr>";
|
|
|
|
echo '<tr><td><b>' . i18n('Registration Number') . "</b></td><td>$reg_num</td></tr>";
|
|
echo '<tr><td><b>' . i18n('Project Title') . "</b></td><td>$projectinfo->title</td></tr>";
|
|
echo '<tr><td><b>' . i18n('Category / Division') . "</b></td><td>$projectinfo->category / $projectinfo->division</td></tr>";
|
|
|
|
$q = $pdo->prepare("SELECT students.firstname,
|
|
students.lastname,
|
|
schools.school
|
|
FROM
|
|
students,schools
|
|
WHERE
|
|
students.registrations_id=?
|
|
AND
|
|
students.schools_id=schools.id
|
|
");
|
|
$q->execute([$reg_id]);
|
|
|
|
$studnum = 1;
|
|
while ($studentinfo = $q->fetch(PDO::FETCH_OBJ)) {
|
|
echo '<tr><td><b>' . i18n('School %1', array($studnum)) . "</b></td><td>$studentinfo->school </td></tr>";
|
|
|
|
echo '<tr><td><b>' . i18n('Student %1', array($studnum)) . "</b></td><td>$studentinfo->firstname $studentinfo->lastname </td></tr>";
|
|
$studnum++;
|
|
}
|
|
|
|
list($regfee, $regfeedata) = computeRegistrationFee($reg_id);
|
|
echo '<tr><td><b>' . i18n('Registration Fee') . '</b></td><td>' . sprintf('$%.02f', $regfee) . '</td></tr>';
|
|
echo "</table>\n";
|
|
echo '<br />';
|
|
|
|
if ($r->status != 'complete') {
|
|
echo '<table style="margin-left: 30px;">';
|
|
echo '<tr><td colspan="3">';
|
|
echo i18n('Is this the correct form to register?');
|
|
echo '</td></tr>';
|
|
echo '<tr>';
|
|
echo '<td>';
|
|
|
|
echo '<form method="post" action="registration_receivedforms.php">';
|
|
echo "<input type=\"hidden\" name=\"registration_number\" value=\"$reg_num\" />";
|
|
echo '<input type="hidden" name="action" value="receivedno" />';
|
|
echo '<input type=submit value="' . i18n('No, this is the wrong form') . '" style="width: 400px; height: 40px; margin: 10px;"/>';
|
|
echo '</form>';
|
|
|
|
if ($config['regfee'] > 0) {
|
|
echo '<form method="post" action="registration_receivedforms.php">';
|
|
echo "<input type=\"hidden\" name=\"registration_number\" value=\"$reg_num\" />";
|
|
echo '<input type="hidden" name="action" value="receivedyes" />';
|
|
echo '<input type=submit value="' . i18n('Yes, right form with registration fee') . '" style="width: 400px; height: 40px; margin: 10px;"/>';
|
|
echo '</form>';
|
|
|
|
echo '<form method="post" action="registration_receivedforms.php">';
|
|
echo "<input type=\"hidden\" name=\"registration_number\" value=\"$reg_num\" />";
|
|
echo '<input type="hidden" name="action" value="receivedyesnocash" />';
|
|
echo '<input type=submit value="' . i18n('Yes, right form without registration fee') . '" style="width: 400px; height: 40px; margin: 10px;"/>';
|
|
echo '</form>';
|
|
} else {
|
|
echo '<form method="post" action="registration_receivedforms.php">';
|
|
echo "<input type=\"hidden\" name=\"registration_number\" value=\"$reg_num\" />";
|
|
echo '<input type="hidden" name="action" value="receivedyes" />';
|
|
echo '<input type=submit value="' . i18n('Yes, this is the right form') . '" style="width: 400px; height: 40px; margin: 10px;"/>';
|
|
echo '</form>';
|
|
}
|
|
echo '<br />';
|
|
|
|
echo "</td>\n";
|
|
echo '</tr>';
|
|
echo '</table>';
|
|
$showformatbottom = false;
|
|
} else {
|
|
echo i18n('This form has already been received. Registration is complete');
|
|
echo '<br />';
|
|
echo "<a href=\"registration_receivedforms.php?action=unregister®istration_number=$reg_num\">" . i18n('Click here to unregister this project') . '</a>';
|
|
echo '<br />';
|
|
echo '<hr />';
|
|
}
|
|
} else {
|
|
echo error(i18n('All registration sections are not complete. Cannot register incomplete form'));
|
|
}
|
|
}
|
|
} else {
|
|
echo error(i18n('Invalid Registration Number (%1)', array($_POST['registration_number'])));
|
|
}
|
|
} else if ((get_value_from_array($_POST, 'action') == 'receivedyes' || get_value_from_array($_POST, 'action') == 'receivedyesnocash') && get_value_from_array($_POST, 'registration_number')) {
|
|
$regnum = intval($_POST['registration_number']);
|
|
$checkNumQuery = $pdo->prepare("SELECT projectnumber
|
|
FROM projects, registrations
|
|
WHERE projects.registrations_id = registrations.id
|
|
AND num=?
|
|
AND registrations.year=?");
|
|
$checkNumQuery->execute([$regnum,$config['FAIRYEAR']]);
|
|
$checkNumResults = $checkNumQuery->fetch(PDO::FETCH_OBJ);
|
|
$projectnum = $checkNumResults->projectnumber;
|
|
|
|
$q = $pdo->prepare("SELECT id FROM registrations WHERE num=? AND year=?");
|
|
$q->execute([$regnum, $config['FAIRYEAR']]);
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
$reg_id = $r->id;
|
|
|
|
if ($projectnum == null) {
|
|
list($projectnumber, $ps, $pns, $pss) = generateProjectNumber($reg_id);
|
|
$stmt = $pdo->prepare("UPDATE projects SET projectnumber='$projectnumber',
|
|
projectsort='$ps',projectnumber_seq='$pns',projectsort_seq='$pss'
|
|
WHERE registrations_id='$reg_id' AND year=$config{['FAIRYEAR']}");
|
|
$stmt->execute();
|
|
echo happy(i18n('Assigned Project Number: %1', array($projectnumber)));
|
|
} else
|
|
$projectnumber = $projectnum;
|
|
|
|
// get all students with this registration number
|
|
$recipients = getEmailRecipientsForRegistration($reg_id);
|
|
|
|
if ($_POST['action'] == 'receivedyes') {
|
|
// actually set it to 'complete'
|
|
$stmt = $pdo->prepare("UPDATE registrations SET status='complete' WHERE num=? AND year=?");
|
|
$stmt->execute([$regnum,$config['FAIRYEAR']]);
|
|
foreach ($recipients AS $recip) {
|
|
$to = $recip['to'];
|
|
$subsub = array();
|
|
$subbod = array(
|
|
'TO' => $recip['to'],
|
|
'EMAIL' => $recip['email'],
|
|
'FIRSTNAME' => $recip['firstname'],
|
|
'LASTNAME' => $recip['lastname'],
|
|
'NAME' => $recip['firstname'] . ' ' . $recip['lastname'],
|
|
'REGNUM' => $regnum,
|
|
'PROJECTNUMBER' => $projectnumber,
|
|
);
|
|
email_send('register_participants_received', $to, $subsub, $subbod);
|
|
}
|
|
|
|
echo happy(i18n('Registration of form %1 successfully completed', array($regnum)));
|
|
} else if ($_POST['action'] == 'receivedyesnocash') {
|
|
// actually set it to 'paymentpending'
|
|
$stmt = $pdo->prepare("UPDATE registrations SET status='paymentpending' WHERE num=? AND year=?");
|
|
$stmt->execute([$regnum,$config['FAIRYEAR']]);
|
|
foreach ($recipients AS $recip) {
|
|
$to = $recip['to'];
|
|
$subsub = array();
|
|
$subbod = array(
|
|
'TO' => $recip['to'],
|
|
'EMAIL' => $recip['email'],
|
|
'FIRSTNAME' => $recip['firstname'],
|
|
'LASTNAME' => $recip['lastname'],
|
|
'NAME' => $recip['firstname'] . ' ' . $recip['lastname'],
|
|
'REGNUM' => $regnum,
|
|
'PROJECTNUMBER' => $projectnumber,
|
|
);
|
|
|
|
email_send('register_participants_paymentpending', $to, $subsub, $subbod);
|
|
}
|
|
echo happy(i18n('Registration of form %1 marked as payment pending', array($regnum)));
|
|
}
|
|
} else if (get_value_from_array($_POST, 'action') == 'receivedno' && get_value_from_array($_POST, 'registration_number')) {
|
|
echo notice(i18n('Registration of form %1 cancelled', array($_POST['registration_number'])));
|
|
} else if (get_value_from_array($_GET, 'action') == 'unregister' && get_value_from_array($_GET, 'registration_number')) {
|
|
$reg_num = intval(trim($_GET['registration_number']));
|
|
$q = $pdo->prepare("SELECT registrations.id AS reg_id, projects.id AS proj_id FROM projects,registrations WHERE projects.registrations_id=registrations.id AND registrations.year=? AND registrations.num=?");
|
|
$q->execute([$config['FAIRYEAR'],$reg_num]);
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
$stmt = $pdo->prepare("UPDATE projects SET projectnumber=null, projectsort=null, projectnumber_seq=0, projectsort_seq=0 WHERE id=? AND year=?");
|
|
$stmt->execute([$r->proj_id,$config['FAIRYEAR']]);
|
|
$stmt = $pdo->prepare("UPDATE registrations SET status='open' WHERE id=? AND year=?");
|
|
$stmt->execute([$r->reg_id,$config['FAIRYEAR']]);
|
|
echo happy(i18n('Successfully unregistered project'));
|
|
}
|
|
|
|
if ($showformatbottom) {
|
|
echo '<table>';
|
|
echo '<tr><td>';
|
|
echo '<form id="inputform" method="post" action="registration_receivedforms.php">';
|
|
echo '<input type="hidden" name="action" value="received" />';
|
|
echo i18n("Enter the registration number from the $signatureformpermissionform : ") . '<br />';
|
|
echo '<input id="registration_number" type="text" size="15" name="registration_number" />';
|
|
echo '<input type="submit" value="' . i18n('Lookup Registration Number') . '" />';
|
|
echo '</form>';
|
|
?>
|
|
<script type="text/javascript">
|
|
document.forms.inputform.registration_number.focus();
|
|
</script>
|
|
<?
|
|
|
|
echo '<br/><br/>';
|
|
echo '</td></tr><tr><td>';
|
|
echo '<font size="2" color="red">This button does not keep track of payments</font>';
|
|
echo '</td></tr><tr><td>';
|
|
echo '<form method="post" action="registration_receivedforms.php">';
|
|
echo '<input type="hidden" name="action" value="receive_all" />';
|
|
echo '<input type="submit" value="' . i18n('Receive All') . "\" onclick=\"return confirmClick('Are you sure you wish to mark all students as has having their $signatureformpermissionform received?')\" />";
|
|
echo '</form>';
|
|
echo '</tr></td>';
|
|
echo '</table>';
|
|
echo '<br>';
|
|
echo i18n(" <lh>'Receive All' notes:</lh> <ul><li>The button will mark all open-status students that have completed registration as having their $signatureformpermissionform received.
|
|
<li> Students with above status will be emailed a \"$signatureformpermissionform received\" confirmation.
|
|
<li> Project numbers will be assigned to these students' projects.
|
|
</ul>");
|
|
}
|
|
|
|
if (get_value_from_array($_POST, 'action') == 'receive_all') {
|
|
// Grab all projects that don't have project numbers. Status should therefor be open or new but not complete
|
|
$query_noprojectnumber = $pdo->prepare('SELECT * FROM projects WHERE projectnumber IS NULL AND year =?');
|
|
// Define arrays to append to later
|
|
$query_noprojectnumber->execute([$config['FAIRYEAR']]);
|
|
$completed_students = array();
|
|
$incomplete_students = array();
|
|
$newstatus_students = array();
|
|
|
|
// loop through each project that doesn't have a project number
|
|
while ($studentproject = $query_noprojectnumber->fetch(PDO::FETCH_ASSOC)) {
|
|
// Grab registration information about the current project
|
|
$q = $pdo->prepare("SELECT * FROM registrations WHERE id=? AND year=?");
|
|
$q->execute([$studentproject['registrations_id'],$config['FAIRYEAR']]);
|
|
$r = $q->fetch(PDO::FETCH_OBJ);
|
|
$reg_id = $r->id;
|
|
$reg_num = $r->num;
|
|
$reg_status = $r->status;
|
|
|
|
// student has completed some or all of the registration process for their project. Let's find out which one is true
|
|
if ($r->status != 'new') {
|
|
// make sure all of the statuses are correct
|
|
$statusstudent = studentStatus($reg_id);
|
|
$statusemergencycontact = emergencycontactStatus($reg_id);
|
|
$statusproject = projectStatus($reg_id);
|
|
if ($config['participant_mentor'] == 'yes')
|
|
$statusmentor = mentorStatus($reg_id);
|
|
else
|
|
$statusmentor = 'complete';
|
|
$statussafety = safetyStatus($reg_id);
|
|
$statusnamecheck = namecheckStatus($reg_id);
|
|
|
|
if (
|
|
$statusstudent == 'complete' &&
|
|
$statusemergencycontact == 'complete' &&
|
|
// S$statusproject == "complete" &&
|
|
$statusmentor == 'complete' &&
|
|
$statussafety == 'complete' &&
|
|
$statusnamecheck == 'complete' &&
|
|
$r->status != 'complete'
|
|
// above: project status must not be complete. If it is complete signature page/permission form has already been received.
|
|
) {
|
|
// Generate project number and update it in data base
|
|
list($projectnumber, $ps, $pns, $pss) = generateProjectNumber($reg_id);
|
|
$stmt = $pdo->prepare("UPDATE projects SET projectnumber=?,
|
|
projectsort=?,projectnumber_seq=?,projectsort_seq=?
|
|
WHERE registrations_id=? AND year=?");
|
|
$stmt->execute([$projectnumber,$ps,$pns,$pss,$reg_id,$config['FAIRYEAR']]);
|
|
|
|
// email stuff
|
|
// get all students with this registration number
|
|
// $recipients=getEmailRecipientsForRegistration($reg_id);
|
|
|
|
// Set status to 'complete'
|
|
$stmt = $pdo->prepare("UPDATE registrations SET status='complete' WHERE num=? AND year=?");
|
|
$stmt->execute([$reg_num,$config['FAIRYEAR']]);
|
|
/*foreach($recipients AS $recip) {
|
|
$to=$recip['to'];
|
|
$subsub=array();
|
|
$subbod=array(
|
|
"TO"=>$recip['to'],
|
|
"EMAIL"=>$recip['email'],
|
|
"FIRSTNAME"=>$recip['firstname'],
|
|
"LASTNAME"=>$recip['lastname'],
|
|
"NAME"=>$recip['firstname']." ".$recip['lastname'],
|
|
"REGNUM"=>$regnum,
|
|
"PROJECTNUMBER"=>$projectnumber,
|
|
);
|
|
email_send("register_participants_received",$to,$subsub,$subbod);
|
|
}*/
|
|
|
|
// End email stuff
|
|
// add cuurent registration number to completed_students array
|
|
$completed_students[] = $reg_num;
|
|
} else {
|
|
// or add current registration number to incomplete_student array
|
|
$incomplete_students[] = $reg_num;
|
|
}
|
|
}
|
|
// New status automatically means student has not completed the registration process for their project. So execute below:
|
|
else {
|
|
// or add current registration number to newstatus_students array
|
|
$newstatus_students[] = $reg_num;
|
|
}
|
|
}
|
|
// Find how many project numbers were assigned/how many projects have complete status (ie signature page/permission form is considered received)
|
|
$total_completed = count($completed_students);
|
|
|
|
// since incomplete_students and newstatus_students both did not get project numbers and are not considered as having signature page/permission form received
|
|
// combine them
|
|
$total_incomplete = array_merge($incomplete_students, $newstatus_students);
|
|
|
|
echo '<br><br>';
|
|
echo '<table>';
|
|
echo '<tr><td>' . i18n("$total_completed student(s) registered as $non_capital_participationform received.") . '</td></tr>';
|
|
|
|
// display below only if there are registration numbers that don't have project numbers and the students have not completed the registration process
|
|
if (count($total_incomplete) > 0) {
|
|
echo '<tr><td>' . i18n("Registration numbers which are NOT marked as having their $non_capital_participationform received are shown below:") . '</td></tr>';
|
|
echo '<tr><td> </td></tr>';
|
|
$string = '';
|
|
echo '<tr><td>';
|
|
|
|
// create a string that contains all incomplete registration numbers
|
|
foreach ($total_incomplete as $regnum) {
|
|
$string = $string . i18n($regnum);
|
|
$string = $string . ', ';
|
|
}
|
|
|
|
// delete the comma at the end of the string
|
|
$string = substr($string, 0, strlen($string) - 2);
|
|
echo $string;
|
|
echo '</td></tr>';
|
|
echo '<tr><td> </td></tr>';
|
|
echo '<tr><td>';
|
|
echo i18n('The above registration numbers correspond to projects in which the registration process has not been completed by the student.');
|
|
echo '</td></tr>';
|
|
}
|
|
echo '</table>';
|
|
echo happy_(i18n('Received all permision forms for complete students'));
|
|
}
|
|
|
|
send_footer();
|
|
|
|
?>
|