implement ticket expires-soon

This commit is contained in:
Roland Schneider
2019-01-07 07:48:28 +01:00
parent 4741cce196
commit 3fce2c70c2
5 changed files with 125 additions and 19 deletions

View File

@@ -61,5 +61,7 @@ return [
'key_toggle_door_log_enabled' => false,
//if key required for entry trough the door
'key_required' => true,
'ticket_type_door_allowed_check_on' => false
'ticket_type_door_allowed_check_on' => false,
'warn_ticket_expire_in_days_count' => 3,
'warn_ticket_expire_in_usage_count' => 3,
];

View File

@@ -100,7 +100,6 @@ class Inventory extends \common\models\BaseFitnessActiveRecord
$query = Product::find();
if ( isset($this->id_account) && is_numeric($this->id_account)){
$query->andWhere(['id_account' => $this->id_account]);
}
$products = $query->all();

View File

@@ -424,5 +424,47 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
public function afterDelete(){
Card::updateCardFlagTicket($this->id_card);;
}
/**
* @throws \Exception
*/
public function getMinutesUntilExpire(){
$end = new \DateTime( $this->end );
$today = new \DateTime();
$today->setTime(0,0);
if ( $today > $end ){
return -1;
}
$seconds = $end->getTimestamp() - $today->getTimestamp();
$minutes = $seconds /60;
return $minutes;
}
/**
* @throws \Exception
*/
public function getDaysUntilExpire(){
$minutes = $this->getMinutesUntilExpire();
$days = $minutes / 60 /24;
return $days;
}
/**
* Get free usage count.
* @return bool|int
*/
public function getOpenUsageCount(){
if ( !isset($this->max_usage_count) || $this->max_usage_count <= 0){
return false;
}
$usageCount = $this->usage_count;
if ( !isset($usageCount) ){
$usageCount = 0;
}
return max($this->max_usage_count - $usageCount,0);
}
}