Example usage for org.hibernate Query setTimestamp

List of usage examples for org.hibernate Query setTimestamp

Introduction

In this page you can find the example usage for org.hibernate Query setTimestamp.

Prototype

@Deprecated
@SuppressWarnings("unchecked")
default Query<R> setTimestamp(String name, Date value) 

Source Link

Document

Bind the value and the time of a given Date object to a named query parameter.

Usage

From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java

License:Open Source License

@Override
public void depreciar(Date fecha, Long empresaId) {
    Date fechaModificacion = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(fecha);// w  w w .j a  v a  2  s  .  com
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    cal.set(Calendar.MILLISECOND, 999);
    fecha = cal.getTime();
    Query query = currentSession().createQuery(
            "select new Activo(a.id, a.version, a.moi, a.fechaCompra, a.tipoActivo.porciento, a.tipoActivo.vidaUtil, a.inactivo, a.fechaInactivo) from Activo a inner join a.tipoActivo where a.empresa.id = :empresaId and a.fechaCompra <= :fecha");
    query.setLong("empresaId", empresaId);
    query.setDate("fecha", fecha);
    @SuppressWarnings("unchecked")
    List<Activo> activos = query.list();
    int cont = 0;
    int total = activos.size();
    for (Activo activo : activos) {
        if (++cont % 1000 == 0) {
            log.debug("Depreciando activo {} ({} / {})", new Object[] { activo.getId(), cont, total });
        }

        activo = deprecia(activo, fecha);

        query = currentSession().createQuery(
                "update Activo a set a.fechaDepreciacion = :fecha, a.depreciacionAnual = :depreciacionAnual, a.depreciacionMensual = :depreciacionMensual, a.depreciacionAcumulada = :depreciacionAcumulada, a.valorNeto = :valorNeto, a.fechaModificacion = :fechaModificacion where a.id = :activoId");
        query.setDate("fecha", fecha);
        query.setBigDecimal("depreciacionAnual", activo.getDepreciacionAnual());
        query.setBigDecimal("depreciacionMensual", activo.getDepreciacionMensual());
        query.setBigDecimal("depreciacionAcumulada", activo.getDepreciacionAcumulada());
        query.setBigDecimal("valorNeto", activo.getValorNeto());
        query.setTimestamp("fechaModificacion", fechaModificacion);
        query.setLong("activoId", activo.getId());
        query.executeUpdate();
    }
    currentSession().flush();
    log.info("Se han depreciado los activos de la empresa {} para la fecha de {}", empresaId, fecha);
}

