package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.Condition;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.integracao.Order;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.SQLConfig;
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
public class GrupoItemConfiguracaoDAO extends CrudDaoDefaultImpl {
public GrupoItemConfiguracaoDAO() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idGrupoItemConfiguracao", "idGrupoItemConfiguracao", true, true, false, false));
listFields.add(new Field("idGrupoItemConfiguracaoPai", "idGrupoItemConfiguracaoPai", false, false, false, false));
listFields.add(new Field("nomeGrupoItemConfiguracao", "nomeGrupoItemConfiguracao", false, false, false, false));
listFields.add(new Field("emailGrupoItemConfiguracao", "emailGrupoItemConfiguracao", false, false, false, false));
listFields.add(new Field("dataInicio", "dataInicio", false, false, false, false));
listFields.add(new Field("dataFim", "dataFim", false, false, false, false));
return listFields;
}
public Collection find(IDto obj) throws PersistenceException {
return null;
}
public String getTableName() {
return this.getOwner() + "grupoitemconfiguracao";
}
@Override
public void updateNotNull(IDto obj) throws PersistenceException {
super.updateNotNull(obj);
}
public Collection list() throws PersistenceException {
List ordenacao = new ArrayList();
List condicao = new ArrayList();
ordenacao.add(new Order("nomeGrupoItemConfiguracao"));
condicao.add(new Condition("dataFim", "is", null));
return super.findByCondition(condicao, ordenacao);
}
public Class getBean() {
return GrupoItemConfiguracaoDTO.class;
}
/**
* Verifica se existe outro grupo igual criado.
* Se existir retorna 'true', senao retorna 'false';
*
* @param grupoItemConfiguracao
* @return estaCadastrado
* @throws PersistenceException
*/
public boolean VerificaSeCadastrado(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean estaCadastrado = false;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL)) {
//Se o banco for POSTGRESQL utilizar 'ilike' se outro banco utilizar 'like'.
sql.append("select nomegrupoitemconfiguracao from " + getTableName() + " where nomegrupoitemconfiguracao ilike ? and datafim is null ");
}else{
sql.append("select nomegrupoitemconfiguracao from " + getTableName() + " where nomegrupoitemconfiguracao like ? and datafim is null ");
}
parametro.add(grupoItemConfiguracao.getNomeGrupoItemConfiguracao());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaCadastrado = true;
}
return estaCadastrado;
}
@Override
public IDto createWithID(IDto obj) throws PersistenceException {
return super.createWithID(obj);
}
/**
* Apenas verica se existe n�o aplicando a data fim
* (Antigamente duplicado)
*
* @param grupoItemConfiguracao
* @return estaCadastrado
* @throws PersistenceException
*/
public boolean verificaSeExiste(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean estaCadastrado;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select idGrupoItemConfiguracao from " + getTableName() + " where idGrupoItemConfiguracao = ? ");
parametro.add(grupoItemConfiguracao.getIdGrupoItemConfiguracao());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaCadastrado = true;
} else {
estaCadastrado = false;
}
return estaCadastrado;
}
/**
* Verifica se existe relacionamento do grupo com outras tabelas.
* Se existir retorna 'true', se nao existir retorna 'false';
*
* @param grupoItemConfiguracao
* @return estaRelacionado
* @throws PersistenceException
*/
public boolean VerificaSeRelacionado(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean estaRelacionado;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select idGrupoItemConfiguracao from " + getTableName() + " where nomeGrupoItemConfiguracao = ? and datafim is null ");
parametro.add(grupoItemConfiguracao.getNomeGrupoItemConfiguracao());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaRelacionado = true;
} else {
estaRelacionado = false;
}
return estaRelacionado;
}
/**
* Verifica se existe relacionamento do grupo com item configuracao.
* Se existir retorna 'true', se nao existir retorna 'false';
*
* @param grupoItemConfiguracao
* @throws PersistenceException
*/
public boolean verificaICRelacionados(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean estaRelacionado;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select *from itemconfiguracao where idGrupoItemConfiguracao = ? and datafim is null ");
parametro.add(grupoItemConfiguracao.getIdGrupoItemConfiguracao());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaRelacionado = true;
} else {
estaRelacionado = false;
}
return estaRelacionado;
}
/**
* Lista os grupos associados ao evento passado como parametro.
*
* @param idEvento
* @return Collection<GrupoItemConfiguracaoDTO> relacionados ao evento
* @throws Exception
*/
public Collection<GrupoItemConfiguracaoDTO> listByEvento(Integer idEvento) throws PersistenceException {
String sql = "SELECT idgrupoitemconfiguracao, nomegrupoitemconfiguracao FROM "
+ getTableName() +" INNER JOIN eventogrupo AS eg ON eg.idgrupo = idgrupoitemconfiguracao WHERE eg.idevento = ?";
List<?> dados = this.execSQL(sql, new Object[] { idEvento });
List<String> fields = new ArrayList<String>();
fields.add("idGrupoItemConfiguracao");
fields.add("nomeGrupoItemConfiguracao");
return this.listConvertion(getBean(), dados, fields);
}
/**
* Lista os grupos associados ao evento passado como parametro.
*
* @param IDPAI
* @return Collection<GrupoItemConfiguracaoDTO>
* @throws Exception
*/
public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracaoPai(Integer idGrupoItemConfiguracaoPai) throws PersistenceException {
String sql = "SELECT idgrupoitemconfiguracao, nomegrupoitemconfiguracao FROM "
+ getTableName() +" WHERE idGrupoItemConfiguracaoPai = ? AND dataFim IS NULL";
List<?> dados = this.execSQL(sql, new Object[] { idGrupoItemConfiguracaoPai });
List<String> fields = new ArrayList<String>();
fields.add("idGrupoItemConfiguracao");
fields.add("nomeGrupoItemConfiguracao");
return this.listConvertion(getBean(), dados, fields);
}
public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracaoPaiNull() throws PersistenceException {
String sql = "SELECT idgrupoitemconfiguracao, nomegrupoitemconfiguracao FROM "
+ getTableName() +" WHERE idGrupoItemConfiguracaoPai IS NULL AND dataFim IS NULL";
List<?> dados = this.execSQL(sql, null);
List<String> fields = new ArrayList<String>();
fields.add("idGrupoItemConfiguracao");
fields.add("nomeGrupoItemConfiguracao");
return this.listConvertion(getBean(), dados, fields);
}
/**
* Lista os grupos associados ao evento passado como parametro.
*
* @param IDPAI
* @return Collection<GrupoItemConfiguracaoDTO>
* @throws Exception
*/
///*Thiago Fernandes - 03/11/2013 - 09:40 - Sol. 121468 - Corre��o de sql de busca por lista os grupos associados ao evento passado como parametro.
public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracaoDesenvolvimento(Integer idGrupoItemConfiguracaoPai) throws PersistenceException {
String sql = "SELECT idgrupoitemconfiguracao, nomegrupoitemconfiguracao FROM "
+ getTableName() +" WHERE (idGrupoItemConfiguracaoPai = ? OR idGrupoItemConfiguracaoPai IS NULL) AND dataFim IS NULL";
List<?> dados = this.execSQL(sql, new Object[] { idGrupoItemConfiguracaoPai });
List<String> fields = new ArrayList<String>();
fields.add("idGrupoItemConfiguracao");
fields.add("nomeGrupoItemConfiguracao");
return this.listConvertion(getBean(), dados, fields);
}
/**
* Lista os grupos associados ao evento passado como parametro.
*
* @param IDPAI
* @return Collection<GrupoItemConfiguracaoDTO>
* @throws Exception
*/
public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracao(Integer idGrupoItemConfiguracaoPai) throws PersistenceException {
String sql = "SELECT idgrupoitemconfiguracao, nomegrupoitemconfiguracao FROM "
+ getTableName() +" WHERE idGrupoItemConfiguracaoPai = ? AND dataFim IS NULL";
List<?> dados = this.execSQL(sql, new Object[] { idGrupoItemConfiguracaoPai });
List<String> fields = new ArrayList<String>();
fields.add("idGrupoItemConfiguracao");
fields.add("nomeGrupoItemConfiguracao");
return this.listConvertion(getBean(), dados, fields);
}
public boolean verificaGrupoPai(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean isOk = false;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select idGrupoItemConfiguracao from " + getTableName() + " where idGrupoItemConfiguracaoPai = ? and idGrupoItemConfiguracao = ? and datafim is null ");
parametro.add(grupoItemConfiguracao.getIdGrupoItemConfiguracaoPai());
parametro.add(grupoItemConfiguracao.getIdGrupoItemConfiguracao());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
isOk = true;
}
return isOk;
}
public boolean verificaGrupoPadrao(GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws PersistenceException {
boolean isOk = false;
List parametro = new ArrayList();
List list = new ArrayList();
String sql = "select idGrupoItemConfiguracao from " + getTableName() + " where idGrupoItemConfiguracao = ? and datafim is null ";
parametro.add(grupoItemConfiguracao.getIdGrupoItemConfiguracao());
list = this.execSQL(sql, parametro.toArray());
if (list != null && !list.isEmpty()) {
isOk = true;
}
return isOk;
}
public void atualizaGrupoPadrao(GrupoItemConfiguracaoDTO g) throws PersistenceException {
super.update(g);
/*String sql = "update " + getTableName() + " set idGrupoItemConfiguracao = ? where nomegrupoitemconfiguracao = ? ";
Object[] parametros = {g.getIdGrupoItemConfiguracao(),g.getNomeGrupoItemConfiguracao()};
try {
this.execUpdate(sql, parametros);
} catch (PersistenceException e) {}*/
}
}