<?php

class FuncionariosProjetos extends GxActiveRecord {

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

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

	public static function label($n = 1) {
		return Yii::t('app', 'Funcionario X Projeto|Funcionarios X Projetos', $n);
	}

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

	public function rules() {
		return array(
			array('FRP_IDFUNCIONARIO, FRP_IDPROJETO', 'required'),
			array('FRP_IDFUNCIONARIO, FRP_IDPROJETO', 'numerical', 'integerOnly'=>true),
			array('FRP_ID, FRP_IDFUNCIONARIO, FRP_IDPROJETO', 'safe', 'on'=>'search'),
		);
	}

	public function relations() {
		return array(
			'Projeto'		=> array(self::BELONGS_TO, 'Projetos', 'FRP_IDPROJETO'),
			'Funcionario'	=> array(self::BELONGS_TO, 'Funcionarios', 'FRP_IDFUNCIONARIO'),
		);
	}

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

	public function attributeLabels() {
		return array(
			'FRP_ID' 			=> 'Código',
			'FRP_IDFUNCIONARIO' => 'Funcionário',
			'FRP_IDPROJETO' 	=> 'Projeto',
			'Projeto'			=> 'Projeto',
			'Funcionario' 		=> 'Funcionário',
		);
	}

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

		$criteria->compare('FRP_ID', $this->FRP_ID);
		$criteria->compare('FRP_IDFUNCIONARIO', $this->FRP_IDFUNCIONARIO);
		$criteria->compare('FRP_IDPROJETO', $this->FRP_IDPROJETO);

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

	public function getIds($idFuncionario) {
		$data = FuncionariosProjetos::model()->findAll('FRP_IDFUNCIONARIO=:RedId', array(':RedId' => $idFuncionario));
        return CHtml::listData($data, 'FRP_ID', 'FRP_IDPROJETO');
	}

	public function getProjetos($idFuncionario, $not = array()) {
		if(!$this->getIds($idFuncionario)) {
			return array();
		}
		$condition = array();
		$condition[] = 'PRO_IDPROJETO in('.implode(',', $this->getIds($idFuncionario)).')';
		if(!empty($not)) {
			$condition[] = 'PRO_IDPROJETO not in('.implode(',', $not).')';
		}
		$condition = implode(' AND ', $condition);
		$condition .= ' ORDER BY PRO_PROJETO ASC';
		$data = Projetos::model()->findAll($condition);
        return ($data) ? CHtml::listData($data, 'PRO_IDPROJETO', 'PRO_PROJETO') : array();
	}
}