fixes bug#23716
qua: dev:lucas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@110141 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
ec04c1caa8
commit
2ff3ce732f
|
@ -0,0 +1,183 @@
|
||||||
|
package com.rjconsultores.ventaboletos.relatorios.impl;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Constante;
|
||||||
|
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
|
||||||
|
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||||
|
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||||
|
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
|
||||||
|
|
||||||
|
public class RelatorioBpeNumeracaoReuso extends Relatorio {
|
||||||
|
|
||||||
|
private ConstanteService constanteService;
|
||||||
|
|
||||||
|
public RelatorioBpeNumeracaoReuso(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||||
|
|
||||||
|
super(parametros, conexao);
|
||||||
|
|
||||||
|
this.setCustomDataSource(new ArrayDataSource(this) {
|
||||||
|
|
||||||
|
public void initDados() throws Exception {
|
||||||
|
Connection conexao = this.relatorio.getConexao();
|
||||||
|
Map<String, Object> parametros = this.relatorio.getParametros();
|
||||||
|
|
||||||
|
String sql = getSql(parametros);
|
||||||
|
|
||||||
|
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||||
|
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||||
|
|
||||||
|
|
||||||
|
NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString());
|
||||||
|
if(dtInicio != null && dtFim != null) {
|
||||||
|
ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
|
||||||
|
ps.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59");
|
||||||
|
}
|
||||||
|
|
||||||
|
ResultSet rset = ps.executeQuery();
|
||||||
|
|
||||||
|
while (rset.next()) {
|
||||||
|
Map<String, Object> dataResult = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
dataResult.put("numeroBPE", rset.getString("numeroBPE"));
|
||||||
|
dataResult.put("serieBPE", rset.getString("serieBPE"));
|
||||||
|
dataResult.put("estado", rset.getString("estado"));
|
||||||
|
|
||||||
|
this.dados.add(dataResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(parametros.get("ESTADOS_ID") == null){
|
||||||
|
sql = getSqlBuscarInicialFinal(parametros);
|
||||||
|
|
||||||
|
dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||||
|
dtFim = (Date) parametros.get("DATA_FIM");
|
||||||
|
|
||||||
|
|
||||||
|
ps = new NamedParameterStatement(conexao, sql.toString());
|
||||||
|
if(dtInicio != null && dtFim != null) {
|
||||||
|
ps.setString("dataInicio", DateUtil.getStringDate(dtInicio, "dd/MM/yyyy") + " 00:00:00");
|
||||||
|
ps.setString("dataFinal", DateUtil.getStringDate(dtFim, "dd/MM/yyyy") + " 23:59:59");
|
||||||
|
}
|
||||||
|
|
||||||
|
rset = ps.executeQuery();
|
||||||
|
|
||||||
|
while (rset.next()) {
|
||||||
|
parametros.put("inicialAutorizado", rset.getString("inicialAutorizado"));
|
||||||
|
parametros.put("finalAutorizado", rset.getString("finalAutorizado"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.resultSet = rset;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void processaParametros() throws Exception {
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSql(Map<String, Object> parametros) {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
|
||||||
|
|
||||||
|
String estados = (String) parametros.get("ESTADOS_ID");
|
||||||
|
String empresaId = (String) parametros.get("EMPRESA_ID");
|
||||||
|
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||||
|
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||||
|
|
||||||
|
|
||||||
|
getSelectFrom(sql);
|
||||||
|
|
||||||
|
getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, false);
|
||||||
|
|
||||||
|
sql.append(" group by BOL.num_bpe , BOL.numserie_bpe, E.nombestado ORDER BY BOL.NUM_BPE, BOL.NUMSERIE_BPE, E.NOMBESTADO ASC ");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSqlBuscarInicialFinal(Map<String, Object> parametros) {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
|
||||||
|
String estados = (String) parametros.get("ESTADOS_ID");
|
||||||
|
String empresaId = (String) parametros.get("EMPRESA_ID");
|
||||||
|
Date dtInicio = (Date) parametros.get("DATA_INICIO");
|
||||||
|
Date dtFim = (Date) parametros.get("DATA_FIM");
|
||||||
|
|
||||||
|
|
||||||
|
getSelectFromInicialFinalAutorizado(sql);
|
||||||
|
|
||||||
|
getWhere(sql, constanteService, estados, empresaId, dtInicio, dtFim, true);
|
||||||
|
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getWhere(StringBuilder sql, ConstanteService constanteService, String estados, String empresaId, Date dtInicio, Date dtFim, boolean buscarUltimoFinal) {
|
||||||
|
sql.append(" WHERE e.ACTIVO = 1 ");
|
||||||
|
|
||||||
|
if (empresaId != null) {
|
||||||
|
sql.append(" AND ep.EMPRESA_ID IN( " + empresaId + " ) ");
|
||||||
|
}
|
||||||
|
if (estados != null) {
|
||||||
|
sql.append(" AND e.ESTADO_ID IN ( " + estados + " )");
|
||||||
|
}
|
||||||
|
if (buscarUltimoFinal) {
|
||||||
|
sql.append(" AND (bpe.codstat = '100' AND bol.activo = 1)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dtInicio != null && dtFim != null) {
|
||||||
|
Constante constanteBPeOtimizado = constanteService.buscarPorNomeConstante(Constantes.RELATORIO_BPE_OTIMIZADO);
|
||||||
|
if(constanteBPeOtimizado != null && StringUtils.isNotBlank(constanteBPeOtimizado.getValorconstante()) && Boolean.parseBoolean(constanteBPeOtimizado.getValorconstante())) {
|
||||||
|
sql.append(" AND coalesce(bol.FECHORVENTA_H, bol.FECHORVENTA) >= TO_DATE(:dataInicio,'DD/MM/YYYY HH24:MI:SS') ");
|
||||||
|
sql.append(" AND coalesce(bol.FECHORVENTA_H, bol.FECHORVENTA) <= TO_DATE(:dataFinal,'DD/MM/YYYY HH24:MI:SS') ");
|
||||||
|
}else {
|
||||||
|
//Mantis 17952
|
||||||
|
sql.append(" AND (bpe.dt_venda >= TO_DATE(:dataInicio, 'DD/MM/YYYY HH24:MI:SS' ) OR (bpe.dt_venda is null and bol.fechorventa >= TO_DATE(:dataInicio, 'DD/MM/YYYY HH24:MI:SS'))) ");
|
||||||
|
sql.append(" AND (bpe.dt_venda <= TO_DATE(:dataFinal, 'DD/MM/YYYY HH24:MI:SS' ) OR (bpe.dt_venda is null and bol.fechorventa <= TO_DATE(:dataFinal, 'DD/MM/YYYY HH24:MI:SS' )))");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getSelectFrom(StringBuilder sql) {
|
||||||
|
sql.append("SELECT BOL.NUM_BPE as numeroBPE, BOL.NUMSERIE_BPE as serieBPE, E.NOMBESTADO as estado ");
|
||||||
|
|
||||||
|
sql.append(" FROM BPE bpe ");
|
||||||
|
sql.append(" LEFT JOIN BOLETO bol ON bol.BOLETO_ID = bpe.BOLETO_ID and bpe.activo = 1 ");
|
||||||
|
sql.append(" LEFT JOIN estado e ON e.CODIBGE = bpe.UF ");
|
||||||
|
sql.append(" LEFT JOIN marca ma ON bol.MARCA_ID = ma.MARCA_ID ");
|
||||||
|
sql.append(" LEFT JOIN empresa ep on ma.EMPRESA_ID = ep.EMPRESA_ID ");
|
||||||
|
sql.append(" LEFT JOIN PUNTO_VENTA pv ON bol.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
|
||||||
|
sql.append(" JOIN BPE_CTRL_DISPONIBILIDADE bcd ON (bpe.BPE_ID = bcd.BPE_REJEITADO_ID) ");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getSelectFromInicialFinalAutorizado(StringBuilder sql){
|
||||||
|
|
||||||
|
sql.append("SELECT min(bol.num_bpe) as inicialAutorizado , max(bol.num_bpe) as finalAutorizado");
|
||||||
|
sql.append(" FROM bpe bpe");
|
||||||
|
sql.append(" LEFT JOIN bpe bpeSub ON bpe.bpesubstituicao_id = bpesub.bpe_id");
|
||||||
|
sql.append(" AND bpesub.activo = 1");
|
||||||
|
sql.append(" LEFT JOIN boleto bol ON bol.boleto_id = bpe.boleto_id");
|
||||||
|
sql.append(" AND bpe.activo = 1");
|
||||||
|
sql.append(" LEFT JOIN estado e ON e.codibge = bpe.uf");
|
||||||
|
sql.append(" LEFT JOIN marca ma ON bol.marca_id = ma.marca_id");
|
||||||
|
sql.append(" LEFT JOIN empresa ep ON ma.empresa_id = ep.empresa_id");
|
||||||
|
sql.append(" LEFT JOIN parada ori ON bol.origen_id = ori.parada_id");
|
||||||
|
sql.append(" LEFT JOIN parada dest ON bol.destino_id = dest.parada_id");
|
||||||
|
sql.append(" LEFT JOIN punto_venta pv ON bol.puntoventa_id = pv.puntoventa_id ");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue