/** * Sobrescrito método de listagem dos combos, * para listar os status de agendamentos corretos. * * @param \Zend\Form\Element\Select $element * @return array */ public function getListValuesToSelectElement(Select $element) { $id = (int) $this->params()->fromRoute('id'); $result = parent::getListValuesToSelectElement($element); if ($element->getName() == "statusAgendamento" && !empty($id)) { $agendamento = $this->getEntityManager()->find("Process\\Entity\\Agendamento", $id); $proximosStatus = $agendamento->getStatusAgendamento()->obterProximosStatusPossiveisDoCliente(); foreach ($result as $pos => $item) { if (!in_array($item["id"], $proximosStatus)) { unset($result[$pos]); } } } return $result; }