Add membership expiration dates and payment status
This commit is contained in:
parent
5bab3580bf
commit
270ece840d
BIN
database.mwb
BIN
database.mwb
Binary file not shown.
@ -34,5 +34,14 @@
|
||||
"DOCX": "DOCX",
|
||||
"Amount": "Amount",
|
||||
"Date": "Date",
|
||||
"Paid": "Paid"
|
||||
"Status": "Status",
|
||||
"Paid": "Paid",
|
||||
"Unpaid": "Unpaid",
|
||||
"Type": "Type",
|
||||
"Online": "Online",
|
||||
"Cash": "Cash",
|
||||
"Check": "Check",
|
||||
"Other": "Other",
|
||||
"Free": "Free",
|
||||
"Expires": "Expires"
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ class Family {
|
||||
private $photo = false;
|
||||
private $newsletter = 1;
|
||||
private $children = [];
|
||||
private $expires = 0;
|
||||
|
||||
public function __construct() {
|
||||
|
||||
@ -53,7 +54,8 @@ class Family {
|
||||
'zip',
|
||||
'father_name (father)',
|
||||
'mother_name (mother)',
|
||||
'photo_permission (photo)'
|
||||
'photo_permission (photo)',
|
||||
'expires'
|
||||
], [
|
||||
"familyid" => $this->id
|
||||
]);
|
||||
@ -71,6 +73,7 @@ class Family {
|
||||
$this->zip = $f['zip'];
|
||||
$this->photo = $f['photo'] == 1;
|
||||
$this->newsletter = $f['newsletter'];
|
||||
$this->expires = $f['expires'];
|
||||
|
||||
foreach ($children as $c) {
|
||||
$this->children[] = (new Child())->load($c);
|
||||
@ -93,7 +96,8 @@ class Family {
|
||||
"state" => $this->getState(),
|
||||
"zip" => $this->getZip(),
|
||||
"photo_permission" => $this->getPhotoPermission(),
|
||||
"newsletter_method" => $this->getNewsletter()
|
||||
"newsletter_method" => $this->getNewsletter(),
|
||||
"expires" => date("Y-m-d", $this->getExpires())
|
||||
], [
|
||||
"familyid" => $this->id
|
||||
]);
|
||||
@ -109,7 +113,8 @@ class Family {
|
||||
"state" => $this->getState(),
|
||||
"zip" => $this->getZip(),
|
||||
"photo_permission" => $this->getPhotoPermission(),
|
||||
"newsletter_method" => $this->getNewsletter()
|
||||
"newsletter_method" => $this->getNewsletter(),
|
||||
"expires" => date("Y-m-d", $this->getExpires())
|
||||
]);
|
||||
$this->id = $database->id();
|
||||
}
|
||||
@ -172,6 +177,10 @@ class Family {
|
||||
return $this->children;
|
||||
}
|
||||
|
||||
public function getExpires(): int {
|
||||
return $this->expires;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function setName(string $name) {
|
||||
@ -252,4 +261,18 @@ class Family {
|
||||
$this->children[] = $child;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the membership expiration date to either a UNIX timestamp or a date
|
||||
* string.
|
||||
* @param int $timestamp
|
||||
* @param string $date A string parseable by strtotime().
|
||||
*/
|
||||
public function setExpires(int $timestamp = null, string $date = null) {
|
||||
if (is_null($timestamp) && !is_null($date)) {
|
||||
$this->expires = strtotime($date);
|
||||
} else if (!is_null($timestamp) && is_null($date)) {
|
||||
$this->expires = $timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ if (!$user->hasPermission("HACHEPORTAL_VIEW")) {
|
||||
|
||||
$writeaccess = $user->hasPermission("HACHEPORTAL_EDIT");
|
||||
|
||||
$families = $database->select("families", ['familyid (id)', 'familyname', 'phone', 'email', 'father_name (father)', 'mother_name (mother)']);
|
||||
$families = $database->select("families", ['familyid (id)', 'familyname', 'phone', 'email', 'father_name (father)', 'mother_name (mother)', 'expires']);
|
||||
?>
|
||||
|
||||
<div class="btn-group">
|
||||
@ -32,6 +32,7 @@ $families = $database->select("families", ['familyid (id)', 'familyname', 'phone
|
||||
<th data-priority="3"><i class="fas fa-female hidden-sm"></i> <?php $Strings->get('Mother'); ?></th>
|
||||
<th data-priority="2"><i class="fas fa-phone hidden-sm"></i> <?php $Strings->get('Phone'); ?></th>
|
||||
<th data-priority="4"><i class="fas fa-at hidden-sm"></i> <?php $Strings->get('Email'); ?></th>
|
||||
<th data-priority="5"><i class="fas fa-calendar hidden-sm"></i> <?php $Strings->get('Expires'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -55,6 +56,7 @@ $families = $database->select("families", ['familyid (id)', 'familyname', 'phone
|
||||
<td><?php echo $f['mother']; ?></td>
|
||||
<td><?php echo $f['phone']; ?></td>
|
||||
<td><?php echo $f['email']; ?></td>
|
||||
<td class="<?php echo strtotime($f['expires']) < time() ? "text-red" : ""; ?>"><?php echo $f['expires']; ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
@ -69,6 +71,7 @@ $families = $database->select("families", ['familyid (id)', 'familyname', 'phone
|
||||
<th data-priority="3"><i class="fas fa-female hidden-sm"></i> <?php $Strings->get('Mother'); ?></th>
|
||||
<th data-priority="2"><i class="fas fa-phone hidden-sm"></i> <?php $Strings->get('Phone'); ?></th>
|
||||
<th data-priority="4"><i class="fas fa-at hidden-sm"></i> <?php $Strings->get('Email'); ?></th>
|
||||
<th data-priority="5"><i class="fas fa-calendar hidden-sm"></i> <?php $Strings->get('Expires'); ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
@ -14,7 +14,7 @@ if (!$user->hasPermission("HACHEPORTAL_VIEW")) {
|
||||
|
||||
$writeaccess = $user->hasPermission("HACHEPORTAL_EDIT");
|
||||
|
||||
$payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount', 'paid', 'date']);
|
||||
$payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount', 'paid', 'date', 'type']);
|
||||
?>
|
||||
|
||||
<div class="btn-group">
|
||||
@ -26,11 +26,12 @@ $payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-priority="0"></th>
|
||||
<th data-priority="1"><?php $Strings->get('Actions'); ?></th>
|
||||
<!--<th data-priority="1"><?php $Strings->get('Actions'); ?></th>-->
|
||||
<th data-priority="1"><i class="fas fa-users hidden-sm"></i> <?php $Strings->get('Family'); ?></th>
|
||||
<th data-priority="1"><i class="fas fa-dollar-sign hidden-sm"></i> <?php $Strings->get('Amount'); ?></th>
|
||||
<th data-priority="2"><i class="fas fa-calendar hidden-sm"></i> <?php $Strings->get('Date'); ?></th>
|
||||
<th data-priority="2"><i class="far fa-check-square hidden-sm"></i> <?php $Strings->get('Paid'); ?></th>
|
||||
<th data-priority="2"><i class="far fa-check-square hidden-sm"></i> <?php $Strings->get('Status'); ?></th>
|
||||
<th data-priority="3"><i class="fas fa-bars hidden-sm"></i> <?php $Strings->get('Type'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -39,7 +40,7 @@ $payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount
|
||||
?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<!-- <td>
|
||||
<?php
|
||||
if ($writeaccess) {
|
||||
?>
|
||||
@ -47,11 +48,12 @@ $payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</td>-->
|
||||
<td><a href="./app.php?page=viewfamily&id=<?php echo $p['familyid']; ?>"><?php echo (new Family())->load($p['familyid'])->getName(); ?></a></td>
|
||||
<td>$<?php echo number_format($p['amount'], 2); ?></td>
|
||||
<td><?php echo date("Y-m-d H:i:s", strtotime($p['date'])); ?></td>
|
||||
<td><?php $p['paid'] ? $Strings->get("Yes") : $Strings->get("No"); ?></td>
|
||||
<td><?php $p['paid'] ? $Strings->get("Paid") : $Strings->get("Unpaid"); ?></td>
|
||||
<td><?php $Strings->get($p["type"]); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
@ -60,11 +62,12 @@ $payments = $database->select("payments", ['paymentid (id)', 'familyid', 'amount
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th data-priority="0"></th>
|
||||
<th data-priority="1"><?php $Strings->get('Actions'); ?></th>
|
||||
<!--<th data-priority="1"><?php $Strings->get('Actions'); ?></th>-->
|
||||
<th data-priority="1"><i class="fas fa-users hidden-sm"></i> <?php $Strings->get('Family'); ?></th>
|
||||
<th data-priority="1"><i class="fas fa-dollar-sign hidden-sm"></i> <?php $Strings->get('Amount'); ?></th>
|
||||
<th data-priority="2"><i class="fas fa-calendar hidden-sm"></i> <?php $Strings->get('Date'); ?></th>
|
||||
<th data-priority="2"><i class="far fa-check-square hidden-sm"></i> <?php $Strings->get('Paid'); ?></th>
|
||||
<th data-priority="2"><i class="far fa-check-square hidden-sm"></i> <?php $Strings->get('Status'); ?></th>
|
||||
<th data-priority="3"><i class="fas fa-bars hidden-sm"></i> <?php $Strings->get('Type'); ?></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
@ -112,6 +112,12 @@ $database->action(function($database) {
|
||||
}
|
||||
$family->setPhotoPermission($photopermission);
|
||||
|
||||
if ($renewal) {
|
||||
$family->setExpires(strtotime("+1 year", $family->getExpires()));
|
||||
} else {
|
||||
$family->setExpires(strtotime("+1 year"));
|
||||
}
|
||||
|
||||
$family->save();
|
||||
|
||||
//
|
||||
@ -215,7 +221,8 @@ $database->action(function($database) {
|
||||
"familyid" => $family->getID(),
|
||||
"amount" => ($membership_cost / 100.0),
|
||||
"paid" => 1,
|
||||
"date" => date("Y-m-d H:i:s")
|
||||
"date" => date("Y-m-d H:i:s"),
|
||||
"type" => "Online"
|
||||
]);
|
||||
|
||||
try {
|
||||
|
@ -5,6 +5,8 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
require_once __DIR__ . "/../../lib/Email.lib.php";
|
||||
|
||||
$badcode = false;
|
||||
if (!empty($_POST['email'])) {
|
||||
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user