<?php

/**
 * This is the model base class for the table "regioes".
 * 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 "Regioes".
 *
 * Columns in table "regioes" available as properties of the model,
 * followed by relations of table "regioes" available as properties of the model.
 *
 * @property integer $REG_IDREGIAO
 * @property string $REG_DESCRICAO
 * @property double $REG_PERCOMISSAO
 * @property double $REG_PERMETA
 * @property double $REG_VLRMETA
 * @property integer $REG_IDREVENDA
 * @property integer $REG_IDFUNCIONARIO
 * @property integer $REG_IDUSUARIO
 * @property string $REG_DTALTERACAO
 * @property string $REG_SITUACAO
 *
 * @property Regioescidades $Regiao
 * @property Regioescidades[] $regioescidades
 */
class Regioes extends GxActiveRecord
{

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

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

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

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

	public function rules()
	{
		return array(
			array('REG_IDREVENDA, REG_DESCRICAO, REG_SITUACAO', 'required'),
			array('REG_IDREVENDA, REG_IDFUNCIONARIO, REG_IDUSUARIO', 'numerical', 'integerOnly'=>true),
			array('REG_PERCOMISSAO, REG_PERMETA, REG_VLRMETA', 'numerical'),
			array('REG_DESCRICAO', 'length', 'max'=>50),
			array('REG_SITUACAO', 'length', 'max'=>1),
			array('REG_DTALTERACAO, LAST_UPDATE', 'safe'),
			array('REG_DESCRICAO, REG_PERCOMISSAO, REG_PERMETA, REG_VLRMETA, REG_IDREVENDA, REG_IDFUNCIONARIO, REG_IDUSUARIO, REG_DTALTERACAO, REG_SITUACAO', 'default', 'setOnEmpty' => true, 'value' => null),
			array('REG_IDREGIAO, REG_DESCRICAO, REG_PERCOMISSAO, REG_PERMETA, REG_VLRMETA, REG_IDREVENDA, REG_IDFUNCIONARIO, REG_IDUSUARIO, REG_DTALTERACAO, REG_SITUACAO, cidades', 'safe', 'on'=>'search'),
		);
	}

	public function relations()
	{
		return array(
			'Regiao' => array(self::BELONGS_TO, 'Regioescidades', 'REG_IDREGIAO', 'joinType'=>'LEFT JOIN'),
			'regioescidades' => array(self::HAS_MANY, 'Regioescidades', 'RCD_IDREGIAO', 'joinType'=>'LEFT JOIN'),
			'cidades' => array(self::HAS_MANY, 'Cidades', 'CID_IDCIDADE', 'joinType'=>'LEFT JOIN'),
		);
	}

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

	public function attributeLabels()
	{
		return array(
			'REG_IDREGIAO'		=> 'Código',
			'REG_DESCRICAO'		=> 'Região',
			'REG_PERCOMISSAO'	=> 'Comissão',
			'REG_PERMETA'		=> 'Meta',
			'REG_VLRMETA'		=> 'Valor meta',
			'REG_IDREVENDA'		=> 'Unidade de Negócios',
			'REG_IDFUNCIONARIO'	=> 'Funcionário',
			'REG_IDUSUARIO'		=> 'Usuário',
			'REG_DTALTERACAO'	=> 'Data de Alteração',
			'REG_SITUACAO'		=> 'Situação',
			'Regiao'			=> 'Região',
			'regioescidades'	=> 'Região / Cidade',
			'cidades'			=> 'Cidades',
		);
	}

	public function beforeSave()
	{
		parent::beforeSave();
		$cidades = array();
        if (isset($_POST['cidades']) && is_array($_POST['cidades'])) {
			foreach ($_POST['cidades'] as $indice => $cidade) {
				$results = Regioescidades::model()->find("RCD_IDCIDADE = ".$cidade." and RCD_IDREVENDA <> ".$this->REG_IDREVENDA);
				$count = count($results);

				if ($count != 0) {
					if($results->Cidade != '')
						$cidades[] = $results->Cidade;
				}
			}
			if(!empty($cidades)){
				$this->addError('regioescidades', $this->getAttributeLabel('regioescidades') . ': Algumas cidades já pertencem a uma Unidade de Negócios.');
				Yii::app()->user->setFlash('erro-regioescidades', 'As seguintes cidades já pertencem a uma Unidade de Negócios: ' . implode(', ', $cidades));
				return false;	
			}
		}
        $this->LAST_UPDATE = date('Y-m-d H:i:s');
		return true;
	}

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

		$criteria->compare('REG_IDREGIAO', $this->REG_IDREGIAO);
		$criteria->compare('REG_DESCRICAO', utf8_decode($this->REG_DESCRICAO), true);
		$criteria->compare('REG_PERCOMISSAO', $this->REG_PERCOMISSAO);
		$criteria->compare('REG_PERMETA', $this->REG_PERMETA);
		$criteria->compare('REG_VLRMETA', $this->REG_VLRMETA);
		$criteria->compare('REG_IDREVENDA', $this->REG_IDREVENDA);
		$criteria->compare('REG_IDFUNCIONARIO', $this->REG_IDFUNCIONARIO);
		$criteria->compare('REG_IDUSUARIO', $this->REG_IDUSUARIO);
		$criteria->compare('REG_DTALTERACAO', $this->REG_DTALTERACAO, true);
		$criteria->compare('REG_SITUACAO', $this->REG_SITUACAO, true);

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