<?php

/**
 * This is the model base class for the table "regioescidades".
 * 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 "Regioescidades".
 *
 * Columns in table "regioescidades" available as properties of the model,
 * followed by relations of table "regioescidades" available as properties of the model.
 *
 * @property integer $RCD_IDCODIGO
 * @property integer $RCD_IDREGIAO
 * @property integer $RCD_IDCIDADE
 * @property integer $RCD_IDREVENDA
 *
 * @property Cidades $cidades
 * @property Regioes $regioes
 * @property Cidades $Cidade
 * @property Regioes $Regiao
 */
class Regioescidades extends GxActiveRecord {
	public $CID_DESCRICAO;
	public $CID_UF;

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

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

	public static function label($n = 1) {
		return Yii::t('app', 'Região X Cidade|Regiões X Cidades', $n);
	}

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

	public function rules() {
		return array(
			array('RCD_IDREGIAO, RCD_IDCIDADE, RCD_IDREVENDA', 'numerical', 'integerOnly'=>true),
			array('RCD_IDREGIAO, RCD_IDCIDADE, RCD_IDREVENDA', 'default', 'setOnEmpty' => true, 'value' => null),
			array('cidades, RCD_IDCODIGO, RCD_IDREGIAO, RCD_IDCIDADE, RCD_IDREVENDA, CID_DESCRICAO, CID_UF', 'safe', 'on'=>'search'),
		);
	}

	public function relations() {
		return array(
			'cidades'	=> array(self::HAS_ONE, 'Cidades', 'CID_IDCIDADE', 'joinType'=>'LEFT JOIN'),
			'regioes'	=> array(self::HAS_ONE, 'Regioes', 'REG_IDREGIAO', 'joinType'=>'LEFT JOIN'),
			'Cidade'	=> array(self::BELONGS_TO, 'Cidades', 'RCD_IDCIDADE', 'joinType'=>'LEFT JOIN'),
			'Regiao'	=> array(self::BELONGS_TO, 'Regioes', 'RCD_IDREGIAO', 'joinType'=>'LEFT JOIN'),
			'Revenda'	=> array(self::BELONGS_TO, 'Revendas', 'RCD_IDREVENDA', 'joinType'=>'LEFT JOIN'),
		);
	}

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

	public function getCidadeEstado() {
		return $this->Cidade.' - '.$this->Cidade->CID_UF;
	}


	public function attributeLabels() {
		return array(
			'RCD_IDCODIGO'		=> 'Código',
			'RCD_IDREGIAO'		=> 'Região',
			'RCD_IDCIDADE'		=> 'Cidade',
			'RCD_IDREVENDA'		=> 'Unidade de Negócios',
			'cidades'			=> 'Cidades',
			'regioes'			=> 'Regiões',
			'Cidade'			=> 'Cidade',
			'Regiao'			=> 'Região',
			'Responsavel' => 'Responsável',
			'CID_DESCRICAO' => 'Cidade',
			'CID_UF' => "Estado"
		);
	}

	public function search($group = "Cidade.CID_IDCIDADE") {
		$criteria = new CDbCriteria;

		if (!empty($this->CID_DESCRICAO)) $criteria->addCondition("Cidade.CID_DESCRICAO like '%" . Util::secureForSelect($this->CID_DESCRICAO, true) . "%' or Cidade.CID_DESCRICAO like '%" . Util::secureForSelect($this->CID_DESCRICAO, true) . "%'");

		$criteria->compare('Cidade.CID_IDCIDADE', $this->RCD_IDCIDADE);
		$criteria->compare('Cidade.CID_UF', $this->CID_UF);


		$criteria->with = array(
            'Cidade' => array('joinType' => 'LEFT JOIN', 'together' => true, 'select' => false),
            'Revenda' => array('joinType' => 'LEFT JOIN', 'together' => true, 'select' => false),
        );

        $criteria->group = $group;

		$sort = new CSort;
        $sort->defaultOrder = 'Cidade.CID_DESCRICAO ASC';
        $sort->attributes = array(
            'Cidade'=>array(
              'asc'=>'Cidade.CID_DESCRICAO',
              'desc'=>'Cidade.CID_DESCRICAO desc'
            ),
            'Revenda'=>array(
              'asc'=>'Revenda.REV_FANTASIA',
              'desc'=>'Revenda.REV_FANTASIA desc'
            ),
            'Revenda.REV_FONE1'=>array(
              'asc'=>'Revenda.REV_FONE1, Revenda.REV_FONE2, Revenda.REV_FONE3',
              'desc'=>'Revenda.REV_FONE1 desc, Revenda.REV_FONE2 desc, Revenda.REV_FONE3 desc'
            ),
            'Revenda.REV_EMAIL'=>array(
              'asc'=>'Revenda.REV_EMAIL',
              'desc'=>'Revenda.REV_EMAIL desc'
            ),
            '*'
        );
		return new CActiveDataProvider($this, array(
				'criteria' => $criteria,
				'sort' => $sort,
				'pagination' => array(
					'pageSize'  => 20,
				)
			)
		);
	}
}