<?php

/**
 * This is the model base class for the table "novidades".
 * DO NOT MODIFY THIS FILE! It is automatically generated by giix.
 * If any changes are necessary, you must set or override the required
 * property or method in class "Novidades".
 *
 * Columns in table "novidades" available as properties of the model,
 * followed by relations of table "novidades" available as properties of the model.
 *
 * @property integer $NOV_IDNOVIDADE
 * @property string $NOV_ASSUNTO
 * @property string $NOV_DATA
 * @property string $NOV_DESCRICAO
 * @property integer $NOV_IDPROJETO
 * @property integer $NOV_IDVERSAO
 * @property integer $NOV_IDFUNCIONARIO
 *
 * @property Funcionarios $Autor
 * @property Projetos $Projeto
 * @property Versoes $VersaoProjeto
 */
class Novidades extends GxActiveRecord {

    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public function tableName() {
        return 'novidades';
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Novidade|Novidades', $n);
    }

    public static function representingColumn() {
        return 'NOV_ASSUNTO';
    }

    public function behaviors() {
        return array('datetimeI18NBehavior' => array('class' => 'ext.DateTimeI18NBehavior'));
    }

    public function rules() {
        return array(
            array('NOV_ASSUNTO, NOV_DATA, NOV_DESCRICAO, NOV_IDPROJETO, NOV_IDVERSAO, NOV_IDFUNCIONARIO', 'required'),
            array('NOV_IDPROJETO, NOV_IDVERSAO, NOV_IDFUNCIONARIO', 'numerical', 'integerOnly' => true),
            array('NOV_ASSUNTO', 'length', 'max' => 50),
            array('NOV_IDNOVIDADE, NOV_ASSUNTO, NOV_DATA, NOV_DESCRICAO, NOV_IDPROJETO, NOV_IDVERSAO, NOV_IDFUNCIONARIO', 'safe', 'on' => 'search'),
        );
    }

    public function relations() {
        return array(
            'Autor'             => array(self::BELONGS_TO, 'Funcionarios', 'NOV_IDFUNCIONARIO'),
            'Projeto'           => array(self::BELONGS_TO, 'Projetos', 'NOV_IDPROJETO'),
            'VersaoProjeto'     => array(self::BELONGS_TO, 'Versoes', 'NOV_IDVERSAO'),
        );
    }

    public function pivotModels() {
        return array(
        );
    }

    public function attributeLabels() {
        return array(
            'NOV_IDNOVIDADE'        => 'Código',
            'NOV_ASSUNTO'           => 'Assunto',
            'NOV_DATA'              => 'Data',
            'NOV_DESCRICAO'         => 'Descrição',
            'NOV_IDPROJETO'         => 'Projeto',
            'NOV_IDVERSAO'          => 'Versão',
            'NOV_IDFUNCIONARIO'     => 'Autor',
            'Autor'                 => 'Autor',
            'Projeto'               => 'Projeto',
            'VersaoProjeto'         => 'Versão',
        );
    }

    public function search() {
        $criteria = new CDbCriteria;

        $criteria->compare('NOV_IDNOVIDADE', $this->NOV_IDNOVIDADE);
        $criteria->compare('NOV_DATA', $this->NOV_DATA, true);
        if(!empty($this->NOV_ASSUNTO)) {
            $criteria->addCondition('NOV_ASSUNTO like "%' . Util::secureForSelect($this->NOV_ASSUNTO, true) . '%" or NOV_ASSUNTO like "%' . Util::secureForSelect($this->NOV_ASSUNTO). '%"');
        }
        if(!empty($this->NOV_DESCRICAO)) {
            $criteria->addCondition('NOV_DESCRICAO like "%' . Util::secureForSelect($this->NOV_DESCRICAO, true) . '%" or NOV_DESCRICAO like "%' . Util::secureForSelect($this->NOV_DESCRICAO). '%"');
        }
        $criteria->compare('NOV_IDPROJETO', $this->NOV_IDPROJETO);
        $criteria->compare('NOV_IDVERSAO', $this->NOV_IDVERSAO);
        $criteria->compare('NOV_IDFUNCIONARIO', $this->NOV_IDFUNCIONARIO);

        $criteria->with = array(
            'Autor' => array('joinType' => 'LEFT JOIN'),
            'Projeto' => array('joinType' => 'LEFT JOIN'),
            'VersaoProjeto' => array('joinType' => 'LEFT JOIN'),
        );
        $criteria->group = "t.NOV_IDNOVIDADE";
        $sort = new CSort;
        $sort->defaultOrder = 'NOV_DATA DESC, NOV_IDNOVIDADE DESC';
        $sort->attributes = array(
            'Autor'=>array(
              'asc'=>'Autor.FUN_NOME',
              'desc'=>'Autor.FUN_NOME desc',
            ),
            'Projeto'=>array(
              'asc'=>'Projeto.PRO_PROJETO',
              'desc'=>'Projeto.PRO_PROJETO desc',
            ),
            'VersaoProjeto'=>array(
              'asc'=>'VersaoProjeto.VER_DESCRICAO',
              'desc'=>'VersaoProjeto.VER_DESCRICAO desc',
            ),
            '*'
        );

        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
            'sort' => $sort,
            'pagination' => array(
                'pageSize' => 20
                )
            )
        );
    }

}