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))); } } }
public function obterFuncionarios($where, $retorno = true) { $wSql = array(); try { $sql = "SELECT funcionario.id, funcionario.pessoa_id, " . "funcionario.data_admissao, funcionario.data_desligamento, " . "funcionario.salario, pessoa.nome, login.usuario " . "FROM funcionario INNER JOIN pessoa ON " . "(funcionario.pessoa_id = pessoa.id) " . "INNER JOIN login ON (login.funcionario_id = funcionario.id) "; if (array_key_exists('pessoa_id', $where)) { array_push($wSql, "funcinario.pessoa_id = :passoa_id"); } if (array_key_exists('id', $where)) { array_push($wSql, "funcionarios.id = :id"); } if (array_key_exists('nome', $where)) { array_push($wSql, "pessoa.nome = :nome"); } if (count($wSql) >= 1) { $wWher = " WHERE " . implode(" AND ", $wSql); $sql .= $wWher; } $result = $this->database()->fetchRowMany($sql, $where); if ($result) { if ($retorno) { return $result; } $funcionario = new Funcionario(); $funcionario->setId($result[0]['id']); $funcionario->setData_admissao($result[0]['data_admissao']); $funcionario->setData_desligamento($result[0]['data_desligamento']); $funcionario->setPessoa_id($result[0]['pessoa_id']); $funcionario->setSalario($result[0]['salario']); return $funcionario; } else { return false; } } catch (MysqlException $ex) { return $ex->getMessage(); } }