package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ProblemaItemConfiguracaoDTO;
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;
;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class ProblemaItemConfiguracaoDAO extends CrudDaoDefaultImpl {
public ProblemaItemConfiguracaoDAO() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idProblemaItemConfiguracao", "idProblemaItemConfiguracao", true, true, false, false));
listFields.add(new Field("idProblema", "idProblema", false, false, false, false));
listFields.add(new Field("idItemConfiguracao", "idItemConfiguracao", false, false, false, false));
listFields.add(new Field("descricaoProblema", "descricaoProblema", false, false, false, false));
return listFields;
}
public ProblemaItemConfiguracaoDTO findByIdItemConfiguracaoEIdProblema(Integer idItemConfiguracao, Integer idProblema) throws PersistenceException {
ArrayList<Condition> condicoes = new ArrayList<Condition>();
condicoes.add(new Condition("idItemConfiguracao", "=", idItemConfiguracao));
condicoes.add(new Condition("idProblema", "=", idProblema));
ArrayList<ProblemaItemConfiguracaoDTO> lista = (ArrayList<ProblemaItemConfiguracaoDTO>) findByCondition(condicoes, null);
if(lista != null){
return lista.get(0);
}
return null;
}
/**
* Verifica se existe outro item igual criado.
* Se existir retorna 'true', senao retorna 'false';
*/
public boolean verificaSeCadastrado(ProblemaItemConfiguracaoDTO itemDTO) throws PersistenceException {
boolean estaCadastrado;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select * from " + getTableName() + " where idItemConfiguracao = ? and idProblema = ? ");
parametro.add(itemDTO.getIdItemConfiguracao());
parametro.add(itemDTO.getIdProblema());
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaCadastrado = true;
} else {
estaCadastrado = false;
}
return estaCadastrado;
}
/**
* Deleta os que est�o no banco mas n�o est�o na lista passada para update.
*
* @param idProblema
* @param listaICs
* @throws Exception
*/
public void deletaOsQueNaoEstaoNaListaByIdProblema(Integer idProblema, ArrayList<ProblemaItemConfiguracaoDTO> listaICs) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblema", "=", idProblema));
if(listaICs != null && listaICs.size() > 0){
for (ProblemaItemConfiguracaoDTO p : listaICs) {
condicao.add(new Condition("idItemConfiguracao", "<>", p.getIdItemConfiguracao()));
}
}
this.deleteByCondition(condicao);
}
public String getTableName() {
return this.getOwner() + "problemaitemconfiguracao";
}
public Collection list() throws PersistenceException {
return null;
}
public Class getBean() {
return ProblemaItemConfiguracaoDTO.class;
}
public Collection find(IDto arg0) throws PersistenceException {
return null;
}
public Collection findByIdProblemaItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblemaItemConfiguracao", "=", parm));
ordenacao.add(new Order("idProblemaItemConfiguracao"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProblemaItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblemaItemConfiguracao", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idProblema", "=", parm));
ordenacao.add(new Order("idProblema"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdProblema(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idProblema", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idItemConfiguracao", "=", parm));
ordenacao.add(new Order("idItemConfiguracao"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idItemConfiguracao", "=", parm));
super.deleteByCondition(condicao);
}
public List<ItemConfiguracaoDTO> listItemConfiguracaoByIdProblema (Integer idProblema) throws PersistenceException {
List parametro = new ArrayList();
List fields = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select ic.iditemconfiguracao ");
sql.append(" from itemconfiguracao ic ");
sql.append(" inner join problemaitemconfiguracao pi ");
sql.append(" on ic.iditemconfiguracao = pi.iditemconfiguracao ");
sql.append(" where pi.idproblema = ? ");
parametro.add(idProblema);
fields.add("idItemConfiguracao");
List dados = this.execSQL(sql.toString(), parametro.toArray());
return (List<ItemConfiguracaoDTO>) this.listConvertion(ItemConfiguracaoDTO.class, dados, fields);
}
public ProblemaItemConfiguracaoDTO restoreByIdProblema(Integer idSolicitacao) throws PersistenceException {
List parametro = new ArrayList();
parametro.add(idSolicitacao);
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("idProblemaItemConfiguracao");
listRetorno.add("idProblema");
listRetorno.add("idItemConfiguracao");
listRetorno.add("descricaoProblema");
String sql = " select * from problemaitemconfiguracao where idproblema = ? ";
List lista = this.execSQL(sql.toString(), parametro.toArray());
if (lista != null && !lista.isEmpty()) {
List listaResult = this.engine.listConvertion(ProblemaItemConfiguracaoDTO.class, lista, listRetorno);
return (ProblemaItemConfiguracaoDTO) listaResult.get(0);
} else {
return null;
}
}
}