From source file:mx.edu.um.mateo.inventario.dao.impl.EntradaDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//w  w w. j a  v  a  2s .  c o  m
@Transactional(readOnly = true)
public Map<String, Object> preCancelacion(Long id, Usuario usuario) throws NoEstaCerradaException {
    log.info("{} mando llamar precancelacion de entrada {}", usuario, id);
    Entrada entrada = (Entrada) currentSession().get(Entrada.class, id);
    if (entrada.getEstatus().getNombre().equals(Constantes.CERRADA)
            || entrada.getEstatus().getNombre().equals(Constantes.FACTURADA)) {
        Set<Producto> productos = new HashSet<>();
        for (LoteEntrada lote : entrada.getLotes()) {
            productos.add(lote.getProducto());
        }

        log.debug("Buscando entradas que contengan los productos {} despues de la fecha {}", productos,
                entrada.getFechaModificacion());
        Query query = currentSession()
                .createQuery("select e from Entrada e inner join e.lotes le inner join e.estatus es "
                        + "where(es.nombre = 'CERRADA' or es.nombre = 'PENDIENTE') "
                        + "and le.producto in (:productos) " + "and e.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", entrada.getFechaModificacion());
        List<Entrada> entradas = (List<Entrada>) query.list();
        for (Entrada e : entradas) {
            log.debug("ENTRADA: {}", e);
            for (LoteEntrada lote : e.getLotes()) {
                productos.add(lote.getProducto());
            }
        }
        entradas.add(entrada);

        query = currentSession()
                .createQuery("select s from Salida s inner join s.lotes ls inner join s.estatus es "
                        + "where es.nombre = 'CERRADA' " + "and ls.producto in (:productos) "
                        + "and s.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", entrada.getFechaModificacion());
        List<Salida> salidas = (List<Salida>) query.list();
        for (Salida salida : salidas) {
            log.debug("SALIDA: {}", salida);
            for (LoteSalida lote : salida.getLotes()) {
                productos.add(lote.getProducto());
            }
        }

        Map<Long, Producto> productosCancelados = new HashMap<>();
        Map<Long, Producto> productosSinHistoria = new HashMap<>();
        for (Producto producto : productos) {
            log.debug("Buscando historial de {}", producto);
            query = currentSession()
                    .createQuery("select xp from XProducto xp " + "where xp.productoId = :productoId "
                            + "and (xp.actividad = 'CREAR' or actividad = 'ACTUALIZAR') "
                            + "and xp.fechaCreacion < :fecha "
                            + "and (xp.entradaId is null or xp.entradaId != :entradaId) "
                            + "order by xp.fechaCreacion desc");
            query.setLong("productoId", producto.getId());
            query.setTimestamp("fecha", entrada.getFechaModificacion());
            query.setLong("entradaId", entrada.getId());
            query.setMaxResults(1);
            List<XProducto> xproductos = (List<XProducto>) query.list();
            if (xproductos != null && xproductos.get(0) != null) {
                XProducto xproducto = xproductos.get(0);
                log.debug("Encontre historia del producto {}", xproducto);
                Producto p = new Producto();
                BeanUtils.copyProperties(xproducto, p);
                p.setTipoProducto(producto.getTipoProducto());
                p.setAlmacen(producto.getAlmacen());
                productosCancelados.put(producto.getId(), p);
            } else {
                log.debug("No encontre historia del producto {}", producto);
                Producto p = new Producto();
                BeanUtils.copyProperties(producto, p);
                p.setPrecioUnitario(BigDecimal.ZERO);
                p.setUltimoPrecio(BigDecimal.ZERO);
                p.setExistencia(BigDecimal.ZERO);
                productosSinHistoria.put(producto.getId(), p);
            }
        }

        Map<String, Object> resultado = new HashMap<>();
        resultado.put("entrada", entrada);
        resultado.put("productos", productos);
        if (entradas != null && entradas.size() > 0) {
            resultado.put("entradas", entradas);
        }
        if (salidas != null && salidas.size() > 0) {
            resultado.put("salidas", salidas);
        }
        if (productosCancelados.size() > 0) {
            resultado.put("productosCancelados", productosCancelados.values());
        }
        if (productosSinHistoria.size() > 0) {
            resultado.put("productosSinHistoria", productosSinHistoria.values());
        }
        return resultado;
    } else {
        throw new NoEstaCerradaException("La entrada no se puede cancelar porque no esta cerrada o facturada",
                entrada);
    }
}

