<?php

/**
 * This is the model base class for the table "formularios".
 * 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 "Formularios".
 *
 * Columns in table "formularios" available as properties of the model,
 * followed by relations of table "formularios" available as properties of the model.
 *
 * @property integer $FRM_IDFORMULARIO
 * @property string $FRM_CODFORM
 * @property string $FRM_DESCRICAO
 * @property string $FRM_CAMINHO
 * @property integer $FRM_IDMODULO
 *
 * @property Modulos $fRMIDMODULO
 */
class Formularios extends GxActiveRecord {

    public $FRM_IDPROJETO;
    public $FRM_IDCOMPLEXIDADE;

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

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

    public static function label($n = 1) {
        return Yii::t('app', 'Formulário|Formulários', $n);
    }

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

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

    public function rules() {
        return array(
            array('FRM_CODFORM, FRM_DESCRICAO', 'required'),
            array('FRM_CODFORM', 'length', 'max' => 10),
            array('FRM_DESCRICAO', 'length', 'max' => 100),
            array('FRM_SITUACAO', 'length', 'max' => 1),
            array('FRM_CODFORM, FRM_DESCRICAO, FRM_SITUACAO', 'default', 'setOnEmpty' => true, 'value' => null),
            array('FRM_IDFORMULARIO, FRM_CODFORM, FRM_DESCRICAO, FRM_IDPROJETO, FRM_SITUACAO', 'safe', 'on' => 'search'),
        );
    }

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

    public function relations() {
        return array(
            'FormulariosProjetos' => array(self::HAS_MANY, 'FormulariosProjetos', 'FRP_IDFORMULARIO'),
        );
    }

    public function attributeLabels() {
        return array(
            'FRM_IDFORMULARIO'  => 'Código',
            'FRM_CODFORM'       => 'Código do Formulário',
            'FRM_DESCRICAO'     => 'Descrição',
            'FRM_IDPROJETO'     => 'Projeto',
            'FRM_SITUACAO'      => 'Situação',
            'fRMIDPROJETO'      => 'Projeto',
        );
    }

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

        $criteria->compare('t.FRM_IDFORMULARIO', $this->FRM_IDFORMULARIO);
        $criteria->compare('t.FRM_CODFORM', $this->FRM_CODFORM, true);
        $criteria->compare('t.FRM_DESCRICAO', $this->FRM_DESCRICAO, true);
        $criteria->compare('t.FRM_SITUACAO', $this->FRM_SITUACAO, true);

        if (!empty($this->FRM_IDPROJETO)) {
            $criteria->join = "INNER JOIN formularios_projetos ON formularios_projetos.FRP_IDFORMULARIO = t.FRM_IDFORMULARIO";
            $criteria->group = "t.FRM_IDFORMULARIO";
            $criteria->compare('formularios_projetos.FRP_IDPROJETO', $this->FRM_IDPROJETO, true);
        }

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

    public function getCodDesc() {
        return $this->FRM_CODFORM . ' - ' . $this->FRM_DESCRICAO;
    }

    public function getProjetosComplexidade($implode = "<br>")
    {
        if (!empty($this->FormulariosProjetos)) {
            $retorno = array();
            foreach ($this->FormulariosProjetos as $key => $formularioProjeto) {
                $retorno[$key] = $formularioProjeto->Projeto->PRO_PROJETO;
                if (!empty($formularioProjeto->FRP_IDCOMPLEXIDADE)) {
                    $retorno[$key] .= " ({$formularioProjeto->NivelComplexidade->CPX_DESCRICAO})";
                }

            }
            return implode($implode, $retorno);
        }
        return "-";
    }

}