<?php

class Produto_ValidacoessubvencaoController extends Agro_Controller_Action {

	public function init() {
		$this->view->id_validacao = $this->getRequest()->getParam('id_validacao');
		$this->id_validacao = $this->getRequest()->getParam('id_validacao');

		$ModelValidacao = new Produto_Model_Validacoes();
		$Validacao = $ModelValidacao->find($this->id_validacao)->current();
		$this->view->title = "Produto » Cadastro » Validações » Configurar » $Validacao->ds_nome_validacao";
		$this->view->back = "/produto/validacoes";

	}

	public function getModel() {
		return new Produto_Model_ValidacoesSubvencao();
	}

	public function getForm() {
		$Form = new Produto_Form_ValidacoesSubvencao($this->getRequest()->getParam('id_safra'));
		$Form->populate($this->getRequest()->getParams());
		return $Form;
	}

	public function indexAction() {
		$this->view->id_validacao = $this->getRequest()->getParam('id_validacao');
		parent::indexAction();
	}

	public function getFilter() {
		$where = array();

		if ($this->getRequest()->getParam('id_cultura')) {
			$where[] = array(
				'field' => 'vls.id_cultura',
				'operator' => '=',
				'value' => $this->getRequest()->getParam('id_cultura')
			);
		}
		if ($this->getRequest()->getParam('id_corretor')) {
			if ($this->getRequest()->getParam('id_corretor')) {
				$where[] = array(
					'field' => 'vls.id_corretor',
					'operator' => '=',
					'value' => $this->getRequest()->getParam('id_corretor')
				);
			}
		}

		if ($this->getRequest()->getParam('fl_ativo')) {
			$where[] = array (
				'field' => 'vls.fl_ativo',
				'operator' => '=',
				'value' => $this->getRequest()->getParam('fl_ativo')
			);
		}
		return $where;
	}

	public function formAction() {
		$this->view->form = $this->getForm();
		$this->view->title .= ' » Formulário';
		$this->view->back = "/produto/validacoessubvencao/index/id_validacao/{$this->getRequest()->getParam("id_validacao")}";

		$Model = $this->getModel();

		$this->view->form->populate($this->getRequest()->getParams());

		if ($this->getRequest()->isPost()) {
			if ($this->view->form->isValid($this->getRequest()->getPost())) {
				if (method_exists($Model, 'save')) {
					if ($Model->save($this->getRequest()->getParams())) {
						$this->view->showMessage(MSG_SUCCESS, 'success');
						$this->_forward('index', 'validacoessubvencao', 'produto', array('id_validacao' => $this->getRequest()->getParam("id_validacao")));
					} else {
						$this->view->showMessage(MSG_ERROR, 'error');
					}
				} else {
					$this->save($this->getRequest()->getParams());
				}
			} else {
				$Errors = $this->view->form->getMessages();
				$this->view->showMessage($this->getHtmlFormError($Errors), 'error');
			}
		} else if ($this->getRequest()->getParam('id')) {
			$row = $this->getRow();
			$this->view->form->populate($row);
		}
	}

	public function relacionausuarioAction()
    {
        $this->getHelper('layout')->disableLayout();

        $id = !Agro_Util::filterVariable($this->getRequest()->getParam('id'))
            ? 0
            : (int)$this->getRequest()->getParam('id');

        $this->view->relacionados = (new Produto_Model_ValidacoesSubvencaoGruposUsuarios())->getUsuariosRelacionados(
            $id
        );
        $this->view->usuarios = (new Sistema_Model_Corretores())->getCheckUsuarios();
        $this->view->id = $id;
    }

	public function saverelacionamentousuarioAction() {
		$this->isAjax();

		$SubvencaoGruposUsuarios = new Produto_Model_ValidacoesSubvencaoGruposUsuarios();
		$SubvencaoGruposUsuarios->clearUsuarios($this->getRequest()->getParam('id'));

		if (is_array($this->getRequest()->getParam('usuarios'))) {
			foreach ($this->getRequest()->getParam('usuarios') as $idUser) {
				$SubvencaoGruposUsuarios->save($this->getRequest()->getParam('id'), $idUser);
			}
		}
		$this->getResponse()->setBody(Zend_Json::encode('Usuários relacionados com sucesso.'));
	}

}