From source file:mx.edu.um.mateo.inventario.dao.impl.EntradaDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from w  w  w. java  2 s. c  o  m
@Transactional(rollbackFor = { NoEstaCerradaException.class })
public Cancelacion cancelar(Long id, Usuario usuario, String comentarios) throws NoEstaCerradaException {
    log.info("{} esta cancelando entrada {}", usuario, id);
    Entrada entrada = (Entrada) currentSession().get(Entrada.class, id);
    if (entrada.getEstatus().getNombre().equals(Constantes.CERRADA)
            || entrada.getEstatus().getNombre().equals(Constantes.FACTURADA)) {
        Set<Producto> productos = new HashSet<>();
        for (LoteEntrada lote : entrada.getLotes()) {
            productos.add(lote.getProducto());
        }

        log.debug("Buscando entradas que contengan los productos {} despues de la fecha {}", productos,
                entrada.getFechaModificacion());
        Query query = currentSession()
                .createQuery("select e from Entrada e inner join e.lotes le inner join e.estatus es "
                        + "where(es.nombre = 'CERRADA' or es.nombre = 'PENDIENTE') "
                        + "and le.producto in (:productos) " + "and e.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", entrada.getFechaModificacion());
        List<Entrada> entradas = (List<Entrada>) query.list();
        for (Entrada e : entradas) {
            log.debug("ENTRADA: {}", e);
            for (LoteEntrada lote : e.getLotes()) {
                productos.add(lote.getProducto());
            }
        }
        entradas.add(entrada);

        query = currentSession()
                .createQuery("select s from Salida s inner join s.lotes ls inner join s.estatus es "
                        + "where es.nombre = 'CERRADA' " + "and ls.producto in (:productos) "
                        + "and s.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", entrada.getFechaModificacion());
        List<Salida> salidas = (List<Salida>) query.list();
        for (Salida s : salidas) {
            log.debug("SALIDA: {}", s);
            for (LoteSalida lote : s.getLotes()) {
                productos.add(lote.getProducto());
            }
        }

        Date fecha = new Date();
        for (Producto producto : productos) {
            log.debug("Buscando historial de {}", producto);
            query = currentSession()
                    .createQuery("select xp from XProducto xp " + "where xp.productoId = :productoId "
                            + "and (xp.actividad = 'CREAR' or actividad = 'ACTUALIZAR') "
                            + "and xp.fechaCreacion < :fecha "
                            + "and (xp.entradaId is null or xp.entradaId != :entradaId) "
                            + "order by xp.fechaCreacion desc");
            query.setLong("productoId", producto.getId());
            query.setTimestamp("fecha", entrada.getFechaModificacion());
            query.setLong("entradaId", entrada.getId());
            query.setMaxResults(1);
            List<XProducto> xproductos = (List<XProducto>) query.list();
            if (xproductos != null && xproductos.get(0) != null) {
                XProducto xproducto = xproductos.get(0);
                log.debug("Encontre historia del producto {}", xproducto);
                producto.setPrecioUnitario(xproducto.getPrecioUnitario());
                producto.setUltimoPrecio(xproducto.getUltimoPrecio());
                producto.setExistencia(xproducto.getExistencia());
                producto.setFechaModificacion(fecha);
            } else {
                log.debug("No encontre historia del producto {}", producto);
                producto.setPrecioUnitario(BigDecimal.ZERO);
                producto.setUltimoPrecio(BigDecimal.ZERO);
                producto.setExistencia(BigDecimal.ZERO);
                producto.setFechaModificacion(fecha);
            }
            currentSession().update(producto);
        }

        query = currentSession().createQuery("select e from Estatus e where e.nombre = :nombre");
        query.setString("nombre", Constantes.CANCELADA);
        Estatus cancelada = (Estatus) query.uniqueResult();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String fechaString = sdf.format(fecha);
        for (Entrada e : entradas) {
            e.setFactura(e.getFactura() + "C" + fechaString);
            e.setEstatus(cancelada);
            e.setFechaModificacion(fecha);
            currentSession().update(e);

            audita(e, usuario, Constantes.CANCELAR, fecha, true);
        }

        for (Salida s : salidas) {
            s.setReporte(s.getReporte() + "C" + fechaString);
            s.setEstatus(cancelada);
            s.setFechaModificacion(fecha);
            currentSession().update(s);

            auditaSalida(s, usuario, Constantes.CANCELAR, fecha, true);
        }

        // Crear cancelacion
        Cancelacion cancelacion = new Cancelacion();
        cancelacion.setFolio(cancelacionDao.getFolio(entrada.getAlmacen()));
        cancelacion.setComentarios(comentarios);
        cancelacion.setEntrada(entrada);
        cancelacion.setProductos(productos);
        if (entradas != null && entradas.size() > 0) {
            cancelacion.setEntradas(entradas);
        }
        if (salidas != null && salidas.size() > 0) {
            cancelacion.setSalidas(salidas);
        }
        cancelacion = cancelacionDao.crea(cancelacion, usuario);
        currentSession().flush();
        for (Producto producto : productos) {
            auditaProducto(producto, usuario, Constantes.CANCELAR, null, cancelacion.getId(), fecha);
        }

        return cancelacion;
    } else {
        throw new NoEstaCerradaException("La entrada no se puede cancelar porque no esta cerrada o facturada",
                entrada);
    }
}

