Example usage for org.hibernate.criterion Projections rowCount

List of usage examples for org.hibernate.criterion Projections rowCount

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections rowCount.

Prototype

public static Projection rowCount() 

Source Link

Document

The query row count, ie.

Usage

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);
    }
}