public function editAction() { $usuarioSession = new Container('Login'); $usuario_id = $usuarioSession->iduser; $em = $this->getEntityManager(); $pessoaDao = new PessoaDao($em); $findPessoa = $pessoaDao->findByUserId($usuario_id); $clienteParam = $em->find('Register\\Entity\\Cliente', $findPessoa['id']); $usuarioParam = $em->find('Dataware\\Entity\\UserAccount', $usuario_id); $formCliente = $this->getFormCliente($clienteParam); $formUsuario = $this->getFormUsuario($usuarioParam); $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); $formUsuario->setValidationGroup("login"); // Ao atualizar, somente valida o login, senha não precisa. $formClienteIsValid = $formCliente->isValid(); $formUsuarioIsValid = $formUsuario->isValid(); if ($formClienteIsValid && $formUsuarioIsValid) { $cliente = new Cliente(); $cliente->setId($clienteParam->getId()); $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")); $usuarioRep = $em->getRepository('Dataware\\Entity\\UserAccount'); $usuario = $usuarioRep->findOneBy(array('id' => $usuarioParam->getId())); $usuario->setPassword($request->getPost("password")); $usuario->setName($request->getPost("nome")); $cliente->setUsuario($usuario); $cidadeRep = $em->getRepository('Register\\Entity\\Cidade'); $cidade = $cidadeRep->findOneBy(array('id' => $request->getPost("cidade"))); $cliente->setCidade($cidade); $em->merge($cliente); $em->flush(); $this->flashMessenger()->addSuccessMessage("Perfil atualizado com sucesso!"); $this->redirect()->toRoute("cliente", $args, array("query" => $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 setCidade($cidade) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setCidade', array($cidade)); return parent::setCidade($cidade); }