/**
* CentralIT - CITSmart.
*/
package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.TipoItemConfiguracaoDTO;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.PersistenceException;
import br.com.citframework.integracao.CrudDaoDefaultImpl;
import br.com.citframework.integracao.Field;
import br.com.citframework.integracao.Order;
import br.com.citframework.util.Constantes;
/**
* DAO de TipoItemConfiguracao.
*
* @author valdoilo.damasceno
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public class TipoItemConfiguracaoDAO extends CrudDaoDefaultImpl {
private static final String SQL_TIPOITEMCONFIGURACAO = "SELECT IDTIPOITEMCONFIGURACAO, IDEMPRESA, NOMETIPOITEMCONFIGURACAO, TAGTIPOITEMCONFIGURACAO, DATAINICIO, DATAFIM "
+ "FROM TIPOITEMCONFIGURACAO " + "where UPPER(NOMETIPOITEMCONFIGURACAO) = ? order by NOMETIPOITEMCONFIGURACAO";
/**
* Construtor padr�o.
*/
public TipoItemConfiguracaoDAO() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
@Override
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("IDTIPOITEMCONFIGURACAO", "id", true, true, false, false));
listFields.add(new Field("IDEMPRESA", "idEmpresa", false, false, false, false));
listFields.add(new Field("NOMETIPOITEMCONFIGURACAO", "nome", false, false, false, false));
listFields.add(new Field("TAGTIPOITEMCONFIGURACAO", "tag", false, false, false, false));
listFields.add(new Field("CATEGORIA", "categoria", false, false, false, false));
listFields.add(new Field("DATAINICIO", "dataInicio", false, false, false, false));
listFields.add(new Field("DATAFIM", "dataFim", false, false, false, false));
listFields.add(new Field("SISTEMA", "sistema", false, false, false, false));
listFields.add(new Field("imagem", "imagem", false, false, false, false));
return listFields;
}
/*
* (non-Javadoc)
*
* @see br.com.citframework.integracao.CrudDaoDefaultImpl#getTableName()
*/
@Override
public String getTableName() {
return "TIPOITEMCONFIGURACAO";
}
/*
* (non-Javadoc)
*
* @see br.com.citframework.integracao.CrudDaoDefaultImpl#list()
*/
@Override
public Collection list() throws PersistenceException {
List list = new ArrayList();
list.add(new Order("NOMETIPOITEMCONFIGURACAO"));
return super.list(list);
}
/*
* (non-Javadoc)
*
* @see br.com.citframework.integracao.DaoTransactDefaultImpl#getBean()
*/
@Override
public Class getBean() {
return TipoItemConfiguracaoDTO.class;
}
/**
* Consulta Tipo Item Configura��o por nome.
*
* @param nomeTipoItemConfiguracao
* @return List
* @throws Exception
*/
public List findByNomeTipoItemConfiguracao(String nomeTipoItemConfiguracao) throws PersistenceException {
Object[] objs = new Object[] { nomeTipoItemConfiguracao.toUpperCase() };
String sql = SQL_TIPOITEMCONFIGURACAO;
List lista = this.execSQL(sql, objs);
List result = this.engine.listConvertion(getBean(), lista, prepararListaDeRetorno());
if (result == null || result.size() == 0)
return null;
return result;
}
/**
* Prepara Lista de Retorno.
*
* @return List
*/
private List prepararListaDeRetorno() {
List listRetorno = new ArrayList();
listRetorno.add("id");
listRetorno.add("idEmpresa");
listRetorno.add("nome");
listRetorno.add("tag");
listRetorno.add("dataInicio");
listRetorno.add("dataFim");
return listRetorno;
}
/**
* Verifica se Tipo Item Configura��o informada existe.
*
* @param grupo
* @return true - existe; false - n�o existe;
* @throws PersistenceException
*/
public boolean verificarSeTipoItemConfiguracaoExiste(TipoItemConfiguracaoDTO tipoItemConfiguracao) throws PersistenceException {
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select IDTIPOITEMCONFIGURACAO from " + getTableName() + " where NOMETIPOITEMCONFIGURACAO = ? and datafim is null AND IDTIPOITEMCONFIGURACAO <> ? ");
parametro.add(tipoItemConfiguracao.getNome());
parametro.add(tipoItemConfiguracao.getId() == null ? 0 : tipoItemConfiguracao.getId());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
return true;
} else {
return false;
}
}
/**
* Verifica se existe Tipo Item Configuracao associado a um Item Configuracao
*
* @param tipoItemConfiguracao
* @return
* @throws PersistenceException
* @author thyen.chang
*/
public boolean verificaAssociacaoTipoConfiguracao(TipoItemConfiguracaoDTO tipoItemConfiguracao) throws PersistenceException{
List parametros = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT DISTINCT idtipoitemconfiguracao ");
sql.append("FROM itemconfiguracao ");
sql.append("WHERE idtipoitemconfiguracao = ?");
parametros.add(tipoItemConfiguracao.getId());
list = this.execSQL(sql.toString(), parametros.toArray());
if(list != null && !list.isEmpty()) //Caso exista algum item, isso significa que o Tipo item Configura��o possui uma associa��o com Item Configura��o
return true;
else
return false;
}
@Override
public Collection find(IDto arg0) throws PersistenceException {
return null;
}
}