Package ecar.dao

Source Code of ecar.dao.DestaqueSubAreaDao

/*
* Created on 10/05/2005
*
*/
package ecar.dao;

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

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Query;

import comum.database.Dao;
import comum.util.Pagina;

import ecar.exception.ECARException;
import ecar.pojo.AgendaAge;
import ecar.pojo.AgendaOcorrenciaAgeo;
import ecar.pojo.DestaqueAreaDtqa;
import ecar.pojo.DestaqueItemRelDtqir;
import ecar.pojo.DestaqueSubAreaDtqsa;
import ecar.pojo.DestaqueTipoOrdemDtqto;
import ecar.pojo.SegmentoAgendaBean;
import ecar.pojo.SegmentoItemSgti;
import ecar.pojo.SegmentoSgt;

/**
* @author felipe
*
*/
public class DestaqueSubAreaDao extends Dao{
 
    /**
     *
     * @param request
     */
    public DestaqueSubAreaDao(HttpServletRequest request) {
    super();
    this.request = request;
  }
 
  /**
     * A partir de dados passados por request popula um objeto DestaqueSubAreaDtqsa
         * @param destaqueSubArea
         * @param request
     * @param recuperarParametrosComoString indica se ir� recuperar dados nulos como String vazia
     * @throws ECARException
     */
    public void setDestaqueSubArea(DestaqueSubAreaDtqsa destaqueSubArea, HttpServletRequest request, boolean recuperarParametrosComoString) throws ECARException{
       
        try{                    
            if(!"".equals(Pagina.getParamStr(request, "destaqueAreaDtqa"))){
                destaqueSubArea.setDestaqueAreaDtqa((DestaqueAreaDtqa) this.buscar(
                      DestaqueAreaDtqa.class,
                            Long.valueOf(Pagina.getParamStr(request, "destaqueAreaDtqa"))));
            }
            if(!"".equals(Pagina.getParamStr(request, "destaqueTipoOrdemDtqto"))){
                destaqueSubArea.setDestaqueTipoOrdemDtqto((DestaqueTipoOrdemDtqto) this.buscar(
                      DestaqueTipoOrdemDtqto.class,
                            Long.valueOf(Pagina.getParamStr(request, "destaqueTipoOrdemDtqto"))));
            }
          if(!"".equals(Pagina.getParamStr(request, "qtdMaxItensDtqsa")))
            destaqueSubArea.setQtdMaxItensDtqsa(Integer.valueOf(Pagina.getParamStr(request, "qtdMaxItensDtqsa")));

            if(recuperarParametrosComoString){
              destaqueSubArea.setIdentificacaoDtqsa(Pagina.getParamStr(request, "identificacaoDtqsa"));
              destaqueSubArea.setDescricaoDtqsa(Pagina.getParamStr(request, "descricaoDtqsa"));
            } else {
              destaqueSubArea.setIdentificacaoDtqsa(Pagina.getParam(request, "identificacaoDtqsa"));
              destaqueSubArea.setDescricaoDtqsa(Pagina.getParam(request, "descricaoDtqsa"));
            }
        } catch(Exception e){
            this.logger.error(e);
            throw new ECARException(e);
        }
       
    }
   
   
  /**
   * Exclui uma sub �rea de destaque, verificando antes se ela possui rela��o com outras tabelas. Neste caso, n�o permite
   * exclus�o
         * @param destaqueSubArea
         * @throws ECARException
   */
  public void excluir(DestaqueSubAreaDtqsa destaqueSubArea) throws ECARException {     
     try{
           boolean excluir = true;

        if(contar(destaqueSubArea.getDestaqueItemRelDtqirs()) > 0){
            excluir = false;
          throw new ECARException("destaqueSubArea.exclusao.erro.destaqueItemRelDtqirs");
        }                  
        if(excluir)
            super.excluir(destaqueSubArea)
     }catch(ECARException e){
       this.logger.error(e);
         throw e;
     }   
  }
 