From source file:mx.edu.um.mateo.inventario.dao.impl.ProductoDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*  w w w. j a va  2s . c o m*/
public void guardaHistorial(Date fecha) {
    log.debug("Buscando historial de productos de la fecha {}", fecha);
    StringBuilder sb = new StringBuilder();
    sb.append("select new HistorialProducto(p.id, p.almacen) from Producto p order by p.codigo");
    log.debug("Cargando lista de productos");
    List<HistorialProducto> productos = currentSession().createQuery(sb.toString()).list();
    List<HistorialProducto> resultado = new ArrayList<>();
    log.debug("Buscando historial por producto ({})", productos.size());
    int cont = 0;
    for (HistorialProducto hp : productos) {
        if (cont++ % 10 == 0) {
            log.debug("Leyendo {} / {} Productos", cont, productos.size());
        }
        sb = new StringBuilder();
        sb.append(
                "select new map(p.existencia as existencia) from XProducto p where p.productoId = :productoId and p.fechaCreacion <= :fecha order by p.fechaCreacion desc");
        Query query = currentSession().createQuery(sb.toString());
        query.setLong("productoId", hp.getProductoId());
        query.setTimestamp("fecha", fecha);
        query.setMaxResults(1);
        Map<String, Object> existencia = (Map<String, Object>) query.uniqueResult();
        if (existencia != null && !existencia.isEmpty()) {
            sb = new StringBuilder();
            sb.append("select hp from HistorialProducto hp where fecha = :fecha and productoId = :productoId");
            Query query2 = currentSession().createQuery(sb.toString());
            query2.setDate("fecha", fecha);
            query2.setLong("productoId", hp.getProductoId());
            HistorialProducto otro = (HistorialProducto) query2.uniqueResult();
            if (otro != null) {
                hp = otro;
            }
            hp.setExistencia((BigDecimal) existencia.get("existencia"));
            hp.setFecha(fecha);
            resultado.add(hp);
        }
    }
    log.debug("{} / {} Productos", cont, productos.size());
    log.debug("Guardando historial de productos ({})", resultado.size());
    cont = 0;
    for (HistorialProducto hp : resultado) {
        if (cont++ % 10 == 0) {
            log.debug("Guardando {} / {} Productos", cont, resultado.size());
        }
        currentSession().saveOrUpdate(hp);
    }
}

From source file:mx.edu.um.mateo.inventario.dao.impl.ProductoDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//www. j a  v a2s.com
@Transactional(readOnly = true)
public Map<String, Object> obtieneHistorial(Map<String, Object> params) {
    List<Producto> resultado = new ArrayList<>();
    if (params.containsKey("fecha") && params.containsKey("almacen")) {
        Date fecha = (Date) params.get("fecha");
        Long almacenId = (Long) params.get("almacen");
        log.debug("Buscando historial de productos de la fecha {}", fecha);
        StringBuilder sb = new StringBuilder();
        sb.append(
                "select new HistorialProducto(p.id, p.almacen) from Producto p where p.almacen.id = :almacenId order by p.codigo");
        log.debug("Cargando lista de productos");
        Query query1 = currentSession().createQuery(sb.toString());
        query1.setLong("almacenId", almacenId);
        List<HistorialProducto> productos = query1.list();
        log.debug("Buscando historial por producto ({})", productos.size());
        int cont = 0;
        for (HistorialProducto hp : productos) {
            if (cont++ % 10 == 0) {
                log.debug("Leyendo {} / {} Productos", cont, productos.size());
            }
            sb = new StringBuilder();
            sb.append(
                    "select new Producto(p.productoId, p.sku, p.nombre, p.descripcion, p.marca, p.modelo, p.ubicacion, p.existencia, p.unidadMedida, p.precioUnitario, p.fraccion, tp.nombre, a.nombre) from XProducto p, TipoProducto tp, Almacen a where p.tipoProductoId = tp.id and p.almacenId = a.id and p.productoId = :productoId and p.fechaCreacion <= :fecha order by p.fechaCreacion desc");
            Query query = currentSession().createQuery(sb.toString());
            query.setLong("productoId", hp.getProductoId());
            query.setTimestamp("fecha", fecha);
            query.setMaxResults(1);
            Producto producto = (Producto) query.uniqueResult();
            if (producto != null) {
                resultado.add(producto);
            }
        }
        log.debug("{} / {} Productos", cont, productos.size());
        log.debug("Se encontro el historial de productos ({})", resultado.size());

        params.put("productos", resultado);
        params.put("cantidad", 1L);
        params.put("max", 1);
    }
    return params;
}

