Example usage for org.hibernate.criterion Restrictions gt

List of usage examples for org.hibernate.criterion Restrictions gt

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions gt.

Prototype

public static SimpleExpression gt(String propertyName, Object value) 

Source Link

Document

Apply a "greater than" constraint to the named property

Usage

From source file:org.openbravo.advpaymentmngt.dao.MatchTransactionDao.java

License:Open Source License

/**
 * // w  w  w.  j  ava  2 s . c  om
 * @param reconciliation
 * @return List of later reconciliations that given one for the same financial account
 */
public static List<FIN_Reconciliation> getReconciliationListAfterDate(FIN_Reconciliation reconciliation) {
    OBContext.setAdminMode(true);
    List<FIN_Reconciliation> reconciliations = new ArrayList<FIN_Reconciliation>();
    try {
        OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(FIN_Reconciliation.class);
        obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
        obc.add(Restrictions.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE, reconciliation.getCreationDate()));
        reconciliations = obc.list();
    } finally {
        OBContext.restorePreviousMode();
    }
    return reconciliations;
}

From source file:org.openbravo.advpaymentmngt.utility.FIN_Utility.java

License:Open Source License

/**
 * Generic OBCriteria.//from   w ww .j  a  v  a 2 s  . c o  m
 * 
 * @param clazz
 *          Class (entity).
 * @param setFilterClient
 *          If true then only objects from readable clients are returned, if false then objects
 *          from all clients are returned
 * @param setFilterOrg
 *          If true then when querying (for example call list()) a filter on readable
 *          organizations is added to the query, if false then this is not done
 * @param values
 *          Value. Property, value and operator.
 * @return All the records that satisfy the conditions.
 */
public static <T extends BaseOBObject> List<T> getAllInstances(Class<T> clazz, boolean setFilterClient,
        boolean setFilterOrg, Value... values) {
    OBCriteria<T> obc = OBDal.getInstance().createCriteria(clazz);
    obc.setFilterOnReadableClients(setFilterClient);
    obc.setFilterOnReadableOrganization(setFilterOrg);
    for (Value value : values) {
        if (value.getValue() == null && "==".equals(value.getOperator())) {
            obc.add(Restrictions.isNull(value.getField()));
        } else if (value.getValue() == null && "!=".equals(value.getOperator())) {
            obc.add(Restrictions.isNotNull(value.getField()));
        } else if ("==".equals(value.getOperator())) {
            obc.add(Restrictions.eq(value.getField(), value.getValue()));
        } else if ("!=".equals(value.getOperator())) {
            obc.add(Restrictions.ne(value.getField(), value.getValue()));
        } else if ("<".equals(value.getOperator())) {
            obc.add(Restrictions.lt(value.getField(), value.getValue()));
        } else if (">".equals(value.getOperator())) {
            obc.add(Restrictions.gt(value.getField(), value.getValue()));
        } else if ("<=".equals(value.getOperator())) {
            obc.add(Restrictions.le(value.getField(), value.getValue()));
        } else if (">=".equals(value.getOperator())) {
            obc.add(Restrictions.ge(value.getField(), value.getValue()));
        } else {
            obc.add(Restrictions.eq(value.getField(), value.getValue()));
        }
    }
    return obc.list();
}

From source file:org.openbravo.advpaymentmngt.utility.FIN_Utility.java

License:Open Source License

/**
 * Generic OBCriteria./*from ww w . j a va2  s  .  co  m*/
 * 
 * @param clazz
 *          Class (entity).
 * @param values
 *          Value. Property, value and operator.
 * @return One record that satisfies the conditions.
 */
