git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@44 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
176 lines
5.5 KiB
PHP
176 lines
5.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This is the model class for table "tbl_empresas".
|
|
*
|
|
* The followings are the available columns in table 'tbl_empresas':
|
|
* @property integer $id
|
|
* @property string $cif
|
|
* @property string $nombre
|
|
* @property string $email
|
|
* @property string $pagina_web
|
|
* @property integer $empleados
|
|
* @property string $direccion
|
|
* @property string $descripcion
|
|
* @property string $ficheroLogotipo
|
|
* @property FotografiaPerfil $logotipo
|
|
*
|
|
* The followings are the available model relations:
|
|
* @property Usuario $usuarios
|
|
*/
|
|
class Empresa extends CActiveRecord {
|
|
|
|
public $ficheroLogotipo;
|
|
public $logotipo;
|
|
|
|
/**
|
|
* Returns the static model of the specified AR class.
|
|
* @param string $className active record class name.
|
|
* @return Empresa the static model class
|
|
*/
|
|
public static function model($className = __CLASS__) {
|
|
return parent::model($className);
|
|
}
|
|
|
|
/**
|
|
* @return string the associated database table name
|
|
*/
|
|
public function tableName() {
|
|
return 'tbl_empresas';
|
|
}
|
|
|
|
/**
|
|
* @return array validation rules for model attributes.
|
|
*/
|
|
public function rules() {
|
|
// NOTE: you should only define rules for those attributes that
|
|
// will receive user inputs.
|
|
return array(
|
|
array('empleados, cif, nombre, email, pagina_web, direccion', 'length', 'max' => 255),
|
|
array('pagina_web', 'url', 'defaultScheme' => 'http'),
|
|
array('email', 'email'),
|
|
array('descripcion, ficheroLogotipo', 'safe'),
|
|
array('ficheroLogotipo', 'file',
|
|
'types' => 'jpg',
|
|
'maxSize' => 1024 * 1024 * 1, // 1MB como máximo
|
|
'tooLarge' => Yii::t('profind', 'La imagen es demasiado pesada. Elija otra más pequeña.'),
|
|
'wrongType' => Yii::t('profind', 'Sólo se permiten imágenes en formato JPG.'),
|
|
'allowEmpty' => 'true',
|
|
),
|
|
array('id, cif, nombre, email, pagina_web, empleados, direccion, descripcion', 'safe', 'on' => 'search'),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array relational rules.
|
|
*/
|
|
public function relations() {
|
|
// NOTE: you may need to adjust the relation name and the related
|
|
// class name for the relations automatically generated below.
|
|
return array(
|
|
'usuarios' => array(self::HAS_MANY, 'Usuario', 'id_empresa'),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array customized attribute labels (name=>label)
|
|
*/
|
|
public function attributeLabels() {
|
|
return array(
|
|
'id' => 'ID',
|
|
'ficheroLogotipo' => 'Logotipo',
|
|
'cif' => 'CIF',
|
|
'nombre' => 'Nombre',
|
|
'email2' => 'Email',
|
|
'pagina_web' => 'Página web',
|
|
'empleados' => 'Nº de empleados',
|
|
'direccion' => 'Dirección',
|
|
'descripcion' => 'Descripción',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Retrieves a list of models based on the current search/filter conditions.
|
|
* @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
|
|
*/
|
|
public function search() {
|
|
// Warning: Please modify the following code to remove attributes that
|
|
// should not be searched.
|
|
|
|
$criteria = new CDbCriteria;
|
|
|
|
$criteria->compare('id',$this->id);
|
|
$criteria->compare('cif',$this->cif,true);
|
|
$criteria->compare('nombre',$this->nombre,true);
|
|
$criteria->compare('email',$this->email,true);
|
|
$criteria->compare('pagina_web',$this->pagina_web,true);
|
|
$criteria->compare('empleados',$this->empleados);
|
|
$criteria->compare('direccion',$this->direccion,true);
|
|
$criteria->compare('descripcion',$this->descripcion,true);
|
|
|
|
return new CActiveDataProvider($this, array(
|
|
'criteria' => $criteria,
|
|
));
|
|
}
|
|
|
|
protected function afterFind() {
|
|
parent::afterFind();
|
|
$this->logotipo = new FotografiaPerfil();
|
|
$this->logotipo->modelo = $this;
|
|
}
|
|
|
|
protected function afterConstruct() {
|
|
parent::afterConstruct();
|
|
$this->logotipo = new FotografiaPerfil();
|
|
$this->logotipo->modelo = $this;
|
|
}
|
|
|
|
protected function afterSave() {
|
|
parent::afterSave();
|
|
if ($this->isNewRecord)
|
|
$this->createUploadDir();
|
|
}
|
|
|
|
protected function afterDelete() {
|
|
parent::afterDelete();
|
|
$this->deleteUploadDir();
|
|
}
|
|
|
|
/*
|
|
* Devuelve la ruta con los ficheros de la empresa.
|
|
* Incluye el separador de directorios al final de la ruta.
|
|
* @return string ruta
|
|
*/
|
|
public function getUploadPath() {
|
|
return Yii::getPathOfAlias('application.uploads.empresas') . DIRECTORY_SEPARATOR . $this->id . DIRECTORY_SEPARATOR;
|
|
}
|
|
|
|
/*
|
|
* Crea un directorio para almacenar ficheros de la empresa
|
|
* @return boolean
|
|
*/
|
|
private function createUploadDir() {
|
|
$upload = $this->getUploadPath();
|
|
|
|
if(!is_dir($upload)) {
|
|
return mkdir($upload);
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
/*
|
|
* Elimina el directorio de la empresa y todos sus ficheros
|
|
* @return boolean
|
|
*/
|
|
private function deleteUploadDir() {
|
|
$upload = $this->getUploadPath();
|
|
|
|
if(is_dir($upload)) {
|
|
require_once( Yii::getPathOfAlias('application.helpers') . DIRECTORY_SEPARATOR . 'recursive_remove_directory.php');
|
|
return recursive_remove_directory($upload);
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
|
|
} |