package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ItemCotacaoDTO; 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; public class ItemCotacaoDao extends CrudDaoDefaultImpl { public ItemCotacaoDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idItemCotacao" ,"idItemCotacao", true, true, false, false)); listFields.add(new Field("idCotacao" ,"idCotacao", false, false, false, false)); listFields.add(new Field("idProduto" ,"idProduto", false, false, false, false)); listFields.add(new Field("quantidade" ,"quantidade", false, false, false, false)); listFields.add(new Field("dataHoraLimite" ,"dataHoraLimite", false, false, false, false)); listFields.add(new Field("idCategoriaProduto" ,"idCategoriaProduto", false, false, false, false)); listFields.add(new Field("idUnidadeMedida" ,"idUnidadeMedida", false, false, false, false)); listFields.add(new Field("descricaoItem" ,"descricaoItem", false, false, false, false)); listFields.add(new Field("especificacoes" ,"especificacoes", false, false, false, false)); listFields.add(new Field("marcaPreferencial" ,"marcaPreferencial", false, false, false, false)); listFields.add(new Field("precoAproximado" ,"precoAproximado", false, false, false, false)); listFields.add(new Field("tipoIdentificacao" ,"tipoIdentificacao", false, false, false, false)); listFields.add(new Field("resultadoValidacao","resultadoValidacao",false, false, false, false)); listFields.add(new Field("mensagensValidacao","mensagensValidacao",false, false, false, false)); listFields.add(new Field("pesoPreco" ,"pesoPreco", false, false, false, false)); listFields.add(new Field("pesoPrazoEntrega" ,"pesoPrazoEntrega", false, false, false, false)); listFields.add(new Field("pesoPrazoPagto" ,"pesoPrazoPagto", false, false, false, false)); listFields.add(new Field("pesoTaxaJuros" ,"pesoTaxaJuros", false, false, false, false)); listFields.add(new Field("pesoPrazoGarantia" ,"pesoPrazoGarantia", false, false, false, false)); listFields.add(new Field("exigeFornecedorQualificado" ,"exigeFornecedorQualificado", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "ItemCotacao"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return ItemCotacaoDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } private StringBuilder getSQLRestoreAll() { StringBuilder sql = new StringBuilder(); sql.append("SELECT item.idItemCotacao, item.idCotacao, item.idProduto, item.descricaoItem, item.especificacoes, item.idCategoriaProduto," ); sql.append(" item.precoAproximado, item.idUnidadeMedida, item.tipoIdentificacao, item.quantidade, item.marcaPreferencial, "); sql.append(" item.dataHoraLimite, item.resultadoValidacao, item.mensagensValidacao, item.exigeFornecedorQualificado, "); sql.append(" item.pesoPreco, item.pesoPrazoEntrega, item.pesoPrazoPagto, item.pesoTaxaJuros, item.pesoPrazoGarantia, "); sql.append(" prod.codigoProduto, tp.nomeProduto, prod.complemento, prod.modelo, m.nomeMarca "); sql.append(" FROM itemcotacao item "); sql.append(" LEFT JOIN produto prod ON prod.idproduto = item.idproduto "); sql.append(" LEFT JOIN tipoproduto tp ON tp.idtipoproduto = prod.idtipoproduto "); sql.append(" LEFT JOIN marca m ON m.idmarca = prod.idmarca "); return sql; } private List getColunasRestoreAll() { List listRetorno = new ArrayList(); listRetorno.add("idItemCotacao"); listRetorno.add("idCotacao"); listRetorno.add("idProduto"); listRetorno.add("descricaoItem"); listRetorno.add("especificacoes"); listRetorno.add("idCategoriaProduto"); listRetorno.add("precoAproximado"); listRetorno.add("idUnidadeMedida"); listRetorno.add("tipoIdentificacao"); listRetorno.add("quantidade"); listRetorno.add("marcaPreferencial"); listRetorno.add("dataHoraLimite"); listRetorno.add("resultadoValidacao"); listRetorno.add("mensagensValidacao"); listRetorno.add("exigeFornecedorQualificado"); listRetorno.add("pesoPreco"); listRetorno.add("pesoPrazoEntrega"); listRetorno.add("pesoPrazoPagto"); listRetorno.add("pesoTaxaJuros"); listRetorno.add("pesoPrazoGarantia"); listRetorno.add("codigoProduto"); listRetorno.add("nomeProduto"); listRetorno.add("complemento"); listRetorno.add("modelo"); listRetorno.add("nomeMarca"); return listRetorno; } public Collection findByIdCotacao(Integer parm) throws PersistenceException { List parametro = new ArrayList(); StringBuilder sql = getSQLRestoreAll(); sql.append(" WHERE item.idCotacao = ? "); parametro.add(parm); sql.append("ORDER BY tp.nomeProduto"); List lista = new ArrayList(); lista = this.execSQL(sql.toString(), parametro.toArray()); return this.engine.listConvertion(getBean(), lista, getColunasRestoreAll()); } public void deleteByIdCotacao(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idCotacao", "=", parm)); super.deleteByCondition(condicao); } public Collection findByIdItemRequisicaoProduto(Integer parm) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idItemRequisicaoProduto", "=", parm)); ordenacao.add(new Order("idItemCotacao")); return super.findByCondition(condicao, ordenacao); } public void deleteByIdItemRequisicaoProduto(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idItemRequisicaoProduto", "=", parm)); super.deleteByCondition(condicao); } public void limpaMensagensValidacao(ItemCotacaoDTO itemCotacaoDto) throws PersistenceException { StringBuilder sql = new StringBuilder(); sql.append("UPDATE " + getTableName() + " SET resultadoValidacao = null, mensagensValidacao = null WHERE idItemCotacao = ?"); Object[] params = {itemCotacaoDto.getIdItemCotacao() }; try { this.execUpdate(sql.toString(), params); } catch (PersistenceException e) { System.out.println("Problemas com atualiza��o do item de cota��o."); e.printStackTrace(); } } }