wilian 2016-06-16 18:04:39 +00:00
parent 771ced7a19
commit 016194e589
1 changed files with 61 additions and 9 deletions

View File

@ -1,6 +1,10 @@
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@ -15,6 +19,8 @@ import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.hibernate.Hibernate; import org.hibernate.Hibernate;
@ -54,6 +60,9 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
@Autowired @Autowired
private ContaCorrenteAgenciaDAO contaCorrenteAgenciaDAO; private ContaCorrenteAgenciaDAO contaCorrenteAgenciaDAO;
@Autowired
private DataSource dataSourceRead;
@Autowired @Autowired
public ConferenciaComissaoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { public ConferenciaComissaoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory); setSessionFactory(factory);
@ -61,12 +70,15 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
@Override @Override
public List<ConferenciaComissaoVO> carregarConferenciaComissao(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException { public List<ConferenciaComissaoVO> carregarConferenciaComissao(String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException {
Connection con = null;
try { try {
con = dataSourceRead.getConnection();
List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>(); List<ConferenciaComissaoVO> lsConferencias = new ArrayList<ConferenciaComissaoVO>();
carregarPuntoVentas(lsConferencias, competencia, empresa, puntoVenta); carregarPuntoVentas(lsConferencias, competencia, empresa, puntoVenta);
carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta); carregarConferenciasRegistradas(lsConferencias, competencia, empresa, puntoVenta);
carregarMovimentoVendas(lsConferencias, competencia, empresa, puntoVenta); carregarMovimentoVendas(con, lsConferencias, competencia, empresa, puntoVenta);
carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta); carregarDiasSemMovimento(lsConferencias, competencia, empresa, puntoVenta);
Collections.sort(lsConferencias); Collections.sort(lsConferencias);
@ -75,6 +87,14 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new BusinessException(e.getMessage(), e); throw new BusinessException(e.getMessage(), e);
} finally {
try {
if(con != null && !con.isClosed()) {
con.close();
}
} catch (SQLException e) {
log.error(e.getMessage(), e);
}
} }
} }
@ -164,40 +184,72 @@ public class ConferenciaComissaoHibernateDAO extends GenericHibernateDAO<Confere
} }
} }
@SuppressWarnings({ "unchecked", "deprecation" }) private void carregarMovimentoVendas(Connection con, List<ConferenciaComissaoVO> lsConferencias, String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException, SQLException {
private void carregarMovimentoVendas(List<ConferenciaComissaoVO> lsConferencias, String competencia, Empresa empresa, PuntoVenta puntoVenta) throws BusinessException { PreparedStatement stmt = null;
ResultSet rset = null;
try { try {
Map<String, Object> parametros = carregarParametros(competencia, empresa, puntoVenta); Map<String, Object> parametros = carregarParametros(competencia, empresa, puntoVenta);
StringBuilder sQuery = new StringBuilder("SELECT PV.PUNTOVENTA_ID AS \"puntoventaId\", PV.NUMPUNTOVENTA as \"numPuntoVenta\", PV.NOMBPUNTOVENTA as \"nombpuntoventa\", TO_DATE(B.FECHORVENTA, 'DD/MM/YY') as \"datamovimento\" "); StringBuilder sQuery = new StringBuilder("SELECT PV.PUNTOVENTA_ID AS \"puntoventaId\", PV.NUMPUNTOVENTA as \"numPuntoVenta\", PV.NOMBPUNTOVENTA as \"nombpuntoventa\", TO_DATE(B.FECHORVENTA, 'DD/MM/YY') as \"datamovimento\" ");
sQuery.append("FROM BOLETO B ") sQuery.append("FROM BOLETO B ")
.append("INNER JOIN PUNTO_VENTA PV ON B.PUNTOVENTA_ID = PV.PUNTOVENTA_ID ") .append("INNER JOIN PUNTO_VENTA PV ON B.PUNTOVENTA_ID = PV.PUNTOVENTA_ID ")
.append("WHERE PV.ACTIVO = 1 ") .append("WHERE PV.ACTIVO = 1 ")
.append("AND B.FECHORVENTA BETWEEN :dataInicial AND :dataFinal "); .append("AND B.FECHORVENTA BETWEEN ? AND ? ");
if(parametros.containsKey("empresaId")) { if(parametros.containsKey("empresaId")) {
sQuery.append("AND (B.EMPRESACORRIDA_ID = :empresaId OR B.MARCA_ID = :empresaId) "); sQuery.append("AND B.MARCA_ID = ? ");
} }
if(parametros.containsKey("puntoventaId")) { if(parametros.containsKey("puntoventaId")) {
sQuery.append("AND PV.PUNTOVENTA_ID = :puntoventaId "); sQuery.append("AND PV.PUNTOVENTA_ID = ? ");
} }
sQuery.append("GROUP BY PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, TO_DATE(B.FECHORVENTA, 'DD/MM/YY') "); sQuery.append("GROUP BY PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA, PV.NOMBPUNTOVENTA, TO_DATE(B.FECHORVENTA, 'DD/MM/YY') ");
log.info(sQuery.toString()); log.info(sQuery.toString());
Query qr = getSession().createSQLQuery(sQuery.toString()) stmt = con.prepareStatement(sQuery.toString());
int idxParametro = 1;
stmt.setDate(idxParametro++, new java.sql.Date(((Date)parametros.get("dataInicial")).getTime()));
stmt.setDate(idxParametro++, new java.sql.Date(((Date)parametros.get("dataFinal")).getTime()));
if(parametros.containsKey("empresaId")) {
stmt.setInt(idxParametro++, (Integer) parametros.get("empresaId"));
}
if(parametros.containsKey("puntoventaId")) {
stmt.setInt(idxParametro++, (Integer) parametros.get("puntoventaId"));
}
rset = stmt.executeQuery();
List<ConferenciaComissaoVO> movimentos = new ArrayList<ConferenciaComissaoVO>();
while(rset.next()) {
ConferenciaComissaoVO conferenciaComissao = new ConferenciaComissaoVO();
conferenciaComissao.setPuntoventaId(rset.getInt("puntoventaId"));
conferenciaComissao.setNumPuntoVenta(rset.getString("numPuntoVenta"));
conferenciaComissao.setNombpuntoventa(rset.getString("nombpuntoventa"));
conferenciaComissao.setDatamovimento(rset.getDate("datamovimento"));
movimentos.add(conferenciaComissao);
}
/*Query qr = getSession().createSQLQuery(sQuery.toString())
.addScalar("puntoventaId", Hibernate.INTEGER) .addScalar("puntoventaId", Hibernate.INTEGER)
.addScalar("numPuntoVenta", Hibernate.STRING) .addScalar("numPuntoVenta", Hibernate.STRING)
.addScalar("nombpuntoventa", Hibernate.STRING) .addScalar("nombpuntoventa", Hibernate.STRING)
.addScalar("datamovimento", Hibernate.DATE) .addScalar("datamovimento", Hibernate.DATE)
.setResultTransformer(Transformers.aliasToBean(ConferenciaComissaoVO.class)); .setResultTransformer(Transformers.aliasToBean(ConferenciaComissaoVO.class));
setParametros(qr, parametros); setParametros(qr, parametros);*/
processarQueryConferenciaComissao(qr.list(), lsConferencias, competencia); processarQueryConferenciaComissao(movimentos, lsConferencias, competencia);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new BusinessException(e.getMessage(), e); throw new BusinessException(e.getMessage(), e);
} finally {
if(rset != null && !rset.isClosed()) {
rset.close();
}
if(stmt != null && !stmt.isClosed()) {
stmt.close();
}
} }
} }