/**
  * Cria objeto do funcionario com base nos dados enviados por POST via JSON, caso seja passado o funcionario será considerado edição do mesmo
  * 
  * @param Funcionario $funcionario
  * @return Funcionario
  */
 private function createFuncionarioFromJsonRawData(Funcionario $funcionario = NULL)
 {
     $dataPost = $this->request->getJsonRawBody();
     if (is_null($funcionario)) {
         $funcionario = new Funcionario();
     }
     $funcionario->setNome($dataPost->nome);
     $funcionario->setLogin($dataPost->login);
     $funcionario->setStatus($dataPost->status);
     $funcionario->setDataAdmissao($dataPost->data_admissao);
     $funcionario->setDataNascimento($dataPost->data_nascimento);
     $funcionario->setSenha(md5($dataPost->senha));
     $funcionario->funcionarioContatos = $this->createFuncionarioContatos($dataPost);
     $funcionario->funcionarioEnderecos = $this->createFuncionarioEnderecos($dataPost);
     $funcionario->projetoFuncionarios = $this->createFuncionarioProjetos($dataPost);
     $funcionario->departamentosFuncionario = $this->createFuncionarioDepartamentos($dataPost);
     return $funcionario;
 }