fixes bug#AL-4410
parent
f9943189cb
commit
ae6f076992
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>br.com.rjconsultores</groupId>
|
||||
<artifactId>ventaboletosadm</artifactId>
|
||||
<version>1.86.1</version>
|
||||
<version>1.86.2</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<properties>
|
||||
|
|
|
@ -21,7 +21,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
|||
public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
||||
|
||||
private List<RelatorioW2IBean> lsDadosRelatorio;
|
||||
|
||||
public RelatorioW2ITaxaEmbarqueAnalitico(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||
super(parametros, conexao);
|
||||
|
||||
|
@ -32,10 +31,16 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
|||
Connection conexao = this.relatorio.getConexao();
|
||||
Map<String, Object> parametros = this.relatorio.getParametros();
|
||||
String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA");
|
||||
puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','");
|
||||
List<Integer> puntosVentaIdsList = new ArrayList<>();
|
||||
for (String id : puntosVentaIds.split(",")) {
|
||||
puntosVentaIdsList.add(Integer.parseInt(id));
|
||||
}
|
||||
lsDadosRelatorio = new ArrayList<RelatorioW2IBean>();
|
||||
Integer empresaID = (Integer) parametros.get("EMPRESA_ID");
|
||||
Integer origemID = (Integer) parametros.get("ORIGEN_ID");
|
||||
Integer destinoID = (Integer) parametros.get("DESTINO_ID");
|
||||
|
||||
String sql = getSql(puntosVentaIds);
|
||||
String sql = getSql(puntosVentaIdsList.size(), empresaID, origemID, destinoID);
|
||||
|
||||
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
||||
|
||||
|
@ -44,26 +49,22 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
|||
java.sql.Date dataInicial = new java.sql.Date(DateUtil.normalizarToFecha((Date) parametros.get("DATA_INICIAL")).getTime());
|
||||
java.sql.Date dataFinal = new java.sql.Date(DateUtil.normalizarToFecha((Date) parametros.get("DATA_FINAL")).getTime());
|
||||
|
||||
stmt.setDate("DATA_INICIAL", dataInicial);
|
||||
stmt.setDate("DATA_FINAL", dataFinal);
|
||||
stmt.setDate(":DATA_INICIAL", dataInicial);
|
||||
stmt.setDate(":DATA_FINAL", dataFinal);
|
||||
|
||||
stmt.setDate("DATA_INICIAL_CANCEL",dataInicial);
|
||||
stmt.setDate("DATA_FINAL_CANCEL", dataFinal);
|
||||
if (empresaID != null)
|
||||
stmt.setInt(":EMPRESA_ID", empresaID);
|
||||
if (origemID != null)
|
||||
stmt.setInt(":ORIGEN_ID", origemID);
|
||||
if (destinoID != null)
|
||||
stmt.setInt(":ORIGEN_ID", destinoID);
|
||||
|
||||
if (parametros.get("EMPRESA_ID") != null)
|
||||
stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID"));
|
||||
else
|
||||
stmt.setNull("EMPRESA_ID", java.sql.Types.INTEGER);
|
||||
int paramIndex = 0;
|
||||
for (Integer id : puntosVentaIdsList) {
|
||||
stmt.setInt(":PUNTO_VENTA_"+paramIndex, id);
|
||||
paramIndex++;
|
||||
}
|
||||
|
||||
if (parametros.get("ORIGEN_ID") != null && parametros.get("ORIGEN_ID") != "" && ((Integer) parametros.get("ORIGEN_ID") != -1))
|
||||
stmt.setInt("ORIGEN_ID", (Integer) parametros.get("ORIGEN_ID"));
|
||||
else
|
||||
stmt.setNull("ORIGEN_ID", java.sql.Types.INTEGER);
|
||||
|
||||
if (parametros.get("DESTINO_ID") != null && parametros.get("DESTINO_ID") != "" && ((Integer) parametros.get("DESTINO_ID") != -1))
|
||||
stmt.setInt("DESTINO_ID", (Integer) parametros.get("DESTINO_ID"));
|
||||
else
|
||||
stmt.setNull("DESTINO_ID", java.sql.Types.INTEGER);
|
||||
|
||||
rset = stmt.executeQuery();
|
||||
|
||||
|
@ -104,7 +105,7 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
|||
protected void processaParametros() throws Exception {
|
||||
}
|
||||
|
||||
private String getSql(String puntosVentaIds) {
|
||||
private String getSql(int numPuntosVentaIds, Integer empresaID, Integer origemID ,Integer destinoID) {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("SELECT DISTINCT ");
|
||||
sql.append("em.empresa_id AS empresaId, ");
|
||||
|
@ -127,15 +128,16 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
|||
sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_id ");
|
||||
sql.append("INNER JOIN CIUDAD co ON co.ciudad_id=po.ciudad_id ");
|
||||
sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.ciudad_id ");
|
||||
sql.append("WHERE TO_DATE(sx.DATAVENDA ,'ddMMyyyy') BETWEEN :DATA_INICIAL AND :DATA_FINAL ");
|
||||
sql.append("WHERE b.fechorventa BETWEEN :DATA_INICIAL AND :DATA_FINAL ");
|
||||
sql.append("AND sx.ACTIVO = 1 ");
|
||||
sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) ");
|
||||
sql.append("AND po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) ");
|
||||
sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) ");
|
||||
if(empresaID != null)
|
||||
sql.append("AND em.empresa_id = :EMPRESA_ID ");
|
||||
if(origemID != null)
|
||||
sql.append("AND po.parada_id = :ORIGEN_ID ");
|
||||
if(destinoID != null)
|
||||
sql.append("AND pd.parada_id = :DESTINO_ID ");
|
||||
|
||||
if (!puntosVentaIds.contains("-1")) {
|
||||
sql.append(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') ");
|
||||
}
|
||||
gerarBindPuntoVenta(numPuntosVentaIds, sql);
|
||||
|
||||
sql.append(" UNION ");
|
||||
|
||||
|
@ -160,19 +162,34 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
|
|||
sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_id ");
|
||||
sql.append("INNER JOIN CIUDAD co ON co.ciudad_id=po.ciudad_id ");
|
||||
sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.ciudad_id ");
|
||||
sql.append("WHERE TO_DATE(sx.DATACANCELAMENTO ,'ddMMyy') BETWEEN :DATA_INICIAL_CANCEL AND :DATA_FINAL_CANCEL ");
|
||||
sql.append("WHERE b.fechorventa BETWEEN :DATA_INICIAL AND :DATA_FINAL ");
|
||||
sql.append("AND sx.ACTIVO = 1 ");
|
||||
sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) ");
|
||||
sql.append("AND po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) ");
|
||||
sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) ");
|
||||
if(empresaID != null)
|
||||
sql.append("AND em.empresa_id = :EMPRESA_ID ");
|
||||
if(origemID != null)
|
||||
sql.append("AND po.parada_id = :ORIGEN_ID ");
|
||||
if(destinoID != null)
|
||||
sql.append("AND pd.parada_id = :DESTINO_ID ");
|
||||
|
||||
if (!puntosVentaIds.contains("-1")) {
|
||||
sql.append(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') ");
|
||||
}
|
||||
gerarBindPuntoVenta(numPuntosVentaIds, sql);
|
||||
|
||||
sql.append("ORDER BY dataVenda ASC ");
|
||||
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
private void gerarBindPuntoVenta(int numPuntosVentaIds, StringBuilder sql) {
|
||||
if (numPuntosVentaIds > 0) {
|
||||
sql.append("AND b.puntoventa_id IN (");
|
||||
int i;
|
||||
for (i = 0; i < numPuntosVentaIds; i++) {
|
||||
if (i > 0) {
|
||||
sql.append(", ");
|
||||
}
|
||||
sql.append(":PUNTO_VENTA_"+i);
|
||||
}
|
||||
sql.append(") ");
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue