<?php
namespace common\models;
use yii\db\ActiveRecord;
use yii\db\Expression;
use yii\behaviors\TimestampBehavior;
class OrderFiles extends base\OrderFiles
{
/**
* Полис
*/
const TYPE_POLIS = 'polis';
/**
* Права
*/
const TYPE_DRIVE_FRONT = 'drive_front';
/**
* Права
*/
const TYPE_DRIVE_BACK = 'drive_back';
/**
* Техпаспорт
*/
const TYPE_TECH = 'tech';
/**
* Документ на льготу
*/
const TYPE_BENEFIT = 'benefit';
/**
* Другое
*/
const TYPE_OTHER = 'other';
/**
* @inheritdoc
*/
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
'value' => new Expression('NOW()'),
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'order_id' => 'ID Заявки',
'name' => 'Файл',
'path' => 'Путь',
'type' => 'Тип',
'user_id' => 'ID Пользователя',
'comment' => 'Комментарий',
'created_at' => 'Создан',
'updated_at' => 'Обновлен',
];
}
/**
* @return array
*/
public static function getFileTypes()
{
return [
self::TYPE_POLIS => 'Полис',
self::TYPE_DRIVE_FRONT => 'Права(лицевая)',
self::TYPE_DRIVE_BACK => 'Права(тыльная)',
self::TYPE_TECH => 'Техпаспорт',
self::TYPE_BENEFIT => 'Док.(на_льготу)',
self::TYPE_OTHER => 'Другое',
];
}
/**
* На фронте загружаем только один файл
* @return array
*/
public static function getFileTypesSite()
{
return [
self::TYPE_POLIS => 'Полис',
];
}
/**
* @param integer $orderId
* @param string $type
* @return array|boolean
*/
public static function findByType($orderId, $type)
{
return self::find()->where([
'order_id' => $orderId,
'type' => $type
])->one();
}
public function getExt(){
return strtolower(pathinfo($this->path, PATHINFO_EXTENSION));
}
public function isImg(){
$fileExt = $this->getExt();
return $fileExt == "jpg" || $fileExt == "jpeg" || $fileExt == "png";
}
/**
* @return \yii\db\ActiveQuery
*/
public function getClient()
{
return $this->hasOne(Client::className(), ['id' => 'client_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getOrder()
{
return $this->hasOne(Order::className(), ['id' => 'order_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
}