0004840: WS caja

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@33375 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2014-01-30 12:58:37 +00:00
parent ccf92df389
commit b808a1d116
8 changed files with 427 additions and 5 deletions

View File

@ -3,8 +3,11 @@ package com.rjconsultores.ventaboletos.dao;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.rjconsultores.ventaboletos.vo.caja.CajaCerradoVO;
import com.rjconsultores.ventaboletos.vo.caja.CajaVO; import com.rjconsultores.ventaboletos.vo.caja.CajaVO;
import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO;
public interface CajaDAO { public interface CajaDAO {
public List<CajaVO> buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); public List<CajaVO> buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta);
public List<UsuarioVO> buscarCajaCerrado(Date fecha);
} }

View File

@ -1,10 +1,8 @@
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery; import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.transform.AliasToBeanResultTransformer; 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.CajaDAO;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; 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.CajaVO;
import com.rjconsultores.ventaboletos.vo.caja.ReceitaDespesaVO;
import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO;
@Repository("cajaDAO") @Repository("cajaDAO")
public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implements CajaDAO { public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implements CajaDAO {
@ -32,6 +33,7 @@ public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implemen
setSessionFactory(factory); setSessionFactory(factory);
} }
@Override @Override
public List<CajaVO> buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) { public List<CajaVO> buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) {
String sqlBuscarCajaFecha = sqlBuilder.getSQLBuscarCajaFecha(yaCerrado, fechaDesde, fechaHasta); String sqlBuscarCajaFecha = sqlBuilder.getSQLBuscarCajaFecha(yaCerrado, fechaDesde, fechaHasta);
@ -74,5 +76,55 @@ public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implemen
return sql.list(); return sql.list();
} }
public List<UsuarioVO> 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<UsuarioVO> 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<CajaCerradoVO>)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<ReceitaDespesaVO>)sql.list());
}
return usuarios;
} catch (Exception e){
return null;
}
}
} }

View File

@ -43,5 +43,11 @@ public interface SQLBuilder {
public String getSQLActualizarCorridaTramoFecHusoFecVerano(); public String getSQLActualizarCorridaTramoFecHusoFecVerano();
public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); 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);
} }

View File

@ -545,8 +545,8 @@ public class SQLBuilderOracle implements SQLBuilder {
sb.append(" where ctq.corridatramoId = :corridatramoId "); sb.append(" where ctq.corridatramoId = :corridatramoId ");
return sb.toString(); return sb.toString();
} }
@Override @Override
public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) { public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 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 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_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_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(" ");
sb.append(" where "); 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')"); 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(); 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();
}
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<CajaCerradoVO> pasajes;
private List<ReceitaDespesaVO> diversos;
public List<CajaCerradoVO> getPasajes() {
return pasajes;
}
public void setPasajes(List<CajaCerradoVO> pasajes) {
this.pasajes = pasajes;
}
public List<ReceitaDespesaVO> getDiversos() {
return diversos;
}
public void setDiversos(List<ReceitaDespesaVO> 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;
}
}

View File

@ -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<UsuarioVO> 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<UsuarioVO> list = cajaDAO.buscarCajaCerrado(fec);
return list;
}
}