package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ItemPedidoCompraDTO; 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 ItemPedidoCompraDao extends CrudDaoDefaultImpl { public ItemPedidoCompraDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idItemPedido" ,"idItemPedido", true, true, false, false)); listFields.add(new Field("idPedido" ,"idPedido", false, false, false, false)); listFields.add(new Field("idColetaPreco" ,"idColetaPreco", 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("valorTotal" ,"valorTotal", false, false, false, false)); listFields.add(new Field("valorDesconto" ,"valorDesconto", false, false, false, false)); listFields.add(new Field("valorAcrescimo" ,"valorAcrescimo", false, false, false, false)); listFields.add(new Field("baseCalculoIcms" ,"baseCalculoIcms", false, false, false, false)); listFields.add(new Field("aliquotaIcms" ,"aliquotaIcms", false, false, false, false)); listFields.add(new Field("aliquotaIpi" ,"aliquotaIpi", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "ItemPedidoCompra"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return ItemPedidoCompraDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } public Collection findByIdPedido(Integer parm) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idPedido", "=", parm)); ordenacao.add(new Order("idItemPedido")); return super.findByCondition(condicao, ordenacao); } public Collection findByIdColetaPreco(Integer parm) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idColetaPreco", "=", parm)); ordenacao.add(new Order("idItemPedido")); return super.findByCondition(condicao, ordenacao); } public void deleteByIdPedido(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idPedido", "=", parm)); super.deleteByCondition(condicao); } public void deleteByIdColetaPreco(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idColetaPreco", "=", parm)); super.deleteByCondition(condicao); } private StringBuilder getSQLRestoreAll() { StringBuilder sql = new StringBuilder(); sql.append("SELECT ip.idItemPedido, ip.idPedido, ip.idColetaPreco, ip.idProduto, ip.quantidade, ip.valorTotal, ip.valorDesconto, ip.valorAcrescimo, "); sql.append(" item.descricaoItem, item.idSolicitacaoServico, item.idParecerValidacao, item.idParecerAutorizacao, cp.idParecer, e1.nome, e2.nome, e3.nome "); sql.append(" FROM itempedidocompra ip "); sql.append(" INNER JOIN cotacaoitemrequisicao cp ON cp.idColetaPreco = ip.idColetaPreco "); sql.append(" INNER JOIN itemrequisicaoproduto item ON item.idItemRequisicaoProduto = cp.idItemRequisicaoProduto "); sql.append(" LEFT JOIN parecer p1 ON item.idParecerValidacao = p1.idParecer "); sql.append(" LEFT JOIN parecer p2 ON item.idParecerAutorizacao = p2.idParecer "); sql.append(" LEFT JOIN parecer p3 ON cp.idParecer = p3.idParecer "); sql.append(" LEFT JOIN empregados e1 ON p1.idResponsavel = e1.idEmpregado "); sql.append(" LEFT JOIN empregados e2 ON p2.idResponsavel = e2.idEmpregado "); sql.append(" LEFT JOIN empregados e3 ON p3.idResponsavel = e3.idEmpregado "); return sql; } private List getColunasRestoreAll() { List listRetorno = new ArrayList(); listRetorno.add("idItemPedido"); listRetorno.add("idPedido"); listRetorno.add("idColetaPreco"); listRetorno.add("idProduto"); listRetorno.add("quantidade"); listRetorno.add("valorTotal"); listRetorno.add("valorDesconto"); listRetorno.add("valorAcrescimo"); listRetorno.add("descricaoItem"); listRetorno.add("idSolicitacaoServico"); listRetorno.add("idParecerValidacao"); listRetorno.add("idParecerAutorizacao"); listRetorno.add("idParecerCotacao"); listRetorno.add("autoridadeValidacao"); listRetorno.add("autoridadeAprovacao"); listRetorno.add("autoridadeCotacao"); return listRetorno; } public Collection findByIdPedidoOrderByIdSolicitacao(Integer idPedido) throws PersistenceException { List parametro = new ArrayList(); StringBuilder sql = getSQLRestoreAll(); sql.append(" WHERE ip.idPedido = ? "); parametro.add(idPedido); sql.append("ORDER BY item.idSolicitacaoServico, ip.idItemPedido"); List lista = new ArrayList(); lista = this.execSQL(sql.toString(), parametro.toArray()); return this.engine.listConvertion(getBean(), lista, getColunasRestoreAll()); } }