<?php

class Sistema_ExcecaousuarioController extends Agro_Controller_Action {
	
	public function init() {
		$this->view->title = 'Gerência de Exceções de Ação por Usuário';
		
		$Usuarios = new Sistema_Model_Usuarios();
		$Usuario = $Usuarios->find($this->getRequest()->getParam('id'))->current();
		
		switch ($Usuario->tp_usuario) {
			case 'F':
				$this->view->back = '/sistema/funcionario';
				break;
			case 'C':
				$this->view->back = '/sistema/corretor';
				break;
			case 'P':
				$this->view->back = '/sistema/preposto';
				break;
		}
		
	}
	
	public function getModel() {
		return new Sistema_Model_ExcecaoUsuario();
	}
	
	public function getForm() {
		return new Sistema_Form_ExcecaoUsuario();
	}
	
	public function indexAction() {
		if ($this->getRequest()->getParam('id')) {
			$this->view->form = $this->getForm();
			$this->view->form->populate($this->getRequest()->getParams());
			$this->view->radio = $this->view->form->getMenusUsuario($this->getRequest()->getParam('id'));
		}
		
		if ($this->getRequest()->isPost()) {
			$Model = new Sistema_Model_ExcecaoUsuario();
			try {
				$acoes = array();
				$insert = array();
				$insert['id_usuario'] = $this->getRequest()->getParam('id');
				foreach ($this->getRequest()->getParam('menus') as $id_acao => $permitido) {
					
					$insert['id_acao'] = $id_acao;
					$acoes[] = $id_acao;
					$insert['fl_permitido'] = "true";

					$Model->save($insert);
				}
				//busca o resto das ações (acoes que foram desmarcadas)
				$arrAcoes = $Model->getExceptions($acoes);
				foreach ($arrAcoes as $chave => $val) {
					
					$insert['id_acao'] = $val['id'];
					$insert['fl_permitido'] = "false";

					$Model->save($insert);
				}
				
				$this->view->showMessage(MSG_SUCCESS, 'success');
			} catch (Exception $e) {
				$this->view->showMessage(MSG_ERROR, 'error');
			}
		}
	}
}