public static <T extends BaseOBObject> T getOneInstance(Class<T> clazz, Value... values) {
    OBCriteria<T> obc = OBDal.getInstance().createCriteria(clazz);
    obc.setFilterOnReadableClients(false);
    obc.setFilterOnReadableOrganization(false);
    obc.add(Restrictions.ne(Client.PROPERTY_ID, "0"));
    for (Value value : values) {
        if (value.getValue() == null && "==".equals(value.getOperator())) {
            obc.add(Restrictions.isNull(value.getField()));
        } else if (value.getValue() == null && "!=".equals(value.getOperator())) {
            obc.add(Restrictions.isNotNull(value.getField()));
        } else if ("==".equals(value.getOperator())) {
            obc.add(Restrictions.eq(value.getField(), value.getValue()));
        } else if ("!=".equals(value.getOperator())) {
            obc.add(Restrictions.ne(value.getField(), value.getValue()));
        } else if ("<".equals(value.getOperator())) {
            obc.add(Restrictions.lt(value.getField(), value.getValue()));
        } else if (">".equals(value.getOperator())) {
            obc.add(Restrictions.gt(value.getField(), value.getValue()));
        } else if ("<=".equals(value.getOperator())) {
            obc.add(Restrictions.le(value.getField(), value.getValue()));
        } else if (">=".equals(value.getOperator())) {
            obc.add(Restrictions.ge(value.getField(), value.getValue()));
        } else {
            obc.add(Restrictions.eq(value.getField(), value.getValue()));
        }
    }

    final List<T> listt = obc.list();
    if (listt != null && listt.size() > 0) {
        return listt.get(0);
    } else {
        return null;
    }

}

From source file:org.openbravo.costing.CostingAlgorithmAdjustmentImp.java

License:Open Source License

protected void searchBOMProducts(CostAdjustmentLine _costAdjLine) {
    CostAdjustmentLine costAdjLine;/*  w w  w.  j ava2 s  .com*/
    if (_costAdjLine != null) {
        costAdjLine = _costAdjLine;
    } else {
        costAdjLine = getCostAdjLine();
    }
    ProductionLine pl = costAdjLine.getInventoryTransaction().getProductionLine();
    OBCriteria<ProductionLine> critBOM = OBDal.getInstance().createCriteria(ProductionLine.class);
    critBOM.createAlias(ProductionLine.PROPERTY_PRODUCT, "pr");
    critBOM.add(Restrictions.eq(ProductionLine.PROPERTY_PRODUCTIONPLAN, pl.getProductionPlan()));
    critBOM.add(Restrictions.gt(ProductionLine.PROPERTY_MOVEMENTQUANTITY, BigDecimal.ZERO));
    critBOM.add(Restrictions.eq("pr." + Product.PROPERTY_STOCKED, true));
    critBOM.add(Restrictions.eq("pr." + Product.PROPERTY_PRODUCTTYPE, "I"));
    for (ProductionLine pline : critBOM.list()) {
        if (pline.getMaterialMgmtMaterialTransactionList().isEmpty()) {
            log4j.error("BOM Produced with id {} has no related transaction (M_Transaction).", pline.getId());
            continue;
        }
        MaterialTransaction prodtrx = pline.getMaterialMgmtMaterialTransactionList().get(0);
        if (!prodtrx.isCostCalculated()) {
            continue;
        }
        insertCostAdjustmentLine(prodtrx, costAdjLine.getAdjustmentAmount(), _costAdjLine);
    }
}

From source file:org.openbravo.costing.CostingUtils.java

License:Open Source License

/**
 * Calculates the standard cost definition of a product on the given date and cost dimensions.
 * /*  w w  w .j  a  v  a 2  s .c om*/
 * @param product
 *          The Product to get its Standard Cost
 * @param date
 *          The Date to get the Standard Cost
 * @param costDimensions
 *          The cost dimensions to get the Standard Cost if it is defined by some of them.
 * @param recheckWithoutDimensions
 *          boolean flag to force a recall the method to get the Standard Cost at client level if
 *          no cost is found in the given cost dimensions.
 * @return the Standard Cost. Null when no definition is found.
 */
