forked from science-ation/science-ation
472 lines
18 KiB
PHP
472 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='".$_POST['registration_number']."' AND year='".$config['FAIRYEAR']."'");
|
|
$q->execute();
|
|
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='$reg_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();
|
|
|
|
echo $pdo->errorInfo();
|
|
$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='$reg_id'
|
|
AND
|
|
students.schools_id=schools.id
|
|
");
|
|
$q->execute();
|
|
|
|
$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='$regnum'
|
|
AND registrations.year='{$config['FAIRYEAR']}'");
|
|
$checkNumQuery->execute();
|
|
$checkNumResults=$checkNumQuery->fetch(PDO::FETCH_OBJ);
|
|
$projectnum=$checkNumResults->projectnumber;
|
|
|
|
$q=$pdo->prepare("SELECT id FROM registrations WHERE num='$regnum' AND year='{$config['FAIRYEAR']}'");
|
|
$q->execute();
|
|
$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']}'");
|
|
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='$regnum' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
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='$regnum' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
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='{$config['FAIRYEAR']}' AND registrations.num='$reg_num'");
|
|
$q->execute();
|
|
$r=$q->fetch(PDO::FETCH_OBJ);
|
|
$stmt=$pdo->prepare("UPDATE projects SET projectnumber=null, projectsort=null, projectnumber_seq=0, projectsort_seq=0 WHERE id='$r->proj_id' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
$stmt=$pdo->prepare("UPDATE registrations SET status='open' WHERE id='$r->reg_id' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
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 = $pdo->prepare("SELECT * FROM projects WHERE projectnumber IS NULL AND year =".$config['FAIRYEAR']."");
|
|
// Define arrays to append to later
|
|
$query_noprojectnumber->execute();
|
|
$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='".$studentproject['registrations_id']."' AND year='".$config['FAIRYEAR']."'");
|
|
$q->execute();
|
|
$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='$projectnumber',
|
|
projectsort='$ps',projectnumber_seq='$pns',projectsort_seq='$pss'
|
|
WHERE registrations_id='$reg_id' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
|
|
//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='$reg_num' AND year='{$config['FAIRYEAR']}'");
|
|
$stmt->execute();
|
|
/*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();
|
|
|
|
?>
|