public function addAction() { $formCliente = $this->getFormCliente(); $formUsuario = $this->getFormUsuario(); $request = $this->getRequest(); $queryData = $this->params()->fromQuery(); if (!empty($queryData)) { $formCliente->setData($queryData); $formUsuario->setData($queryData); } $this->adjustOfSpecialElements($formCliente); $args = array("formCliente" => $formCliente, "formUsuario" => $formUsuario, "action" => $this->getEvent()->getRouteMatch()->getParam('action', 'add')); if ($request->isPost()) { $postData = $request->getPost()->toArray(); $formCliente->setData($postData); $formUsuario->setData($postData); $formClienteIsValid = $formCliente->isValid(); $formUsuarioIsValid = $formUsuario->isValid(); if ($formClienteIsValid && $formUsuarioIsValid) { $cliente = new Cliente(); $cliente->setNome($request->getPost("nome")); $cliente->setRg($request->getPost("rg")); $cliente->setCpf($request->getPost("cpf")); $cliente->setDataNascimento($request->getPost("dataNascimento")); $cliente->setSexo($request->getPost("sexo")); $cliente->setObservacao($request->getPost("observacao")); $cliente->setCep($request->getPost("cep")); $cliente->setBairro($request->getPost("bairro")); $cliente->setEndereco($request->getPost("endereco")); $cliente->setNumero($request->getPost("numero")); $cliente->setComplemento($request->getPost("complemento")); $cliente->setEmail($request->getPost("email")); $cliente->setTelefoneCelular($request->getPost("telefoneCelular")); $cliente->setTelefoneResidencial($request->getPost("telefoneResidencial")); $cliente->setTelefoneTrabalho($request->getPost("telefoneTrabalho")); $usuario = new UserAccount(); $usuario->setLogin($request->getPost("login")); $usuario->setPassword($request->getPost("password")); $usuario->setName($request->getPost("nome")); $usuario->setActive(true); $cliente->setUsuario($usuario); $em = $this->getEntityManager(); $cidadeRep = $em->getRepository('Register\\Entity\\Cidade'); $cidade = $cidadeRep->findOneBy(array('id' => $request->getPost("cidade"))); $cliente->setCidade($cidade); $em->persist($cliente); $em->flush(); $this->flashMessenger()->addSuccessMessage("Seja bem vindo ao Gesatec, o seu sistema paciente!"); $postData["id"] = $cliente->getUsuario()->getId(); $this->authenticate($postData); } else { $formClienteMsgs = $formCliente->getMessages(); $formUsuarioMsgs = $formUsuario->getMessages(); $formMessages = array_merge_recursive($formClienteMsgs, $formUsuarioMsgs); $this->displayErrorMessages($formMessages, $args, array('query' => $postData)); } } return new ViewModel($args); }
/** * {@inheritDoc} */ public function setActive($active) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setActive', array($active)); return parent::setActive($active); }