List of usage examples for org.hibernate.criterion Projections rowCount
public static Projection rowCount()
From source file:com.example.barista.db.BaristaDAO.java
License:Apache License
/** * Unique name check.//from w w w .ja va2 s .c o m * @param name * the name * @return true if name is unique, false otherwise */ public boolean isNameUnique(String name) { return 0 == (long) criteria().add(Restrictions.eq("name", name)).setProjection(Projections.rowCount()) .uniqueResult(); }
From source file:com.example.barista.db.IngredientDAO.java
License:Apache License
/** * Unique exclusive name check./*from w w w. j a v a 2s . c o m*/ * @param ingredient * the ingredient * @return true if name is unique, false otherwise */ public boolean isNameExclusivelyUnique(Ingredient ingredient) { return 0 == (long) criteria().add(Restrictions.eq("name", ingredient.getName())) .add(Restrictions.ne("id", ingredient.getId())).setProjection(Projections.rowCount()) .uniqueResult(); }
From source file:com.facade.AbstractFacade.java
public int count() { Transaction trans = null;/*from ww w .j a v a 2 s. com*/ Session session = null; int cnt = 0; try { session = MyUtils.getSession(); trans = session.beginTransaction(); Criteria cq = session.createCriteria(entityClass); cq.setProjection(Projections.rowCount()); cnt = ((Long) cq.uniqueResult()).intValue(); trans.commit(); } catch (Exception e) { try { if (trans != null && trans.isActive()) { trans.rollback(); } } catch (Exception ex) { throw ex; } Logger.getLogger(entityClass.getName()).log(Level.SEVERE, null, e); } finally { MyUtils.closeSession(session); } return cnt; }
From source file:com.floreantpos.model.dao.KitchenTicketDAO.java
License:Open Source License
public List<Ticket> findNextKitchenTickets(PaginatedTableModel tableModel) { Session session = null;//from ww w .ja va2 s . co m Criteria criteria = null; try { int nextIndex = tableModel.getNextRowIndex(); session = createNewSession(); criteria = session.createCriteria(getReferenceClass()); criteria.setFirstResult(nextIndex); criteria.setMaxResults(tableModel.getPageSize()); List kitchenTicketList = criteria.list(); criteria.setProjection(Projections.rowCount()); Integer rowCount = (Integer) criteria.uniqueResult(); if (rowCount != null) { tableModel.setNumRows(rowCount); } tableModel.setCurrentRowIndex(nextIndex); return kitchenTicketList; } finally { closeSession(session); } }
From source file:com.floreantpos.model.dao.KitchenTicketDAO.java
License:Open Source License
public List<Ticket> findPreviousKitchenTickets(PaginatedTableModel tableModel) { Session session = null;//from w ww . j a va 2 s. c o m Criteria criteria = null; try { int previousIndex = tableModel.getPreviousRowIndex(); session = createNewSession(); criteria = session.createCriteria(getReferenceClass()); criteria.setFirstResult(previousIndex); criteria.setMaxResults(tableModel.getPageSize()); List kitchenTicketList = criteria.list(); criteria.setProjection(Projections.rowCount()); Integer rowCount = (Integer) criteria.uniqueResult(); if (rowCount != null) { tableModel.setNumRows(rowCount); } tableModel.setCurrentRowIndex(previousIndex); return kitchenTicketList; } finally { closeSession(session); } }
From source file:com.floreantpos.model.dao.MenuGroupDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public boolean hasChildren(Terminal terminal, MenuGroup group, OrderType orderType) throws PosException { Session session = null;//w ww .j ava 2 s .c o m try { session = getSession(); Criteria criteria = session.createCriteria(MenuItem.class); criteria.add(Restrictions.eq(MenuItem.PROP_PARENT, group)); criteria.add(Restrictions.eq(MenuItem.PROP_VISIBLE, Boolean.TRUE)); // if(terminal!=null) { // criteria.add(Restrictions.eq(MenuItem., criteria)) // } criteria.setProjection(Projections.rowCount()); criteria.createAlias("orderTypeList", "type", CriteriaSpecification.LEFT_JOIN); criteria.add(Restrictions.or(Restrictions.isEmpty("orderTypeList"), Restrictions.eq("type.id", orderType.getId()))); int uniqueResult = (Integer) criteria.uniqueResult(); return uniqueResult > 0; } catch (Exception e) { e.printStackTrace(); throw new PosException(Messages.getString("MenuItemDAO.0")); //$NON-NLS-1$ } finally { if (session != null) { session.close(); } } }
From source file:com.floreantpos.model.dao.PackagingUnitDAO.java
License:Open Source License
public boolean nameExists(String name) { Session session = null;/*from w w w . j a v a2s .c o m*/ try { session = getSession(); Criteria criteria = session.createCriteria(getReferenceClass()); criteria.add(Restrictions.eq(PackagingUnit.PROP_NAME, name).ignoreCase()); criteria.setProjection(Projections.rowCount()); Integer rowCount = (Integer) criteria.uniqueResult(); if (rowCount == null) return false; return (rowCount > 0) ? true : false; } finally { if (session != null) { closeSession(session); } } }
From source file:com.floreantpos.model.dao.RefundTransactionDAO.java
License:Open Source License
public RefundSummary getTotalRefundForTerminal(Terminal terminal) { Session session = null;/* w w w .ja v a 2s. com*/ RefundSummary refundSummary = new RefundSummary(); try { session = getSession(); Criteria criteria = session.createCriteria(getReferenceClass()); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(RefundTransaction.PROP_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.eq(RefundTransaction.PROP_TERMINAL, terminal)); criteria.add(Restrictions.eq(RefundTransaction.PROP_DRAWER_RESETTED, Boolean.FALSE)); List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); if (objects.length > 0 && objects[0] != null) { refundSummary.setCount(((Number) objects[0]).intValue()); } if (objects.length > 1 && objects[1] != null) { refundSummary.setAmount(((Number) objects[1]).doubleValue()); } } return refundSummary; } finally { closeSession(session); } }
From source file:com.floreantpos.model.dao.SalesSummaryDAO.java
License:Open Source License
public SalesStatistics findKeyStatistics(Date start, Date end, UserType userType, Terminal terminal) { Session session = null;//from w w w. ja v a 2 s .c o m try { SalesStatistics salesSummary = new SalesStatistics(); session = getSession(); //retrieve restaurant information and set it to sales summary Restaurant restaurant = (Restaurant) get(Restaurant.class, new Integer(1), session); if (restaurant != null) { salesSummary .setCapacity(restaurant.getCapacity() != null ? restaurant.getCapacity().intValue() : 0); salesSummary.setTables(restaurant.getTables() != null ? restaurant.getTables().intValue() : 0); } { //find gross sale, discount and tax. this excludes void tickets //net sale = gross_sale - discount Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_SUBTOTAL_AMOUNT)); projectionList.add(Projections.sum(Ticket.PROP_DISCOUNT_AMOUNT)); projectionList.add(Projections.sum(Ticket.PROP_TAX_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); //do not take into account void tickets criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE)); criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); if (objects.length > 1 && objects[1] != null) { salesSummary.setGrossSale(((Number) objects[1]).doubleValue()); } if (objects.length > 2 && objects[2] != null) { salesSummary.setDiscount(((Number) objects[2]).intValue()); } if (objects.length > 3 && objects[3] != null) { salesSummary.setTax(((Number) objects[3]).intValue()); } } } { //determine number of guests within the specified time. this includes void tickets, Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_NUMBER_OF_GUESTS)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); salesSummary.setCheckCount(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { salesSummary.setGuestCount(((Number) objects[1]).intValue()); } } } { //find number of open tickets and its total amount Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_TOTAL_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); criteria.add(Restrictions.eq(Ticket.PROP_CLOSED, Boolean.FALSE)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); salesSummary.setOpenChecks(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { salesSummary.setOpenAmount(((Number) objects[1]).doubleValue()); } } } { //find number of void tickets and its total amount Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_TOTAL_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); criteria.add(Restrictions.eq(Ticket.PROP_CLOSED, Boolean.TRUE)); criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.TRUE)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); salesSummary.setVoidChecks(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { salesSummary.setVoidAmount(((Number) objects[1]).doubleValue()); } } } { //find non taxable sales Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_TOTAL_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE)); criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE)); criteria.add(Restrictions.eq(Ticket.PROP_TAX_EXEMPT, Boolean.TRUE)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); salesSummary.setNtaxChecks(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { salesSummary.setNtaxAmount(((Number) objects[1]).doubleValue()); } } } { //find reopen statistics Criteria criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_TOTAL_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); criteria.add(Restrictions.eq(Ticket.PROP_RE_OPENED, Boolean.TRUE)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { Object[] objects = (Object[]) list.get(0); salesSummary.setRopnChecks(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { salesSummary.setRopnAmount(((Number) objects[1]).doubleValue()); } } } { //calculate totalLaborHours in the specified period Criteria criteria = session.createCriteria(AttendenceHistory.class, "history"); //$NON-NLS-1$ criteria.createCriteria(AttendenceHistory.PROP_USER, "u"); //$NON-NLS-1$ criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, start)); criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_TIME, end)); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(AttendenceHistory.PROP_TERMINAL, terminal)); } List list = criteria.list(); double laborHours = 0; double laborCost = 0; for (Object object : list) { AttendenceHistory attendenceHistory = (AttendenceHistory) object; double laborHourInMillisecond = 0; if (!attendenceHistory.isClockedOut() || attendenceHistory.getClockOutTime() == null) { Shift attendenceShift = attendenceHistory.getShift(); laborHourInMillisecond = Math .abs(end.getTime() - attendenceHistory.getClockInTime().getTime()); if (laborHourInMillisecond > attendenceShift.getShiftLength()) { laborHourInMillisecond = attendenceShift.getShiftLength(); } } else { laborHourInMillisecond = Math.abs(attendenceHistory.getClockInTime().getTime() - attendenceHistory.getClockInTime().getTime()); } double hour = (laborHourInMillisecond * (2.77777778 * Math.pow(10, -7))); laborHours += hour; laborCost += hour * (attendenceHistory.getUser().getCostPerHour() == null ? 0 : attendenceHistory.getUser().getCostPerHour()); } salesSummary.setLaborHour(laborHours); salesSummary.setLaborCost(laborCost); } { //find summary by shift Criteria criteria = session.createCriteria(Shift.class); List shifts = criteria.list(); for (Object object : shifts) { Shift shift = (Shift) object; List<OrderType> values = Application.getInstance().getOrderTypes(); //change enum for (OrderType ticketType : values) { findRecordByProfitCenter(start, end, userType, terminal, session, salesSummary, shift, ticketType); } } } salesSummary.calculateOthers(); return salesSummary; } finally { if (session != null) { closeSession(session); } } }
From source file:com.floreantpos.model.dao.SalesSummaryDAO.java
License:Open Source License
private void findRecordByProfitCenter(Date start, Date end, UserType userType, Terminal terminal, Session session, SalesStatistics salesSummary, Shift shift, OrderType ticketType) { Criteria criteria;//from w w w . ja v a 2 s .c o m criteria = session.createCriteria(Ticket.class, "ticket"); //$NON-NLS-1$ criteria.createCriteria(Ticket.PROP_OWNER, "u"); //$NON-NLS-1$ ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.sum(Ticket.PROP_NUMBER_OF_GUESTS)); projectionList.add(Projections.sum(Ticket.PROP_SUBTOTAL_AMOUNT)); criteria.setProjection(projectionList); criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, start)); criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, end)); criteria.add(Restrictions.eq(Ticket.PROP_SHIFT, shift)); criteria.add(Restrictions.eq(Ticket.PROP_TICKET_TYPE, ticketType.name())); if (userType != null) { criteria.add(Restrictions.eq("u." + User.PROP_TYPE, userType)); //$NON-NLS-1$ } if (terminal != null) { criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal)); } List list = criteria.list(); if (list.size() > 0) { ShiftwiseSalesTableData data = new ShiftwiseSalesTableData(); data.setProfitCenter(ticketType.toString()); Object[] objects = (Object[]) list.get(0); data.setShiftName(shift.getName()); data.setCheckCount(((Number) objects[0]).intValue()); if (objects.length > 1 && objects[1] != null) { data.setGuestCount(((Number) objects[1]).intValue()); } if (objects.length > 2 && objects[2] != null) { data.setTotalSales(((Number) objects[2]).doubleValue()); } data.setPercentage(data.getTotalSales() * 100 / salesSummary.getGrossSale()); data.calculateOthers(); salesSummary.addSalesTableData(data); } }