<?php

class Produto_Model_ValidacoesVariedadeDensidade extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'validacoes_grupo_densidade';
	protected $_primary = 'id';
	public $_paginator = false;
	public $_order = 'ds_nome_grupo_densidade';

	
	public function getData($where=false) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		
		$select->from(array("v" => "{$this->_schema}.{$this->_name}"));
		
		if (is_array($where)) {
			foreach ($where as $clause) {
				if (is_array($clause)) {
					$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;
	}
	
	public function getCheckBoxVariedadesCulturas($id_culturas, $id) {
		$sql = "
				select 
					v.id,
					v.ds_nome_variedade 
				from 
					produto.variedades v inner join
					produto.culturas_variedades cv on v.id = cv.id_variedade
				where
					cv.id_cultura in ($id_culturas) and 
					v.id not in 
						(select 
							id_variedade
						 from 
						 	produto.validacoes_grupo_variedade_variedades
						 where 
						 	id_grupo_variedade = $id)";
		$Rs = $this->_db->fetchAll($sql);
		return $Rs;
	}
	
	public function setAtivo($id) {
		$Row = $this->getRow($id);
		
		if($Row['fl_ativo'] == 0) 
			$Row['fl_ativo'] = 'true';
		else 
			$Row['fl_ativo'] = 'false';
		if($Row->save()) {
			return true;
		} else {
			return false;
		}
	}
	
	public function deleteRelacoes($id_grupo,$id_validacao) {
		$this->_db->query("DELETE FROM produto.validacoes_grupo_variedade_variedades 
						   WHERE id_grupo_variedade = {$id_grupo}");
	}
	

	public function save(array $values) {
		$sql = "SELECT id,ds_nome_grupo_densidade FROM produto.validacoes_grupo_densidade WHERE id = '".$values['id_grupo_densidade']."'  
				AND id_validacao = '".$values['id_validacao']."'
				";
		$Rs = $this->_db->fetchAll($sql);

		$Data['ds_nome_grupo_densidade'] = $Rs[0]['ds_nome_grupo_densidade'];
		$Data['vl_densidade_minima'] = $values['vl_densidade_minima'];
		$Data['vl_densidade_maxima'] = $values['vl_densidade_maxima'];
		$Data['id_validacao'] = $values['id_validacao'];
		$Data['id_grupo_portaenxerto'] = 0;
		$Data['id'] = $Rs[0]['id'];

		try {
			$this->update($Data, 'id = ' . $Data['id']);

		} catch(Exception $e) {
			return false;
		}
	}

	public function getGrupos($idValidacao){
		return $this->fetchPairs('id', 'ds_nome_grupo_densidade', false, false, 1, 'id_validacao = '.$idValidacao, true, 'ASC');
	}	
	
	
}