List of usage examples for org.hibernate.criterion Projections sum
public static AggregateProjection sum(String propertyName)
From source file:org.openbravo.costing.LCMatchingProcess.java
License:Open Source License
/** * Method to process a Landed Cost./* w w w .j a v a2 s.c o m*/ * * @param _lcCost * the landed cost to be processed. * @return the message to be shown to the user properly formatted and translated to the user * language. */ public JSONObject processLCMatching(LandedCostCost _lcCost) { LandedCostCost lcCost = _lcCost; JSONObject message = new JSONObject(); OBContext.setAdminMode(true); try { message.put("severity", "success"); message.put("title", ""); message.put("text", OBMessageUtils.messageBD("Success")); try { doChecks(lcCost, message); } catch (OBException e) { message.put("severity", "error"); message.put("text", e.getMessage()); return message; } OBCriteria<LCMatched> critMatched = OBDal.getInstance().createCriteria(LCMatched.class); critMatched.add(Restrictions.eq(LCMatched.PROPERTY_LANDEDCOSTCOST, lcCost)); critMatched.setProjection(Projections.sum(LCMatched.PROPERTY_AMOUNT)); BigDecimal matchedAmt = (BigDecimal) critMatched.uniqueResult(); if (matchedAmt != null) { lcCost.setMatchingAmount(matchedAmt); OBDal.getInstance().save(lcCost); } if (lcCost.isMatchingAdjusted() && lcCost.getAmount().compareTo(matchedAmt) != 0) { distributeAmounts(lcCost); String strMatchCAId = generateCostAdjustment(lcCost.getId(), message); lcCost.setMatchingCostAdjustment( (CostAdjustment) OBDal.getInstance().getProxy(CostAdjustment.ENTITY_NAME, strMatchCAId)); OBDal.getInstance().save(lcCost); } lcCost = OBDal.getInstance().get(LandedCostCost.class, lcCost.getId()); lcCost.setMatched(Boolean.TRUE); lcCost.setProcessed(Boolean.TRUE); OBDal.getInstance().save(lcCost); } catch (JSONException ignore) { } finally { OBContext.restorePreviousMode(); } return message; }
From source file:org.openbravo.erpCommon.ReportsUtility.java
License:Open Source License
public static BigDecimal getBeginningBalance(String orgId, String acctSchemaId, String bpartnerId, String dateFrom, boolean isCustomer) { if (dateFrom == null || "".equals(dateFrom)) { return BigDecimal.ZERO; }/*from ww w . j a v a 2s . c o m*/ OBCriteria<AccountingFact> obc = OBDal.getInstance().createCriteria(AccountingFact.class); obc.add(Restrictions.eq(AccountingFact.PROPERTY_ACCOUNTINGSCHEMA, OBDal.getInstance().get(AcctSchema.class, acctSchemaId))); obc.add(Restrictions.eq(AccountingFact.PROPERTY_BUSINESSPARTNER, OBDal.getInstance().get(BusinessPartner.class, bpartnerId))); obc.add(Restrictions.in(AccountingFact.PROPERTY_ORGANIZATION, getOrgList(orgId))); try { obc.add(Restrictions.lt(AccountingFact.PROPERTY_ACCOUNTINGDATE, OBDateUtils.getDate(dateFrom))); } catch (ParseException pe) { // do nothing } if (isCustomer) { obc.add(Restrictions.in(AccountingFact.PROPERTY_ACCOUNT, getValidAccountsList(acctSchemaId, bpartnerId))); } else { obc.add(Restrictions.in(AccountingFact.PROPERTY_ACCOUNT, getValidAccountsListVendor(acctSchemaId, bpartnerId))); } obc.setFilterOnReadableOrganization(false); ProjectionList projections = Projections.projectionList(); projections.add(Projections.sum(AccountingFact.PROPERTY_DEBIT)); projections.add(Projections.sum(AccountingFact.PROPERTY_CREDIT)); obc.setProjection(projections); @SuppressWarnings("rawtypes") List o = obc.list(); if (o != null && o.size() > 0) { Object[] resultSet = (Object[]) o.get(0); BigDecimal debit = (resultSet[0] != null) ? (BigDecimal) resultSet[0] : BigDecimal.ZERO; BigDecimal credit = (resultSet[1] != null) ? (BigDecimal) resultSet[1] : BigDecimal.ZERO; return debit.subtract(credit); } return BigDecimal.ZERO; }
From source file:org.openmrs.module.hospitalcore.db.hibernate.HibernateInventoryDAO.java
public Integer sumCurrentQuantityDrugOfStore(Integer storeId, Integer drugId, Integer formulationId) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .add(Restrictions.eq("transaction.store.id", storeId)) .add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])) .add(Restrictions.eq("transactionDetail.drug.id", drugId)) .add(Restrictions.eq("transactionDetail.formulation.id", formulationId)); criteria.add(Restrictions.gt("transactionDetail.currentQuantity", 0)); criteria.add(Restrictions.gt("transactionDetail.dateExpiry", new Date())); ProjectionList proList = Projections.projectionList(); proList.add(Projections.sum("currentQuantity")); criteria.setProjection(proList);//ww w . j a v a 2 s . c o m Object l = criteria.uniqueResult(); return l != null ? (Integer) l : 0; }
From source file:org.openmrs.module.hospitalcore.db.hibernate.HibernateInventoryDAO.java
public List<InventoryStoreDrugTransactionDetail> listStoreDrugAvaiable(Integer storeId, Collection<Integer> drugs, Collection<Integer> formulations) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (drugs != null) { criteria.createCriteria("transactionDetail.drug", Criteria.INNER_JOIN) .add(Restrictions.in("id", drugs)); }//www. j av a 2 s. c om criteria.add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])); if (formulations != null) { criteria.createCriteria("transactionDetail.formulation", Criteria.INNER_JOIN) .add(Restrictions.in("id", formulations)); } criteria.setProjection(proList); criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) return null; List<InventoryStoreDrugTransactionDetail> list = new ArrayList<InventoryStoreDrugTransactionDetail>(); // System.out.println("lst size: "+lst.size()); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreDrugTransactionDetail tDetail = new InventoryStoreDrugTransactionDetail(); tDetail.setDrug((InventoryDrug) row[0]); tDetail.setFormulation((InventoryDrugFormulation) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); list.add(tDetail); // System.out.println("I: "+i+" drug: "+tDetail.getDrug().getName()+" formulation: "+tDetail.getFormulation().getName()+" quantity: "+tDetail.getCurrentQuantity()); } return list; }
From source file:org.openmrs.module.hospitalcore.db.hibernate.HibernateInventoryDAO.java
public List<InventoryStoreDrugTransactionDetail> listViewStockBalance(Integer storeId, Integer categoryId, String drugName, String fromDate, String toDate, boolean isExpiry, int min, int max) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.drug", "drugAlias") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("drugAlias.category.id", categoryId)); }/*from w w w.java2 s . com*/ if (!StringUtils.isBlank(drugName)) { criteria.add(Restrictions.like("drugAlias.name", "%" + drugName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } if (isExpiry) { criteria.add(Restrictions.lt("transactionDetail.dateExpiry", new Date())); } else { criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); } /* * Sagar Bele : 13-08-2012 Bug #330 ( [INVENTORY]-error in Current * quantity of pharmacy ) */ criteria.add(Restrictions.ge("transactionDetail.currentQuantity", 0)); criteria.setProjection(proList); if (max > 0) { criteria.setFirstResult(min).setMaxResults(max); } List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) return null; List<InventoryStoreDrugTransactionDetail> list = new ArrayList<InventoryStoreDrugTransactionDetail>(); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreDrugTransactionDetail tDetail = new InventoryStoreDrugTransactionDetail(); tDetail.setDrug((InventoryDrug) row[0]); tDetail.setFormulation((InventoryDrugFormulation) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); tDetail.setQuantity((Integer) row[3]); tDetail.setIssueQuantity((Integer) row[4]); list.add(tDetail); } return list; }
From source file:org.openmrs.module.hospitalcore.db.hibernate.HibernateInventoryDAO.java
public Integer countViewStockBalance(Integer storeId, Integer categoryId, String drugName, String fromDate, String toDate, boolean isExpiry) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.drug", "drugAlias"); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("drugAlias.category.id", categoryId)); }//from ww w . ja va 2 s . c o m if (!StringUtils.isBlank(drugName)) { criteria.add(Restrictions.like("drugAlias.name", "%" + drugName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } if (isExpiry) { criteria.add(Restrictions.lt("transactionDetail.dateExpiry", new Date())); } else { criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); } criteria.setProjection(proList); List<Object> list = criteria.list(); Number total = 0; if (!CollectionUtils.isEmpty(list)) { total = (Number) list.size(); } return total.intValue(); }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
public List<InventoryStoreDrugTransactionDetail> listStoreDrugAvaiable(Integer storeId, Collection<Integer> drugs, Collection<Integer> formulations) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (drugs != null) { criteria.createCriteria("transactionDetail.drug", Criteria.INNER_JOIN) .add(Restrictions.in("id", drugs)); }/*from w ww . j ava2 s. c o m*/ criteria.add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])); if (formulations != null) { criteria.createCriteria("transactionDetail.formulation", Criteria.INNER_JOIN) .add(Restrictions.in("id", formulations)); } criteria.setProjection(proList); criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreDrugTransactionDetail> list = new ArrayList<InventoryStoreDrugTransactionDetail>(); // System.out.println("lst size: "+lst.size()); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreDrugTransactionDetail tDetail = new InventoryStoreDrugTransactionDetail(); tDetail.setDrug((InventoryDrug) row[0]); tDetail.setFormulation((InventoryDrugFormulation) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); list.add(tDetail); // System.out.println("I: "+i+" drug: "+tDetail.getDrug().getName()+" formulation: "+tDetail.getFormulation().getName()+" quantity: "+tDetail.getCurrentQuantity()); } return list; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
public List<InventoryStoreDrugTransactionDetail> listViewStockBalance(Integer storeId, Integer categoryId, String drugName, String fromDate, String toDate, boolean isExpiry, int min, int max) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.drug", "drugAlias") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("drugAlias.category.id", categoryId)); }/*from ww w. ja v a2s. c o m*/ if (!StringUtils.isBlank(drugName)) { criteria.add(Restrictions.like("drugAlias.name", "%" + drugName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } if (isExpiry) { criteria.add(Restrictions.lt("transactionDetail.dateExpiry", new Date())); } else { criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); } /* * Sagar Bele : 13-08-2012 Bug #330 ( [INVENTORY]-error in Current * quantity of pharmacy ) */ criteria.add(Restrictions.ge("transactionDetail.currentQuantity", 0)); criteria.setProjection(proList); if (max > 0) { criteria.setFirstResult(min).setMaxResults(max); } List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreDrugTransactionDetail> list = new ArrayList<InventoryStoreDrugTransactionDetail>(); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreDrugTransactionDetail tDetail = new InventoryStoreDrugTransactionDetail(); tDetail.setDrug((InventoryDrug) row[0]); tDetail.setFormulation((InventoryDrugFormulation) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); tDetail.setQuantity((Integer) row[3]); tDetail.setIssueQuantity((Integer) row[4]); list.add(tDetail); } return list; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
@Override public Integer sumStoreItemCurrentQuantity(Integer storeId, Integer itemId, Integer specificationId) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreItemTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .add(Restrictions.eq("transaction.store.id", storeId)) .add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])) .add(Restrictions.eq("transactionDetail.item.id", itemId)); if (specificationId != null && specificationId > 0) { criteria.add(Restrictions.eq("transactionDetail.specification.id", specificationId)); } else {/*from w w w . j ava 2 s.com*/ criteria.add(Restrictions.isNull("transactionDetail.specification")); } criteria.add(Restrictions.gt("transactionDetail.currentQuantity", 0)); ProjectionList proList = Projections.projectionList(); proList.add(Projections.sum("currentQuantity")); criteria.setProjection(proList); Object l = criteria.uniqueResult(); return l != null ? (Integer) l : 0; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
@Override public List<InventoryStoreItemTransactionDetail> listStoreItemAvaiable(Integer storeId, Collection<Integer> items, Collection<Integer> specifications) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreItemTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("item")).add(Projections.groupProperty("specification")) .add(Projections.sum("currentQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (CollectionUtils.isNotEmpty(items)) { criteria.createCriteria("transactionDetail.item", Criteria.INNER_JOIN) .add(Restrictions.in("id", items)); }/*ww w.j a va 2s . co m*/ criteria.add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])); if (CollectionUtils.isNotEmpty(specifications)) { criteria.createCriteria("transactionDetail.specification", Criteria.LEFT_JOIN) .add(Restrictions.in("id", specifications)); } criteria.setProjection(proList); List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreItemTransactionDetail> list = new ArrayList<InventoryStoreItemTransactionDetail>(); // System.out.println("lst size: "+lst.size()); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreItemTransactionDetail tDetail = new InventoryStoreItemTransactionDetail(); tDetail.setItem((InventoryItem) row[0]); tDetail.setSpecification((InventoryItemSpecification) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); list.add(tDetail); // System.out.println("I: "+i+" item: "+tDetail.getItem().getName()+" specification: "+(tDetail.getSpecification() // != null ?tDetail.getSpecification().getName() : " null ") // +" quantity: "+tDetail.getCurrentQuantity()); } // System.out.println("list available: "+list); return list; }