public static Costing getStandardCostDefinition(Product product, Organization org, Date date,
        HashMap<CostDimension, BaseOBObject> costDimensions, boolean recheckWithoutDimensions,
        String costtype) {
    // Get cost from M_Costing for given date.
    OBCriteria<Costing> obcCosting = OBDal.getInstance().createCriteria(Costing.class);
    obcCosting.add(Restrictions.eq(Costing.PROPERTY_PRODUCT, product));
    obcCosting.add(Restrictions.le(Costing.PROPERTY_STARTINGDATE, date));
    obcCosting.add(Restrictions.gt(Costing.PROPERTY_ENDINGDATE, date));
    obcCosting.add(Restrictions.eq(Costing.PROPERTY_COSTTYPE, costtype));
    obcCosting.add(Restrictions.isNotNull(Costing.PROPERTY_COST));
    if (costDimensions.get(CostDimension.Warehouse) != null) {
        obcCosting
                .add(Restrictions.eq(Costing.PROPERTY_WAREHOUSE, costDimensions.get(CostDimension.Warehouse)));
    }
    obcCosting.add(Restrictions.eq(Costing.PROPERTY_ORGANIZATION, org));
    obcCosting.setFilterOnReadableOrganization(false);
    if (obcCosting.count() > 0) {
        if (obcCosting.count() > 1) {
            log4j.warn("More than one cost found for same date: " + OBDateUtils.formatDate(date)
                    + " for product: " + product.getName() + " (" + product.getId() + ")");
        }
        return obcCosting.list().get(0);
    } else if (recheckWithoutDimensions) {
        return getStandardCostDefinition(product, org, date, getEmptyDimensions(), false);
    }
    return null;
}

From source file:org.openbravo.event.ProductionLineEventHandler.java

License:Open Source License

public void onUpdate(@Observes EntityUpdateEvent event) {
    if (!isValidEvent(event)) {
        return;/*from   ww w .  jav a  2  s  .c  o m*/
    }
    VariablesSecureApp vars = null;
    try {
        vars = RequestContext.get().getVariablesSecureApp();
    } catch (Exception e) {
        logger.error("Error:", e);
    }
    String currentTabId = vars.getStringParameter("tabId");
    if (BOM_PRODUCTION.equals(currentTabId)) {
        final Entity productionLineEntity = ModelProvider.getInstance().getEntity(ProductionLine.ENTITY_NAME);
        final BigDecimal ZERO = new BigDecimal("0");
        final Property productionPlanProperty = productionLineEntity
                .getProperty(ProductionLine.PROPERTY_PRODUCTIONPLAN);
        final Property movementQtyProperty = productionLineEntity
                .getProperty(ProductionLine.PROPERTY_MOVEMENTQUANTITY);
        final ProductionPlan productionPlan = (ProductionPlan) event.getCurrentState(productionPlanProperty);
        final BigDecimal currentMovementQty = (BigDecimal) event.getCurrentState(movementQtyProperty);
        final BigDecimal previousMovementQty = (BigDecimal) event.getPreviousState(movementQtyProperty);
        OBCriteria<ProductionLine> productionLineCriteria = OBDal.getInstance()
                .createCriteria(ProductionLine.class);
        productionLineCriteria.add(Restrictions.eq(ProductionLine.PROPERTY_PRODUCTIONPLAN, productionPlan));
        productionLineCriteria.add(Restrictions.gt(ProductionLine.PROPERTY_MOVEMENTQUANTITY, ZERO));
        if (productionLineCriteria.count() > 0 && previousMovementQty != currentMovementQty) {
            if (currentMovementQty.compareTo(ZERO) == 1 && previousMovementQty.compareTo(ZERO) != 1) {
                String language = OBContext.getOBContext().getLanguage().getLanguage();
                ConnectionProvider conn = new DalConnectionProvider(false);
                throw new OBException(Utility.messageBD(conn, "@ConsumedProductWithPostiveQty@", language));
            } else if (currentMovementQty.compareTo(ZERO) == -1 && previousMovementQty.compareTo(ZERO) != -1
                    && productionLineCriteria.count() == 1) {
                String language = OBContext.getOBContext().getLanguage().getLanguage();
                ConnectionProvider conn = new DalConnectionProvider(false);
                throw new OBException(Utility.messageBD(conn, "@ProducedProductWithNegativeQty@", language));
            }
        }
    }
}

From source file:org.openbravo.service.dataset.DataSetService.java

License:Open Source License

