Skip to content
Snippets Groups Projects
Commit c155bca3 authored by Tim Clark's avatar Tim Clark
Browse files

Added membership renew component

parent b9ba29f2
No related branches found
No related tags found
No related merge requests found
<?php
include_once("../lib/date.php");
// Config options
$inform="treasurer@sucs.org";
$permission="staff";
// Enable and disable database updating
$enable=TRUE;
// Set next payment date
$nextyear = academicYear(time())+1;
$paydate="Sept. ".$nextyear;
// Only staff can use this page
if (isset($session->groups[$permission])) {
$smarty->assign("staff", TRUE);
// connect to sucs database
$sucsDB = NewADOConnection('postgres8');
$sucsDB->Connect('dbname=sucs');
$sucsDB->SetFetchMode(ADODB_FETCH_ASSOC);
// $sucsDB->debug = true;
// handle updates
if(isset($_POST['uid']) && isset($_POST['lastupdate'])){
// Check data hasn't changed and that nothing is broked
$query = "SELECT * FROM members WHERE uid=? AND lastupdate=?";
$array = array($_POST['uid'], $_POST['lastupdate']);
$data = $sucsDB->GetAll($query,$array);
// If there is only one record then everything is fine
if(sizeof($data)==1){
// get info on currently logged in user
$user = posix_getpwnam($session->username);
// Update record
$record = $data[0];
$query = "UPDATE members";
$query .= " SET paid = ?, lastupdate = DEFAULT, lastedit = ?";
$query .= " WHERE uid = ?";
$array = array($paydate,$user['uid'],$_POST['uid']);
if($enable){
$sucsDB->query($query,$array);
}
// emailing contact (tresurer)
$message = "Account renewal notification\n\n";
$message .= "Account : ".$record['username']."\n";
$message .= "Renewed by: ".$user[name]."\n\n";
$message .= "Regards\n eclipse's script";
mail($inform,"Account Renewal",$message);
// emailing user
$message = "Your Swansea University Computer Society (SUCS) membership has been renewed\n\n";
$message .= "Username: ".$record['username']."\n";
$message .= "If you do not know or have forgotten your password, please email admin@sucs.org to arrange for it to be changed.\n\n";
$message .= "Regards\n The SUCS admin";
$header = "From: admin@sucs.org\r\n";
$header .= "Reply-To: admin@sucs.org";
// Personal account
mail($record['email'],"SUCS account renewal",$message,$header);
// sucs account
mail($record['username']."@sucs.org","SUCS account renewal",$message,$header);
message_flash("Renewed account for: ".htmlentities($record['username']));
}
else{
trigger_error("Number of recored returned: ".sizeof($data).". Expected: 1.", E_USER_ERROR);
}
}
// if sort is specified in GET
if(isset($_GET["sort"])){
$sortoptions = array("usename","sid","realname");
// and is a valid option
if(in_array($_GET["sort"],$sortoptions,TRUE)){
// use it
$sort=$_GET["sort"];
}
// else use username
else{
$sort='username';
}
$getsort=$sort;
}
//else use username
else{
$sort='username';
}
//Get members details
$query = "SELECT * FROM members, member_type";
$query .= " WHERE paid != ?";
$query .= " AND (type = 1 OR type = 2 OR type = 5)";
$query .= " AND type=member_type.id";
$query .= " ORDER BY type,".$sort;
$array = array($paydate);
$data = $sucsDB->GetAll($query, $array);
$smarty->assign("members", $data);
// set refresh rate
$autorefresh=$_GET["autorefresh"];
// if autorefresh is not 'n'
if($autorefresh!="n"){
// and is a decimal value
if(ctype_digit($autorefresh)){
// use it
$refreshval=$autorefresh;
// set passthrough
$getrefresh=$refreshval;
}
else{
// otherwise use 5
$refreshval="10";
}
$optrefresh=$refreshval;
$smarty->assign("refresh", $refreshval);
}
else{
// set passthrough
$getrefresh='n';
$optrefresh='n';
}
// compile passthrough url
// sort
if(isset($getsort)){
$getout="?sort=".$getsort;
}
// autorefresh
if(isset($getrefresh)){
if(isset($getout)){
$getout .= "&amp;autorefresh=".$getrefresh;
}
else{
$getout = "?autorefresh=".$getrefresh;
}
}
// set smarty variables
$smarty->assign("self",$baseurl.$path.$getout);
$smarty->assign("optionrefresh",$optrefresh);
$smarty->assign("optionsort",$sort);
$smarty->assign("paydate",$paydate);
}
$side = $smarty->fetch('membershiprenew-options.tpl');
$body = $smarty->fetch('membershiprenew.tpl');
$smarty->assign('secondary',$side);
$smarty->assign('title', "Renew Memberhip");
$smarty->assign('body', $body);
?>
{if $staff == TRUE}
<div class="cbb">
<h3>Settings</h3>
<form method="get" action="{$baseurl}{$path}">
<h4>Sort</h4>
<p>Select a sort column from the list:</p>
<select name="sort">
<option value="username"{if $optionsort == "username"} selected="selected"{/if}>Username</option>
<option value="sid"{if $optionsort == "sid"} selected="selected"{/if}>Student Number</option>
<option value="realname"{if $optionsort == "realname"} selected="selected"{/if}>Real Name</option>
</select>
<h4>Auto Refresh</h4>
<p>Enter a value in seconds or n to disable:</p>
<input class="text" type="text" name="autorefresh" value="{$optionrefresh}" size="5" /><br />
<input class="submit" type="submit" value="Update" />
</form>
</div>
{/if}
{if $staff == TRUE}
<h2>DO NOT RENEW MEMBERSHIP UNLESS THE MONEY IS ACTUALLY IN THE POT!</h2>
<p>Pay until: {$paydate}</p>
<table border='1'>
<tr><th>Type</th><th>Username</th><th>Student Number</th><th>Real Name</th><th>Paid</th><th>Renew</th></tr>
{foreach name=members from=$members item=member}
<tr>
<td>{$member.typename|escape}</td>
<td>{$member.username|escape}</td>
<td>{$member.sid|escape}</td>
<td>{$member.realname|escape}</td>
<td>{$member.paid|escape}</td>
<td>
<form action='{$self}' method='POST' style="margin-bottom: 0px;">
<input type='hidden' name='uid' value='{$member.uid|escape}' />
<input type='hidden' name='lastupdate' value='{$member.lastupdate|escape}' />
<input type='submit' value='Renew'/>
</form>
</td>
</tr>
{/foreach}
</table>
{else}
<div class="errorbar">
<div><div><div>
You must be logged in and be a staff member to renew memberships.
</div></div></div>
</div>
{/if}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment