forked from science-ation/science-ation
28070d19cc
Ethics questions can now be asked as a required field for each project. To activate this feature navigate to Configuration >> Configuration Variables >> Participant Registration and change “Ask if the project requires human and/or animal participants” to “Yes”. All projects with human and/or animal participants can be selected using the Report Editor. Under “Input Received Signature Forms” a button called “Receive All” was created. Clicking this button will cause the program to assign project numbers and mark the signature page as received for all students who have completed the registration process. Confirmation emails are sent to each student that had their signature page marked as received. "Remove Old Judge Data" and "Remove Old Emergency Contact/Parent Data" was added to "Database Backup/Restore". These permanently remove all information from the database about these two respective groups. This means that all historical data will be lost but the most recent information about judges and emergency contacts remains. Cleaning the database this way dramatically improves the speed of the user editor. Make sure the database has been backed up before trying these. The judge's name now appears on the cancellation popup window when deleting an individual judge.
462 lines
17 KiB
PHP
462 lines
17 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($_POST['action']=="received" && $_POST['registration_number'])
|
|
{
|
|
$q=mysql_query("SELECT * FROM registrations WHERE num='".$_POST['registration_number']."' AND year='".$config['FAIRYEAR']."'");
|
|
if(mysql_num_rows($q)==1)
|
|
{
|
|
$r=mysql_fetch_object($q);
|
|
$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=mysql_query("SELECT projects.title,
|
|
projectcategories.category,
|
|
projectdivisions.division
|
|
FROM
|
|
projects,projectcategories,projectdivisions
|
|
WHERE
|
|
projects.registrations_id='$reg_id'
|
|
AND
|
|
projects.projectcategories_id=projectcategories.id
|
|
AND
|
|
projects.projectdivisions_id=projectdivisions.id
|
|
AND
|
|
projectcategories.year=projects.year
|
|
AND
|
|
projectdivisions.year=projects.year
|
|
");
|
|
|
|
echo mysql_Error();
|
|
$projectinfo=mysql_fetch_object($q);
|
|
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=mysql_query("SELECT students.firstname,
|
|
students.lastname,
|
|
schools.school
|
|
FROM
|
|
students,schools
|
|
WHERE
|
|
students.registrations_id='$reg_id'
|
|
AND
|
|
students.schools_id=schools.id
|
|
");
|
|
|
|
$studnum=1;
|
|
while($studentinfo=mysql_fetch_object($q))
|
|
{
|
|
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(($_POST['action']=="receivedyes" || $_POST['action']=="receivedyesnocash") && $_POST['registration_number']) {
|
|
|
|
$regnum = intval($_POST['registration_number']);
|
|
$checkNumQuery=mysql_query("SELECT projectnumber
|
|
FROM projects, registrations
|
|
WHERE projects.registrations_id = registrations.id
|
|
AND num='$regnum'
|
|
AND registrations.year='{$config['FAIRYEAR']}'");
|
|
$checkNumResults=mysql_fetch_object($checkNumQuery);
|
|
$projectnum=$checkNumResults->projectnumber;
|
|
|
|
$q=mysql_query("SELECT id FROM registrations WHERE num='$regnum' AND year='{$config['FAIRYEAR']}'");
|
|
$r=mysql_fetch_object($q);
|
|
$reg_id = $r->id;
|
|
|
|
if($projectnum == null)
|
|
{
|
|
list($projectnumber,$ps,$pns,$pss) = generateProjectNumber($reg_id);
|
|
mysql_query("UPDATE projects SET projectnumber='$projectnumber',
|
|
projectsort='$ps',projectnumber_seq='$pns',projectsort_seq='$pss'
|
|
WHERE registrations_id='$reg_id' AND year='{$config['FAIRYEAR']}'");
|
|
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'
|
|
mysql_query("UPDATE registrations SET status='complete' WHERE num='$regnum' AND year='{$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'
|
|
mysql_query("UPDATE registrations SET status='paymentpending' WHERE num='$regnum' AND year='{$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($_POST['action']=="receivedno" && $_POST['registration_number'])
|
|
{
|
|
echo notice(i18n("Registration of form %1 cancelled",array($_POST['registration_number'])));
|
|
|
|
}
|
|
else if($_GET['action']=="unregister" && $_GET['registration_number']) {
|
|
$reg_num=intval(trim($_GET['registration_number']));
|
|
$q=mysql_query("SELECT registrations.id AS reg_id, projects.id AS proj_id FROM projects,registrations WHERE projects.registrations_id=registrations.id AND registrations.year='{$config['FAIRYEAR']}' AND registrations.num='$reg_num'");
|
|
$r=mysql_fetch_object($q);
|
|
mysql_query("UPDATE projects SET projectnumber=null, projectsort=null, projectnumber_seq=0, projectsort_seq=0 WHERE id='$r->proj_id' AND year='{$config['FAIRYEAR']}'");
|
|
mysql_query("UPDATE registrations SET status='open' WHERE id='$r->reg_id' AND year='{$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=\"recieve_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 ($_POST['action'] == 'recieve_all')
|
|
{
|
|
// Grab all projects that don't have project numbers. Status should therefor be open or new but not complete
|
|
$query_noprojectnumber = mysql_query("SELECT * FROM projects WHERE projectnumber IS NULL AND year =".$config['FAIRYEAR']."");
|
|
// Define arrays to append to later
|
|
$completed_students = array();
|
|
$incomplete_students = array();
|
|
$newstatus_students = array();
|
|
|
|
// loop through each project that doesn't have a project number
|
|
while($studentproject=mysql_fetch_assoc($query_noprojectnumber))
|
|
{
|
|
// Grab registration information about the current project
|
|
$q=mysql_query("SELECT * FROM registrations WHERE id='".$studentproject['registrations_id']."' AND year='".$config['FAIRYEAR']."'");
|
|
|
|
$r=mysql_fetch_object($q);
|
|
$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);
|
|
mysql_query("UPDATE projects SET projectnumber='$projectnumber',
|
|
projectsort='$ps',projectnumber_seq='$pns',projectsort_seq='$pss'
|
|
WHERE registrations_id='$reg_id' AND year='{$config['FAIRYEAR']}'");
|
|
|
|
//email stuff
|
|
//get all students with this registration number
|
|
//$recipients=getEmailRecipientsForRegistration($reg_id);
|
|
|
|
//Set status to 'complete'
|
|
mysql_query("UPDATE registrations SET status='complete' WHERE num='$reg_num' AND year='{$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();
|
|
|
|
?>
|