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 setPassword($password)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setPassword', array($password));
     return parent::setPassword($password);
 }