  /**
   * Devolve uma lista com todos os Destaques de Uma Sub �rea de Destaque. Estes destaques podem ser
   * Ocorr�ncias da Agenda ou Itens de Segmento. Por isso o m�todo os emcapsula em um objeto SegmentoAgendaBean.
   * @param subArea
   * @return
   * @throws ECARException
   */
  public List getItensDestaqueSubArea(DestaqueSubAreaDtqsa subArea) throws ECARException{
    List retorno = new ArrayList();
    Iterator it = subArea.getDestaqueItemRelDtqirs().iterator();
    while(it.hasNext()){
      DestaqueItemRelDtqir destaqueItem = (DestaqueItemRelDtqir) it.next();
      SegmentoAgendaBean segAgd = new SegmentoAgendaBean();
      segAgd.setCodigo(destaqueItem.getCodDtqir());
      if(destaqueItem.getAgendaOcorrenciaAgeo() != null){       
        segAgd.setDescricao(new AgendaOcorrenciaDao(request).getLabelExibicao(destaqueItem.getAgendaOcorrenciaAgeo()));
        segAgd.setData(destaqueItem.getAgendaOcorrenciaAgeo().getDataEventoAgeo());
      }     
      if(destaqueItem.getSegmentoItemSgti() != null){
        segAgd.setDescricao(destaqueItem.getSegmentoItemSgti().getTituloSgti());
        segAgd.setData(destaqueItem.getSegmentoItemSgti().getDataItemSgti());
      }
      retorno.add(segAgd);
          Collections.sort(retorno,
                new Comparator() {
                public int compare(Object o1, Object o2) {
                  SegmentoAgendaBean sa1 = (SegmentoAgendaBean) o1;
                  SegmentoAgendaBean sa2 = (SegmentoAgendaBean) o2;
                    return sa1.getData().compareTo(sa2.getData());
                }
       } );         
    }
    return retorno;
  }
 
 
  /**
   * Retorna uma lista com todos os Segmentos e Agendas ativas encapsulados em objetos SegmentoAgendaBean
   * @return
   * @throws ECARException
   */
  public List getSegmentosAgendas() throws ECARException{
    List segmentos = new SegmentoDao(request).getAtivos();
 
    List retorno = new ArrayList();

    Iterator itS = segmentos.iterator();
    while(itS.hasNext()){
      SegmentoSgt segmento = (SegmentoSgt) itS.next();
      SegmentoAgendaBean segAgd = new SegmentoAgendaBean();
      segAgd.setAgenda(false);
      segAgd.setSegmento(true);
      segAgd.setDescricao(segmento.getTituloSgt());
      segAgd.setCodigo(segmento.getCodSgt());
      retorno.add(segAgd);
    }
    List agendas = new AgendaDao(request).getAtivos();
    Iterator itA = agendas.iterator();
    while(itA.hasNext()){
      AgendaAge agenda = (AgendaAge) itA.next();
      SegmentoAgendaBean segAgd = new SegmentoAgendaBean();
      segAgd.setAgenda(true);
      segAgd.setSegmento(false);
      segAgd.setDescricao(agenda.getEventoAge());
      segAgd.setCodigo(agenda.getCodAge());
      retorno.add(segAgd);
    }
     
        Collections.sort(retorno,
              new Comparator() {
              public int compare(Object o1, Object o2) {
                SegmentoAgendaBean sa1 = (SegmentoAgendaBean) o1;
                SegmentoAgendaBean sa2 = (SegmentoAgendaBean) o2;
                  return sa1.getDescricao().compareToIgnoreCase(sa2.getDescricao());
              }
     } );   
    return retorno;
  }
   
  /**
   * Vincula os itens de Segmentos da lista a uma sub �rea de destaque
   * @param listaDeSegmentosItem
   * @param subArea
   * @throws ECARException
   */
  public void vincularSegmentosaSubArea(List listaDeSegmentosItem, DestaqueSubAreaDtqsa subArea) throws ECARException{
      List objsParaSalvar = new ArrayList();
      Iterator it = listaDeSegmentosItem.iterator();
      while(it.hasNext()){
        SegmentoItemSgti segmento = (SegmentoItemSgti) it.next();
        DestaqueItemRelDtqir destaqueItem = new DestaqueItemRelDtqir();
        destaqueItem.setDestaqueSubAreaDtqsa(subArea);
        destaqueItem.setSegmentoItemSgti(segmento);
        objsParaSalvar.add(destaqueItem);
      }
      super.salvarOuAlterar(objsParaSalvar);
  }
 
  /**
   * Vincula as ocorr�ncias de agenda da lista a uma sub �rea de destaque
   * @param listaDeAgendas
   * @param subArea
   * @throws ECARException
   */
  public void vincularAgendasSubArea(List listaDeAgendas, DestaqueSubAreaDtqsa subArea) throws ECARException{
    List objsParaSalvar = new ArrayList();
    Iterator it = listaDeAgendas.iterator();
    while(it.hasNext()){
      AgendaOcorrenciaAgeo agenda = (AgendaOcorrenciaAgeo) it.next();
      DestaqueItemRelDtqir destaqueItem = new DestaqueItemRelDtqir();
      destaqueItem.setDestaqueSubAreaDtqsa(subArea);
      destaqueItem.setAgendaOcorrenciaAgeo(agenda);
      destaqueItem.setAgendaAge(agenda.getAgendaAge());
      objsParaSalvar.add(destaqueItem);
    }
    super.salvarOuAlterar(objsParaSalvar);   
  }
 
 
 
  /**
   * Retira vinculo entre os Destaques da lista e a sub �rea de destaque (exclus�o de destaques)
   * @param listaDeDestaques
   * @throws ECARException
   */
  public void desvincularDestaquesSubArea(List listaDeDestaques) throws ECARException{
    super.excluir(listaDeDestaques);
  }
 
  /**
   * Retorna todas sub�reas e os itens associados a estas relativos �rea de capa
   * @return DestaqueSubAreaDtqsa
   * @throws ECARException
   */
  public List getSubAreaCapa()throws ECARException{
    try{     
      Query query = this.getSession().createQuery("from DestaqueSubAreaDtqsa sub where sub.codDtqsa = 1 ");
      return query.list();
    } catch (Exception e){
            this.logger.error(e);
            throw new ECARException(e);
    }
  }
 
}
TOP

Related Classes of ecar.dao.DestaqueSubAreaDao

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.