From source file:mx.edu.um.mateo.inventario.dao.impl.SalidaDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from   w  w  w .  j a  va 2 s . co  m
@Transactional(readOnly = true)
public Map<String, Object> preCancelacion(Long id, Usuario usuario) throws NoEstaCerradaException {
    log.info("{} mando llamar precancelacion de salida {}", usuario, id);
    Salida salida = (Salida) currentSession().get(Salida.class, id);
    if (salida.getEstatus().getNombre().equals(Constantes.CERRADA)
            || salida.getEstatus().getNombre().equals(Constantes.FACTURADA)) {
        Set<Producto> productos = new HashSet<>();
        for (LoteSalida lote : salida.getLotes()) {
            productos.add(lote.getProducto());
        }

        log.debug("Buscando entradas que contengan los productos {} despues de la fecha {}", productos,
                salida.getFechaModificacion());
        Query query = currentSession()
                .createQuery("select e from Entrada e inner join e.lotes le inner join e.estatus es "
                        + "where(es.nombre = 'CERRADA' or es.nombre = 'PENDIENTE') "
                        + "and le.producto in (:productos) " + "and e.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", salida.getFechaModificacion());
        List<Entrada> entradas = (List<Entrada>) query.list();
        for (Entrada entrada : entradas) {
            log.debug("ENTRADA: {}", entrada);
            for (LoteEntrada lote : entrada.getLotes()) {
                productos.add(lote.getProducto());
            }
        }

        query = currentSession()
                .createQuery("select s from Salida s inner join s.lotes ls inner join s.estatus es "
                        + "where es.nombre = 'CERRADA' " + "and ls.producto in (:productos) "
                        + "and s.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", salida.getFechaModificacion());
        List<Salida> salidas = (List<Salida>) query.list();
        for (Salida otra : salidas) {
            log.debug("SALIDA: {}", otra);
            for (LoteSalida lote : otra.getLotes()) {
                productos.add(lote.getProducto());
            }
        }
        salidas.add(salida);

        Map<Long, Producto> productosCancelados = new HashMap<>();
        Map<Long, Producto> productosSinHistoria = new HashMap<>();
        for (Producto producto : productos) {
            log.debug("Buscando historial de {}", producto);
            query = currentSession()
                    .createQuery("select xp from XProducto xp " + "where xp.productoId = :productoId "
                            + "and (xp.actividad = 'CREAR' or actividad = 'ACTUALIZAR') "
                            + "and xp.fechaCreacion < :fecha "
                            + "and (xp.salidaId is null or xp.salidaId != :salidaId) "
                            + "order by xp.fechaCreacion desc");
            query.setLong("productoId", producto.getId());
            query.setTimestamp("fecha", salida.getFechaModificacion());
            query.setLong("salidaId", salida.getId());
            query.setMaxResults(1);
            List<XProducto> xproductos = (List<XProducto>) query.list();
            if (xproductos != null && xproductos.get(0) != null) {
                XProducto xproducto = xproductos.get(0);
                log.debug("Encontre historia del producto {}", xproducto);
                Producto p = new Producto();
                BeanUtils.copyProperties(xproducto, p);
                p.setTipoProducto(producto.getTipoProducto());
                p.setAlmacen(producto.getAlmacen());
                productosCancelados.put(producto.getId(), p);
            } else {
                log.debug("No encontre historia del producto {}", producto);
                Producto p = new Producto();
                BeanUtils.copyProperties(producto, p);
                p.setPrecioUnitario(BigDecimal.ZERO);
                p.setUltimoPrecio(BigDecimal.ZERO);
                p.setExistencia(BigDecimal.ZERO);
                productosSinHistoria.put(producto.getId(), p);
            }
        }

        Map<String, Object> resultado = new HashMap<>();
        resultado.put("salida", salida);
        resultado.put("productos", productos);
        if (entradas != null && entradas.size() > 0) {
            resultado.put("entradas", entradas);
        }
        if (salidas != null && salidas.size() > 0) {
            resultado.put("salidas", salidas);
        }
        if (productosCancelados.size() > 0) {
            resultado.put("productosCancelados", productosCancelados.values());
        }
        if (productosSinHistoria.size() > 0) {
            resultado.put("productosSinHistoria", productosSinHistoria.values());
        }
        return resultado;
    } else {
        throw new NoEstaCerradaException("La salida no se puede cancelar porque no esta cerrada o facturada",
                salida);
    }
}

