diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioHistoricoCompras.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioHistoricoCompras.java index bc3b8dec6..2c2c30b7e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioHistoricoCompras.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioHistoricoCompras.java @@ -79,6 +79,7 @@ public class RelatorioHistoricoCompras extends Relatorio { stmt.setTimestamp("dt_embarque_inicio", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("dtEmbarqueInicial")).getTime())); stmt.setTimestamp("dt_embarque_fim", new Timestamp(DateUtil.fimFecha((Date) parametros.get("dtEmbarqueFinal")).getTime())); } + } private String getSql(Map parametros) { @@ -109,6 +110,7 @@ public class RelatorioHistoricoCompras extends Relatorio { sql.append(" INNER JOIN cliente cli ON ca.clientecomprador_id = cli.cliente_id "); sql.append(" INNER JOIN usuario u ON ca.usuario_id = u.usuario_id "); sql.append(" INNER JOIN punto_venta pv ON ca.puntoventa_id = pv.puntoventa_id "); + sql.append(" INNER JOIN ruta r on ca.ruta_id = r.ruta_id "); sql.append(" LEFT JOIN parada o ON ca.origen_id = o.parada_id "); sql.append(" LEFT JOIN parada d ON ca.destino_id = d.parada_id "); @@ -120,14 +122,13 @@ public class RelatorioHistoricoCompras extends Relatorio { sql.append(" WHERE ca.fechorventa_h BETWEEN :dt_venda_inicio and :dt_venda_fim "); } else { sql.append(" WHERE ca.fechorviaje BETWEEN :dt_embarque_inicio and :dt_embarque_fim "); - } if (parametros.get("puntoVentaId") != null) { sql.append(" and pv.puntoventa_id in("+parametros.get("puntoVentaId")+") "); } - if (parametros.get("rutaId") != null) { - sql.append(" and ca.ruta_id in("+parametros.get("rutaId")+") "); + if (parametros.get("numRuta") != null) { + sql.append(" and r.numruta in ("+obtemIdsParametrizadosParaString(parametros.get("numRuta").toString())+ ") "); } if (parametros.get("clienteId") != null) { sql.append(" and cli.cliente_id in("+parametros.get("clienteId")+") "); @@ -135,6 +136,24 @@ public class RelatorioHistoricoCompras extends Relatorio { sql.append("order by ca.fechorventa_h"); return sql.toString(); } + + public String obtemIdsParametrizadosParaString(String parametro) { + String[] ids = parametro.split(", "); + StringBuilder retorno = new StringBuilder(); + for (int i = 0; i < ids.length; i++) { + if (isIntermediario(ids, i)) { + retorno.append(", "); + } + retorno.append("'"); + retorno.append(ids[i]); + retorno.append("'"); + } + return retorno.toString(); + } + + private boolean isIntermediario(String[] ids, int i) { + return (i > 0) && (i != ids.length); + } } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioHistoricoComprasController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioHistoricoComprasController.java index fba86b5ec..d320422cf 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioHistoricoComprasController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioHistoricoComprasController.java @@ -18,7 +18,6 @@ import org.zkoss.zul.Paging; import com.rjconsultores.ventaboletos.entidad.Cliente; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioHistoricoCompras; import com.rjconsultores.ventaboletos.relatorios.utilitarios.PagedListCliente; import com.rjconsultores.ventaboletos.relatorios.utilitarios.PagedListGenerico; @@ -26,6 +25,7 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.PagedListPuntoVenta import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ValidarDatas; import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.vo.ruta.RutaVO; import com.rjconsultores.ventaboletos.web.utilerias.MensagensUtils; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; @@ -117,7 +117,7 @@ public class RelatorioHistoricoComprasController extends MyGenericForwardCompose } public void onClick$btnPesquisaLinha(Event ev) { - linhaList.setData(rutaService.buscaRuta(txtPalavraPesquisaLinha.getText())); + linhaList.setData(rutaService.buscaRutaPorNumeroSemDadoRepetido(txtPalavraPesquisaLinha.getText())); PagedListGenerico.validarPagedListSemRegistro(linhaList, TITULO_RELATORIO); } @@ -126,11 +126,11 @@ public class RelatorioHistoricoComprasController extends MyGenericForwardCompose } public void onDoubleClick$linhaSelList(Event ev) { - linhaSelList.removeItem((Ruta) linhaSelList.getSelected()); + linhaSelList.removeItem((RutaVO) linhaSelList.getSelected()); } public void onDoubleClick$linhaList(Event ev) { - PagedListGenerico.validarInclusaoLista((Ruta) linhaList.getSelected(), linhaSelList); + PagedListGenerico.validarInclusaoLista((RutaVO) linhaList.getSelected(), linhaSelList); } public void onClick$btnPesquisaCpf(Event ev) { @@ -186,9 +186,9 @@ public class RelatorioHistoricoComprasController extends MyGenericForwardCompose } private void getParametroLinha(Map parametros) { - EspecializaLista especializaLista = new EspecializaLista(Ruta.class, linhaSelList, "getRutaId"); + EspecializaLista especializaLista = new EspecializaLista(RutaVO.class, linhaSelList, "getNumRuta"); if (!especializaLista.getLista().isEmpty()) { - parametros.put("rutaId", especializaLista.obtemIds()); + parametros.put("numRuta", especializaLista.obtemIds()); } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRutaPersonalizado.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRutaPersonalizado.java index 71a653636..a8b41e99e 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRutaPersonalizado.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRutaPersonalizado.java @@ -6,8 +6,8 @@ import java.util.List; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; -import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.vo.ruta.RutaVO; public class RenderRutaPersonalizado extends RenderPersonalizado { @@ -18,8 +18,18 @@ public class RenderRutaPersonalizado extends RenderPersonalizado { @Override protected void incluirColunasRender(Listitem item, Object objeto) throws IllegalAccessException, InvocationTargetException { super.incluirColunasRender(item, objeto); - OrgaoConcedente orgaoConcedente = ((Ruta)objeto).getOrgaoConcedente(); - Listcell lc = orgaoConcedente != null ? new Listcell(orgaoConcedente.getDescOrgao()) : new Listcell("-"); + Listcell lc = new Listcell(getOrgaoConcedente(objeto)); lc.setParent(item); } + + private String getOrgaoConcedente(Object objeto) { + try { + if (objeto instanceof RutaVO) { + return ((RutaVO)objeto).getOrgaoConcedente(); + } + return ((Ruta)objeto).getOrgaoConcedente().getDescOrgao(); + } catch (NullPointerException e) { + return "-"; + } + } }