/**
  * Página de edição
  */
 public function editar()
 {
     $saveRouter = new saveRouter();
     $saveRouter->saveModule();
     $saveRouter->saveAction();
     $this->load->checkPermissao->check();
     $data = array('titlePage' => 'Editar Usuários');
     //ID -- obtendo o id na url -  caso não tenha redireciona para página de erro
     if ($this->load->url->getSegment(4) == false) {
         $this->http->redirect(URL . 'error404');
     }
     $idUsuario = intval($this->load->url->getSegment(4));
     //USUARIO MODEL
     $this->load->model('funcionarios/usuariosModel');
     $usuariosModel = new usuariosModel();
     $usuariosModel->setId($idUsuario);
     //USUARIO DAO -- consultando o usuário a partir do id
     $this->load->dao('funcionarios/iUsuarios');
     $this->load->dao('funcionarios/consultaUsuarioPorId');
     $this->load->dao('funcionarios/usuariosDao');
     $usuariosDao = new usuariosDao();
     $usuariosModel = $usuariosDao->consultar(new consultaUsuarioPorId(), $usuariosModel, array(status::ATIVO, status::INATIVO));
     //Funcionários - consultando o funcionario a partir do usuário
     $this->load->dao('funcionarios/IListagemFuncionarios');
     $this->load->dao('funcionarios/funcionariosDao');
     $this->load->dao('funcionarios/consultaFuncionarioPorUsuario');
     $funcionarios = new funcionariosDao();
     $funcionariosModel = $funcionarios->consultar(new consultaFuncionarioPorUsuario($usuariosModel), new funcionariosModel(), array(status::ATIVO, status::INATIVO));
     //setando o funcionário em usuário
     $usuariosModel->setFuncionario($funcionariosModel);
     //Nível Acesso - listagem de todos os níveis de acesso
     $this->load->dao('configuracoes/niveisAcessoDao');
     $niveisAcesso = new niveisAcessoDao();
     $data['usuario'] = $usuariosModel;
     $data['niveisAcesso'] = $niveisAcesso->listar();
     $this->load->view('includes/header', $data);
     $this->load->view('funcionarios/usuarios/editar', $data);
     $this->load->view('includes/footer', $data);
 }
 /**
  * Ãção de atualizar status
  */
 public function atualizarStatus()
 {
     $idFuncionario = (int) $this->http->getRequest('id');
     $status = filter_var($this->http->getRequest('status'));
     //FUNCIONARIO MODEL
     $funcionariosModel = new funcionariosModel();
     $funcionariosModel->setId($idFuncionario);
     if (status::getAttribute($status) == status::EXCLUIDO) {
         $funcionariosModel->excluir();
     } else {
         if (status::getAttribute($status) == status::INATIVO) {
             $funcionariosModel->inativar();
         } else {
             $funcionariosModel->ativar();
         }
     }
     //USUARIOS DAO -- consultando o usuario pelo funcionário
     $usuariosDao = new usuariosDao();
     $usuariosModel = $usuariosDao->consultar(new consultaUsuarioPorFuncionario($funcionariosModel), new usuariosModel(), array(status::ATIVO, status::INATIVO));
     //setando o usuario em funcionario caso tenha um usuario
     if ($usuariosModel != null) {
         $modulosDao = new modulosDao();
         $modulosModel = $modulosDao->listar();
         //obtendo os niveis de acesso
         $niveisAcessoDao = new niveisAcessoDao();
         $niveisAcessoModel = $niveisAcessoDao->getNivelAcesso($usuariosModel->getNivelAcesso(), $modulosModel);
         if ($niveisAcessoModel != null) {
             $usuariosModel->setNivelAcesso($niveisAcessoModel);
         }
         $funcionariosModel->setUsuario($usuariosModel);
     }
     //FUNCIONARIO DAO -- verificando se é permitido realizar ação ao funcionario
     $funcionariosDao = new funcionariosDao();
     if ($funcionariosModel->getUsuario() == null || $funcionariosModel->getUsuario()->getNivelAcesso()->getTipoPermissao() == tipopermissao::USUARIO) {
         $this->http->response($funcionariosDao->atualizarStatus($funcionariosModel));
     } else {
         $this->http->response("Alteração de status ou exclusão de funcionário administrador não é permitida");
     }
 }
 public function getJsoncaixa()
 {
     //caixas
     $this->load->dao('caixa/caixasDao');
     $this->load->dao('caixa/iListagemCaixa');
     //usurios
     $this->load->dao('funcionarios/IUsuarios');
     $this->load->dao('funcionarios/consultaUsuarioPorId');
     $this->load->dao('funcionarios/usuariosDao');
     //funcionarios
     $this->load->dao('funcionarios/IListagemFuncionarios');
     $this->load->dao('funcionarios/consultaFuncionarioPorId');
     $this->load->dao('funcionarios/funcionariosDao');
     $caixasDao = new caixasDao();
     $caixas = $caixasDao->listar();
     //echo $caixasDao->listar($caixa);
     foreach ($caixas as $caixa) {
         $caixasDao->listaAberturaCaixa($caixa);
         foreach ($caixa->getCaixaAberto() as $caixaAberto) {
             //USUARIOS DAO -- consultando o usuario pelo id
             $usuariosDao = new usuariosDao();
             $usuariosModel = $usuariosDao->consultar(new consultaUsuarioPorId(), $caixaAberto->getUsuario(), array(status::ATIVO, status::INATIVO));
             if ($usuariosModel != null) {
                 //FUNCIONARIOS DAO -- Consultando o funcionario pelo id
                 $funcionariosDao = new funcionariosDao();
                 $funcionariosModel = $funcionariosDao->consultar(new consultaFuncionarioPorId(), $usuariosModel->getFuncionario(), array(status::ATIVO, status::INATIVO));
                 $usuariosModel->setFuncionario($funcionariosModel);
                 $caixaAberto->setUsuario($usuariosModel);
             }
         }
     }
     $this->load->library('dataformat');
     $dataformat = new dataformat();
     $_arCaixa = array();
     foreach ($caixas as $cx) {
         $aux = array('id' => $cx->getId(), 'codigo' => $cx->getCodigo(), 'ip' => $cx->getIp(), 'acoes' => "", 'linkEditar' => URL . 'caixa/gerenciar/editar/' . $cx->getId(), 'abertos' => array());
         $arrAberturaCaixa = array();
         foreach ($cx->getCaixaAberto() as $OpenBox) {
             $valorUndEstoque = 0;
             $aux2 = array('id' => $OpenBox->getId(), 'dateOpen' => $dataformat->formatar($OpenBox->getDataAbertura(), 'datahora'), 'dateClose' => $dataformat->formatar($OpenBox->getDataFechamento(), 'datahora'), 'user' => html_entity_decode($OpenBox->getUsuario()->getFuncionario()->getNome() . ' ' . $OpenBox->getUsuario()->getFuncionario()->getSobreNome()), 'acoes' => "", 'linkvisualizar' => '', 'itens' => array());
             array_push($aux['abertos'], $aux2);
         }
         array_push($_arCaixa, $aux);
     }
     $this->http->response(json_encode($_arCaixa));
 }