Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
namespace QUI\Memberships;
use QUI;
use QUI\Memberships\Users\Handler as MembershipUsersHandler;
use QUI\Memberships\Users\MembershipUser;
/**
* Class Cron
*
* Automatically checks memberships and cancels or extends them
*/
class Cron
{
public static function checkMembershipUsers()
{
$MembershipUsers = MembershipUsersHandler::getInstance();
$result = QUI::getDataBase()->fetch(array(
'select' => array(
'id'
),
'from' => $MembershipUsers->getDataBaseTableName(),
'where' => array(
'archived' => 0
)
));
$now = time();
foreach ($result as $row) {
/** @var MembershipUser $MembershipUser */
$MembershipUser = $MembershipUsers->getChild($row['id']);
$Membership = $MembershipUser->getMembership();
// @todo prüfen, ob benutzer existiert und ggf. löschen
// check if membership has expired
$endTimestamp = strtotime($Membership->getAttribute('endDate'));
if ($now < $endTimestamp) {
continue;
}
// if membership has been cancelled -> archive it immediately
if ($MembershipUser->isCancelled()) {
$MembershipUser->cancel();
continue;
}
// extend if membership is extended automatically
if ($Membership->isAutoExtend()) {
$MembershipUser->extend();
continue;
}
// expire membership
$MembershipUser->expire();
}
}
}