<?php

/**
 * This is the model base class for the table "valores".
 * 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 "Valores".
 *
 * Columns in table "valores" available as properties of the model,
 * and there are no model relations.
 *
 * @property integer $VAL_IDVALOR
 * @property integer $VAL_IDMODULO
 * @property string $VAL_DTCADASTRO
 * @property integer $VAL_VLRIMPLANTACAO
 * @property integer $VAL_VLRMENSAL
 * @property integer $VAL_HRSIMPLANTACAO
 * @property integer $VAL_ACRESCLOCACAO
 * @property integer $VAL_ACRESCADENDO
 * @property integer $VAL_PARCELAS
 * @property integer $VAL_DESCMAX
 * @property boolean $VAL_DEFAULT
 *
 */
class Valores extends GxActiveRecord {

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

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

	public static function label($n = 1) {
		return Yii::t('app', 'Tabela de Preços|Tabelas de Preços', $n);
	}

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

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

	public function rules() {
		return array(
			array('VAL_IDVALOR', 'safe'),
			
			array('VAL_DTCADASTRO, VAL_VLRIMPLANTACAO, VAL_VLRMENSAL, VAL_HRSIMPLANTACAO, VAL_ACRESCLOCACAO, VAL_DESCMAX, VAL_IDMODULO', 'required'),

			array('VAL_ACRESCADENDO', 'required', 'on' => 'normal'),

			array('VAL_DEFAULT', 'possuiTabela'),
			array('VAL_HRSIMPLANTACAO,  VAL_PARCELAS, VAL_DESCMAX, VAL_IDMODULO, VAL_DEFAULT', 'numerical', 'integerOnly' => true),
			array('VAL_PARCELAS, VAL_DEFAULT', 'default', 'setOnEmpty' => true, 'value' => null),

			array('VAL_IDVALOR, VAL_DTCADASTRO, VAL_VLRIMPLANTACAO, VAL_VLRMENSAL, VAL_HRSIMPLANTACAO, VAL_ACRESCLOCACAO, VAL_ACRESCADENDO, VAL_PARCELAS, VAL_DESCMAX, VAL_DEFAULT', 'safe', 'on' => 'search'),
		);
	}

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

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

	public function attributeLabels() {
		return array(
			'VAL_IDVALOR'        => 'Código',
			'VAL_DTCADASTRO'     => 'Data de cadastro',
			'VAL_VLRIMPLANTACAO' => 'Valor implantação',
			'VAL_VLRMENSAL'      => 'Valor mensal',
			'VAL_HRSIMPLANTACAO' => 'Tempo máximo de implantação',
			'VAL_ACRESCLOCACAO'  => 'Multi-usuário: Acréscimo na hora da locação',
			'VAL_ACRESCADENDO'   => 'Multi-usuário: Acréscimo na geração de adendos',
			'VAL_DESCMAX'        => 'Desconto máximo permitido %',
			'VAL_PARCELAS'       => 'Número de parcelas para pedido de implantação',
			'VAL_DEFAULT'        => 'Usar estes valores para novos contratos',
		);
	}

	protected function beforeSave() {
		parent::beforeSave();
		$this->VAL_VLRMENSAL      = Util::convertDecimal($this->VAL_VLRMENSAL);
		$this->VAL_VLRIMPLANTACAO = Util::convertDecimal($this->VAL_VLRIMPLANTACAO);
		$this->VAL_ACRESCLOCACAO  = Util::convertDecimal($this->VAL_ACRESCLOCACAO);
		$this->VAL_ACRESCADENDO   = Util::convertDecimal($this->VAL_ACRESCADENDO);
		return true;
	}

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

		$criteria->compare('VAL_IDMODULO', $this->VAL_IDMODULO);

		return new CActiveDataProvider($this, array(
				'criteria'   => $criteria,
				'sort'       => array('defaultOrder' => 'VAL_DEFAULT DESC, VAL_IDVALOR desc'),
				'pagination' => array('pageSize' => 20)
			)
		);
	}

	public function possuiTabela($attribute, $params) {
		if (!$this->isNewRecord) {
			$default = $this->find('VAL_DEFAULT = 1 and VAL_IDMODULO = '.$this->VAL_IDMODULO);
			if ($this->VAL_IDVALOR == $default->VAL_IDVALOR && $this->VAL_DEFAULT != 1) {
				$this->addError($attribute, 'Para desmarcar esta opção, antes você precisa escolher outra tabela de valores como padrão.');
			}
		}
	}
}