<?

class Produto_Model_LaudosFinais extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'produtos_coberturas_laudo_final';
	protected $_primary = array('id_produto', 'id_cobertura');
	protected $_sequence = false;
	public $_order = 'id_produto';
	public $_columnExcel = array(
		'ds_nome_produto' => 'Produto',
		'ds_nome_cobertura' => 'Cobertura',
		'ds_controller' => 'Controller'
	);
	
    public function delete($id_produto, $id_cobertura) {
            
        $select = $this->select();
        $select->setIntegrityCheck(false);
        $select->from($this->_schema.'.'.$this->_name, 'id');
        $select->where('id_produto = ?', $id_produto);
        $select->where('id_cobertura = ?', $id_cobertura);
        
        if($this->fetchRow($select)) {
            return parent::delete($this->fetchRow($select)->id);
        }
    }
    
	public function getController($idProduto, $idCobertura){
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('pc'=>$this->_schema.'.'.$this->_name), 'ds_controller');
		$select->join(array('p'=>$this->_schema.'.produtos'), 'p.id = pc.id_produto', false);
		$select->join(array('c'=>$this->_schema.'.coberturas'), 'c.id = pc.id_cobertura', false);
		$select->where('pc.id_produto = ?', $idProduto);
		$select->where('pc.id_cobertura = ?', $idCobertura);
		
		return $this->_db->fetchOne($select);
	}
	
	public function getData($where=false) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('pc'=>$this->_schema.'.'.$this->_name), '*');
		$select->join(array('p'=>$this->_schema.'.produtos'), 'p.id = pc.id_produto', 'ds_nome_produto');
		$select->join(array('c'=>$this->_schema.'.coberturas'), 'c.id = pc.id_cobertura', 'ds_nome_cobertura');
		
		if ($this->_order) {
			$select->order($this->_order);
		}
		
		if (is_array($where)) {
			foreach ($where as $clause) {
				if (is_array($clause)) {
					if ($clause['field'] == 'fl_ativo') {
						$clause['field'] = 'pgc.fl_ativo';
					}
					$field = $clause['field'];
					$operator = $clause['operator'];
					$value = $clause['value'];
					
					$select->where("$field $operator ?", $value);
				} else {
					$select->where($clause, '');
				}
			}
		} elseif ($where != '') {
			$select->where($where);
		}

		return $select;
	}
}