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)));
         }
     }
 }
Beispiel #2
0
 function apagar($conds)
 {
     return $this->getCrudManager()->delete(Login::crudGetSource(), $conds);
 }
Beispiel #3
0
 function apagar($conds)
 {
     return $this->getCrudManager()->delete(Login::crudGetSource(), array('funcionario_id' => $conds['id'])) && $this->getCrudManager()->delete(Funcionario::crudGetSource(), $conds);
 }