public function icView($id)
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'session'));
     $this->load->helper(array('form'));
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('view_ic', $this->session->userdata('user_ic'))) {
         echo "Você não tem permissão para realizar este procedimento.";
         exit;
     }
     /*
      * Retrieving the IC
      */
     $g = R::findOne('ic', 'id=? AND active!="no" ', array($id));
     /*
      * Can user access this IC?
      */
     $tmp = R::findOne('ic', 'id=?', array($this->session->userdata('user_ic')));
     if ($tmp->master != 'yes') {
         if ($this->session->userdata('user_ic') != $id) {
             $this->session->set_flashdata('error', 'Você não tem autorização realizar esta ação neste Centro de Informação');
             redirect('dashboard/ic');
         }
     }
     /*
      * Verifying if ic exists
      */
     if ($g == NULL) {
         $this->session->set_flashdata('error', 'O centro de informação solicitado para visualização não existe.');
         redirect('dashboard/ic');
     }
     /*
      * Loading views
      */
     $this->load->view('dashboard/template/header');
     $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
     $this->load->view('dashboard/ic/view', array('ic' => $g));
     $this->load->view('dashboard/template/footer');
 }
 public function userView($id)
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'session'));
     $this->load->helper(array('form'));
     /*
      * User is logged ?
      */
     if (!parent::_isLogged()) {
         redirect('dashboard');
         exit;
     }
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('view_user', $this->session->userdata('user_ic'))) {
         $this->session->set_flashdata('error', 'Você não tem autorização para visualizar um usuário.');
         redirect('dashboard');
         exit;
     }
     /*
      * Finding the user
      */
     $user = R::findOne('user', 'id=? AND active!="no" ', array($id));
     /*
      * Verifying if user exists
      */
     if ($user == NULL) {
         $this->session->set_flashdata('error', 'O usuário solicitado para visualização não existe.');
         redirect('dashboard/user');
         exit;
     }
     /*
      * Verifying if user exists
      */
     $this->load->view('dashboard/template/header');
     $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
     $this->load->view('dashboard/user/view', array('user' => $user));
     $this->load->view('dashboard/template/footer');
 }
 public function answeredView($id = NULL)
 {
     /*
      * Loading libraries
      */
     $this->load->library(array('rb', 'session'));
     $this->load->helper(array('form'));
     /*
      * User is logged?
      */
     if (!parent::_isLogged()) {
         redirect('dashboard');
         exit;
     }
     /*
      * Verify if user has autority to view the ic's
      */
     if (!parent::_hasAuth('view_request', $this->session->userdata('user_ic'))) {
         echo "Você não tem permissão para realizar este procedimento.";
         exit;
     }
     /* 
      * If $id is NULL, then load all answered requests. Otherwise, show only the specified request
      */
     if ($id == NULL) {
         /* 
          * Verify if the user is logged in MASTER IC or not. If it's the MASTER IC
          * then it shows all the Requests, otherwise, only show Requests from actual IC.
          */
         $requests = null;
         $isMasterIc = R::count('ic', 'id=? AND master="yes" ', array($this->session->userdata('user_ic')));
         if ($isMasterIc) {
             $rows = R::getAll('
                 SELECT r.* FROM request AS r 
                 JOIN status AS s ON s.request_id = r.id
                 WHERE s.type = "request_replied" AND s.current = "Y"
             ');
             $requests = R::convertToBeans('request', $rows);
         } else {
             $rows = R::getAll('
                 SELECT r.* FROM request AS r 
                 JOIN status AS s ON s.request_id = r.id
                 WHERE s.type = "request_replied" AND s.current = "Y" AND s.ic_id = ?
                 ', array($this->session->userdata('user_ic')));
             $requests = R::convertToBeans('request', $rows);
         }
         /*
          * Loading views
          */
         $this->load->view('dashboard/template/header');
         $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
         $this->load->view('dashboard/request/answered', array('requests' => $requests));
         $this->load->view('dashboard/template/footer');
     } else {
         /* 
          * Loading the request
          */
         $request = R::findOne('request', ' id = ? ', array($id));
         /* 
          * Request exists? 
          */
         if ($request == NULL) {
             $this->session->set_flashdata('success', 'A solicitação não existe.');
             redirect('dashboard/request/answered');
         }
         /* 
          * Getting current status of request
          */
         $status = R::findOne('status', 'request_id = ? AND current = "Y" ', array($request->id));
         /*
          * Can user access the request?
          */
         if (!self::_canAcessRequest($request)) {
             $this->session->set_flashdata('success', 'Você não tem autorização para acessar esta solicitação.');
             redirect('dashboard/request/answered');
         }
         /*
          * Loading views
          */
         $this->load->view('dashboard/template/header');
         $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
         $this->load->view('dashboard/request/answered-select', array('status' => $status, 'request' => $request));
         $this->load->view('dashboard/template/footer');
     }
 }
 public function manageView()
 {
     /*
      * Loadings libraries and helpers
      */
     $this->load->library(array('rb'));
     $this->load->helper(array('form'));
     /*
      * User is logged?
      */
     if (!parent::_isLogged()) {
         redirect('dashboard');
     }
     /*
      * General Information
      */
     $openRequestsQry = '
         SELECT r.*
         FROM status AS s
         JOIN request AS r 
         ON r.id = s.request_id 
         WHERE 
             s.current = "Y" 
             AND ( s.type = "waiting-open" 
                 OR s.type = "request_created" 
                 OR s.type = "request_moved" 
                 OR s.type = "request_extended" 
             ) 
     ';
     $openRequests = R::getAll($openRequestsQry);
     $openRequests = R::convertToBeans('request', $openRequests);
     $deadlineRequestsQry = '
         SELECT r.*
         FROM status AS s 
         JOIN request AS r 
         ON r.id = s.request_id 
         WHERE 
             ( 
                 NOW() > DATE_ADD( r.created_at, INTERVAL 20 DAY )
                 AND
                 ( SELECT COUNT(*) FROM status AS ss WHERE request_id = r.id AND type = "request_extended" ) <= 0
             )
             OR
             (
                 NOW() > DATE_ADD( r.created_at, INTERVAL 30 DAY )
                 AND
                 ( SELECT COUNT(*) FROM status AS ss WHERE request_id = r.id AND type = "request_extended" ) > 0
             )
     ';
     $deadlineRequests = R::getAll($deadlineRequestsQry);
     $deadlineRequests = R::convertToBeans('request', $deadlineRequests);
     $repliedRequestsQry = '
         SELECT r.*
         FROM status AS s
         JOIN request AS r 
         ON r.id = s.request_id 
         WHERE 
             s.current = "Y" 
             AND s.type = "request_replied" 
     ';
     $repliedRequests = R::getAll($repliedRequestsQry);
     $repliedRequests = R::convertToBeans('request', $repliedRequests);
     $data = array('ics' => R::find('ic', ' active="yes" '), 'openRequests' => count($openRequests), 'deadlineRequests' => count($deadlineRequests), 'replyRequests' => count($repliedRequests), 'totalRequests' => R::count('request'));
     /*
      * Loading views
      */
     $this->load->view('dashboard/template/header');
     $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
     $this->load->view('dashboard/manage', $data);
     $this->load->view('dashboard/template/footer');
 }
 public function groupView($id)
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'session'));
     $this->load->helper(array('form'));
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('view_group', $this->session->userdata('user_ic'))) {
         echo "Você não tem permissão para realizar este procedimento.";
         exit;
     }
     /*
      * Retrieving the IC
      */
     $g = R::findOne('group', 'id=? AND active!="no" ', array($id));
     /*
      * Verifying if group exists
      */
     if ($g == NULL) {
         $this->session->set_flashdata('error', 'O grupo solicitado para visualização não existe.');
         redirect('dashboard/group');
     }
     /*
      * Loading views
      */
     $this->load->view('dashboard/template/header');
     $this->load->view('dashboard/template/menu', array('menu' => parent::_getMenu(parent::_getIc()->id), 'ics' => parent::_getIcs(), 'ic' => parent::_getIc()));
     $this->load->view('dashboard/group/view', array('group' => $g));
     $this->load->view('dashboard/template/footer');
 }