Standarized how expiry and stamp periods are used

This commit is contained in:
Øyvind Bakkeli committed 2011-09-14 15:34:33 +02:00
1 parent d105c55469
commit 37eab1fba0
4 files changed
+72 -44

No files matched your search

+4 -4
View File
@@ -3465,12 +3465,12 @@ Om dere lager en facebook side til arrangementet, ikke glem å putte inn le
print "produser kort";
} elseif (!$user->getCardDelivered()) {
print "<input type=\"hidden\" name=\"subaction\" value=\"give-card\" />";
print "<input type=\"hidden\" name=\"new-sticker-date\" value=\"" . $user->getNewStickerDate() . "\" />";
print "<input type=\"submit\" name=\"give-card\" value=\"Lever ut kort (" . $user->getNewStickerDate() . ")\" />";
print "<input type=\"hidden\" name=\"new-sticker-date\" value=\"" . getStickerPeriod($user->expiry) . "\" />";
print "<input type=\"submit\" name=\"give-card\" value=\"Lever ut kort (" . getStickerPeriod($user->expiry) . ")\" />";
} elseif (!$user->hasCardSticker()) {
print "<input type=\"hidden\" name=\"subaction\" value=\"give-sticker\" />";
print "<input type=\"hidden\" name=\"new-sticker-date\" value=\"" . $user->getNewStickerDate() . "\" />";
print "<input type=\"submit\" name=\"give-sticker\" value=\"Gi oblat (" . $user->getNewStickerDate() . ")\" />";
print "<input type=\"hidden\" name=\"new-sticker-date\" value=\"" . getStickerPeriod($user->expiry) . "\" />";
print "<input type=\"submit\" name=\"give-sticker\" value=\"Gi oblat (" . getStickerPeriod($user->expiry) . ")\" />";
} else {
print "-";
}
+37 -37
View File
@@ -550,7 +550,7 @@ class User {
$this->cardno = $cardno;
}
$expires = $this->getExpiryDate();
$expires = getNextMembershipExpiryDate();
$sql = "UPDATE din_user SET cardno=" . $this->cardno . ", expires = '$expires' WHERE id=" . $this->id;
$result = $this->conn->query($sql);
@@ -572,7 +572,7 @@ class User {
notify("Du har allerede gyldig medlemskap for dette året.");
return false;
}
$expires = $this->getExpiryDate();
$expires = getNextMembershipExpiryDate();
$this->conn->autoCommit(false);
if ($this->_registerUsedCardno($cardno) == true) {
$sql = "UPDATE din_user SET " . " expires = '$expires' " . "WHERE " . " id = $this->id";
@@ -599,7 +599,7 @@ class User {
notify("Du har allerede gyldig medlemskap for dette året.");
return false;
}
$expires = $this->getExpiryDate();
$expires = getNextMembershipExpiryDate();
$this->conn->autoCommit(false);
$sql = "UPDATE din_user SET " . " expires = '$expires' " . "WHERE " . " id = $this->id";
$result = $this->conn->query($sql);
@@ -623,7 +623,7 @@ class User {
// har allerede gyldig medlemskap
return false;
}
$expires = $this->getExpiryDate();
$expires = getNextMembershipExpiryDate();
$this->conn->autoCommit(false);
$sql = "UPDATE din_user SET " . " expires = '$expires' " . "WHERE " . " id = $this->id";
$result = $this->conn->query($sql);
@@ -646,7 +646,7 @@ class User {
notify($this->id . ", " . $this->getName() . " er livsvarig medlem. Medlemskapet vil ikke bli oppdater.");
return false;
} else {
$expires = $this->getExpiryDate();
$expires = getNextMembershipExpiryDate();
if ($expires <= $this->expires) {
$newexpires = date("Y-m-d", strtotime("+1 year", strtotime($expires)));
notify($this->id . ", " . $this->getName() . " har allerede gyldig medlemskap for dette året. Har utløpsdato " . $this->expires . ", men ny ble prøvd satt til " . $expires . ". Personen vil få satt ny utløpsdate på medlemskapet til " . $newexpires);
@@ -710,19 +710,21 @@ class User {
error($result->toString());
}
}
/*
* $newDate = YYYY-MM-DD or null (lifetime membership)
* Requires a full date for expiry, has to end on 1. of august or we get an exception.
*/
public function updateExpiry($newDate) {
if(preg_match('#^\d{4}/\d{2}$#', $newDate))
{
$newDate = substr($newDate,0,2) . substr($newDate,5,2);
}
if($newDate !== null && !preg_match("#^\d{4}-\d{2}-\d{2}$#", $newDate))
throw new Exception("Invalid date: $newDate");
if ($newDate == 'lifetime') {
if ($newDate === null) {
$sql = "UPDATE din_user SET expires = NULL WHERE id = $this->id LIMIT 1";
} else {
$expires = $this->getExpiryDate($newDate);
$sql = "UPDATE din_user SET expires = '$expires' WHERE id = $this->id LIMIT 1";
$sql = "UPDATE din_user SET expires = '$newDate' WHERE id = $this->id LIMIT 1";
}
$conn = db_connect();
$result = $this->conn->query($sql);
if (DB :: isError($result) != true) {
@@ -732,8 +734,13 @@ class User {
error($result->toString());
}
}
/*
* $newDate = YYYY | YYYY/YY
*/
public function updateLastSticker($newDate) {
if(!preg_match('#^\d{4}(/\d{2})?$#', $newDate))
throw new Exception("Invalid date format: $newDate");
$sql = "UPDATE din_user SET lastSticker = '$newDate' WHERE id = $this->id LIMIT 1";
$result = $this->conn->query($sql);
if (DB :: isError($result) != true) {
@@ -918,31 +925,21 @@ class User {
}
public function hasCardSticker() {
if ($this->getLastSticker() >= date("Y", strtotime($this->expires))) {
return $this->getLastSticker() != getStickerPeriod($this->expires);
/* if ( $this->getLastSticker() != getStickerPeriod($this->expires) ) {
return true;
}
return false;*/
}
public function getNewStickerDate()
/*public function getNewStickerDate()
{
$year = substr($this->getExpiryDate(),0,4);
return (substr($year,0,4) - 1) . '/' . substr($year,2,2);
}
*/
public function getExpiryDate($year = null) {
if($year)
{
return $year . '-08-01';
}
if (date("m-d") > "08-01" )
{
return date("Y", strtotime("+1 year")) . '-08-01';
}
else
{
return date("Y") . '-08-01';
}
return getExpiryDate($year);
}
public function _registerUsedCardno($cardno) {
@@ -1068,6 +1065,9 @@ class User {
}
public function setExpires($value) {
$this->updateExpiry($value);
/*
$sql = "UPDATE din_user SET expires = '$value' " .
"WHERE id = $this->id";
$result = $this->conn->query($sql);
@@ -1075,7 +1075,7 @@ class User {
if (DB :: isError($result) != true) {
$this->_registerUpdate("Utløpsdato endret til $value");
notify("Utløpsdato for <strong>$this->firstname $this->lastname</strong> er endret til <strong>$value</strong>");
}
}*/
}
public function updateDivisionRequest($value) {
@@ -1243,11 +1243,11 @@ class User {
print "<input type=\"hidden\" name=\"action\" value=\"update-user-expiry\" />\n";
print "<select name=\"newExpiryDate_" . $this->id . "\" id=\"newExpiryDate_" . $this->id . "\">\n";
print "<option value=\"0000-00-00\">" . "ugyldig utløpsår" . "</option>\n";
print "<option value=\"2011\" >" . "I år, gammelt medlemskap" . "</option>\n";
print "<option value=\"" . getStickerPeriod("now") . "\">" . "inneværende år (" . getStickerPeriod("now") . ")" . "</option>\n";
print "<option value=\"" . getStickerPeriod("+1 year") . "\">" . "neste år (" . getStickerPeriod("+1 year") . ")" . "</option>\n";
print "<option value=\"" . getStickerPeriod("+3 year") . "\">" . "tre år (" . getStickerPeriod("+3 year") . ")" . "</option>\n";
print "<option value=\"" . getStickerPeriod("+5 year") . "\">" . "fem år (" . getStickerPeriod("+5 year") . ")" . "</option>\n";
print "<option value=\"2011-12-31\" >" . "I år, gammelt medlemskap" . "</option>\n";
print "<option value=\"" . getExpiryDate("now") . "\">" . "inneværende år (" . getExpiryDate("now") . ")" . "</option>\n";
print "<option value=\"" . getExpiryDate("+1 year") . "\">" . "neste år (" . getExpiryDate("+1 year") . ")" . "</option>\n";
print "<option value=\"" . getExpiryDate("+3 year") . "\">" . "tre år (" . getExpiryDate("+3 year") . ")" . "</option>\n";
print "<option value=\"" . getExpiryDate("+5 year") . "\">" . "fem år (" . getExpiryDate("+5 year") . ")" . "</option>\n";
print "<option value=\"lifetime\">" . "livsvarig" . "</option>\n";
print "</select>\n";
print "<input type=\"submit\" value=\"endre\" />\n";
@@ -1271,7 +1271,7 @@ class User {
print "<option value=\"" . getStickerPeriod("+1 year") . "\">" . "neste år (" . getStickerPeriod("+1 year") . ")" . "</option>\n";
print "<option value=\"" . getStickerPeriod("+3 year") . "\">" . "tre år (" . getStickerPeriod("+3 year") . ")" . "</option>\n";
print "<option value=\"" . getStickerPeriod("+5 year") . "\">" . "fem år (" . getStickerPeriod("+5 year") . ")" . "</option>\n";
print "<option value=\"" . 0 . "\">ingen verdi</option>";
print "<option value=\"0000-00-00\">ingen verdi</option>";
print "</select>";
print "<input type=\"submit\" value=\"endre\" />";
print "</div>";
+30 -2
View File
@@ -1571,8 +1571,36 @@ function strip_nl($string) {
function getStickerPeriod($time)
{
$start = date('Y', strtotime($time));
return $start . '/' . (substr($start,2,2) + 1);
$time = is_numeric($time)?$time:strtotime($time);
if($time < strtotime('2011-08-01'))
return date('Y', $time); //gammelt klistremerke
$year = date('Y', $time);
return ($year - 1) . '/' . substr($year, 2);
}
function getNextMembershipExpiryDate()
{
return getExpiryDate();
}
/*
* Returns the next expiry date for a given time.
*/
function getExpiryDate($time = null)
{
if($time == null) $time = time();
$time = is_numeric($time)?$time:strtotime($time);
if (date("m-d", $time) > "08-01" )
{
return date("Y", strtotime("+1 year", $time)) . '-08-01';
}
else
{
return date("Y", $time) . '-08-01';
}
}
// Migration (nikolark)
+1 -1
View File
@@ -8,7 +8,7 @@ $userid = $_GET["userid"];
$user = new User($userid);
$user->setCardProduced(1);
$user->updateLastSticker(date("Y", strtotime($user->getExpiryDate($user->cardno))));
$user->updateLastSticker($user->getExpiryDate());
$user->sendCardProducedNotifyMail();
?>