diff --git a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java index 7a88b5831..c424981a4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/CajaDAO.java @@ -9,5 +9,5 @@ import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; public interface CajaDAO { public List buscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); - public List buscarCajaCerrado(Date fecha); + public List buscarCajaCerrado(Date fecha, String cveusuario, String turnoid); } diff --git a/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java b/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java index 8270c7f11..5ae17aac6 100644 --- a/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java @@ -6,6 +6,8 @@ package com.rjconsultores.ventaboletos.dao; import com.rjconsultores.ventaboletos.entidad.Empleado; import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO; + import java.util.List; /** @@ -21,4 +23,6 @@ public interface UsuarioDAO extends GenericDAO { public List buscarPorEmpleado(Empleado empleado); public List buscarPelaCveUsuario(String cveUsuario); + + public List buscarUsuariosActivo(); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java index fe83d6c0c..32faa5eb6 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/CajaHibernateDAO.java @@ -24,7 +24,6 @@ import com.rjconsultores.ventaboletos.vo.caja.UsuarioVO; @Repository("cajaDAO") public class CajaHibernateDAO extends GenericHibernateDAO implements CajaDAO { - @Autowired private SQLBuilder sqlBuilder; @@ -77,17 +76,26 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen return sql.list(); } - public List buscarCajaCerrado(Date fecha){ + public List buscarCajaCerrado(Date fecha, String cveusuario, String turnoid) { try{ - String sqlBuscarUsuariosCajaCerrado = sqlBuilder.getSQLBuscarUsuariosCajaCerrado(fecha); + String sqlBuscarUsuariosCajaCerrado = sqlBuilder.getSQLBuscarUsuariosCajaCerrado(fecha, cveusuario, turnoid); + SQLQuery sql = getSession().createSQLQuery(sqlBuscarUsuariosCajaCerrado) .addScalar("usuarioId", IntegerType.INSTANCE) - .addScalar("nombusuario", StringType.INSTANCE); + .addScalar("cveusuario", StringType.INSTANCE) + .addScalar("puntoVentaId", IntegerType.INSTANCE) + .addScalar("fecCorte", DateType.INSTANCE) + .addScalar("turnoId", IntegerType.INSTANCE) + .addScalar("importeTotal", BigDecimalType.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) @@ -95,16 +103,11 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen .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); @@ -126,5 +129,4 @@ public class CajaHibernateDAO extends GenericHibernateDAO implemen return null; } } - } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java index 63c9f8300..70645a66d 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java @@ -5,13 +5,22 @@ package com.rjconsultores.ventaboletos.dao.hibernate; import com.rjconsultores.ventaboletos.dao.UsuarioDAO; +import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.entidad.Empleado; import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO; + +import java.util.ArrayList; import java.util.List; + import org.hibernate.Criteria; +import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; +import org.hibernate.transform.AliasToBeanResultTransformer; +import org.hibernate.type.IntegerType; +import org.hibernate.type.StringType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; @@ -21,8 +30,9 @@ import org.springframework.stereotype.Repository; * @author rodrigo */ @Repository("usuarioDAO") -public class UsuarioHibernateDAO extends GenericHibernateDAO - implements UsuarioDAO { +public class UsuarioHibernateDAO extends GenericHibernateDAO implements UsuarioDAO { + @Autowired + private SQLBuilder sqlBuilder; @Autowired public UsuarioHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { @@ -73,4 +83,18 @@ public class UsuarioHibernateDAO extends GenericHibernateDAO return c.list(); } + + @SuppressWarnings("unchecked") + public List buscarUsuariosActivo() { + String sqlBuscarUsuariosActivo = sqlBuilder.getSQLBuscarUsuariosActivo(); + + SQLQuery sql = getSession().createSQLQuery(sqlBuscarUsuariosActivo) + .addScalar("usuarioId", IntegerType.INSTANCE) + .addScalar("cveusuario", StringType.INSTANCE) + .addScalar("nombusuario", StringType.INSTANCE); + + sql.setResultTransformer(new AliasToBeanResultTransformer(UsuarioActivoVO.class)); + + return sql.list(); + } } diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java index dbcef9177..1ec6325a2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java @@ -44,10 +44,12 @@ public interface SQLBuilder { public String getSQLBuscarCajaFecha(boolean yaCerrado, Date fechaDesde, Date fechaHasta); - public String getSQLBuscarUsuariosCajaCerrado(Date fecha); + public String getSQLBuscarUsuariosCajaCerrado(Date fecha, String cveusuario, String turnoid); public String getSQLBuscarCajaCerrado(Integer usuarioId, Date fecha); public String getSQLBuscarReceitasDespesasCaja(Integer usuarioId, Date fec); + public String getSQLBuscarUsuariosActivo(); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java index 304d7149b..f7cafa3a6 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java @@ -7,7 +7,6 @@ import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.dao.util.DBUtil; public class SQLBuilderOracle implements SQLBuilder { - private static final Integer HORAS_NO_DIA = Integer.valueOf(24); @Override @@ -608,14 +607,18 @@ public class SQLBuilderOracle implements SQLBuilder { } @Override - public String getSQLBuscarUsuariosCajaCerrado(Date fecha){ + public String getSQLBuscarUsuariosCajaCerrado(Date fecha, String cveusuario, String turnoid) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); StringBuilder sb = new StringBuilder(""); sb.append(" select distinct "); sb.append(" "); sb.append(" u.usuario_id as \"usuarioId\", "); - sb.append(" u.nombusuario as \"nombusuario\" "); + sb.append(" u.cveusuario as \"cveusuario\", "); + sb.append(" c.PUNTOVENTA_ID as \"puntoVentaId\", "); + 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(" "); sb.append(" from "); sb.append(" caja c "); @@ -625,6 +628,14 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" trunc(c.feccorte) = to_date('").append(sdf.format(fecha)).append("','yyyy-MM-dd')"); sb.append(" and c.turno_id is not null"); + if (! cveusuario.equals("*")) { + sb.append(" and u.cveusuario like '" + cveusuario + "'"); + } + + if (! turnoid.equals("*")) { + sb.append(" and c.turno_id in(" + turnoid + ")"); + } + return sb.toString(); } @@ -643,14 +654,10 @@ public class SQLBuilderOracle implements SQLBuilder { 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\" "); @@ -695,4 +702,22 @@ public class SQLBuilderOracle implements SQLBuilder { return sb.toString(); } + + @Override + public String getSQLBuscarUsuariosActivo() { + StringBuilder sb = new StringBuilder(""); + + sb.append(" select distinct"); + sb.append(" u.usuario_id as \"usuarioId\","); + sb.append(" u.cveusuario as \"cveusuario\","); + sb.append(" u.NOMBUSUARIO||' '||u.NOMBPATERNO||' '||u.NOMBMATERNO as \"nombusuario\""); + sb.append(" from"); + sb.append(" usuario u"); + sb.append(" where"); + sb.append(" u.activo = 1"); + sb.append(" order by"); + sb.append(" u.usuario_id"); + + 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 index 7c0e42b5f..104cc77ba 100644 --- a/src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/caja/CajaCerradoVO.java @@ -16,16 +16,11 @@ public class CajaCerradoVO { 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; @@ -37,22 +32,16 @@ public class CajaCerradoVO { 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; } @@ -89,24 +78,12 @@ public class CajaCerradoVO { 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; } @@ -131,24 +108,6 @@ public class CajaCerradoVO { 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; } diff --git a/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioActivoVO.java b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioActivoVO.java new file mode 100644 index 000000000..d5130bf4f --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioActivoVO.java @@ -0,0 +1,37 @@ +package com.rjconsultores.ventaboletos.vo.caja; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class UsuarioActivoVO { + private Integer usuarioId; + private String nombusuario; + private String cveusuario; + + public UsuarioActivoVO() { + } + + public Integer getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Integer usuarioId) { + this.usuarioId = usuarioId; + } + + public String getNombusuario() { + return nombusuario; + } + + public void setNombusuario(String nombusuario) { + this.nombusuario = nombusuario; + } + + public String getCveusuario() { + return cveusuario; + } + + public void setCveusuario(String cveUsuario) { + this.cveusuario = cveUsuario; + } +} diff --git a/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java index 46c7fae7f..4146642a5 100644 --- a/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/caja/UsuarioVO.java @@ -1,5 +1,7 @@ package com.rjconsultores.ventaboletos.vo.caja; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import javax.xml.bind.annotation.XmlRootElement; @@ -7,10 +9,21 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class UsuarioVO { private Integer usuarioId; - private String nombusuario; + private String cveusuario; + private Integer puntoVentaId; + private Integer turnoId; + private Date fecCorte; + private BigDecimal importeTotal; private List pasajes; private List diversos; + public UsuarioVO() { + this.puntoVentaId = new Integer(-1); + this.fecCorte = new Date();; + this.turnoId = new Integer(-1); + this.importeTotal = new BigDecimal(0); + } + public List getPasajes() { return pasajes; } @@ -23,11 +36,11 @@ public class UsuarioVO { public void setDiversos(List diversos) { this.diversos = diversos; } - public String getNombusuario() { - return nombusuario; + public String getCveusuario() { + return cveusuario; } - public void setNombusuario(String nombusuario) { - this.nombusuario = nombusuario; + public void setCveusuario(String cveusuario) { + this.cveusuario = cveusuario; } public Integer getUsuarioId() { return usuarioId; @@ -35,4 +48,28 @@ public class UsuarioVO { public void setUsuarioId(Integer usuarioId) { this.usuarioId = usuarioId; } + public Integer getPuntoVentaId() { + return puntoVentaId; + } + public void setPuntoVentaId(Integer puntoVentaId) { + this.puntoVentaId = puntoVentaId; + } + 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; + } } diff --git a/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java b/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java index d982610ac..86f874568 100644 --- a/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java +++ b/src/com/rjconsultores/ventaboletos/ws/rs/CajaCerrado.java @@ -21,20 +21,26 @@ import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; public class CajaCerrado { @GET @Produces({ MediaType.APPLICATION_XML }) - public List buscarCajaCerrado(@QueryParam("fecha") String fecha) { - + public List buscarCajaCerrado(@QueryParam("fecha") String fecha, @QueryParam("cveusuario") String cveusuario, @QueryParam("turnoid") String turnoid) { SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); - Date fec = new Date(); Date fecHastaD = new Date(); + Date fec = new Date(); try { fec = StringUtils.isBlank(fecha) ? new Date() : sdf.parse(fecha); } catch (Exception e) { - } + if (cveusuario == null) { + cveusuario = "*"; + } + + if (turnoid == null) { + turnoid = "*"; + } + CajaDAO cajaDAO = (CajaDAO) AppContext.getApplicationContext().getBean("cajaDAO"); - List list = cajaDAO.buscarCajaCerrado(fec); + List list = cajaDAO.buscarCajaCerrado(fec, cveusuario, turnoid); return list; } diff --git a/src/com/rjconsultores/ventaboletos/ws/rs/CajaRS.java b/src/com/rjconsultores/ventaboletos/ws/rs/CajaRS.java index 6abb6aea1..a6bc21f56 100644 --- a/src/com/rjconsultores/ventaboletos/ws/rs/CajaRS.java +++ b/src/com/rjconsultores/ventaboletos/ws/rs/CajaRS.java @@ -18,7 +18,6 @@ import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; @Path("/cajas") public class CajaRS { - @GET @Produces({ MediaType.APPLICATION_XML }) public List buscarCaja(@QueryParam("yaCerrado") boolean yaCerrado, @QueryParam("fecDesde") String fecDesde, @QueryParam("fecHasta") String fecHasta) { diff --git a/src/com/rjconsultores/ventaboletos/ws/rs/UsuarioRS.java b/src/com/rjconsultores/ventaboletos/ws/rs/UsuarioRS.java new file mode 100644 index 000000000..74572daa6 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/ws/rs/UsuarioRS.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.ws.rs; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import com.rjconsultores.ventaboletos.dao.UsuarioDAO; +import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Path("/usuarios") +public class UsuarioRS { + @GET + @Produces({ MediaType.APPLICATION_XML }) + public List buscarUsuarios() { + UsuarioDAO dao = (UsuarioDAO) AppContext.getApplicationContext().getBean("usuarioDAO"); + List retorno = dao.buscarUsuariosActivo(); + + return retorno; + } +}