From source file:mx.edu.um.mateo.inventario.dao.impl.SalidaDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//from  w  w w . j  a  va2  s.  com
@Transactional(rollbackFor = { NoEstaCerradaException.class })
public Cancelacion cancelar(Long id, Usuario usuario, String comentarios) throws NoEstaCerradaException {
    log.info("{} esta cancelando salida {}", usuario, id);
    Salida salida = (Salida) currentSession().get(Salida.class, id);
    if (salida.getEstatus().getNombre().equals(Constantes.CERRADA)
            || salida.getEstatus().getNombre().equals(Constantes.FACTURADA)) {
        Set<Producto> productos = new HashSet<>();
        for (LoteSalida lote : salida.getLotes()) {
            productos.add(lote.getProducto());
        }

        log.debug("Buscando entradas que contengan los productos {} despues de la fecha {}", productos,
                salida.getFechaModificacion());
        Query query = currentSession()
                .createQuery("select e from Entrada e inner join e.lotes le inner join e.estatus es "
                        + "where(es.nombre = 'CERRADA' or es.nombre = 'PENDIENTE') "
                        + "and le.producto in (:productos) " + "and e.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", salida.getFechaModificacion());
        List<Entrada> entradas = (List<Entrada>) query.list();
        for (Entrada entrada : entradas) {
            log.debug("ENTRADA: {}", entrada);
            for (LoteEntrada lote : entrada.getLotes()) {
                productos.add(lote.getProducto());
            }
        }

        query = currentSession()
                .createQuery("select s from Salida s inner join s.lotes ls inner join s.estatus es "
                        + "where es.nombre = 'CERRADA' " + "and ls.producto in (:productos) "
                        + "and s.fechaModificacion > :fecha");
        query.setParameterList("productos", productos);
        query.setTimestamp("fecha", salida.getFechaModificacion());
        List<Salida> salidas = (List<Salida>) query.list();
        for (Salida otra : salidas) {
            log.debug("SALIDA: {}", otra);
            for (LoteSalida lote : otra.getLotes()) {
                productos.add(lote.getProducto());
            }
        }
        salidas.add(salida);

        Date fecha = new Date();
        for (Producto producto : productos) {
            log.debug("Buscando historial de {}", producto);
            query = currentSession()
                    .createQuery("select xp from XProducto xp " + "where xp.productoId = :productoId "
                            + "and (xp.actividad = 'CREAR' or actividad = 'ACTUALIZAR') "
                            + "and xp.fechaCreacion < :fecha "
                            + "and (xp.salidaId is null or xp.salidaId != :salidaId) "
                            + "order by xp.fechaCreacion desc");
            query.setLong("productoId", producto.getId());
            query.setTimestamp("fecha", salida.getFechaModificacion());
            query.setLong("salidaId", salida.getId());
            query.setMaxResults(1);
            List<XProducto> xproductos = (List<XProducto>) query.list();
            if (xproductos != null && xproductos.get(0) != null) {
                XProducto xproducto = xproductos.get(0);
                log.debug("Encontre historia del producto {}", xproducto);
                producto.setPrecioUnitario(xproducto.getPrecioUnitario());
                producto.setUltimoPrecio(xproducto.getUltimoPrecio());
                producto.setExistencia(xproducto.getExistencia());
                producto.setFechaModificacion(fecha);
            } else {
                log.debug("No encontre historia del producto {}", producto);
                producto.setPrecioUnitario(BigDecimal.ZERO);
                producto.setUltimoPrecio(BigDecimal.ZERO);
                producto.setExistencia(BigDecimal.ZERO);
                producto.setFechaModificacion(fecha);
            }
            currentSession().update(producto);
        }

        query = currentSession().createQuery("select e from Estatus e where e.nombre = :nombre");
        query.setString("nombre", Constantes.CANCELADA);
        Estatus cancelada = (Estatus) query.uniqueResult();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String fechaString = sdf.format(fecha);
        for (Entrada entrada : entradas) {
            entrada.setFactura(entrada.getFactura() + "C" + fechaString);
            entrada.setEstatus(cancelada);
            entrada.setFechaModificacion(fecha);
            currentSession().update(entrada);

            auditaEntrada(entrada, usuario, Constantes.CANCELAR, fecha, true);
        }

        for (Salida s : salidas) {
            s.setReporte(s.getReporte() + "C" + fechaString);
            s.setEstatus(cancelada);
            s.setFechaModificacion(fecha);
            currentSession().update(s);

            audita(s, usuario, Constantes.CANCELAR, fecha, true);
        }

        // Crear cancelacion
        Cancelacion cancelacion = new Cancelacion();
        cancelacion.setFolio(cancelacionDao.getFolio(salida.getAlmacen()));
        cancelacion.setComentarios(comentarios);
        cancelacion.setSalida(salida);
        cancelacion.setProductos(productos);
        if (entradas != null && entradas.size() > 0) {
            cancelacion.setEntradas(entradas);
        }
        if (salidas != null && salidas.size() > 0) {
            cancelacion.setSalidas(salidas);
        }
        cancelacion = cancelacionDao.crea(cancelacion, usuario);
        currentSession().flush();
        for (Producto producto : productos) {
            auditaProducto(producto, usuario, Constantes.CANCELAR, null, cancelacion.getId(), fecha);
        }

        return cancelacion;
    } else {
        throw new NoEstaCerradaException("La salida no se puede cancelar porque no esta cerrada o facturada",
                salida);
    }
}

