<?php

class Produto_Model_ValidacoesSubvencaoGruposUsuarios extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'validacoes_limites_subvencao_grupos_usuarios';
	protected $_primary = array('id_validacao_subvencao_grupo','id_usuario');
	public $_paginator = false;

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

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

		$Row->id_validacao_subvencao_grupo = $idGrupo;
		$Row->id_usuario = $idUsuario;

		return $Row->save();
	}

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

	public function getUsuariosRelacionados(int $idGrupo)
    {
        $select = $this->select()->setIntegrityCheck(false)->distinct();
        $select->from(array('p' => 'sistema.corretores'), array('id_usuario', 'ds_nome_abreviado'));
        $select->join(
            array('v' => 'produto.validacoes_limites_subvencao_grupos_usuarios'),
            'p.id_usuario = v.id_usuario',
            null
        );
        $select->where('v.id_validacao_subvencao_grupo = ?', $idGrupo);
        $select->order('ds_nome_abreviado');
        $rs = $this->fetchAll($select);

        $ret = array();
        if ($rs->count()) {
            foreach ($rs as $Row) {
                $ret[$Row->id_usuario] = $Row->ds_nome_abreviado;
            }
        }

        return $ret;
    }
}