<?php

class Produto_Model_ProdutosGeral extends Agro_Db_Table_Abstract {
    const ID_TOMATE_INDUSTRIA = 41;

	protected $_schema = 'produto';
	protected $_name = 'produtos_geral';
	protected $_view = 'v_produtos_geral';
	protected $_primary = 'id';
	public $_order = 'ds_nome_produto_geral';
	
	public function getProdutosGeralbyProduto($idProduto){
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('pgtot' => 'produto.produtos_geral'), array('id', 'ds_nome_produto_geral'));
		$select->join(array('cu' => 'produto.culturas'),'pgtot.id_cultura = cu.id', null);
		$select->join(array('pg' => 'produto.produtos_geral'),'pg.id_cultura = cu.id', null);
		$select->join(array('pd' => 'produto.produtos'),'pd.id_produto_geral = pg.id', null);
		$select->where('pd.id in (?)', $idProduto);
	
		return $this->getDefaultAdapter()->fetchAll($select);
	}
	
	public function getProdutosGeralRelacionado($idProduto){
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('pg' => 'produto.produtos_produtos_geral_renovacao'), array('id_produto_geral'));
		$select->where('pg.id_produto = ?', $idProduto);
	
		return $this->getDefaultAdapter()->fetchAll($select);
	}
	
	public function getProdutosGeralRelacionadoSafrasFuturas($idProduto){
		//seleciona produto geral e safra do produto da proposta a ser renovada
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('p' => 'produto.produtos'), array('id_produto_geral', 'id_safra'));
		$select->where('p.id = ?', $idProduto);
		$rsProdutoGeral = $this->getDefaultAdapter()->fetchRow($select);
	
		//busca, em safras superiores, produtos relacionados ao mesmo produto geral do produto da proposta a ser renovada
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('p' => 'produto.produtos'), array('id'));
		$select->where('p.id_produto_geral = ?', $rsProdutoGeral['id_produto_geral']);
		$select->where('p.id_safra > ?', $rsProdutoGeral['id_safra']);
		$select->where('p.fl_ativo = true');
		$select->where('p.fl_del = false');
		$rsProduto = $this->getDefaultAdapter()->fetchAll($select);
	
		unset($stProduto);
		if(is_array($rsProduto)){
			foreach($rsProduto as $produto){
				$arProdutos[] = $produto['id'];
			}
			$stProduto = implode(",", $arProdutos);
		}
	
		if($stProduto){
			$select = $this->select()->setIntegrityCheck(false)->distinct(true);
			$select->from(array('pg' => 'produto.produtos_produtos_geral_renovacao'), array('id_produto_geral'));
			$select->where('pg.id_produto in ('.$stProduto.')' );
		} else {
			$select = $this->select()->setIntegrityCheck(false);
			$select->from(array('pg' => 'produto.produtos_produtos_geral_renovacao'), array('id_produto_geral'));
			$select->where('pg.id_produto = ?', $idProduto);
		}
	
		return $this->getDefaultAdapter()->fetchAll($select);
	}
}