/**
  * Monta e retorna o formulário da entidade.
  * 
  * @param \Process\Entity\Agendamento $agendamento
  * @return \Zend\Form\Form
  */
 public function getForm($agendamento)
 {
     $form = parent::getForm($agendamento);
     $request = $this->getRequest();
     if ($this->getCurrentAction() == "edit") {
         // Dependente a situação, deverá ficar ou não desabilitado.
         $campoStatusAgendamento = $form->get("statusAgendamento");
         $campoStatusAgendamento->setAttribute("disabled", NULL);
     }
     // Obtém a data do agendamento.
     $dataAgendamento = !is_null($agendamento->getDataAgendada()) ? $agendamento->getDataAgendada()->format("Y-m-d") : null;
     $data = $request->getQuery("dataAgendada", $dataAgendamento);
     // Popula opções do combobox de profissionais, conforme tipo de atendimento recebido.
     $tipoDeAtendimentoId = $request->getQuery("tipoDeAtendimento", $agendamento->getTipoDeAtendimento());
     $profissionalAgendamento = !is_null($agendamento->getProfissional()) ? $agendamento->getProfissional()->getId() : null;
     $profissionalId = $request->getQuery("profissional", $profissionalAgendamento);
     $profissionalDao = new ProfissionalDao($this->getEntityManager());
     $profissionais = $profissionalDao->listarProfissionaisDoTipoDeAtendimento($tipoDeAtendimentoId);
     $listProfissionais = $this->listarProfissionais($profissionais);
     $campoProfissional = $form->get('profissional');
     $campoProfissional->setValueOptions($listProfissionais);
     $campoProfissional->setValue($profissionalId);
     // Popula opções do combobox de horários.
     $horarioAgendamento = !is_null($agendamento->getDataAgendada()) && !is_null($agendamento->getHorarioAgendado()) ? $data . " " . $agendamento->getHorarioAgendado()->format("H:i:s") : null;
     $horario = $request->getQuery("horario", $horarioAgendamento);
     $agendamentoDao = new AgendamentoDao($this->getEntityManager());
     $horarios = $agendamentoDao->obterHorariosParaAgendamento($data, empty($profissionalId) ? null : $profissionalId, $agendamento->getId());
     $listHorarios = $this->listarHorarios($horarios);
     $campoHorario = $form->get('horarioAgendado');
     $campoHorario->setValueOptions($listHorarios);
     $campoHorario->setValue($horario);
     return $form;
 }