/**
 * Checks if objects of a {@link DataSetTable} of the {@link DataSet} have changed since a
 * specific date. Note that this method does not use whereclauses or other filters defined in the
 * dataSetTable. It checks all instances of the table of the DataSetTable.
 * /*from ww w .  j a  v a  2s.  c  o  m*/
 * @param dataSet
 *          the DataSetTables of this dataSet are checked.
 * @param afterDate
 *          the time limit
 * @return true if there is at least one object which has changed since afterDate, false
 *         afterwards
 */
public <T extends BaseOBObject> boolean hasChanged(DataSet dataSet, Date afterDate) {
    for (DataSetTable dataSetTable : dataSet.getDataSetTableList()) {
        final Entity entity = ModelProvider.getInstance()
                .getEntityByTableName(dataSetTable.getTable().getDBTableName());
        final OBCriteria<T> obc = OBDal.getInstance().createCriteria(entity.getName());
        obc.add(Restrictions.gt(Organization.PROPERTY_UPDATED, afterDate));
        // todo: count is slower than exists, is exists possible?
        List<?> list = obc.list();
        if (obc.count() < 20 && obc.count() > 0) {
            log.warn("The following rows were changed after your last update.database or export.database:");
            for (Object obj : list) {
                log.warn("     -" + obj);
            }
        } else if (obc.count() > 20) {
            log.warn("Rows inside the table " + ((BaseOBObject) list.get(0)).getEntity().getTableName()
                    + " were changed after your last update.database or export.database:");
        }
        if (obc.count() > 0) {
            return true;
        }
    }
    return false;
}

From source file:org.openbravo.service.system.SystemService.java

License:Open Source License

/**
 * Returns true if for a certain class there are objects which have changed.
 * //  w  ww .j  a  va 2 s . co  m
 * @param clzs
 *          the type of objects which are checked
 * @param afterDate
 *          the timestamp to check
 * @return true if there is an object in the database which changed since afterDate, false
 *         otherwise
 */
public boolean hasChanged(Class<?>[] clzs, Date afterDate) {
    for (Class<?> clz : clzs) {
        @SuppressWarnings("unchecked")
        final OBCriteria<?> obc = OBDal.getInstance().createCriteria((Class<BaseOBObject>) clz);
        obc.add(Restrictions.gt(Organization.PROPERTY_UPDATED, afterDate));
        // todo: count is slower than exists, is exists possible?
        if (obc.count() > 0) {
            return true;
        }
    }
    return false;
}

From source file:org.openfaces.component.filter.HibernateCriterionBuilder.java

License:LGPL

