<?php

class Produto_Model_ValidacoesVariedades extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'validacoes_grupo_variedade';
	protected $_primary = 'id';
	public $_paginator = false;
	public $_order = 'ds_nome_grupo_variedade';


	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 save($data) {
        $Row = $this->getRow($data['id']);

        $Row->id_validacao = $data['id_validacao'];
        $Row->ds_nome_grupo_variedade = $data['ds_nome_grupo_variedade'];

        $Row->save();

        return $Row->save();
    }

	public function getCheckBoxVariedadesCulturas($id_culturas, $id, $id_validacao) {
		$sql = "
				select
					v.id,
					v.ds_nome_variedade,
					grupo.id_grupo_variedade,
					vgv.ds_nome_grupo_variedade
				from
					produto.variedades v inner join
					produto.culturas_variedades cv on v.id = cv.id_variedade left join
					produto.validacoes_grupo_variedade_variedades grupo on (grupo.id_variedade = v.id and grupo.id_grupo_variedade <> $id) left join
					produto.validacoes_grupo_variedade vgv on grupo.id_grupo_variedade = vgv.id and vgv.id_validacao = $id_validacao
				where
					cv.id_cultura in ($id_culturas)
				group by
					1,2,3,4";

		$Rs = $this->_db->fetchAll($sql);
		return $Rs;
	}


	public function setAtivo($id) {
		$Row = $this->getRow($id);

		if($Row['fl_ativo'] == 0)
			$Row['fl_ativo'] = 1;
		else{
			$Row['fl_ativo'] = 0;
		}
		if($Row->save()) {
			return true;
		} else {
			return false;
		}
	}

	public function getCombo($first=true,$field=null, $id_validacao=null) {
		$where = 'fl_ativo = true';
		if($id_validacao != null) {
			$where .= " and id_validacao = $id_validacao";
		}
		$Rs = $this->fetchAll($where, $this->_order)->toArray();

		$options = array();
		if (is_array($Rs)) {
			if ($first) {
				$options[''] = '';
			}

			$field = $field ? $field : $this->_order;
			foreach ($Rs as $row) {
				$options[$row['id']] = $row[$field];
			}

			return $options;
		} else {
			return false;
		}
	}

	public function getGrupoVariedade($idVariedade,$idValidacao) {
		$Select = $this->select()->distinct(true);
		$Select->setIntegrityCheck(false);
		$Select->from(array('vgvv'=>'produto.validacoes_grupo_variedade_variedades'), 'id_grupo_variedade');
		$Select->join(array('vgv' => 'produto.validacoes_grupo_variedade'), 'vgvv.id_grupo_variedade = vgv.id', null);
		$Select->where('vgvv.id_variedade = ?', $idVariedade);
		$Select->where('vgv.id_validacao = ?', $idValidacao);

		return $this->getDefaultAdapter()->fetchOne($Select);
	}

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