Example usage for org.hibernate Query setParameterList

List of usage examples for org.hibernate Query setParameterList

Introduction

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

Prototype

Query<R> setParameterList(int position, Object[] values);

Source Link

Usage

From source file:it.eng.spagobi.monitoring.dao.DbAuditImpl.java

License:Mozilla Public License

public List getMostPopular(Collection roles, int limit) throws EMFUserError {
    logger.debug("IN");
    Session aSession = null;/*  w w  w .ja v a 2 s . c om*/
    Transaction tx = null;
    List toReturn = new ArrayList();
    List userGroups = new ArrayList();
    try {
        aSession = getSession();
        tx = aSession.beginTransaction();
        String usergroups = "";
        Iterator it = roles.iterator();
        while (it.hasNext()) {
            String roleName = (String) it.next();
            //usergroups += "'" + roleName + "'";
            //if (it.hasNext()) usergroups += ",";
            if (!userGroups.contains(roleName))
                userGroups.add(roleName);
        }
        StringBuffer hql = new StringBuffer();
        hql.append("select ");
        hql.append("      count(a.sbiObject.biobjId), ");
        hql.append("      a.sbiObject.biobjId, ");
        hql.append("      a.sbiObject.label, ");
        hql.append("      a.sbiObject.name, ");
        hql.append("      a.sbiObject.descr, ");
        hql.append("      a.sbiObject.objectTypeCode, ");
        hql.append("      a.subObjId, ");
        hql.append("      a.subObjName, ");
        hql.append("      a.documentParameters, ");
        hql.append("      a.sbiEngine.name ");
        hql.append("from ");
        hql.append("      SbiAudit a ");
        hql.append("where    ");
        hql.append("      a.sbiObject is not null and ");
        hql.append("      a.sbiEngine is not null and ");
        hql.append("      a.sbiObject.label not like 'SBI_%' and ");
        hql.append("      a.userGroup in (:USER_GROUPS) and ");
        hql.append("      (a.sbiSubObject is null or a.sbiSubObject.subObjId = a.subObjId) ");
        hql.append("group by    a.sbiObject.biobjId, ");
        hql.append("         a.sbiObject.label, ");
        hql.append("         a.sbiObject.name, ");
        hql.append("         a.sbiObject.descr, ");
        hql.append("         a.sbiObject.objectTypeCode, ");
        hql.append("         a.subObjId, ");
        hql.append("         a.subObjName, ");
        hql.append("         a.documentParameters, ");
        hql.append("         a.sbiEngine.name ");
        hql.append("order by count(a.sbiObject.biobjId) desc ");
        Query hqlQuery = aSession.createQuery(hql.toString());
        hqlQuery.setParameterList("USER_GROUPS", userGroups);
        hqlQuery.setMaxResults(limit);
        List result = hqlQuery.list();
        Iterator resultIt = result.iterator();
        while (resultIt.hasNext()) {
            Object[] row = (Object[]) resultIt.next();
            toReturn.add(toHotLink(row));
        }
    } catch (Exception ex) {
        logger.error(ex);
        if (tx != null)
            tx.rollback();
        throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
    } finally {
        if (aSession != null) {
            if (aSession.isOpen())
                aSession.close();
        }
        logger.debug("OUT");
    }
    return toReturn;
}

From source file:itensil.workflow.activities.state.ActivityStateStore.java

License:Open Source License

public Collection<StepState<Activity>> getActiveSteps(SubState[] sStates) throws StateException {
    Integer sStateInts[] = new Integer[sStates.length];
    for (int ii = 0; ii < sStates.length; ii++)
        sStateInts[ii] = sStates[ii].ordinal();
    Query qry = getSession().getNamedQuery("FlowState.getActiveSteps");
    qry.setEntity("flow", getFlow());
    qry.setParameterList("subStates", sStateInts);

    List items = qry.list();/*from  ww  w  .j a  v  a2 s  .com*/
    ArrayList<StepState<Activity>> states = new ArrayList<StepState<Activity>>(items.size());
    for (Object os : items) {
        states.addAll(((Activity) os).getStates().values());
    }
    return states;
}

From source file:itensil.workflow.activities.state.ActivityStateStore.java

License:Open Source License

@SuppressWarnings("unchecked")
public Collection<StepLog<Activity>> getExitLogSteps(Activity token, String stepId) throws StateException {
    Query qry = getSession().getNamedQuery("FlowState.getExitLogSteps");
    qry.setEntity("token", token);
    qry.setString("stepId", stepId);
    Integer sStateInts[] = { SubState.EXIT_STEP.ordinal(), SubState.EXIT_SWITCH.ordinal(),
            SubState.EXIT_TIMER.ordinal() };
    qry.setParameterList("exitSubStates", sStateInts);
    return qry.list();
}

From source file:itensil.workflow.state.hibernate.HBStateStore.java

License:Open Source License

public Collection<StepState<StatefulToken>> getActiveSteps(SubState[] sStates) throws StateException {

    Integer sStateInts[] = new Integer[sStates.length];
    for (int ii = 0; ii < sStates.length; ii++)
        sStateInts[ii] = sStates[ii].ordinal();
    Query qry = getSession().getNamedQuery("StepState.getActiveSteps");
    qry.setString("flowId", getFlowId());
    qry.setParameterList("subStates", sStateInts);
    List hStates = qry.list();/*www .  j  a  v a  2  s .  com*/

    ArrayList<StepState<StatefulToken>> states = new ArrayList<StepState<StatefulToken>>(hStates.size());
    for (Object os : hStates) {
        states.add((HBStepState) os);
    }
    return states;
}

From source file:javaapplication5.main.java

private static void leerDepartamentosPorLocalidadMultiple() {
    SessionFactory sesion = NewHibernateUtil.getSessionFactory();
    Session sesioncreada = sesion.openSession();

    Scanner sc = new Scanner(System.in);

    List<String> listaLocalidades = new ArrayList<String>();
    System.out.print("Introduce la localidad 1: ");
    listaLocalidades.add(sc.nextLine().toUpperCase());
    System.out.print("Introduce la localidad 2: ");
    listaLocalidades.add(sc.nextLine().toUpperCase());

    String hql = "FROM Departamentos" + " AS dep " + "WHERE dep.loc in "
            + "(:listaDepartamentosLocalidad) ORDER BY dep.deptNo";
    Query q = sesioncreada.createQuery(hql);

    q.setParameterList("listaDepartamentosLocalidad", listaLocalidades);
    List<Departamentos> listaDepartamentos = q.list();
    Iterator<Departamentos> iterator = listaDepartamentos.iterator();
    System.out.println("Busqueda de departamentos por las localidades " + listaLocalidades.get(0) + " y "
            + listaLocalidades.get(1));//  w ww  . j a  v a  2s.com
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
}

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

License:Open Source License

@SuppressWarnings("unchecked")
@Override//www  .  j  ava2s.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// www .j av a2 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.SalidaDaoHibernate.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//w w  w . jav 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 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 .  jav a2s .  c  om
@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.firejack.platform.core.store.BaseStore.java

License:Apache License

protected void setQueryParams(Query namedQuery, Object... params) {
    for (int i = 0; i < params.length; i += 2) {
        String param = (String) params[i];
        Object value = params[i + 1];
        if (value instanceof Collection<?>) {
            Collection<?> values = (Collection<?>) value;
            namedQuery.setParameterList(param, values);

        } else {//from www. j a v  a 2s .co m
            namedQuery.setParameter(param, value);
        }
    }
}