<?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']); } }