示例#1
0
 public function obterLogin($where, $retorno = true)
 {
     $wSql = array();
     try {
         $sql = "SELECT login.id, login.usuario, " . "login.senha, login.funcionario_id " . "FROM login ";
         if (array_key_exists('id', $where)) {
             array_push($wSql, "tipo_login.descricao = %tipo%");
         }
         if (array_key_exists('usuario', $where)) {
             array_push($wSql, "usuario = :usuario");
         }
         if (array_key_exists('funcionario_id', $where)) {
             array_push($wSql, "login.funcionario_id = :funcionario_id");
         }
         if (count($wSql) >= 1) {
             $wWher = " WHERE " . implode(" AND ", $wSql);
             $sql .= $wWher;
         }
         $result = $this->database()->fetchRowMany($sql, $where);
         if ($result) {
             if ($retorno) {
                 return $result;
             }
             $login = new Login();
             $login->setId($result[0]['id']);
             $login->setUsuario($result[0]['usuario']);
             $login->setSenha($result[0]['senha']);
             $login->setFuncionario_id($result[0]['funcionario_id']);
             return $login;
         } else {
             return false;
         }
     } catch (MysqlException $ex) {
         return $ex->getMessage();
     }
 }
示例#2
0
 function salvarFuncionario()
 {
     $funcionario = new Funcionario();
     $login = new Login();
     $erro = '';
     if ($this->getPost('id')) {
         $oldSenha = '';
         $funcionario->setId($this->getPost('id'));
         $loginSenha = $this->loginDao->obterLogin(array('funcionario_id' => $this->getPost('id')), FALSE);
         $oldSenha = $loginSenha->getSenha();
     }
     $funcionario->setPessoa_id($this->getPost('pessoa_id'));
     $funcionario->setData_admissao($this->getPost('data_admissao'));
     $funcionario->setSalario($this->getPost('salario'));
     $funcionario->setData_desligamento($this->getPost('data_desligamento'));
     if ($this->getPost('usuario')) {
         $login->setUsuario($this->getPost('usuario'));
     }
     if ($this->getPost('senha')) {
         $login->setSenha($this->getPost('senha'));
     }
     $funcionario->setLogin($login);
     $funcionarioS = serialize($funcionario);
     if ($funcionario->getData_admissao() == '') {
         $erro = "Data de admissão deve ser preenchida";
     }
     if ($this->getPost('pessoa_id') == '' || $this->getPost('pessoa_id') == 0) {
         $erro = "Pessoa deve ser informada.";
     }
     if (strlen($erro) > 0) {
         $this->redirect($this->UrlBuilder()->doAction('funcionario', array('errorMsg' => $erro, 'adicionar' => true, 'funcionarioS' => $funcionarioS)));
     }
     $funcionarioDao = new FuncionarioDao($funcionario, $login);
     if ($this->getPost('id')) {
         $successMsg = "Funcionario atualizado com sucesso!";
         $url = $this->UrlBuilder()->doAction('funcionario', array('successMsg' => $successMsg));
         if ($this->comparaSimples($this->usuarioLogado, $login->getUsuario())) {
             if (!$this->comparaSimples($oldSenha, $login->getSenha())) {
                 SessionHandler::deleteSession('usuario');
                 $url = $this->UrlBuilder()->doAction('login', array('admin' => TRUE));
             }
         }
         if ($funcionarioDao->editar(array('id' => $this->getPost('id')))) {
             $this->redirect($url);
         } else {
             $errorMsg = "Funcionario não pode ser salvo!";
             $this->redirect($this->UrlBuilder()->doAction('funcionario', array('adicionar' => true, 'errorMsg' => $funcionarioDao->getErro(), 'funcionarioS' => $funcionarioS)));
         }
     } else {
         if ($funcionarioDao->salvar()) {
             $successMsg = "Funcionario salva com sucesso!";
             $this->redirect($this->UrlBuilder()->doAction('funcionario', array('successMsg' => $successMsg)));
         } else {
             $errorMsg = "Funcionario não pode ser salvo!";
             $this->redirect($this->UrlBuilder()->doAction('funcionario', array('errorMsg' => $errorMsg)));
         }
     }
 }