Package br.gov.serpro.ouvidoria.struts.form

Examples of br.gov.serpro.ouvidoria.struts.form.CadastrarFuncionarioForm


    FuncionarioCtrl defaultCtrl = new FuncionarioCtrl(getDaoFactory());
    Long funcionarioId = (Long) request.getSession().getAttribute(
        Constants.PA_FUNCIONARIO);
    Funcionario gestor = (Funcionario) defaultCtrl.get(funcionarioId);

    CadastrarFuncionarioForm funcionarioForm = (CadastrarFuncionarioForm) form;

    ActionMessages msgs = funcionarioForm.validate(mapping, request);

    if (!msgs.isEmpty()) {
      saveErrors(request, msgs);
      return mapping.findForward("error");
    }

    boolean erroLogica = false;

    /*
     * Valida para garantir que Ouvidores (Geral ou Assistente) não estejam
     * marcados como Consultores
     */
    if (CONSULTOR_ON.equals(funcionarioForm.getConsultor())
        && (Perfil.OUVIDOR_ASSISTENTE.getId().equals(
            funcionarioForm.getPerfil()) || Perfil.OUVIDOR_GERAL
            .getId().equals(funcionarioForm.getPerfil()))) {
      funcionarioForm.setConsultor(null);
    }

    if (funcionarioForm.getId() == null
        || funcionarioForm.getId().intValue() == 0) {
      // INSERT de novo funcionário
      try {
        defaultCtrl.insert(getOrgao(request),
            funcionarioForm.getNome(), funcionarioForm.getLogin(),
            funcionarioForm.getSenha(),
            funcionarioForm.getSituacao(),
            funcionarioForm.getMotivo(),
            funcionarioForm.getPerfil(),
            funcionarioForm.getFuncionalidades(),
            funcionarioForm.getTipoAssunto(),
            funcionarioForm.getTipoMensagem(),
            funcionarioForm.getSubOrgao(),
            funcionarioForm.getLocalidades(),
            funcionarioForm.getNivel(),
            funcionarioForm.getConsultor(),
            funcionarioForm.getEmail());

        msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
            "message.administrarUsuario.incluir"));
      } catch (DaoException e) {

        if (Constants.DEBUG) {
          e.printStackTrace(System.out);
        }

        String errorMessage = e.getMessage();

        if (errorMessage != null
            && errorMessage.toLowerCase().indexOf("duplicate key") >= 0) {
          erroLogica = true;
          msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
              "error.administrarUsuario.chaveDuplicada"));
        }
      }
    } else {
      try {
        // UPDATE de funcionário existente
        defaultCtrl.update(getOrgao(request), gestor,
            funcionarioForm.getId(), funcionarioForm.getNome(),
            funcionarioForm.getLogin(), funcionarioForm.getSenha(),
            funcionarioForm.getSituacao(),
            funcionarioForm.getMotivo(),
            funcionarioForm.getPerfil(),
            funcionarioForm.getFuncionalidades(),
            funcionarioForm.getTipoAssunto(),
            funcionarioForm.getTipoMensagem(),
            funcionarioForm.getSubOrgao(),
            funcionarioForm.getLocalidades(),
            funcionarioForm.getNivel(),
            funcionarioForm.getConsultor(),
            funcionarioForm.getEmail());

        msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
            "message.administrarUsuario.alterar"));

      } catch (DaoException e) {
        if (Constants.DEBUG) {
          e.printStackTrace(System.out);
        }

        String errorMessage = e.getMessage();
        if (errorMessage != null
            && errorMessage.toLowerCase().indexOf("duplicate key") >= 0) {
          erroLogica = true;
          msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
              "error.administrarUsuario.chaveDuplicada"));
        }
      } catch (Exception e) {
        if (Constants.DEBUG) {
          e.printStackTrace(System.out);
        }
        erroLogica = true;
        msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
            "error.administrarUsuario.redirecionar"));
      }
    }

    if (erroLogica) {

      PerfilCtrl perfilCtrl = new PerfilCtrl(getDaoFactory());

      Funcionario object = new Funcionario();

      object.setNome(funcionarioForm.getNome());
      object.setLogin(funcionarioForm.getLogin());
      object.setSenha("default");
      object.setSituacao(funcionarioForm.getSituacao());

      object.setListaFuncionalidade(defaultCtrl.listas(
          funcionarioForm.getFuncionalidades(), Funcionalidade.class));
      object.setListaAssunto(defaultCtrl.listas(
          funcionarioForm.getTipoAssunto(), Assunto.class));
      object.setListaTipoMensagem(defaultCtrl.listas(
          funcionarioForm.getTipoMensagem(), TipoMensagem.class));
      object.setSituacao(funcionarioForm.getSituacao());
      object.setPerfil(perfilCtrl.get(funcionarioForm.getPerfil()));
      object.setInstituicao(getOrgao(request));
      object.setListaInstituicao(defaultCtrl.listas(
          funcionarioForm.getSubOrgao(), SubOrgao.class));
      object.setListaLocalidadeOcorrencia(defaultCtrl.listas(
          funcionarioForm.getLocalidades(),
          LocalidadeOcorrencia.class));

      Comparator ordem = new Comparator() {
        public int compare(Object obj1, Object obj2) {
          PersistentObject pobj1 = (PersistentObject) obj1;
View Full Code Here

TOP

Related Classes of br.gov.serpro.ouvidoria.struts.form.CadastrarFuncionarioForm

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.