From b808a1d1166de19bf3d1d842d779e8afe457aa95 Mon Sep 17 00:00:00 2001 From: leonardo Date: Thu, 30 Jan 2014 12:58:37 +0000 Subject: [PATCH] 0004840: WS caja git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@33375 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/CajaDAO.java | 3 + .../dao/hibernate/CajaHibernateDAO.java | 56 +++++- .../dao/sqlbuilder/SQLBuilder.java | 6 + .../dao/sqlbuilder/impl/SQLBuilderOracle.java | 94 +++++++++- .../ventaboletos/vo/caja/CajaCerradoVO.java | 170 ++++++++++++++++++ .../vo/caja/ReceitaDespesaVO.java | 24 +++ .../ventaboletos/vo/caja/UsuarioVO.java | 38 ++++ .../ventaboletos/ws/rs/CajaCerrado.java | 41 +++++ 8 files changed, 427 insertions(+), 5 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java create mode 100644 src/com/rjconsultores/ventaboletos/vo/caja/ReceitaDespesaVO.java create mode 100644 src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java create mode 100644 src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java diff --git a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java index 21fc112cd..7a88b5831 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java @@ -3,8 +3,11 @@ package com.rjconsultores.ventaboletos.dao; import java.util.Date; import java.util.List; +import com.rjconsultores.ventaboletos.vo.caja.CajaCerradoVO; import com.rjconsultores.ventaboletos.vo.caja.CajaVO; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; public interface CajaDAO { public List buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); + public List buscarCajaCerrado(Date fecha); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java index 3bccc00c8..fe83d6c0c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java @@ -1,10 +1,8 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.Date; - import java.util.List; -import org.hibernate.Hibernate; import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.transform.AliasToBeanResultTransformer; @@ -19,7 +17,10 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.CajaDAO; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; +import com.rjconsultores.ventaboletos.vo.caja.CajaCerradoVO; import com.rjconsultores.ventaboletos.vo.caja.CajaVO; +import com.rjconsultores.ventaboletos.vo.caja.ReceitaDespesaVO; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; @Repository("cajaDAO") public class CajaHibernateDAO extends GenericHibernateDAO implements CajaDAO { @@ -32,6 +33,7 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen setSessionFactory(factory); } + @Override public List buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) { String sqlBuscarCajaFecha = sqlBuilder.getSQLBuscarCajaFecha(yaCerrado, fechaDesde, fechaHasta); @@ -74,5 +76,55 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen return sql.list(); } + + public List buscarCajaCerrado(Date fecha){ + try{ + String sqlBuscarUsuariosCajaCerrado = sqlBuilder.getSQLBuscarUsuariosCajaCerrado(fecha); + SQLQuery sql = getSession().createSQLQuery(sqlBuscarUsuariosCajaCerrado) + .addScalar("usuarioId", IntegerType.INSTANCE) + .addScalar("nombusuario", StringType.INSTANCE); + sql.setResultTransformer(new AliasToBeanResultTransformer(UsuarioVO.class)); + List usuarios = sql.list(); + + for (UsuarioVO u : usuarios){ + String sqlBuscarCajaFecha = sqlBuilder.getSQLBuscarCajaCerrado(u.getUsuarioId(), fecha); + sql = getSession().createSQLQuery(sqlBuscarCajaFecha) + .addScalar("cajaId", LongType.INSTANCE) + .addScalar("numFolioSistema", StringType.INSTANCE) + .addScalar("origen", StringType.INSTANCE) + .addScalar("destino", StringType.INSTANCE) + .addScalar("corridaId", IntegerType.INSTANCE) + .addScalar("precioBase", BigDecimalType.INSTANCE) + .addScalar("precioPagado", BigDecimalType.INSTANCE) + .addScalar("fecHorVenta", DateType.INSTANCE) + .addScalar("puntoVentaId", IntegerType.INSTANCE) + .addScalar("importeTaxaEmbarque", BigDecimalType.INSTANCE) + .addScalar("ruta", StringType.INSTANCE) + .addScalar("numAutorizacion", StringType.INSTANCE) + .addScalar("ordenSevicio", StringType.INSTANCE) + .addScalar("fecCorte", DateType.INSTANCE) + .addScalar("turnoId", IntegerType.INSTANCE) + .addScalar("importeTotal", BigDecimalType.INSTANCE) + .addScalar("secretaria", StringType.INSTANCE) + .addScalar("emissorTarjeta", StringType.INSTANCE) + .addScalar("tipoPasaje", StringType.INSTANCE); + + + sql.setResultTransformer(new AliasToBeanResultTransformer(CajaCerradoVO.class)); + + u.setPasajes((List)sql.list()); + + String sqlBuscarReceitaDespesa = sqlBuilder.getSQLBuscarReceitasDespesasCaja(u.getUsuarioId(), fecha); + sql = getSession().createSQLQuery(sqlBuscarReceitaDespesa) + .addScalar("precio", BigDecimalType.INSTANCE) + .addScalar("tipoEvento", StringType.INSTANCE); + sql.setResultTransformer(new AliasToBeanResultTransformer(ReceitaDespesaVO.class)); + u.setDiversos((List)sql.list()); + } + return usuarios; + } catch (Exception e){ + return null; + } + } } diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java index cfe89b8e8..913b3e165 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java @@ -43,5 +43,11 @@ public interface SQLBuilder { public String getSQLActualizarCorridaTramoFecHusoFecVerano(); public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); + + public String getSQLBuscarUsuariosCajaCerrado(Date fecha); + + public String getSQLBuscarCajaCerrado(Integer usuarioId, Date fecha); + + public String getSQLBuscarReceitasDespesasCaja(Integer usuarioId, Date fec); } diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java index 5db28912a..503e37e06 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java @@ -545,8 +545,8 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" where ctq.corridatramoId = :corridatramoId "); return sb.toString(); - } - + } + @Override public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -593,7 +593,7 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" left join corrida co on co.corrida_id = c.corrida_id and co.feccorrida = c.feccorrida "); sb.append(" left join caja_formapago cfp on cfp.caja_id = c.caja_id "); sb.append(" left join caja_det_pago cdp on cdp.cajaformapago_id = cfp.cajaformapago_id "); - sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); + sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); sb.append(" "); sb.append(" where "); sb.append(" trunc(fechorventa) between to_date('").append(sdf.format(fechaDesde)).append("','yyyy-MM-dd') and ").append(" to_date('").append(sdf.format(fechaHasta)).append("','yyyy-MM-dd')"); @@ -603,5 +603,93 @@ public class SQLBuilderOracle implements SQLBuilder { return sb.toString(); } + + @Override + public String getSQLBuscarUsuariosCajaCerrado(Date fecha){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + StringBuilder sb = new StringBuilder(""); + sb.append(" select "); + sb.append(" "); + sb.append(" u.usuario_id as \"usuarioId\", "); + sb.append(" u.nombusuario as \"nombusuario\" "); + sb.append(" "); + sb.append(" from "); + sb.append(" caja c "); + sb.append(" left join usuario u on c.usuario_id = u.usuario_id "); + sb.append(" "); + sb.append(" where "); + sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); + sb.append(" and c.turno_id is not null"); + + return sb.toString(); + } + + @Override + public String getSQLBuscarCajaCerrado(Integer usuarioId, Date fecha) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + StringBuilder sb = new StringBuilder(""); + sb.append(" select "); + sb.append(" "); + sb.append(" c.CAJA_ID as \"cajaId\", "); + sb.append(" c.NUMFOLIOSISTEMA as \"numFolioSistema\", "); + sb.append(" ori.descparada as \"origen\", "); + sb.append(" des.descparada as \"destino\", "); + sb.append(" c.CORRIDA_ID as \"corridaId\", "); + sb.append(" c.PRECIOBASE as \"precioBase\", "); + sb.append(" c.PRECIOPAGADO as \"precioPagado\", "); + sb.append(" c.FECHORVENTA as \"fecHorVenta\", "); + sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); + sb.append(" c.IMPORTETAXAEMBARQUE as \"importeTaxaEmbarque\", "); + sb.append(" ru.descruta as \"ruta\", "); + sb.append(" ct.numautorizacion as \"numAutorizacion\", "); + sb.append(" (case when cfp.formapago_id = 11 then cdp.numdocumento else null end) as \"ordenSevicio\", "); + sb.append(" c.FECCORTE as \"fecCorte\", "); + sb.append(" c.TURNO_ID as \"turnoId\", "); + sb.append(" (select sum(importe) from conta_corrente_ptovta ccpv where ccpv.puntoventa_id = c.puntoventa_id and ccpv.usuario_id = c.usuario_id and ccpv.feccorte = c.feccorte and ccpv.turno_id = c.turno_id) as \"importeTotal\", "); + sb.append(" s.descsecretaria as \"secretaria\", "); + sb.append(" ct.TIPOTARJETA as \"emissorTarjeta\", "); + sb.append(" cat.DESCCATEGORIA as \"tipoPasaje\" "); + sb.append(" "); + sb.append(" from "); + sb.append(" caja c "); + sb.append(" left join corrida co on co.corrida_id = c.corrida_id and co.feccorrida = c.feccorrida "); + sb.append(" left join caja_formapago cfp on cfp.caja_id = c.caja_id "); + sb.append(" left join caja_det_pago cdp on cdp.cajaformapago_id = cfp.cajaformapago_id "); + sb.append(" left join caja_tarjeta ct on ct.cajadetpago_id = cdp.cajadetpago_id "); + sb.append(" left join categoria cat on cat.categoria_id = c.categoria_id "); + sb.append(" left join secretaria s on s.secretaria_id = cdp.opcional1 "); + sb.append(" left join ruta ru on ru.ruta_id = co.ruta_id "); + sb.append(" left join parada ori on ori.parada_id = c.origen_id "); + sb.append(" left join parada des on des.parada_id = c.destino_id "); + sb.append(" "); + sb.append(" where "); + sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); + sb.append(" and c.usuario_id = ").append(usuarioId); + sb.append(" and c.turno_id is not null"); + + return sb.toString(); + } + + @Override + public String getSQLBuscarReceitasDespesasCaja(Integer usuarioId, Date fec) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + StringBuilder sb = new StringBuilder(""); + sb.append(" select "); + sb.append(" "); + sb.append(" c.precio as \"precio\", "); + sb.append(" t.desctipoevento as \"tipoEvento\" "); + sb.append(" "); + sb.append(" from "); + sb.append(" caja_diversos c "); + sb.append(" left join evento_extra e on c.eventoextra_id = e.eventoextra_id "); + sb.append(" left join tipo_evento_extra t on t.tipoeventoextra_id = e.tipoeventoextra_id "); + sb.append(" "); + sb.append(" where "); + sb.append(" c.feccorte = to_date('").append(sdf.format(fec)).append("','yyyy-MM-dd')"); + sb.append(" and c.turno_id is not null"); + + return sb.toString(); + } } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java b/src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java new file mode 100644 index 000000000..7c0e42b5f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java @@ -0,0 +1,170 @@ +package com.rjconsultores.ventaboletos.vo.caja; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class CajaCerradoVO { + + private Long cajaId; + private String numFolioSistema; + private String origen; + private String destino; + private Integer corridaId; + private BigDecimal precioBase; + private BigDecimal precioPagado; + private Date fecHorVenta; + private Integer puntoVentaId; + private BigDecimal importeTaxaEmbarque; + private String ruta; + private String numAutorizacion; + private String ordenSevicio; + private Date fecCorte; + private Integer turnoId; + private BigDecimal importeTotal; + private String secretaria; + private String emissorTarjeta; + private String tipoPasaje; + + public CajaCerradoVO() { + this.cajaId = new Long(-1); + this.numFolioSistema = ""; + this.origen = ""; + this.destino = ""; + this.corridaId = new Integer(-1); + this.precioBase = new BigDecimal(0); + this.precioPagado = new BigDecimal(0); + this.fecHorVenta = new Date(); + this.puntoVentaId = new Integer(-1); + this.importeTaxaEmbarque = new BigDecimal(0); + this.ruta = ""; + this.numAutorizacion = ""; + this.ordenSevicio = ""; + this.fecCorte = new Date();; + this.turnoId = new Integer(-1); + this.importeTotal = new BigDecimal(0); + this.secretaria = ""; + this.emissorTarjeta = ""; + this.tipoPasaje = ""; + } + + + public Long getCajaId() { + return cajaId; + } + public void setCajaId(Long cajaId) { + this.cajaId = cajaId; + } + public String getNumFolioSistema() { + return numFolioSistema; + } + public void setNumFolioSistema(String numFolioSistema) { + this.numFolioSistema = numFolioSistema; + } + public String getOrigen() { + return origen; + } + public void setOrigen(String origen) { + this.origen = origen; + } + public String getDestino() { + return destino; + } + public void setDestino(String destino) { + this.destino = destino; + } + public Integer getCorridaId() { + return corridaId; + } + public void setCorridaId(Integer corridaId) { + this.corridaId = corridaId; + } + public BigDecimal getPrecioBase() { + return precioBase; + } + public void setPrecioBase(BigDecimal precioBase) { + this.precioBase = precioBase; + } + public BigDecimal getPrecioPagado() { + return precioPagado; + } + public void setPrecioPagado(BigDecimal precioPagado) { + this.precioPagado = precioPagado; + } + public Date getFecHorVenta() { + return fecHorVenta; + } + public void setFecHorVenta(Date fecHorVenta) { + this.fecHorVenta = fecHorVenta; + } + public Integer getPuntoVentaId() { + return puntoVentaId; + } + public void setPuntoVentaId(Integer puntoVentaId) { + this.puntoVentaId = puntoVentaId; + } + public BigDecimal getImporteTaxaEmbarque() { + return importeTaxaEmbarque; + } + public void setImporteTaxaEmbarque(BigDecimal importeTaxaEmbarque) { + this.importeTaxaEmbarque = importeTaxaEmbarque; + } + public String getRuta() { + return ruta; + } + public void setRuta(String ruta) { + this.ruta = ruta; + } + public String getNumAutorizacion() { + return numAutorizacion; + } + public void setNumAutorizacion(String numAutorizacion) { + this.numAutorizacion = numAutorizacion; + } + public String getOrdenSevicio() { + return ordenSevicio; + } + public void setOrdenSevicio(String ordenSevicio) { + this.ordenSevicio = ordenSevicio; + } + public Date getFecCorte() { + return fecCorte; + } + public void setFecCorte(Date fecCorte) { + this.fecCorte = fecCorte; + } + public Integer getTurnoId() { + return turnoId; + } + public void setTurnoId(Integer turnoId) { + this.turnoId = turnoId; + } + public BigDecimal getImporteTotal() { + return importeTotal; + } + public void setImporteTotal(BigDecimal importeTotal) { + this.importeTotal = importeTotal; + } + public String getCodigoSecretaria() { + return secretaria; + } + public void setCodigoSecretaria(String secretaria) { + this.secretaria = secretaria; + } + public String getEmissorTarjeta() { + return emissorTarjeta; + } + public void setEmissorTarjeta(String emissorTarjeta) { + this.emissorTarjeta = emissorTarjeta; + } + public String getTipoPasaje() { + return tipoPasaje; + } + public void setTipoPasaje(String tipoPasaje) { + this.tipoPasaje = tipoPasaje; + } +} diff --git a/src/com/rjconsultores/ventaboletos/vo/caja/ReceitaDespesaVO.java b/src/com/rjconsultores/ventaboletos/vo/caja/ReceitaDespesaVO.java new file mode 100644 index 000000000..08c296b8e --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/caja/ReceitaDespesaVO.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.vo.caja; + +import java.math.BigDecimal; + +import javax.xml.bind.annotation.XmlRootElement; + + +public class ReceitaDespesaVO { + private BigDecimal precio; + private String tipoEvento; + + public BigDecimal getPrecio() { + return precio; + } + public void setPrecio(BigDecimal precio) { + this.precio = precio; + } + public String getTipoEvento() { + return tipoEvento; + } + public void setTipoEvento(String tipoEvento) { + this.tipoEvento = tipoEvento; + } +} diff --git a/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java new file mode 100644 index 000000000..46c7fae7f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java @@ -0,0 +1,38 @@ +package com.rjconsultores.ventaboletos.vo.caja; + +import java.util.List; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class UsuarioVO { + private Integer usuarioId; + private String nombusuario; + private List pasajes; + private List diversos; + + public List getPasajes() { + return pasajes; + } + public void setPasajes(List pasajes) { + this.pasajes = pasajes; + } + public List getDiversos() { + return diversos; + } + public void setDiversos(List diversos) { + this.diversos = diversos; + } + public String getNombusuario() { + return nombusuario; + } + public void setNombusuario(String nombusuario) { + this.nombusuario = nombusuario; + } + public Integer getUsuarioId() { + return usuarioId; + } + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } +} diff --git a/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java b/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java new file mode 100644 index 000000000..d982610ac --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.ws.rs; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.dao.CajaDAO; +import com.rjconsultores.ventaboletos.vo.caja.CajaCerradoVO; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Path("/cajasCerrados") +public class CajaCerrado { + @GET + @Produces({ MediaType.APPLICATION_XML }) + public List buscarCajaCerrado(@QueryParam("fecha") String fecha) { + + SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); + + Date fec = new Date(); Date fecHastaD = new Date(); + + try { + fec = StringUtils.isBlank(fecha) ? new Date() : sdf.parse(fecha); + } catch (Exception e) { + + } + + CajaDAO cajaDAO = (CajaDAO) AppContext.getApplicationContext().getBean("cajaDAO"); + List list = cajaDAO.buscarCajaCerrado(fec); + + return list; + } +}