<?php

class Sistema_RolemenuController extends Agro_Controller_Action {
	public function init() {
		$this->view->title = 'Gerência de Perfis » Relacionar Ações';
	}

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

	public function getForm() {
		return new Sistema_Form_RoleMenu();
	}

	public function permissoesAction()
    {
        $this->isAjax(true);

        $model = new Sistema_Model_Acoes();
        $acoes = $model->fetchAll()->toArray();
        $id = !Agro_Util::filterVariable($this->getRequest()->getParam('id'))
            ? 0
            : (int)$this->getRequest()->getParam('id');

        $this->view->checked = array();
        $this->view->id_perfil = $id;

        foreach ($acoes as $acao) {
            if ($model->checkRoleAllowed($id, (int)$acao["id"])) {
                $this->view->checked[] = $acao["id"];
            }
        }
    }
	
	public function setpermissoesAction() {
		$this->isAjax(false);
	
		Zend_Db_Table::getDefaultAdapter()->beginTransaction();

		try {
			$params = $this->getRequest()->getParams();

			$Model = new Sistema_Model_RolesAcao();
			$ModelAcao = new Sistema_Model_Acoes();

			$Model->clear($params['id_perfil']);
				
			foreach ($params["id_acao"] as $id_acao){
				$Model->save(array(
					'id_acao' => $id_acao,
					'id_role' => $params['id_perfil'],
					'fl_permitido' => 1
				));
			}
			
			Zend_Db_Table::getDefaultAdapter()->commit();
			$result = array("status" => true, "message" => "Perfil atualizado com sucesso!");
	
	
		} catch (Exception $e) {
			
			Zend_Db_Table::getDefaultAdapter()->rollBack();
			//Agro_Util::informaErroAgronet($e->getMessage());
			$result = array("status" => false, "message" => "Não foi possível atualizar o perfil.");
		}
	
		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
		
	/* 
	public function indexAction() {
		$params = $this->getRequest()->getParams();
		
		$ModelPerfil = new Sistema_Model_Roles();
		
		$Perfil = $ModelPerfil->find($params['id'])->current();
		
		$this->view->title .= " » $Perfil->ds_nome_role ";
		
		if ($this->getRequest()->isPost()) {
			$Model = new Sistema_Model_RolesAcao();
			$ModelAcao = new Sistema_Model_Acoes();
			
			Zend_Db_Table::getDefaultAdapter()->beginTransaction();
			
			try {
				$Model->clear($params['id']);
				
				foreach ($params["id_acao"] as $id_acao){
					$Model->save(array(
						'id_acao' => $id_acao,
						'id_role' => $params['id'],
						'fl_permitido' => 1
					));
				}
				
				Zend_Db_Table::getDefaultAdapter()->commit();
				$this->view->showMessage("Perfil atualizado com sucesso", 'success');
				
			} catch (Exception $e) {
				Zend_Db_Table::getDefaultAdapter()->rollBack();
				Agro_Util::informaErroAgronet($e->getMessage());
				$this->view->showMessage("Não foi possível atribuir ações ao perfil", 'error');
			}
		}
		
		$this->view->form = $this->getForm();
		$this->view->form->populate($this->getRequest()->getParams());
		
		$Select = Zend_Db_Table::getDefaultAdapter()->select();
		$Select->from(array("ra" => "sistema.roles_acao"), array("id_acao"));
		$Select->where("id_role=".$params['id']);
		
		$Row = Zend_Db_Table::getDefaultAdapter()->fetchAll($Select);
		
		$checked = array();
		
		foreach ($Row as $row){
			$checked[] = $row["id_acao"];
		}
		
		$this->view->checked = $checked;
	} */
}