(Guillermo) ticketnumber stage 1 [skip ci]

This commit is contained in:
AntonyAntonio 2016-08-16 23:49:40 -03:00
parent 8c56912a7e
commit 54eb3e89e8
4 changed files with 25 additions and 2 deletions

View File

@ -50,7 +50,7 @@ class CreateController extends Controller {
$ticket = new Ticket(); $ticket = new Ticket();
$ticket->setProperties(array( $ticket->setProperties(array(
'ticketId' => '', 'ticketNumber' => $ticket->generateUniqueTicketNumber(),
'title' => $this->title, 'title' => $this->title,
'content' => $this->content, 'content' => $this->content,
'language' => $this->language, 'language' => $this->language,

View File

@ -10,4 +10,7 @@ class Hashing {
public static function generateRandomToken() { public static function generateRandomToken() {
return md5(uniqid(rand())); return md5(uniqid(rand()));
} }
public static function getRandomTicketNumber($min,$max) {
return rand($min,$max);
}
} }

View File

@ -16,6 +16,9 @@ abstract class DataStore {
return ($bean) ? new static($bean) : new NullDataStore(); return ($bean) ? new static($bean) : new NullDataStore();
} }
public static function count() {
RedBean::count(static::TABLE);
}
private static function validateProp($propToValidate) { private static function validateProp($propToValidate) {
$validProp = false; $validProp = false;

View File

@ -29,7 +29,8 @@ class Ticket extends DataStore {
public function getDefaultProps() { public function getDefaultProps() {
return array( return array(
'owner' => null 'owner' => null,
'ticketNumber' => $this->generateUniqueTicketNumber()
); );
} }
@ -40,4 +41,20 @@ class Ticket extends DataStore {
$this->author->store(); $this->author->store();
} }
} }
public function generateUniqueTicketNumber() {
$ticketQuantity = Ticket::count('ticket');
$minValue = 100000;
$maxValue = 999999;
if ($ticketQuantity === 0) {
$ticketNumber = Hashing::getRandomTicketNumber($minValue, $maxValue);
} else {
$firstTicketNumber = Ticket::getTicket(1)->ticketNumber;
$gap = 176611;
$ticketNumber = ($firstTicketNumber - $minValue + $ticketQuantity * $gap) % $maxValue + $minValue;
}
return $ticketNumber;
}
} }