List of usage examples for org.hibernate.criterion Restrictions gt
public static SimpleExpression gt(String propertyName, Object value)
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; }