<?php

/**
 * This is the model base class for the table "clientes_vinculados".
 * 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 "ClientesVinculados".
 *
 * Columns in table "clientes_vinculados" available as properties of the model,
 * followed by relations of table "clientes_vinculados" available as properties of the model.
 *
 * @property integer $VIN_IDVINCULO
 * @property integer $VIN_IDCLIENTE
 * @property integer $VIN_VINCULO
 *
 * @property Clientes $Cliente
 */
class ClientesVinculados extends GxActiveRecord {
	public $registraAtividade = true;
	
	public static function model($className=__CLASS__) {
		return parent::model($className);
	}

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

	public static function label($n = 1) {
		return Yii::t('app', 'Cliente Vinculado|Clientes Vinculados', $n);
	}

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

	public function rules() {
		return array(
			array('VIN_IDCLIENTE, VIN_VINCULO', 'required'),
			array('VIN_IDCLIENTE, VIN_VINCULO', 'numerical', 'integerOnly'=>true),
			array('VIN_IDVINCULO, VIN_IDCLIENTE, VIN_VINCULO', 'safe', 'on'=>'search'),
		);
	}

	public function relations() {
		return array(
			'Cliente' 	=> array(self::BELONGS_TO, 'Clientes', 'VIN_IDCLIENTE'),
			'Vinculado' => array(self::BELONGS_TO, 'Clientes', 'VIN_VINCULO'),
		);
	}

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

	public function attributeLabels() {
		return array(
			'VIN_IDVINCULO' => 'Código',
			'VIN_IDCLIENTE' => 'Cliente',
			'VIN_VINCULO' 	=> 'Cliente Vinculado',
			'Cliente' 		=> 'Cliente',
			'Vinculado' 	=> 'Cliente Vinculado',
		);
	}

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

		$criteria->compare('VIN_IDVINCULO', $this->VIN_IDVINCULO);
		$criteria->compare('VIN_IDCLIENTE', $this->VIN_IDCLIENTE);
		$criteria->compare('VIN_VINCULO', $this->VIN_VINCULO);

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

	public function afterSave() {
		parent::afterSave();
		$this->registraAtividade();
        return true;
	}

	public function afterDelete() {
		parent::afterDelete();
		$this->registraAtividade('desvinculado');
        return true;
	}

	private function registraAtividade($action = 'vinculado') {
		$vinculado = Clientes::model()->findByPk($this->VIN_VINCULO);
		$cliente = Clientes::model()->findByPk($this->VIN_IDCLIENTE);
		if(!$this->registraAtividade) {
			return;
		}
		$atendimento = new Atendimentos;
        $atendimento->ATD_IDCLIENTE = $this->VIN_IDCLIENTE;
        $atendimento->ATD_IDFUNCIONARIO = User::getId();
        $atendimento->ATD_DTLANCAMENTO = date('Y-m-d H:i:s');
        $atendimento->ATD_DTCADASTRO = date('d/m/Y');
        $atendimento->ATD_HORAINICIO = date('H:i:s');
        $atendimento->ATD_HORAFINAL = date('H:i:s', strtotime('+1 minute'));
        $atendimento->ATD_TOTALHORAS = '00:01:00';
        $atendimento->ATD_IDMOTIVO = '70';
        $atendimento->ATD_SITUACAO = 'R';
        $atendimento->ATD_TIPO = 'O';
        $atendimento->ATD_AUTOMATICO = 1;
        $atendimento->ATD_OBS = "ATIVIDADE LANÇADA AUTOMATICAMENTE PELO CRM \r\n Cliente ".$vinculado->CLI_IDCLIENTE." - ".$vinculado->CLI_NOME." foi ".$action." ".($action=='vinculado'? 'ao': 'do')." cliente ".$cliente->CLI_IDCLIENTE." - ".$cliente->CLI_NOME." nesta data. \r\n";
        $atendimento->save(false, array('ATD_DTLANCAMENTO', 'ATD_IDCLIENTE', 'ATD_IDFUNCIONARIO', 'ATD_DTCADASTRO', 'ATD_HORAINICIO', 'ATD_HORAFINAL', 'ATD_TOTALHORAS', 'ATD_IDMOTIVO', 'ATD_SITUACAO', 'ATD_TIPO', 'ATD_OBS', 'ATD_AUTOMATICO'));
	}
}
