<?php

class Produto_Model_AtributoGrupoUsuarios extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'produtos_grupos_atributos_rn_usuarios';
	protected $_primary = array('id_grupo_atributo_rn', 'id_usuario');
	
	public function save($values) {
		$Row = $this->find($values['id_grupo_atributo_rn'], $values['id_usuario'])->current();
		if (!$Row) { $Row = $this->createRow(); } 
		
		$Row->id_grupo_atributo_rn = $values['id_grupo_atributo_rn'];
		$Row->id_usuario = $values['id_usuario'];
		
		return $Row->save();
	}
	
	public function clearGrupo($grupo) {
		return $this->_db->query("delete from produto.produtos_grupos_atributos_rn_usuarios where id_grupo_atributo_rn = $grupo");
	}

	public function getUsuariosByProduto($idProduto, $dsTipo = '')
	{	
		$select = $this->select()->setIntegrityCheck(false);
        $select->from(array('pgau' => 'produto.produtos_grupos_atributos_rn_usuarios'), array('pgau.id_usuario'));
        $select->join(array('pga' => 'produto.produtos_grupos_atributos_rn'), 'pga.id = pgau.id_grupo_atributo_rn', array('pga.id', 'pga.ds_nome_grupo'));
        $select->join(array('su' => 'sistema.usuarios'), 'su.id = pgau.id_usuario', array('su.ds_nome_usuario'));
        $select->joinLeft(array('sc' => 'sistema.corretores'), 'sc.id_usuario = su.id', array('sc.ds_nome_corretor'));
        $select->joinLeft(array('sp' => 'sistema.prepostos'), 'sp.id_usuario = su.id', array('sp.ds_nome_preposto'));
        $select->where('pga.id_produto = ?', $idProduto);

        if (!empty($dsTipo)) {
            $select->where('pga.ds_tipo = ?', $dsTipo);
        }

        $select->order("pga.id");

        $rs = $this->fetchAll($select)->toArray();

        $return = array();
        foreach ($rs as $row) {
        	$return[$row['id']]['usuarios'][$row['id_usuario']] = $row;
        }

        return $return;
	}
}