From source file:net.mlw.vlh.adapter.hibernate3.util.setter.TimestampSetter.java

License:Open Source License

/**
 * @see net.mlw.vlh.adapter.hibernate3.util.Setter#set(Query, String, Object)
 *//*from  w  ww  .  ja v  a 2 s.co m*/
public void set(Query query, String key, Object value) throws HibernateException, ParseException {
    Date date = null;
    if (value instanceof String) {
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("The key='" + key + "'s value is instance of a String, now is parsing to date.");
        }
        date = formatter.parse((String) value);
    } else if (value instanceof Date) {
        date = (Date) value;
    } else if (value == null) {
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("The key='" + key + "'s value is null.");
        }
    } else {
        if (LOGGER.isWarnEnabled()) {
            LOGGER.warn("The key's='" + key + "' value='" + value
                    + "' was expected as Date or String parseable to Date.");
        }
        throw new IllegalArgumentException("Cannot convert value of class " + value.getClass().getName()
                + " to timestamp (key=" + key + ")");
    }

    if (LOGGER.isInfoEnabled()) {
        LOGGER.info(
                "The key='" + key + "' was set to the query as Timestamp with the value date='" + date + "'.");
    }

    query.setTimestamp(key, date);
}

From source file:net.sf.oreka.services.RecSegmentServiceHbn.java

License:Open Source License

