<?php

/**
 * This is the model base class for the table "especificacao_funcional_tabelas".
 * 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 "EspecificacaoFuncionalTabelas".
 *
 * Columns in table "especificacao_funcional_tabelas" available as properties of the model,
 * followed by relations of table "especificacao_funcional_tabelas" available as properties of the model.
 *
 * @property integer $EFT_CODIGO
 * @property integer $EFT_IDESPECIFICACAO
 * @property string $EFT_TABELA
 * @property string $EFT_CHAVEPRIM
 * @property string $EFT_CHAVEESTR
 *
 * @property EspecificacaoFuncional $EspecificacaoFuncional
 */
class EspecificacaoFuncionalTabelas extends GxActiveRecord {

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

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

    public static function label($n = 1) {
        return Yii::t('app', 'Alteração na base de dados|Alterações na base de dados', $n);
    }

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

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

    public function rules() {
        return array(
            array('EFT_IDESPECIFICACAO, EFT_TABELA', 'required'),
            array('EFT_IDESPECIFICACAO', 'numerical', 'integerOnly' => true),
            array('EFT_TABELA, EFT_CHAVEPRIM, EFT_CHAVEESTR', 'length', 'max' => 255),
            array('EFT_CODIGO, EFT_IDESPECIFICACAO, EFT_TABELA, EFT_CHAVEPRIM, EFT_CHAVEESTR', 'safe', 'on' => 'search'),
        );
    }

    public function relations() {
        return array(
            'EspecificacaoFuncional' => array(self::BELONGS_TO, 'EspecificacaoFuncional', 'EFT_IDESPECIFICACAO', 'joinType' => 'LEFT JOIN'),
        );
    }

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

    public function attributeLabels() {
        return array(
            'EFT_CODIGO'                => 'Código',
            'EFT_IDESPECIFICACAO'       => 'Especificação funcional',
            'EFT_TABELA'                => 'Tabela afetada/nova',
            'EFT_CHAVEPRIM'             => 'Criação chave primária',
            'EFT_CHAVEESTR'             => 'Criação chave estrangeira',
            'EspecificacaoFuncional'    => 'Especificação funcional',
        );
    }

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

        $criteria->compare('EFT_CODIGO', $this->EFT_CODIGO);
        $criteria->compare('EFT_IDESPECIFICACAO', $this->EFT_IDESPECIFICACAO);
        $criteria->compare('EFT_TABELA', $this->EFT_TABELA, true);
        $criteria->compare('EFT_CHAVEPRIM', $this->EFT_CHAVEPRIM, true);
        $criteria->compare('EFT_CHAVEESTR', $this->EFT_CHAVEESTR, true);

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

}