201 lines
5.0 KiB
PHP
201 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace common\models;
|
|
|
|
use Yii;
|
|
use common\components\Helper;
|
|
use yii\behaviors\TimestampBehavior;
|
|
use yii\helpers\ArrayHelper;
|
|
|
|
/**
|
|
* This is the model class for table "door_log".
|
|
*
|
|
* @property integer $id_door_log
|
|
* @property integer $id_card
|
|
* @property integer $id_customer
|
|
* @property integer $id_key
|
|
* @property integer $direction
|
|
* @property integer $type
|
|
* @property integer $id_account
|
|
* @property string $created_at
|
|
* @property string $source_app
|
|
*/
|
|
class DoorLog extends \yii\db\ActiveRecord
|
|
{
|
|
|
|
public static $SOURCE_APP_FORGO_VILLA = "forgo_villa";
|
|
public static $SOURCE_APP_FITNESS_ADMIN = "fitness_admin";
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public static function tableName()
|
|
{
|
|
return 'door_log';
|
|
}
|
|
|
|
public function behaviors()
|
|
{
|
|
return ArrayHelper::merge( [
|
|
[
|
|
'class' => TimestampBehavior::className(),
|
|
'value' => function(){ return date('Y-m-d H:i:s' ); },
|
|
'updatedAtAttribute' => false,
|
|
]
|
|
], parent::behaviors());
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['id_card', 'id_customer', 'id_key', 'direction', 'type'], 'integer'],
|
|
[['created_at'], 'required'],
|
|
[['created_at'], 'safe']
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function attributeLabels()
|
|
{
|
|
return [
|
|
'id_door_log' => Yii::t('common/door_log', 'Id Door Log'),
|
|
'id_card' => Yii::t('common/door_log', 'Bérlet kártya'),
|
|
'id_customer' => Yii::t('common/door_log', 'Vendég'),
|
|
'id_key' => Yii::t('common/door_log', 'Kulcs'),
|
|
'direction' => Yii::t('common/door_log', 'Esemény'),
|
|
'type' => Yii::t('common/door_log', 'Típus'),
|
|
'created_at' => Yii::t('common/door_log', 'Időpont'),
|
|
'source_app' => Yii::t('common/door_log', 'Eszköz'),
|
|
];
|
|
}
|
|
|
|
public function getCustomer(){
|
|
return $this->hasOne( Customer::className(), ["id_customer" =>"id_customer" ] );
|
|
}
|
|
|
|
public function getCustomerName(){
|
|
$result = "";
|
|
if (isset($this->customer)){
|
|
$result = $this->customer->name;
|
|
}
|
|
return $result;
|
|
}
|
|
public function getCard(){
|
|
return $this->hasOne( Card::className(), ["id_card" =>"id_card" ] );
|
|
}
|
|
|
|
public function getCardNumber(){
|
|
$result = "";
|
|
if (isset($this->card)){
|
|
$result = $this->card->number;
|
|
}
|
|
return $result;
|
|
}
|
|
public function getKey(){
|
|
return $this->hasOne( Key::className(), ["id_key" =>"id_key" ] );
|
|
}
|
|
|
|
public function getKeyNumber(){
|
|
$result = "";
|
|
if (isset($this->key)){
|
|
$result = $this->key->number;
|
|
}
|
|
return $result;
|
|
}
|
|
public function getDirectionName(){
|
|
$result = "";
|
|
if ( $this->source_app == 'forgo_villa'){
|
|
if (isset($this->direction)){
|
|
$result = Helper::getArrayValue(self::getDirectionTypes() , $this->direction, "-");
|
|
}
|
|
}else{
|
|
$result = "Kézi olvasás";
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
|
|
public static function getSourceAppName($source_app){
|
|
$result = "";
|
|
switch ($source_app){
|
|
case self::$SOURCE_APP_FITNESS_ADMIN :
|
|
$result = "Recepciós alkalmazás";
|
|
break;
|
|
case self::$SOURCE_APP_FORGO_VILLA:
|
|
$result = "Forgó villa";
|
|
break;
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
public static function getDirectionTypes( ){
|
|
return [
|
|
-2 => "Kézi olvasás/Kulcs ki",
|
|
-1 => "Kézi olvasás/Kulcs vissza",
|
|
0 => "Kézi olvasás",
|
|
|
|
1 => "KI olvastatás mozgás nélkül",
|
|
|
|
3 => "BE olvastatás mozgás nélkül",
|
|
|
|
5 => "KI mozgás",
|
|
|
|
7 => "BE mozgás",
|
|
|
|
9 => "KI olvastatás, van érvényes öltöző kulcs (nem enged)",
|
|
|
|
11 => "BE olvastatás, nincs érvényes öltöző kulcs (nem enged)",
|
|
|
|
17 => "Bérlet érvényességi időn kívüli KI olvastatás (nem enged)",
|
|
|
|
19 => "Bérlet érvényességi időn kívüli BE olvastatás (nem enged)",
|
|
|
|
128 => "Vésznyitás",
|
|
256 => "Kártya tiltva -> információ mező",
|
|
];
|
|
}
|
|
|
|
public static function getCardFlagTexts( ){
|
|
return [
|
|
0 => "Kártya érvényes bérlettel",
|
|
1 => "Nincs érvényes bérlet",
|
|
2 => "Kártya inaktív/Érvényes bérlet",
|
|
3 => "Kártya inaktív/Nincs érvényes bérlet"
|
|
|
|
];
|
|
}
|
|
|
|
public static function mkDoorLog($direction,$card,$customer = null,$key = null){
|
|
|
|
$dlog = new DoorLog();
|
|
$dlog->id_card = $card->id_card;
|
|
|
|
if ( isset($customer)){
|
|
$dlog->id_customer = $customer->id_customer;
|
|
}
|
|
|
|
if ( isset($key)){
|
|
$dlog->id_key = $key->id_key;
|
|
}
|
|
$dlog->direction = $direction;
|
|
$dlog->type = $card->type;
|
|
$dlog->source_app = DoorLog::$SOURCE_APP_FITNESS_ADMIN;
|
|
|
|
$dlog->id_account = Account::readDefault();
|
|
|
|
if ( $dlog->direction == 0){
|
|
$dlog->card_flag = $card->flag;
|
|
}else{
|
|
$dlog->card_flag = -1;
|
|
}
|
|
|
|
$dlog->created_at = date('Y-m-d H:i:s');
|
|
$dlog->save(false);
|
|
}
|
|
|
|
}
|