Package ecar.dao

Source Code of ecar.dao.UnidadeOrcamentariaDao

/*
* Criado em 15/07/2005
*
*/
package ecar.dao;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.HibernateException;
import org.hibernate.Query;

import comum.database.Dao;

import ecar.exception.ECARException;
import ecar.pojo.OrgaoOrg;
import ecar.pojo.UnidadeOrcamentariaPeriodoExercicioUoPerExe;
import ecar.pojo.UnidadeOrcamentariaUO;

/**
* @author evandro
*
*/
public class UnidadeOrcamentariaDao extends Dao{

  /**
   * Construtor. Chama o Session factory do Hibernate
         *
         * @param request
         */
  public UnidadeOrcamentariaDao(HttpServletRequest request) {
    super();
    this.request = request;
  }
 
  /**
   * Utiliza o m�todo excluir da classe Dao realizando antes valida��es de relacionamento do
   * �rg�o com registros em outras tabelas.
         * @param unidade
         * @throws ECARException
   */
  public void excluir(UnidadeOrcamentariaUO unidade) throws ECARException {     
     try{
           boolean excluir = true;
        if(contar(unidade.getItemEstruturaIettsByCodUo()) > 0){
            excluir = false;
          throw new ECARException("unidadeOrcamentaria.exclusao.erro.ItemEstruturaIetts");
        }                  
        if(excluir)
            super.excluir(unidade);
     }catch(ECARException e){
       this.logger.error(e);
         throw e;
     }   
  }

  /**
   * Verifica duplica��o depois salva
   * @param unidade
   * @throws ECARException
   */
  public void salvar(UnidadeOrcamentariaUO unidade) throws ECARException {
    if (pesquisarDuplos(unidade, new String[] {"descricaoUo","siglaUo"}, "codUo").size() > 0)
        throw new ECARException("unidadeOrcamentaria.validacao.registroDuplicado");
    if(unidade.getCodigoIdentUo() != null)
      if (pesquisarDuplos(unidade, new String[] {"codigoIdentUo"}, "codUo").size() > 0)
        throw new ECARException("unidadeOrcamentaria.validacao.registroDuplicado.codigoIdentUo");
    super.salvar(unidade);
  }
 
  /**
   * Verifica duplica��o depois altera
   * @param unidade
   * @throws ECARException
   */
  public void alterar(UnidadeOrcamentariaUO unidade) throws ECARException {
    if (pesquisarDuplos(unidade, new String[] {"descricaoUo","siglaUo"}, "codUo").size() > 0)
        throw new ECARException("unidadeOrcamentaria.validacao.registroDuplicado");
    if(unidade.getCodigoIdentUo() != null)
      if (pesquisarDuplos(unidade, new String[] {"codigoIdentUo"}, "codUo").size() > 0)
        throw new ECARException("unidadeOrcamentaria.validacao.registroDuplicado.codigoIdentUo");
    super.alterar(unidade);
  }
 
  /**
   * Retorna uma lista de unidades or�ament�rias de um �rg�o espec�fico.
   *
   * @author aleixo
   * @since 03/07/2007
   * @param orgao
         * @param campoOrdem
         * @return List
         * @throws ECARException
   */
  public List getUnidadeOrcamentariaByOrgao(OrgaoOrg orgao, String campoOrdem) throws ECARException{
    StringBuilder select = new StringBuilder();
   
    select.append("select unidade from UnidadeOrcamentariaUO unidade");
    select.append(" where unidade.indAtivoUo = :indAtivo");
   
    if(orgao != null){
      select.append(" and unidade.orgaoOrg.codOrg = :codOrgao");
    }
   
    select.append(" order by unidade.");
    if(campoOrdem != null && !"".equals(campoOrdem)){
      select.append(campoOrdem);
    }
    else {
      select.append("descricaoUo");
    }
    select.append(" asc ");
   
    List retorno = new ArrayList();
   
    try{
    Query q = this.session.createQuery(select.toString());
   
    q.setString("indAtivo", "S");
   
    if(orgao != null){
      q.setLong("codOrgao", orgao.getCodOrg().longValue());
    }
   
    retorno = q.list();
   
    } catch (HibernateException e) {
      this.logger.error(e);
      throw new ECARException(e);
    }
   
    return (retorno != null) ? retorno : new ArrayList();
  }
 
    /**
     * Carrega listagem de Unidades Orcamentarias de acordo com o periodo
     * @param codPerExe Identificador <PeriodoExercicioPerExe>
     * @param orgId Identificador do Orgao
     * @param indAtivoPodPerExe Identificador de status ativo / inativo
     * @return ArrayList<UnidadeOrcamentariaUO>
     * @throws ECARException
     */
    public ArrayList<UnidadeOrcamentariaUO> getUnidadesByPeriodicidade( Long codPerExe, Long orgId,  Character indAtivoPodPerExe ) throws ECARException{
     
      try{
        StringBuilder qry = new StringBuilder("from UnidadeOrcamentariaPeriodoExercicioUoPerExe as unidade")
                  .append(" where unidade.indAtivoUoPerExe  = :status")
                  .append(" and unidade.periodoExercicioPerExe.codPerExe  = :periodo")
                  .append(" and unidade.unidadeOrcamentariaUO.orgaoOrg.codOrg  = :orgao")                 
                  .append(" order by unidade.unidadeOrcamentariaUO.descricaoUo");
       
        Query q = this.session.createQuery(qry.toString());
        q.setLong("periodo", codPerExe.longValue());
        q.setLong("orgao", orgId.longValue());
        q.setCharacter("status", indAtivoPodPerExe );  
       
        List unidadePerexe = q.list();
        ArrayList<UnidadeOrcamentariaUO> listUnidade = new ArrayList<UnidadeOrcamentariaUO>();
       
        for (Iterator iter = unidadePerexe.iterator(); iter.hasNext();) {
          UnidadeOrcamentariaPeriodoExercicioUoPerExe unidadeTmp = (UnidadeOrcamentariaPeriodoExercicioUoPerExe) iter.next();
          listUnidade.add( unidadeTmp.getUnidadeOrcamentariaUO() );
      }
       
        return listUnidade;
       
      }
      catch (HibernateException e){
        this.logger.error(e);
        throw new ECARException("erro.hibernateException");
      }
           
    }
 
    /**
     * Carrega listagem de Unidades Orcamentarias de acordo com o codigoIdentUo
     * @param codigoIdentUo Codigo e-COP
     * @return UnidadeOrcamentariaUO
     * @throws ECARException
     */
    public UnidadeOrcamentariaUO getUnidadeByCodigoIdentUo( Long codigoIdentUo  ) throws ECARException{
     
      try{
       
        StringBuilder qry = new StringBuilder("from UnidadeOrcamentariaUO as unidade")
                  .append(" where unidade.codigoIdentUo  = :codigo");
        Query q = this.session.createQuery(qry.toString());
        q.setLong("codigo", codigoIdentUo.longValue());  
        q.setMaxResults(1);
       
        UnidadeOrcamentariaUO unidade = (UnidadeOrcamentariaUO)q.uniqueResult();
       
        return unidade;
       
      }
      catch (HibernateException e){
        this.logger.error(e);
        throw new ECARException("erro.hibernateException");
      }
           
    } 
   
 
}
TOP

Related Classes of ecar.dao.UnidadeOrcamentariaDao

TOP
Copyright © 2018 www.massapi.com. 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.