Erro registro valor Conta Corrente e Resumo de Caixa

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@31567 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2013-10-17 21:47:37 +00:00
parent af1b42fa70
commit 2fc9df9292
4 changed files with 63 additions and 78 deletions

View File

@ -23,6 +23,9 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
*/
public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
private static final Integer CEM = Integer.valueOf(100);
private static final Integer MAX_DECIMAL = Integer.valueOf(2);
enum IndicadorRelatorio {
MPE(1), RECEITA_KM(2), RECEITA_VIAGEM(3), IAP(4), PAXKM(5), ABSOLUTO(6), EQ(7);
@ -52,7 +55,6 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
*/
public RelatorioAcompanhamentoEquivalentes(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao);
// TODO Auto-generated constructor stub
this.setCustomDataSource(new ArrayDataSource(this) {
@ -61,6 +63,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
Connection conexao = this.relatorio.getConexao();
Map<String, Object> parametros = this.relatorio.getParametros();
String sql = getSql();
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
if (parametros.get("EMPRESA_ID") != null)
@ -89,6 +92,8 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
Integer rolOperativoId = this.resultSet.getInt("ROLOPERATIVO_ID");
Integer corridaId = this.resultSet.getInt("CORRIDA_ID");
Integer assentos = this.resultSet.getInt("ASSENTOS");
Map<String, Object> row = new HashMap<String, Object>();
BigDecimal totalMes = BigDecimal.ZERO;
Integer totalDias = 0;
@ -100,7 +105,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
// Roda todos os dias do mes
for (int dia = 1; dia <= cal.getActualMaximum(Calendar.DATE); dia++) {
BigDecimal valor = getValorByIndicador(cal.getTime(), corridaId, rolOperativoId, (Integer) this.relatorio.getParametros().get("INDICADOR"));
BigDecimal valor = getValorByIndicador(cal.getTime(), corridaId, rolOperativoId, (Integer) this.relatorio.getParametros().get("INDICADOR"), assentos);
if (valor != null) {
totalMes = totalMes.add(valor);
@ -133,7 +138,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
}
protected BigDecimal getValorByIndicador(Date data, Integer corridaId, Integer rolOperativoId, Integer indicador) throws SQLException {
protected BigDecimal getValorByIndicador(Date data, Integer corridaId, Integer rolOperativoId, Integer indicador, Integer assentos) throws SQLException {
String sql = null;
@ -161,7 +166,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
break;
}
return getValorIndicador(data, corridaId, sql);
return getValorIndicador(data, corridaId, indicador, assentos, sql);
}
});
@ -251,57 +256,30 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
protected String getSqlIndicadorIap() {
StringBuilder sql = new StringBuilder();
sql.append(" SELECT (TAB1.EQUIVALENTE * TAB1.EXTENSAO_LINHA) /");
sql.append(" (TAB1.CAPACIDADE * TAB1.EXTENSAO_LINHA) VALOR");
sql.append(" FROM (SELECT TAB.*,");
sql.append(" (SELECT SUM((TR.CANTKMREAL / TAB.EXTENSAO_LINHA) *");
sql.append(" COUNT(1))");
sql.append(" FROM CORRIDA CR,");
sql.append(" CORRIDA_TRAMO CT,");
sql.append(" TRAMO TR,");
sql.append(" BOLETO BO,");
sql.append(" CORRIDA_TRAMO CTD,");
sql.append(" CORRIDA_TRAMO CTO");
sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID");
sql.append(" AND CR.FECCORRIDA = :FECCORRIDA");
sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA");
sql.append(" AND CT.CORRIDA_ID = CR.CORRIDA_ID");
sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID");
sql.append(" AND BO.CORRIDA_ID = CT.CORRIDA_ID");
sql.append(" AND BO.FECCORRIDA = CT.FECCORRIDA");
sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID");
sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID");
sql.append(" AND CTD.CORRIDA_ID = CT.CORRIDA_ID");
sql.append(" AND CTD.FECCORRIDA = CT.FECCORRIDA");
sql.append(" AND CTO.CORRIDA_ID = CT.CORRIDA_ID");
sql.append(" AND CTO.FECCORRIDA = CT.FECCORRIDA");
sql.append(" AND CTO.ACTIVO = 1");
sql.append(" AND CTD.ACTIVO = 1");
sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND");
sql.append(" CTD.NUMSECUENCIA");
sql.append(" AND BO.ACTIVO = 1");
sql.append(" AND BO.INDREIMPRESION = 0");
sql.append(" AND BO.INDSTATUSOPERACION = 'F'");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR");
sql.append(" BO.MOTIVOCANCELACION_ID = 0)");
sql.append(" GROUP BY CT.TRAMO_ID, TR.CANTKMREAL) EQUIVALENTE");
sql.append(" FROM (SELECT (SELECT SUM(TR1.CANTKMREAL)");
sql.append(" FROM CORRIDA_TRAMO CT1, TRAMO TR1");
sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID");
sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA");
sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EXTENSAO_LINHA,");
sql.append(" ");
sql.append(" (SELECT DA.CANTASIENTOS");
sql.append(" FROM CORRIDA CR,");
sql.append(" ROL_OPERATIVO RO,");
sql.append(" DIAGRAMA_AUTOBUS DA");
sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID");
sql.append(" AND CR.FECCORRIDA = :FECCORRIDA");
sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID");
sql.append(" AND RO.DIAGRAMAAUTOBUS_ID =");
sql.append(" DA.DIAGRAMAAUTOBUS_ID) CAPACIDADE");
sql.append(" ");
sql.append(" FROM DUAL) TAB) TAB1");
sql.append(" SELECT ROUND(SUM(:CEM * (( EQUIVALENTE * EXTENSAO_LINHA ) / ( :CAPACIDADE * ");
sql.append(" EXTENSAO_LINHA ))), ");
sql.append(" :MAX_DECIMAL ) VALOR ");
sql.append(" FROM (SELECT ROUND(SUM(EQ), :MAX_DECIMAL) EQUIVALENTE, ");
sql.append(" EL EXTENSAO_LINHA ");
sql.append(" FROM (SELECT ROUND(( BO.NUMKMVIAJE * COUNT(1) / ( EXTENSAO_LINHA.EL ) ");
sql.append(" ), :MAX_DECIMAL ) ");
sql.append(" EQ, ");
sql.append(" EXTENSAO_LINHA.EL ");
sql.append(" EL ");
sql.append(" FROM BOLETO BO, ");
sql.append(" (SELECT SUM(TR1.CANTKMREAL) EL ");
sql.append(" FROM CORRIDA_TRAMO CT1, ");
sql.append(" TRAMO TR1 ");
sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA ");
sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EXTENSAO_LINHA ");
sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND BO.FECCORRIDA = :FECCORRIDA ");
sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND ( BO.MOTIVOCANCELACION_ID IS NULL ");
sql.append(" OR BO.MOTIVOCANCELACION_ID = 0 ) ");
sql.append(" GROUP BY BO.NUMKMVIAJE, EXTENSAO_LINHA.EL) ");
sql.append(" GROUP BY EQ, EL) ");
return sql.toString();
@ -405,22 +383,33 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
}
protected BigDecimal getValorIndicador(Date data, Integer corridaId, String sql) throws SQLException {
Connection conexao = this.getConexao();
protected BigDecimal getValorIndicador(Date data, Integer corridaId, Integer indicador, Integer assentos, String sql) throws SQLException {
BigDecimal retorno = null;
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
try {
stmt.setInt("CORRIDA_ID", corridaId);
stmt.setDate("FECCORRIDA", new java.sql.Date(data.getTime()));
Connection conexao = this.getConexao();
ResultSet resultSet = stmt.executeQuery();
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
if (resultSet.next())
retorno = resultSet.getBigDecimal("VALOR");
stmt.setInt("CORRIDA_ID", corridaId);
stmt.setDate("FECCORRIDA", new java.sql.Date(data.getTime()));
resultSet.close();
stmt.close();
if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) {
stmt.setInt("CAPACIDADE", assentos);
stmt.setInt("CEM", CEM);
stmt.setInt("MAX_DECIMAL", MAX_DECIMAL);
}
ResultSet resultSet = stmt.executeQuery();
if (resultSet.next())
retorno = resultSet.getBigDecimal("VALOR");
resultSet.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
return retorno;
}

View File

@ -35,6 +35,8 @@ import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
@Scope("prototype")
public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForwardComposer {
private static final long serialVersionUID = 1L;
@Autowired
private DataSource dataSource;
@ -49,8 +51,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw
private MyComboboxEstandar cmbEmpresa;
public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
executarRelatorio();
}
@ -69,7 +69,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw
parametros.put("INDICADOR", Integer.parseInt(rdGroupIndicador.getSelectedItem().getValue()));
parametros.put("INDICADOR_NOME", rdGroupIndicador.getSelectedItem().getLabel());
Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();
if (itemEmpresa != null) {
Empresa empresa = (Empresa) itemEmpresa.getValue();
@ -77,14 +76,12 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw
parametros.put("EMPRESA", empresa.getNombempresa());
}
if(rdGroupServico.getSelectedItem()!= null && !rdGroupServico.getSelectedItem().getValue().equals("-1"))
parametros.put("TIPOSERVICIO_ID", Integer.parseInt(rdGroupServico.getSelectedItem().getValue()));
if (rdGroupServico.getSelectedItem() != null && !rdGroupServico.getSelectedItem().getValue().equals("-1"))
parametros.put("TIPOSERVICIO_ID", Integer.parseInt(rdGroupServico.getSelectedItem().getValue()));
relatorio = new RelatorioAcompanhamentoEquivalentes(parametros, dataSource.getConnection());
Map args = new HashMap();
Map<String, Relatorio> args = new HashMap<String, Relatorio>();
args.put("relatorio", relatorio);
openWindow("/component/reportView.zul",
@ -99,7 +96,6 @@ public class RelatorioAcompanhamentoEquivalentesController extends MyGenericForw
super.doAfterCompose(comp);
}
public List<Empresa> getLsEmpresa() {
return lsEmpresa;
}

View File

@ -383,7 +383,7 @@ relatorioAcompanhamentoEquivalentesController.lbIndicador.value = Indicador
relatorioAcompanhamentoEquivalentesController.lbIndicador.mpe.value = MPE
relatorioAcompanhamentoEquivalentesController.lbIndicador.receitaKm.value = R$/Km
relatorioAcompanhamentoEquivalentesController.lbIndicador.receitaViagem.value = R$/Viagem
relatorioAcompanhamentoEquivalentesController.lbIndicador.iap.value = IAP
relatorioAcompanhamentoEquivalentesController.lbIndicador.iap.value = IAP%
relatorioAcompanhamentoEquivalentesController.lbIndicador.paxKm.value = Pax.KM
relatorioAcompanhamentoEquivalentesController.lbIndicador.absoluto.value = Absoluto
relatorioAcompanhamentoEquivalentesController.lbIndicador.eq.value = Eq

View File

@ -7,7 +7,7 @@
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winFiltroRelatorioAcompanhamentoEquivalentes"
apply="${relatorioAcompanhamentoEquivalentesController}"
contentStyle="overflow:auto" height="278px" width="550px"
contentStyle="overflow:auto" height="260px" width="550px"
border="normal">
<grid fixedLayout="true">
<columns>