- Ajustes RDA (caso 0004448)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@30799 d1611594-4594-4d17-8e1d-87c2c4800839
master
bruno 2013-09-10 15:57:50 +00:00
parent 30784c74d7
commit b651ef497d
4 changed files with 38 additions and 22 deletions

View File

@ -37,15 +37,23 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
this.setCustomDataSource(new ArrayDataSource(this) {
protected HashMap<Integer, HashMap<String, Object>> mapDados;
protected HashMap<String, HashMap<String, Object>> mapDados;
@Override
public Object valueCustomFields(String fieldName) throws Exception {
if (fieldName.equals("RECEITA_TOTAL")) {
return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL"));
BigDecimal gap = BigDecimal.ZERO;
if ((Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP")) {
gap = ((BigDecimal) this.getByName("RECEITA_TARIFA_GAP")).add((BigDecimal) this.getByName("RECEITA_SEGURO_GAP")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE_GAP")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL_GAP"));
}
return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL")).add(gap);
}
else if (fieldName.equals("RECEITA_LIQUIDA")) {
return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL")).subtract((BigDecimal) this.getByName("IMPOSTOS"));
BigDecimal gap = BigDecimal.ZERO;
if ((Boolean) this.relatorio.getParametros().get("B_CONTEMPLAR_GAP"))
gap = ((BigDecimal) this.getByName("RECEITA_TARIFA_GAP")).add((BigDecimal) this.getByName("RECEITA_SEGURO_GAP")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE_GAP")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL_GAP"));
return ((BigDecimal) this.getByName("RECEITA_TARIFA")).add((BigDecimal) this.getByName("RECEITA_SEGURO")).add((BigDecimal) this.getByName("RECEITA_BAGAGEM")).add((BigDecimal) this.getByName("RECEITA_EMBARQUE")).subtract((BigDecimal) this.getByName("TOTAL_DEVOL")).subtract((BigDecimal) this.getByName("IMPOSTOS")).add(gap);
}
else if (fieldName.equals("DIFERENCA_COMISSAO")) {
return ((BigDecimal) this.getByName("VALOR_COMISSAO")).subtract((BigDecimal) this.getByName("ANTECIPACAO"));
@ -78,14 +86,12 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
for (Estado s : (ArrayList<Estado>) parametros.get("ESTADO_ID")) {
strEstadoList.append("," + s.getEstadoId() + ",");
}
stmt.setString("ESTADO_ID", strEstadoList.toString());
stmt.setString("ISESTADOTODOS", "N");
}
else {
stmt.setNull("ESTADO_ID", java.sql.Types.INTEGER);
stmt.setString("ISESTADOTODOS", "S");
}
if (parametros.get("EMPRESA_ID") != null)
@ -115,7 +121,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
// Verifica se existe agência de destino da comissão e atualiza a row se necessario
if ((Integer) configComissao.get("PUNTOVENTA_ID") != 0 && !((Integer) configComissao.get("PUNTOVENTA_ID")).equals(this.resultSet.getInt("PUNTOVENTA_ID")))
rowDestino = this.getRow((Integer) configComissao.get("PUNTOVENTA_ID"), null);
rowDestino = this.getRow((Integer) configComissao.get("PUNTOVENTA_ID"), (Integer) rowOrigem.get("EMPRESA_ID"), null);
Integer puntoVentaId = (Integer) rowDestino.get("PUNTOVENTA_ID");
BigDecimal motivoCancelacionId = this.resultSet.getBigDecimal("MOTIVOCANCELACION_ID");
@ -201,18 +207,20 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
rowDestino.put("NUMPUNTOVENTA", configComissao.get("NUMPUNTOVENTA"));
rowDestino.put("NOMBPUNTOVENTA", configComissao.get("NOMBPUNTOVENTA"));
rowDestino.put("EMPRESAPUNTOVENTA_ID", rowOrigem.get("EMPRESAPUNTOVENTA_ID"));
rowDestino.put("EMPRESA", rowOrigem.get("EMPRESA"));
rowDestino.put("EMPRESA_ID", rowOrigem.get("EMPRESA_ID"));
rowDestino.put("ESTADO_ID", configComissao.get("ESTADO_ID"));
rowDestino.put("TIPO_AGENCIA", configComissao.get("TIPO_AGENCIA"));
mapDados.put(puntoVentaId, (HashMap<String, Object>) rowDestino);
mapDados.put(puntoVentaId+"-"+rowOrigem.get("EMPRESA_ID"), (HashMap<String, Object>) rowDestino);
}
}
protected Map<String, Object> getRow(Integer puntoVentaId, ResultSet rs) throws SQLException {
protected Map<String, Object> getRow(Integer puntoVentaId, Integer empresaId, ResultSet rs) throws SQLException {
Map<String, Object> row;
if (mapDados.containsKey(puntoVentaId)) {
row = mapDados.get(puntoVentaId);
if (mapDados.containsKey(puntoVentaId.toString()+"-"+empresaId.toString())) {
row = mapDados.get(puntoVentaId.toString()+"-"+empresaId.toString());
}
else
{
@ -243,6 +251,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
row.put("CVEESTADO", rs.getString("CVEESTADO"));
row.put("NUMPUNTOVENTA", rs.getString("NUMPUNTOVENTA"));
row.put("EMPRESA", rs.getString("NOMBEMPRESA"));
row.put("EMPRESA_ID", rs.getString("EMPRESA_ID"));
row.put("NOMBPUNTOVENTA", rs.getString("NOMBPUNTOVENTA"));
row.put("EMPRESAPUNTOVENTA_ID", rs.getInt("EMPRESAPUNTOVENTA_ID"));
row.put("ESTADO_ID", rs.getBigDecimal("ESTADO_ID"));
@ -251,7 +260,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
// Como a receita de bagagem é obtida por agencia, já calcula o valor
if (!(Boolean) this.relatorio.getParametros().get("B_EXCLUI_BAGAGEM"))
{
BigDecimal receitaBagagem = getValorReceitaBagagem(puntoVentaId);
BigDecimal receitaBagagem = getValorReceitaBagagem(puntoVentaId, empresaId);
try {
row.put("IMPOSTOS", getValorImposto(rs.getInt("ORIGEM_ESTADO_ID"), puntoVentaId, rs.getString("INTERESTADUAL"), BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, receitaBagagem));
} catch (Exception e) {
@ -272,19 +281,20 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
public void initDados() throws Exception {
this.prepareQuery();
this.mapDados = new HashMap<Integer, HashMap<String, Object>>();
this.mapDados = new HashMap<String, HashMap<String, Object>>();
while (this.resultSet.next()) {
Integer puntoVentaId = this.resultSet.getInt("PUNTOVENTA_ID");
Integer empresaId = this.resultSet.getInt("EMPRESA_ID");
Integer motivoCancelacionId = this.resultSet.getInt("MOTIVOCANCELACION_ID");
Integer tipoVentaId = this.resultSet.getInt("TIPOVENTA_ID");
Integer idEstado = this.resultSet.getInt("ORIGEM_ESTADO_ID");
// Inicializa a row atual
Map<String, Object> row = this.getRow(puntoVentaId, this.resultSet);
Map<String, Object> row = this.getRow(puntoVentaId,empresaId, this.resultSet);
this.mapDados.put((Integer) row.get("PUNTOVENTA_ID"), (HashMap<String, Object>) row);
this.mapDados.put(row.get("PUNTOVENTA_ID")+"-"+empresaId.toString(), (HashMap<String, Object>) row);
row.put("TOTAL_BILHETES", ((BigDecimal) row.get("TOTAL_BILHETES")).add(motivoCancelacionId == 0 && !tipoVentaId.equals(18) ? BigDecimal.ONE : BigDecimal.ZERO));
row.put("TOTAL_BILHETES_GAP", ((BigDecimal) row.get("TOTAL_BILHETES_GAP")).add(motivoCancelacionId == 0 && tipoVentaId.equals(18) ? BigDecimal.ONE : BigDecimal.ZERO));
@ -313,8 +323,8 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
else {
// Verificia se a devolução é pra ser contabilizada na agência de destino ou de origem da venda
if (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO") == 1) || (((Integer) this.relatorio.getParametros().get("ISDEVOLUCAODESTINO")).equals(0) && this.resultSet.getInt("POSSUI_CANC") == 1)) {
row.put("TOTAL_DEVOL", ((BigDecimal) row.get("TOTAL_DEVOL")).add( !tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("TOTAL_DEVOL_GAP", ((BigDecimal) row.get("TOTAL_DEVOL_GAP")).add( tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("TOTAL_DEVOL", ((BigDecimal) row.get("TOTAL_DEVOL")).add(!tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
row.put("TOTAL_DEVOL_GAP", ((BigDecimal) row.get("TOTAL_DEVOL_GAP")).add(tipoVentaId.equals(18) ? this.resultSet.getBigDecimal("PRECIOPAGADO") : BigDecimal.ZERO));
}
}
@ -469,7 +479,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
return BigDecimal.ZERO;
}
public BigDecimal getValorReceitaBagagem(Integer puntoVentaId) throws SQLException {
public BigDecimal getValorReceitaBagagem(Integer puntoVentaId, Integer empresaId) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append(" SELECT nvl(SUM(CASE ");
sql.append(" WHEN EE.TIPOEVENTOEXTRA_ID = 1 AND EE.ACTIVO = 1 THEN ");
@ -479,9 +489,11 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
sql.append(" WHERE TRUNC(EE.FECHORINGRESO) BETWEEN :DATA_INICIO AND ");
sql.append(" :DATA_FINAL ");
sql.append(" AND EE.PUNTOVENTA_ID = :PUNTOVENTA_ID ");
sql.append(" AND EE.EMPRESA_ID = :EMPRESA_ID ");
NamedParameterStatement stmt = new NamedParameterStatement(this.getConexao(), sql.toString());
stmt.setInt("PUNTOVENTA_ID", puntoVentaId);
stmt.setInt("EMPRESA_ID", empresaId);
stmt.setDate("DATA_INICIO", (java.sql.Date) this.getParametros().get("DATA_INICIO"));
stmt.setDate("DATA_FINAL", (java.sql.Date) this.getParametros().get("DATA_FINAL"));
@ -570,9 +582,11 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
sql.append(" AND CJD.PUNTOVENTA_ID = CJ.PUNTOVENTA_ID");
sql.append(" AND ROWNUM = 1) POSSUI_CANC, ");
sql.append(" TP.CVEPTOVTA TIPO_AGENCIA, ");
sql.append(" EC.NOMBEMPRESA ");
sql.append(" EC.NOMBEMPRESA, ");
sql.append(" EC.EMPRESA_ID ");
sql.append(" FROM CAJA CJ, ");
sql.append(" PUNTO_VENTA PV, ");
sql.append(" MARCA MC, ");
sql.append(" EMPRESA EM, ");
sql.append(" EMPRESA EC, ");
sql.append(" PARADA PR, ");
@ -589,7 +603,8 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
sql.append(" :DATA_FINAL ");
sql.append(" AND PR.PARADA_ID = PV.PARADA_ID ");
sql.append(" AND CJ.EMPRESAPUNTOVENTA_ID = EM.EMPRESA_ID ");
sql.append(" AND CJ.EMPRESACORRIDA_ID = EC.EMPRESA_ID ");
sql.append(" AND CJ.MARCA_ID = MC.MARCA_ID ");
sql.append(" AND MC.EMPRESA_ID = EC.EMPRESA_ID ");
sql.append(" AND EM.CIUDAD_ID = CE.CIUDAD_ID ");
sql.append(" AND CX.CIUDAD_ID = PR.CIUDAD_ID ");
sql.append(" AND CX.ESTADO_ID = ES.ESTADO_ID ");
@ -601,13 +616,13 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
sql.append(" AND CJ.INDREIMPRESION = 0 ");
sql.append(" AND PV.TIPOPTOVTA_ID = NVL(:TIPOPTOVTA_ID, PV.TIPOPTOVTA_ID) ");
sql.append(" AND TP.TIPOPTOVTA_ID = PV.TIPOPTOVTA_ID ");
sql.append(" AND CJ.EMPRESACORRIDA_ID = NVL(:EMPRESA_ID, CJ.EMPRESACORRIDA_ID) ");
sql.append(" AND EC.EMPRESA_ID = NVL(:EMPRESA_ID, EC.EMPRESA_ID) ");
// sql.append(" AND ES.ESTADO_ID = NVL(:ESTADO_ID, ES.ESTADO_ID) ");
sql.append(" AND ((INSTR(:NUMPUNTOVENTA, ',' || TRIM(PV.NUMPUNTOVENTA) || ',') > 0 AND ");
sql.append(" :ISNUMPUNTOVENTATODOS = 'N') OR (:ISNUMPUNTOVENTATODOS = 'S')) ");
sql.append(" AND ((INSTR(:ESTADO_ID, ',' || TRIM(ES.ESTADO_ID) || ',') > 0 AND ");
sql.append(" :ISESTADOTODOS = 'N') OR (:ISESTADOTODOS = 'S')) ");
sql.append(" ORDER BY EC.NOMBEMPRESA ");
sql.append(" ORDER BY EC.NOMBEMPRESA, ES.CVEESTADO ");
return sql.toString();
}

View File

@ -247,6 +247,7 @@
<field name="RECEITA_EMBARQUE" class="java.math.BigDecimal"/>
<field name="RECEITA_EMBARQUE_GAP" class="java.math.BigDecimal"/>
<field name="EMPRESA" class="java.lang.String"/>
<sortField name="EMPRESA"/>
<sortField name="CVEESTADO"/>
<variable name="TOTAL_BILHETES_SUM" class="java.math.BigDecimal" resetType="Group" resetGroup="GRUPO_ESTADO" calculation="Sum">
<variableExpression><![CDATA[$F{TOTAL_BILHETES}]]></variableExpression>

View File

@ -1 +1 @@
ADM_20130910_1RC229
ADM_20130910_1RC230