private static Criterion convertToHibernateCriteria(final ExpressionFilterCriterion expressionFilterCriterion) {
    final String property = expressionFilterCriterion.getExpressionStr();
    final Object parameter = expressionFilterCriterion.getArg1();
    FilterCondition condition = expressionFilterCriterion.getCondition();
    Criterion result = condition.process(new FilterConditionProcessor<Criterion>() {
        @Override/*  www . j av  a2  s.c  o m*/
        public Criterion processEmpty() {
            return Restrictions.isNull(property);
        }

        @Override
        public Criterion processEquals() {
            if (parameter == null) {
                return Restrictions.isNull(property);
            }

            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                Date dayStart = ParametersInterpreter.dayStart((Date) parameter, timeZone);
                Date dayEnd = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
                return Restrictions.and(Restrictions.ge(property, dayStart), Restrictions.le(property, dayEnd));
            } else if (parameter instanceof String) {
                boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
                if (!caseSensitive) {
                    return Restrictions.like(property, parameter.toString().toLowerCase()).ignoreCase();
                } else {
                    return Restrictions.like(property, parameter);
                }
            } else {
                return Restrictions.eq(property, parameter);
            }
        }

        @Override
        public Criterion processContains() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            if (!caseSensitive) {
                return Restrictions.like(property, "%" + parameter.toString().toLowerCase() + "%").ignoreCase();
            } else {
                return Restrictions.like(property, "%" + parameter + "%");
            }
        }

        @Override
        public Criterion processBegins() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            if (!caseSensitive) {
                return Restrictions.like(property, parameter.toString().toLowerCase() + "%").ignoreCase();
            } else {
                return Restrictions.like(property, parameter + "%");
            }
        }

        @Override
        public Criterion processEnds() {
            boolean caseSensitive = expressionFilterCriterion.isCaseSensitive();
            if (!caseSensitive) {
                return Restrictions.like(property, "%" + parameter.toString().toLowerCase()).ignoreCase();
            } else {
                return Restrictions.like(property, "%" + parameter);
            }
        }

        @Override
        public Criterion processLess() {
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayStart((Date) parameter, timeZone);
            }
            return Restrictions.lt(property, correctedParameter);
        }

        @Override
        public Criterion processGreater() {
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
            }
            return Restrictions.gt(property, correctedParameter);
        }

        @Override
        public Criterion processLessOrEqual() {
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayEnd((Date) parameter, timeZone);
            }
            return Restrictions.le(property, correctedParameter);
        }

        @Override
        public Criterion processGreaterOrEqual() {
            Object correctedParameter = parameter;
            if (parameter instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                correctedParameter = ParametersInterpreter.dayStart((Date) parameter, timeZone);
            }
            return Restrictions.ge(property, correctedParameter);
        }

        @Override
        public Criterion processBetween() {
            Object parameter2 = expressionFilterCriterion.getArg2();
            if (parameter instanceof Date && parameter2 instanceof Date) {
                TimeZone timeZone = (TimeZone) expressionFilterCriterion.getParameters().get("timeZone");
                Date periodStart = ParametersInterpreter.dayStart((Date) parameter, timeZone);
                Date periodEnd = ParametersInterpreter.dayEnd((Date) parameter2, timeZone);
                return Restrictions.and(Restrictions.ge(property, periodStart),
                        Restrictions.le(property, periodEnd));
            } else {
                return Restrictions.between(property, parameter, parameter2);
            }
        }
    });

    if (parameter != null) {
        result = Restrictions.and(Restrictions.isNotNull(property), result);
    }
    return (expressionFilterCriterion.isInverse()) ? Restrictions.not(result) : result;
}

From source file:org.openhealthtools.openatna.audit.persistence.dao.hibernate.HibernateQueryBuilder.java

License:Apache License

private Criterion createConditional(CriteriaNode root, CriteriaNode node, Query.ConditionalStatement value,
        String name) {//from   w  w w .j av a2s  . com
    Criteria c = node.getCriteria();
    Query.Conditional con = value.getConditional();
    Object val = value.getValue();
    Criterion cron = null;

    switch (con) {
    case MAX_NUM:
        idCriteria.setMaxResults((Integer) val);
        break;
    case START_OFFSET:
        idCriteria.setFirstResult((Integer) val);
        break;
    case AFTER:
        cron = Restrictions.ge(name, val);
        break;
    case BEFORE:
        cron = Restrictions.le(name, val);
        break;
    case CASE_INSENSITIVE_LIKE:
        cron = Restrictions.ilike(name, val);
        break;
    case EQUALS:
        cron = Restrictions.eq(name, val);
        break;
    case GREATER_THAN:
        cron = Restrictions.gt(name, val);
        break;
    case GREATER_THAN_OR_EQUAL:
        cron = Restrictions.ge(name, val);
        break;
    case LESS_THAN:
        cron = Restrictions.lt(name, val);
        break;
    case LESS_THAN_OR_EQUAL:
        cron = Restrictions.le(name, val);
        break;
    case LIKE:
        cron = Restrictions.like(name, val);
        break;
    case NOT_EQUAL:
        cron = Restrictions.ne(name, val);
        break;
    case OR:
        processJoint(root, value, false);
        break;
    case AND:
        processJoint(root, value, true);
        break;
    case NULLITY:
        Boolean b = (Boolean) val;
        cron = b ? Restrictions.isNull(name) : Restrictions.isNotNull(name);
        break;
    case ASC:
        messageCriteria.addOrder(Order.asc((String) val));
        break;
    case DESC:
        messageCriteria.addOrder(Order.desc((String) val));
        break;
    default:
        break;
    }
    if (cron != null && c != null) {
        c.add(cron);
    }
    return cron;
}