correcao (fixes bug 6116)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43528 d1611594-4594-4d17-8e1d-87c2c4800839
master
lucas.taia 2015-04-29 22:21:17 +00:00
parent d344caad1e
commit 109c2b1ec4
1 changed files with 75 additions and 66 deletions

View File

@ -38,21 +38,17 @@ public class RelatorioAgenciaFechamento extends Relatorio {
String empresaNome = parametros.get("empresaNome") != null ? parametros.get("empresaNome").toString() : ""; String empresaNome = parametros.get("empresaNome") != null ? parametros.get("empresaNome").toString() : "";
String puntoVenta = parametros.get("NUMPUNTOVENTA") != null ? parametros.get("NUMPUNTOVENTA").toString() : null; String puntoVenta = parametros.get("NUMPUNTOVENTA") != null ? parametros.get("NUMPUNTOVENTA").toString() : null;
RelatorioAgenciaFechamentoBean agenciaFechamento = new RelatorioAgenciaFechamentoBean();
lsDadosRelatorio = new ArrayList<RelatorioAgenciaFechamentoBean>(); lsDadosRelatorio = new ArrayList<RelatorioAgenciaFechamentoBean>();
Boolean existeRegistro = Boolean.FALSE;
String sql = carregarDadosTotaisdeVenda(puntoVenta); String sql = carregarDadosTotaisdeVenda(puntoVenta);
System.out.println(sql); System.out.println(sql);
BigDecimal total = BigDecimal.ZERO;
BigDecimal vendido = BigDecimal.ZERO;
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null; ResultSet rset1 = null;
ResultSet rset2 = null;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
stmt = new NamedParameterStatement(conexao, sql);
stmt.setTimestamp("de", new java.sql.Timestamp(sdf.parse(fecInicio).getTime())); stmt.setTimestamp("de", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
stmt.setTimestamp("ate", new java.sql.Timestamp(sdf.parse(fecFinal).getTime())); stmt.setTimestamp("ate", new java.sql.Timestamp(sdf.parse(fecFinal).getTime()));
@ -64,27 +60,31 @@ public class RelatorioAgenciaFechamento extends Relatorio {
stmt.setString("puntoVentaId", puntoVenta); stmt.setString("puntoVentaId", puntoVenta);
} }
rset = stmt.executeQuery(); rset1 = stmt.executeQuery();
while (rset.next()) { while (rset1.next()) {
existeRegistro = Boolean.TRUE; RelatorioAgenciaFechamentoBean agenciaFechamento = new RelatorioAgenciaFechamentoBean();
BigDecimal total = BigDecimal.ZERO;
BigDecimal vendido = BigDecimal.ZERO;
Integer qtdevendido = rset.getInt("qtdevendido"); String puntoVentaId = rset1.getString("codigo");
Integer qtdedigitado = rset.getInt("qtdedigitado");
Integer qtdeAnulado = rset.getInt("qtdeAnulado"); Integer qtdevendido = rset1.getInt("qtdevendido");
Integer qtdeDevolvido = rset.getInt("qtdeDevolvido"); Integer qtdedigitado = rset1.getInt("qtdedigitado");
Integer qtdeAnulado = rset1.getInt("qtdeAnulado");
Integer qtdeDevolvido = rset1.getInt("qtdeDevolvido");
Integer qtdeTotal = null; Integer qtdeTotal = null;
vendido = rset.getBigDecimal("vendido"); vendido = rset1.getBigDecimal("vendido");
BigDecimal digitado = rset.getBigDecimal("digitado"); BigDecimal digitado = rset1.getBigDecimal("digitado");
BigDecimal anulado = rset.getBigDecimal("anulado"); BigDecimal anulado = rset1.getBigDecimal("anulado");
BigDecimal devolvido = rset.getBigDecimal("devolvido"); BigDecimal devolvido = rset1.getBigDecimal("devolvido");
agenciaFechamento.setEmpresa(empresaNome); agenciaFechamento.setEmpresa(empresaNome);
agenciaFechamento.setCodigo(rset.getString("codigo")); agenciaFechamento.setCodigo(rset1.getString("codigo"));
agenciaFechamento.setDescricao(rset.getString("descricao")); agenciaFechamento.setDescricao(rset1.getString("descricao"));
agenciaFechamento.setQtdeVendido(qtdevendido != null ? qtdevendido : NumberUtils.INTEGER_ZERO); agenciaFechamento.setQtdeVendido(qtdevendido != null ? qtdevendido : NumberUtils.INTEGER_ZERO);
agenciaFechamento.setQtdeDigitado(qtdedigitado != null ? qtdedigitado : NumberUtils.INTEGER_ZERO); agenciaFechamento.setQtdeDigitado(qtdedigitado != null ? qtdedigitado : NumberUtils.INTEGER_ZERO);
@ -94,6 +94,10 @@ public class RelatorioAgenciaFechamento extends Relatorio {
qtdeTotal = ((qtdevendido != null ? qtdevendido : NumberUtils.INTEGER_ZERO) + (qtdedigitado != null ? qtdedigitado : NumberUtils.INTEGER_ZERO)) qtdeTotal = ((qtdevendido != null ? qtdevendido : NumberUtils.INTEGER_ZERO) + (qtdedigitado != null ? qtdedigitado : NumberUtils.INTEGER_ZERO))
- ((qtdeAnulado != null ? qtdeAnulado : NumberUtils.INTEGER_ZERO) + (qtdeDevolvido != null ? qtdeDevolvido : NumberUtils.INTEGER_ZERO)); - ((qtdeAnulado != null ? qtdeAnulado : NumberUtils.INTEGER_ZERO) + (qtdeDevolvido != null ? qtdeDevolvido : NumberUtils.INTEGER_ZERO));
if (qtdeTotal < 0) {
qtdeTotal = NumberUtils.INTEGER_ZERO;
}
agenciaFechamento.setQtdeTotal(qtdeTotal); agenciaFechamento.setQtdeTotal(qtdeTotal);
agenciaFechamento.setDigitado(digitado != null ? digitado : BigDecimal.ZERO); agenciaFechamento.setDigitado(digitado != null ? digitado : BigDecimal.ZERO);
@ -105,11 +109,10 @@ public class RelatorioAgenciaFechamento extends Relatorio {
total = total.subtract(anulado != null ? anulado : BigDecimal.ZERO); total = total.subtract(anulado != null ? anulado : BigDecimal.ZERO);
total = total.subtract(devolvido != null ? devolvido : BigDecimal.ZERO); total = total.subtract(devolvido != null ? devolvido : BigDecimal.ZERO);
} stmt = new NamedParameterStatement(conexao, carregarDadosReceitaDespesa(puntoVentaId));
if (existeRegistro) { System.out.println(carregarDadosReceitaDespesa(puntoVentaId));
stmt = new NamedParameterStatement(conexao, carregarDadosReceitaDespesa(puntoVenta));
stmt.setTimestamp("de", new java.sql.Timestamp(sdf.parse(fecInicio).getTime())); stmt.setTimestamp("de", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
stmt.setTimestamp("ate", new java.sql.Timestamp(sdf.parse(fecFinal).getTime())); stmt.setTimestamp("ate", new java.sql.Timestamp(sdf.parse(fecFinal).getTime()));
@ -117,17 +120,17 @@ public class RelatorioAgenciaFechamento extends Relatorio {
stmt.setInt("empresaId", Integer.parseInt(empresa)); stmt.setInt("empresaId", Integer.parseInt(empresa));
} }
if (puntoVenta != null && !puntoVenta.equals("-1")) { if (puntoVentaId != null ) {
stmt.setString("puntoVentaId", puntoVenta); stmt.setString("puntoVentaId", puntoVentaId);
} }
rset = stmt.executeQuery(); rset2 = stmt.executeQuery();
while (rset.next()) { if (rset2.next()) {
Integer qtdedespesa = rset.getInt("qtdedespesa"); Integer qtdedespesa = rset2.getInt("qtdedespesa");
BigDecimal receita = rset.getBigDecimal("receita"); BigDecimal receita = rset2.getBigDecimal("receita");
BigDecimal despesa = rset.getBigDecimal("despesa"); BigDecimal despesa = rset2.getBigDecimal("despesa");
agenciaFechamento.setQtdeDespesa(qtdedespesa != null ? qtdedespesa : NumberUtils.INTEGER_ZERO); agenciaFechamento.setQtdeDespesa(qtdedespesa != null ? qtdedespesa : NumberUtils.INTEGER_ZERO);
agenciaFechamento.setReceita(receita != null ? receita : BigDecimal.ZERO); agenciaFechamento.setReceita(receita != null ? receita : BigDecimal.ZERO);
@ -140,8 +143,14 @@ public class RelatorioAgenciaFechamento extends Relatorio {
total = total.subtract(despesa != null ? despesa : BigDecimal.ZERO); total = total.subtract(despesa != null ? despesa : BigDecimal.ZERO);
agenciaFechamento.setVendido(vendido != null ? vendido : BigDecimal.ZERO); agenciaFechamento.setVendido(vendido != null ? vendido : BigDecimal.ZERO);
agenciaFechamento.setTotal(total); agenciaFechamento.setTotal(total.abs());
} else {
agenciaFechamento.setQtdeDespesa(NumberUtils.INTEGER_ZERO);
agenciaFechamento.setReceita(BigDecimal.ZERO);
agenciaFechamento.setDespesa(BigDecimal.ZERO);
agenciaFechamento.setVendido(vendido != null ? vendido : BigDecimal.ZERO);
agenciaFechamento.setTotal(total.abs());
} }
lsDadosRelatorio.add(agenciaFechamento); lsDadosRelatorio.add(agenciaFechamento);
@ -171,14 +180,14 @@ public class RelatorioAgenciaFechamento extends Relatorio {
sql.append(" SELECT "); sql.append(" SELECT ");
sql.append(" pv.PUNTOVENTA_ID AS codigo, "); sql.append(" pv.PUNTOVENTA_ID AS codigo, ");
sql.append(" pv.nombpuntoventa AS descricao, "); sql.append(" pv.nombpuntoventa AS descricao, ");
sql.append(" COUNT(CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN cfp.IMPORTE ELSE NULL END) AS qtdevendido, "); sql.append(" COALESCE(COUNT(CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN cfp.IMPORTE ELSE NULL END),0) AS qtdevendido, ");
sql.append(" 0 AS qtdedigitado, "); sql.append(" 0 AS qtdedigitado, ");
sql.append(" COUNT(CASE WHEN c.MOTIVOCANCELACION_ID = 31 THEN 1 ELSE NULL END) AS qtdeAnulado, "); sql.append(" COALESCE(COUNT(CASE WHEN c.MOTIVOCANCELACION_ID = 31 THEN 1 ELSE NULL END),0) AS qtdeAnulado, ");
sql.append(" COUNT(CASE WHEN c.MOTIVOCANCELACION_ID = 32 THEN 1 ELSE NULL END) AS qtdeDevolvido, "); sql.append(" COALESCE(COUNT(CASE WHEN c.MOTIVOCANCELACION_ID = 32 THEN 1 ELSE NULL END),0) AS qtdeDevolvido, ");
sql.append(" SUM(CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN cfp.IMPORTE ELSE 0 END) AS vendido, "); sql.append(" COALESCE(SUM(CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN cfp.IMPORTE ELSE NULL END),0) AS vendido, ");
sql.append(" 0 AS digitado, "); sql.append(" 0 AS digitado, ");
sql.append(" SUM(CASE WHEN c.MOTIVOCANCELACION_ID = 31 THEN cfp.IMPORTE ELSE 0 END) AS anulado, "); sql.append(" COALESCE(SUM(CASE WHEN c.MOTIVOCANCELACION_ID = 31 THEN cfp.IMPORTE ELSE NULL END),0) AS anulado, ");
sql.append(" SUM(CASE WHEN c.MOTIVOCANCELACION_ID = 32 THEN cfp.IMPORTE ELSE 0 END) AS devolvido "); sql.append(" COALESCE(SUM(CASE WHEN c.MOTIVOCANCELACION_ID = 32 THEN cfp.IMPORTE ELSE NULL END),0) AS devolvido ");
sql.append(" FROM CAJA c "); sql.append(" FROM CAJA c ");
sql.append(" INNER JOIN CAJA_FORMAPAGO cfp ON c.CAJA_ID = cfp.CAJA_ID AND cfp.activo = 1 "); sql.append(" INNER JOIN CAJA_FORMAPAGO cfp ON c.CAJA_ID = cfp.CAJA_ID AND cfp.activo = 1 ");
sql.append(" INNER JOIN PUNTO_VENTA pv ON c.PUNTOVENTA_ID = pv.PUNTOVENTA_ID "); sql.append(" INNER JOIN PUNTO_VENTA pv ON c.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
@ -212,9 +221,9 @@ public class RelatorioAgenciaFechamento extends Relatorio {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append(" SELECT "); sql.append(" SELECT ");
sql.append(" COUNT(CASE WHEN cdp.IMPORTE < 0 THEN 1 ELSE NULL END) as qtdedespesa, "); sql.append(" COALESCE(COUNT(CASE WHEN cdp.IMPORTE < 0 THEN 1 ELSE NULL END),0) as qtdedespesa, ");
sql.append(" SUM(CASE WHEN cdp.IMPORTE > 0 THEN cdp.IMPORTE ELSE 0 END) AS receita, "); sql.append(" COALESCE(SUM(CASE WHEN cdp.IMPORTE > 0 THEN cdp.IMPORTE ELSE NULL END),0) AS receita, ");
sql.append(" ABS(SUM(CASE WHEN cdp.IMPORTE < 0 THEN cdp.IMPORTE ELSE 0 END)) AS despesa "); sql.append(" COALESCE(ABS(SUM(CASE WHEN cdp.IMPORTE < 0 THEN cdp.IMPORTE ELSE NULL END)),0) AS despesa ");
sql.append(" FROM CAJA_DIVERSOS cd, "); sql.append(" FROM CAJA_DIVERSOS cd, ");
sql.append(" CAJA_DIVERSOS_PAGO cdp, "); sql.append(" CAJA_DIVERSOS_PAGO cdp, ");
sql.append(" EVENTO_EXTRA ee "); sql.append(" EVENTO_EXTRA ee ");