Ejemplo n.º 1
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)));
         }
     }
 }
Ejemplo n.º 2
0
 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();
     }
 }