<?php

class Produto_Model_ValidacoesCapacidadeUsuarios extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'validacoes_limites_capacidade_usuarios';
	protected $_primary = array('id_grupo_limite_capacidade','id_usuario');
	public $_paginator = false;

	public function save($idValidacao, $idUsuario) {
		$Row = $this->find($idValidacao, $idUsuario)->current();

		if (!$Row) $Row = $this->createRow();

		$Row->id_grupo_limite_capacidade = $idValidacao;
		$Row->id_usuario = $idUsuario;

		return $Row->save();
	}

	public function clearUsuarios($id) {
		try {
			return $this->_db->query("delete from produto.validacoes_limites_capacidade_usuarios where id_grupo_limite_capacidade=$id");
		} catch (Exception $e) {
			return false;
		}
	}
	
	public function clearUsuariosByUsuario($id_usuario) {
		try {
			
			return $this->_db->query("delete from produto.validacoes_limites_capacidade_usuarios where id_grupo_limite_capacidade=$id_usuario");
		} catch (Exception $e) {
			return false;
		}
	}

	public function getUsuariosRelacionados($idValidacao) {
		$select = $this->select()->distinct(true)->setIntegrityCheck(false);
		$select->where('id_grupo_limite_capacidade = ?', $idValidacao);

		$ret = array();
		$Rs = $this->fetchAll($select);
		if ($Rs->count()) {
			foreach ($Rs as $Row) {
				$ret[] = $Row->id_usuario;
			}
		}

		return $ret;
	}

	public function getValidacoesByUsuario($id) {
		return $this->fetchAll("id_usuario = ".$id)->toArray();
	}

	/* Para cada novo corretor/preposto inserido no sistema,
	 * essa função irá percorrer todos os grupo capacidade que tenham
	* como configuração de vínculo correto/preposto a opção todos ou a opção todos exceto selecionados.
	* O novo corretor/preposto inserido irá, automaticamente, estar incluso
	* neste grupo.
	*/
	public function addCorretorPreposto($id, $grupos='') {
		$v_capacidade = array();
		$ModelCapacidade = new Produto_Model_Validacoescapacidade();

		if (is_array($grupos)) {
			foreach($grupos as $g) {
				array_push($v_capacidade,$g['id_grupo_limite_capacidade']);
			}
			$capacidades = $ModelCapacidade->fetchAll("id in (".implode(',',$v_capacidade).")")->toArray();
		} else {
			$capacidades = $ModelCapacidade->fetchAll("tipo_corretor_vinculo in ('t', 'e')")->toArray();
		}
		foreach ($capacidades as $capacidade) {
			$this->save($capacidade['id'], $id);
		}
	}
}