public int getResults(RecSegmentFilter filter, int offset, int number, String orderBy, boolean ascending,
        List results) {/*from  w ww  .j a v a 2s .  co m*/
    firstCriterium = true;
    int numResults = 0;
    logger.log(Level.DEBUG, "Entering getResults");
    //logger.log(Level.INFO, System.getProperty("java.class.path"));

    //RecSegment seg1 = new RecSegment();
    //RecSegment seg2 = new RecSegment();

    //RecTape tape1 = new RecTape();
    //RecTape tape2 = new RecTape();
    /*
    RecSegmentResult result1 = new RecSegmentResult();
    RecSegmentResult result2 = new RecSegmentResult();
            
    result1.getRecSegment().setDuration(10);
    result1.getRecSegment().setLocalParty("01223");
    results.add(result1);
    result2.getRecSegment().setDuration(11);
    result2.getRecSegment().setLocalParty("01440");
    results.add(result2);
    */
    /*
    for (int i=0; i<number; i++)
    {
       RecSegmentResult result = new RecSegmentResult();
       result.getRecSegment().setDuration(offset + i);
       result.getRecSegment().setLocalParty(orderBy);
       result.getRecTape().setId(ascending ? 0:1);
       results.add(result);
    }
    numResults = 502;
    */

    Transaction tx = null;
    Session session = null;
    try {
        session = OrkWeb.hibernateManager.getSession();

        StringBuffer queryString = new StringBuffer(
                "from OrkSegment as seg left join seg.tape as tape left join tape.service as srv ");
        //StringBuffer queryString = new StringBuffer("from RecSegment as seg ");

        //boolean firstCriterium = false;

        if (filter.getStartDate() != null && filter.getEndDate() != null)
            queryString.append(" where seg.timestamp between :startDate and :endDate ");
        else if (filter.getStartDate() != null)
            queryString.append(" where seg.timestamp > :startDate ");
        else if (filter.getEndDate() != null)
            queryString.append(" where seg.timestamp < :endDate ");

        if (filter.getLocalParty().length() > 0) {
            queryString.append(" and seg.localParty=:localParty ");
        }
        if (filter.getRemoteParty().length() > 0) {
            queryString.append(" and seg.remoteParty=:remoteParty ");
        }
        if (filter.getMinDuration().length() > 0) {
            queryString.append(" and seg.duration>:minDuration ");
        }
        if (filter.getMaxDuration().length() > 0) {
            queryString.append(" and seg.duration<:maxDuration ");
        }
        if (filter.getDirection() != Direction.ALL) {
            queryString.append(" and seg.direction=:direction ");
        }

        if (orderBy.length() == 0) {
            orderBy = "seg.timestamp";
        }
        queryString.append(" order by ");
        queryString.append(orderBy);
        if (ascending) {
            queryString.append(" asc");
        } else {
            queryString.append(" desc");
        }

        Query query = session.createQuery(queryString.toString());

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        if (filter.getStartDate() != null) {
            logger.debug("Filter start date:" + dateFormat.format(filter.getStartDate()));
            query.setTimestamp("startDate", filter.getStartDate());
        }
        if (filter.getEndDate() != null) {
            logger.debug("Filter end date:" + dateFormat.format(filter.getEndDate()));
            query.setTimestamp("endDate", filter.getEndDate());
        }

        if (filter.getLocalParty().length() > 0) {
            query.setString("localParty", filter.getLocalParty());
        }
        if (filter.getRemoteParty().length() > 0) {
            query.setString("remoteParty", filter.getRemoteParty());
        }
        if (filter.getMinDuration().length() > 0) {
            query.setString("minDuration", filter.getMinDuration());
        }
        if (filter.getMaxDuration().length() > 0) {
            query.setString("maxDuration", filter.getMaxDuration());
        }
        if (filter.getDirection() != Direction.ALL) {
            query.setParameter("direction", filter.getDirection().ordinal());
            //query.setParameter( "direction", filter.getDirection().name() );
        }

        //         Criteria crit = session.createCriteria(RecSegment.class);
        //         //crit.setFetchMode("RecTape",FetchMode.EAGER);
        //         crit.setFetchMode(null, FetchMode.LAZY);

        ScrollableResults scrollDocs = query.scroll();

        if (scrollDocs.last()) {
            numResults = scrollDocs.getRowNumber() + 1;
            logger.debug("Num res:" + numResults);
        }

        //scrollDocs.beforeFirst();
        scrollDocs.setRowNumber(offset);
        int rowsSoFar = 0;

        while (scrollDocs.get() != null && rowsSoFar < number) {
            rowsSoFar++;
            OrkSegment seg = (OrkSegment) scrollDocs.get(0);

            //logger.log(Level.ERROR, seg.getRecTape().getUrl());

            //RecTape tape = (RecTape)scrollDocs.get(1);
            //RecTape tape = new RecTape();
            RecSegmentResult res = new RecSegmentResult();
            res.setRecSegment(seg);
            //res.setRecTape(tape);
            results.add(res);
            scrollDocs.next();
        }
    } catch (HibernateException he) {
        if (tx != null)
            tx.rollback();
        logger.log(Level.ERROR, he.toString());
        he.printStackTrace();
    } catch (Exception e) {
        logger.error(e);
        e.printStackTrace();
    } finally {
        session.close();
    }
    return numResults;
}

From source file:org.androidpn.server.dao.hibernate.UserDaoHibernate.java

License:Open Source License

public List<User> getOutdatedUser(Timestamp expiration) {
    Session session = getSession();//from  w  ww.j  a v a 2  s . co m
    Query query = session.createQuery("FROM User u WHERE u.updatedDate < ?");
    query.setTimestamp(0, expiration);
    return query.list();
}