package br.com.centralit.citcorpore.integracao;
import java.text.Normalizer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.ParceiroDTO;
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.util.Constantes;
/**
* @author david.silva
*
*/
@SuppressWarnings({"rawtypes","unchecked"})
public class ParceiroDAO extends CrudDaoDefaultImpl{
private static final String TABLE_NAME = "rh_parceiro";
public ParceiroDAO() {
super(Constantes.getValue("DATABASE_ALIAS"),null);
}
@Override
public Collection find(IDto obj) throws PersistenceException {
return null;
}
@Override
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("IDPARCEIRO", "idParceiro", true, true, false, false));
listFields.add(new Field("NOME", "nome", false, false, false, false));
listFields.add(new Field("RAZAOSOCIAL", "razaoSocial", false, false, false, false));
listFields.add(new Field("TIPOPESSOA", "tipoPessoa", false, false, false, false));
listFields.add(new Field("DATAALTERACAO", "dataAlteracao", false, false, false, false));
listFields.add(new Field("ATIVO", "ativo", false, false, false, false));
listFields.add(new Field("SITUACAO", "situacao", false, false, false, false));
listFields.add(new Field("FORNECEDOR", "fornecedor", false, false, false, false));
return listFields;
}
@Override
public String getTableName() {
return TABLE_NAME;
}
/**
* Realiza consulta por nome atraves do AutoComplete
* @param razaoSocial
* @return
* @throws Exception
*/
public List<ParceiroDTO> consultarFornecedorPorRazaoSocialAutoComplete(String razaoSocial) throws PersistenceException {
if(razaoSocial == null)
razaoSocial = "";
String texto = Normalizer.normalize(razaoSocial, Normalizer.Form.NFD);
texto = texto.replaceAll("[^\\p{ASCII}]", "");
texto = texto.replaceAll("�������������������������Ǵ`^''-+=", "aaaaeeiooouucAAAAEEIOOOUUC ");
texto = "%"+texto.toUpperCase()+"%";
Object[] objs = new Object[] {texto};
StringBuilder sql = new StringBuilder();
sql.append("select p.idparceiro, p.razaosocial, p.nome ");
sql.append(" from rh_parceiro p ");
sql.append(" where upper(p.razaosocial) like upper(?) ");
sql.append(" order by p.razaosocial limit 0,10");
List list = this.execSQL(sql.toString(), objs);
List listRetorno = new ArrayList();
listRetorno.add("idParceiro");
listRetorno.add("razaoSocial");
listRetorno.add("nome");
List result = this.engine.listConvertion(getBean(), list, listRetorno);
return result;
}
@Override
public Collection list() throws PersistenceException {
return null;
}
@Override
public Class getBean() {
return ParceiroDTO.class;
}
}