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(); } }
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))); } } }