<?php

class Produto_Form_VariedadesCiclos extends Agro_Form {
	
	public function init() {
		
		$this->addElement('hidden', 'id', array(
			'decorators' => $this->elementDecorator
		));
		
		$Safra = new Produto_Model_Safras();
		$this->addElement('select', 'id_safra', array(
			'MultiOptions' => $Safra->getCombo(),
			'decorators' => $this->elementDecorator,
			'label' => 'Safra',
			'required' => true
		));
		
		$Regiao = new Sistema_Model_Regioes();
		$this->addElement('select', 'id_regiao', array(
			'MultiOptions' => $Regiao->fetchPairs('id', 'ds_nome_regiao'),
			'decorators' => $this->elementDecorator,
			'label' => 'Região',
			'required' => false
		));
		
		$this->addElement('select', 'id_produto', array(
			'MultiOptions' => array('0' => ' --- Selecione um produto --- '),
			'decorators' => $this->elementDecorator,
			'RegisterInArrayValidator' => false,
			'label' => 'Produto',
			'required' => true
		));
		
		$Variedade = new Produto_Model_Variedades();
		$this->addElement('select', 'id_variedade', array(
			'MultiOptions' => array('0' => ' --- Selecione um produto --- '),
			'decorators' => $this->elementDecorator,
		    'RegisterInArrayValidator' => false,
			'label' => 'Variedade',
			'required' => true
		));
		
		$Ciclo = new Produto_Model_Ciclos();
		$this->addElement('select', 'id_ciclo', array(
			'decorators' => $this->elementDecorator,
			'MultiOptions' => $Ciclo->getCombo(),
			'label' => 'Ciclo',
			'required' => true
		));
		
		$Estado = new Sistema_Model_Estados();
		$this->addElement('select', 'id_estado', array(
			'decorators' => $this->elementDecorator,
			'MultiOptions' => $Estado->getCombo('ds_nome_estado'),
			'label' => 'Estado',
			'required' => true
		));
		
	}
	
	public function populate(array $values) {

		if ($values['id_produto'] && $values['id_variedade']) {
			$Variedades = new Produto_Model_Variedades();
			$Variedade = $Variedades->find($values['id_variedade'])->current();

			$this->id_variedade->addMultiOptions($Variedades->getCombo($values['id_produto']));
		}

		if ($values['id_produto']) {
			$safraModel = new Produto_Model_Safras;
			$safra = $safraModel->getSafraByProduto($values['id_produto']);
			$produtos = $safraModel->getComboProdutoSafraRequest($safra);

			$this->id_produto->addMultiOptions($produtos);
			$values['id_safra'] = $safra;
		}
		
		parent::populate($values);
	}
}