Exemplo n.º 1
0
  /**
   * Inclui um registro
   *
   * @param objTalento POJO representando o objeto a ser incluído
   * @param lstAtributosTalentoValoros List contendo as valorações do talento a serem incluídas
   * @throws CDException se ocorrer algum erro relacionado ao negócio
   * @return retorna a chave do objeto que foi incluido
   */
  public String incluir(Talento objTalento, List lstAtributosTalentoValorados) throws CDException {
    if (log.isDebugEnabled()) {
      log.debug("Entrada no metodo");
    }

    // Instancia DAO e inclui registro
    TalentoDAO objTalentoDAO = new TalentoDAO();
    CategoriaTalentoDAO objCategoriaTalentoDAO = new CategoriaTalentoDAO();
    String strChave = null;
    try {
      // Não é permitido que a pessoa tenha mais de uma categoria cadastrada se ela for perfil
      CategoriaTalento objCategoriaTalento =
          (CategoriaTalento)
              objCategoriaTalentoDAO.obterPelaChave(
                  String.valueOf(objTalento.getCategoriaTalento().getIdentificador()));
      if ("S".equals(objCategoriaTalento.getIndicativoUnicidade())) {
        if (objTalentoDAO.verificarExistenciaPorPessoaCategoriaTalento(
            objTalento.getPessoa(), objTalento.getCategoriaTalento())) {
          throw new NegocioException(
              "Não é possível inserir mais de um talento se a categoria " + "em questão é perfil");
        }
      }

      // Verifica as valorações obrigatórios
      verificarValoracoesObrigatorias(
          objTalento.getCategoriaTalento(), lstAtributosTalentoValorados);

      // Inicia transação
      DAO.iniciarTransacao();

      // Preenche dados de talento
      objTalento.setDataLancamento(DataNova.formatarCalendar(DataNova.obterDataAtual()));

      // Inclui talento
      strChave = objTalentoDAO.incluir(objTalento);
      objTalento.setIdentificador(Integer.valueOf(strChave));

      // Inclui valorações
      incluirValoracoes(objTalento, lstAtributosTalentoValorados);

      // Realiza transação
      DAO.realizarTransacao();

    } catch (Exception daoe) {
      CDException.dispararExcecao(daoe);
    } finally {
      DAO.desconectar();
    }
    // Retorna chave
    return strChave;
  }
Exemplo n.º 2
0
  /**
   * Altera um registro
   *
   * @param objTalento POJO representando o objeto a ser incluído
   * @throws CDException se ocorrer algum erro relacionado ao negócio
   */
  public void alterar(Talento objTalento, List lstAtributosTalentoValorados) throws CDException {
    if (log.isDebugEnabled()) {
      log.debug("Entrada no metodo");
    }

    // Instancia DAO e altera registro
    TalentoDAO objTalentoDAO = new TalentoDAO();
    AtributoTalentoValoradoDAO objAtributoTalentoValoradoDAO = new AtributoTalentoValoradoDAO();
    try {
      // Verifica as valorações obrigatórios
      verificarValoracoesObrigatorias(
          objTalento.getCategoriaTalento(), lstAtributosTalentoValorados);

      // Inicia transação
      DAO.iniciarTransacao();

      // Preenche dados de talento
      objTalento.setDataLancamento(DataNova.formatarCalendar(DataNova.obterDataAtual()));

      // Exclui valorações anteriores
      objAtributoTalentoValoradoDAO.excluirPorTalento(objTalento);

      // Reinclui valorações
      incluirValoracoes(objTalento, lstAtributosTalentoValorados);

      // Altera
      objTalentoDAO.alterar(objTalento);

      // Realiza transação
      DAO.realizarTransacao();
    } catch (Exception daoe) {
      DAO.desfazerTransacao();
      CDException.dispararExcecao(daoe);
    } finally {
      DAO.desconectar();
    }
  }