Example usage for org.hibernate.criterion Projections sum

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

Introduction

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

Prototype

public static AggregateProjection sum(String propertyName) 

Source Link

Document

A property value sum projection

Usage

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateCreditCardReceipt(Session session, Date fromDate, Date toDate) {
    //cash receipt
    Criteria criteria = session.createCriteria(CashTransaction.class);
    criteria.add(Restrictions.ge(CreditCardTransaction.PROP_TRANSACTION_TIME, fromDate));
    criteria.add(Restrictions.le(CreditCardTransaction.PROP_TRANSACTION_TIME, toDate));
    criteria.add(Restrictions.eq(CreditCardTransaction.PROP_TRANSACTION_TYPE, TransactionType.CREDIT.name()));

    criteria.setProjection(Projections.sum(CashTransaction.PROP_AMOUNT));

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateGiftCertSoldAmount(Session session, Date fromDate, Date toDate) {
    //cash receipt
    Criteria criteria = session.createCriteria(GiftCertificateTransaction.class);
    criteria.add(Restrictions.ge(GiftCertificateTransaction.PROP_TRANSACTION_TIME, fromDate));
    criteria.add(Restrictions.le(GiftCertificateTransaction.PROP_TRANSACTION_TIME, toDate));
    criteria.add(//  w  w  w  . ja  va 2s.c  o  m
            Restrictions.eq(GiftCertificateTransaction.PROP_TRANSACTION_TYPE, TransactionType.CREDIT.name()));

    criteria.setProjection(Projections.sum(GiftCertificateTransaction.PROP_GIFT_CERT_FACE_VALUE));

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateTips(Session session, Date fromDate, Date toDate, User user) {
    //tips//from   w  ww.  ja  v a  2 s .c o m
    Criteria criteria = session.createCriteria(Ticket.class);
    criteria.createAlias(Ticket.PROP_GRATUITY, "g"); //$NON-NLS-1$
    criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
    criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));

    if (user != null) {
        criteria.add(Restrictions.eq(Ticket.PROP_OWNER, user));
    }
    //FIXME: HOW ABOUT TIPS ON VOID OR REFUNDED TICKET?

    //criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE));
    //criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE));

    criteria.setProjection(Projections.sum("g." + Gratuity.PROP_AMOUNT)); //$NON-NLS-1$

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateDiscount(Session session, Date fromDate, Date toDate, User user) {
    //discounts//from w  w w.j  a  v a2  s .c o  m
    Criteria criteria = session.createCriteria(Ticket.class);
    criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
    criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));
    criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE));
    criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE));

    if (user != null) {
        criteria.add(Restrictions.eq(Ticket.PROP_OWNER, user));
    }

    criteria.setProjection(Projections.sum(Ticket.PROP_DISCOUNT_AMOUNT));

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateTax(Session session, Date fromDate, Date toDate, User user) {
    //discounts/*from   w  ww.  j  a  v  a  2 s  . co m*/
    Criteria criteria = session.createCriteria(Ticket.class);
    criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
    criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));
    criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE));
    criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE));

    if (user != null) {
        criteria.add(Restrictions.eq(Ticket.PROP_OWNER, user));
    }

    criteria.setProjection(Projections.sum(Ticket.PROP_TAX_AMOUNT));

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

private double calculateGrossSales(Session session, Date fromDate, Date toDate, User user,
        boolean taxableSales) {
    Criteria criteria = session.createCriteria(Ticket.class);
    criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
    criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));
    criteria.add(Restrictions.eq(Ticket.PROP_VOIDED, Boolean.FALSE));
    criteria.add(Restrictions.eq(Ticket.PROP_REFUNDED, Boolean.FALSE));

    if (user != null) {
        criteria.add(Restrictions.eq(Ticket.PROP_OWNER, user));
    }/*  w  w w  . j av a2s  . co m*/

    criteria.add(Restrictions.eq(Ticket.PROP_TAX_EXEMPT, Boolean.valueOf(!taxableSales)));

    criteria.setProjection(Projections.sum(Ticket.PROP_SUBTOTAL_AMOUNT));

    return getDoubleAmount(criteria.uniqueResult());
}

From source file:com.floreantpos.report.service.ReportService.java

License:Open Source License

public SalesDetailedReport getSalesDetailedReport(Date fromDate, Date toDate) {
    GenericDAO dao = new GenericDAO();
    SalesDetailedReport report = new SalesDetailedReport();
    Session session = null;//from   w  w w .j  av a2  s .  c  o m

    report.setFromDate(fromDate);
    report.setToDate(toDate);
    report.setReportTime(new Date());
    try {

        session = dao.getSession();

        Criteria criteria = session.createCriteria(DrawerPullReport.class);
        criteria.add(Restrictions.ge(DrawerPullReport.PROP_REPORT_TIME, fromDate));
        criteria.add(Restrictions.le(DrawerPullReport.PROP_REPORT_TIME, toDate));
        List list = criteria.list();
        for (Iterator iter = list.iterator(); iter.hasNext();) {
            DrawerPullReport drawerPullReport = (DrawerPullReport) iter.next();
            DrawerPullData data = new DrawerPullData();
            data.setDrawerPullId(drawerPullReport.getId());
            data.setTicketCount(drawerPullReport.getTicketCount());
            data.setIdealAmount(drawerPullReport.getDrawerAccountable());
            data.setActualAmount(drawerPullReport.getCashToDeposit());
            data.setVarinceAmount(
                    drawerPullReport.getDrawerAccountable() - drawerPullReport.getCashToDeposit());
            report.addDrawerPullData(data);
        }

        criteria = session.createCriteria(CreditCardTransaction.class);
        criteria.add(Restrictions.ge(CreditCardTransaction.PROP_TRANSACTION_TIME, fromDate));
        criteria.add(Restrictions.le(CreditCardTransaction.PROP_TRANSACTION_TIME, toDate));
        list = criteria.list();

        for (Iterator iter = list.iterator(); iter.hasNext();) {
            CreditCardTransaction t = (CreditCardTransaction) iter.next();
            report.addCreditCardData(t);
        }

        criteria = session.createCriteria(DebitCardTransaction.class);
        criteria.add(Restrictions.ge(DebitCardTransaction.PROP_TRANSACTION_TIME, fromDate));
        criteria.add(Restrictions.le(DebitCardTransaction.PROP_TRANSACTION_TIME, toDate));
        list = criteria.list();

        for (Iterator iter = list.iterator(); iter.hasNext();) {
            DebitCardTransaction t = (DebitCardTransaction) iter.next();
            report.addCreditCardData(t);
        }

        criteria = session.createCriteria(GiftCertificateTransaction.class);
        criteria.add(Restrictions.ge(GiftCertificateTransaction.PROP_TRANSACTION_TIME, fromDate));
        criteria.add(Restrictions.le(GiftCertificateTransaction.PROP_TRANSACTION_TIME, toDate));
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.rowCount());
        projectionList.add(Projections.sum(GiftCertificateTransaction.PROP_AMOUNT));
        criteria.setProjection(projectionList);
        Object[] object = (Object[]) criteria.uniqueResult();
        if (object != null && object.length > 0 && object[0] instanceof Number) {
            report.setGiftCertReturnCount(((Number) object[0]).intValue());
        }
        if (object != null && object.length > 1 && object[1] instanceof Number) {
            report.setGiftCertReturnAmount(((Number) object[1]).doubleValue());
        }

        criteria = session.createCriteria(GiftCertificateTransaction.class);
        criteria.add(Restrictions.ge(GiftCertificateTransaction.PROP_TRANSACTION_TIME, fromDate));
        criteria.add(Restrictions.le(GiftCertificateTransaction.PROP_TRANSACTION_TIME, toDate));
        criteria.add(
                Restrictions.gt(GiftCertificateTransaction.PROP_GIFT_CERT_CASH_BACK_AMOUNT, Double.valueOf(0)));
        projectionList = Projections.projectionList();
        projectionList.add(Projections.rowCount());
        projectionList.add(Projections.sum(GiftCertificateTransaction.PROP_GIFT_CERT_CASH_BACK_AMOUNT));
        criteria.setProjection(projectionList);
        object = (Object[]) criteria.uniqueResult();
        if (object != null && object.length > 0 && object[0] instanceof Number) {
            report.setGiftCertChangeCount(((Number) object[0]).intValue());
        }
        if (object != null && object.length > 1 && object[1] instanceof Number) {
            report.setGiftCertChangeAmount(((Number) object[1]).doubleValue());
        }

        criteria = session.createCriteria(Ticket.class);
        criteria.createAlias(Ticket.PROP_GRATUITY, "g"); //$NON-NLS-1$
        criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
        criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));
        criteria.add(Restrictions.gt("g." + Gratuity.PROP_AMOUNT, Double.valueOf(0))); //$NON-NLS-1$
        projectionList = Projections.projectionList();
        projectionList.add(Projections.rowCount());
        projectionList.add(Projections.sum("g." + Gratuity.PROP_AMOUNT)); //$NON-NLS-1$
        criteria.setProjection(projectionList);
        object = (Object[]) criteria.uniqueResult();
        if (object != null && object.length > 0 && object[0] instanceof Number) {
            report.setTipsCount(((Number) object[0]).intValue());
        }
        if (object != null && object.length > 1 && object[1] instanceof Number) {
            report.setChargedTips(((Number) object[1]).doubleValue());
        }

        criteria = session.createCriteria(Ticket.class);
        criteria.createAlias(Ticket.PROP_GRATUITY, "g"); //$NON-NLS-1$
        criteria.add(Restrictions.ge(Ticket.PROP_CREATE_DATE, fromDate));
        criteria.add(Restrictions.le(Ticket.PROP_CREATE_DATE, toDate));
        criteria.add(Restrictions.gt("g." + Gratuity.PROP_AMOUNT, Double.valueOf(0))); //$NON-NLS-1$
        criteria.add(Restrictions.gt("g." + Gratuity.PROP_PAID, Boolean.TRUE)); //$NON-NLS-1$
        projectionList = Projections.projectionList();
        projectionList.add(Projections.sum("g." + Gratuity.PROP_AMOUNT)); //$NON-NLS-1$
        criteria.setProjection(projectionList);
        object = (Object[]) criteria.uniqueResult();
        if (object != null && object.length > 0 && object[0] instanceof Number) {
            report.setTipsPaid(((Number) object[0]).doubleValue());
        }

        return report;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:com.gps.rptbean.DataSourceFactory.java

public static JRDataSource buildYearlyDataSource(Vehicle v, String year, String measureName) {

    assert (v != null);
    assert (year != null);

    Date startDate = null;//from  www  .  j a  v a 2 s  .c o  m
    try {
        startDate = (new SimpleDateFormat("yyyy")).parse(year);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Calendar cal = Calendar.getInstance();
    cal.setTime(startDate);
    cal.add(Calendar.YEAR, 1);
    Date endDate = cal.getTime();

    Session session = HibernateUtil.getSession();

    List results = session.createCriteria(FRuningLog.class)
            .setProjection(Projections.projectionList().add(Projections.rowCount(), "rowCount")
                    .add(Projections.sum(measureName), "total")
                    .add(Projections.groupProperty("yearMonth"), "yearMonth"))
            .add(Restrictions.eq("vehicle.vehicleId", v.getVehicleId()))
            .add(Restrictions.le("startDate", endDate)).add(Restrictions.ge("startDate", startDate))
            .addOrder(Order.asc("yearMonth")).list();

    //   
    //      FRuningLogBean fruningLogBean = new FRuningLogBean();
    //      
    //      fruningLogBean.setVehicleId(v.getVehicleId());
    //      fruningLogBean.setStartDateStart(startDate);
    //      fruningLogBean.setStartDateEnd(endDate);
    //      
    //      fruningLogBean.getList();
    YearlyDataSource ds = null;
    ds = new YearlyDataSource();

    Iterator iter = results.iterator();

    while (iter.hasNext()) {
        Object[] row = (Object[]) iter.next();
        Integer count = (Integer) row[0];
        Double total = (Double) row[1];
        String yearMonth = (String) row[2];

        int idx = getIndex(yearMonth);
        YearlyBean bean = new YearlyBean(idx);
        bean.setVehicleId(v.getVehicleId());
        bean.setLicensePad(v.getLicensPadNumber());
        bean.setMeasure1(total);
        ds.addRecord(idx, bean);
    }

    return ds;

}

From source file:com.gps.rptbean.DataSourceFactory.java

public static JRDataSource buildMonthlyCostDataSource(Vehicle v, Date start, Date end) {

    CostAnalysisDataSource result = new CostAnalysisDataSource();

    assert (v != null);
    assert (start != null);
    assert (end != null);
    int index = 1;

    Session session = HibernateUtil.getSession();

    List results = session.createCriteria(FRuningLog.class)
            .setProjection(Projections.projectionList().add(Projections.rowCount(), "runCount")
                    .add(Projections.sum("totalCost"), "total").add(Projections.sum("actualGas"), "totalGas")
                    .add(Projections.sum("gasByCashCost"), "totalGasCash")
                    .add(Projections.sum("gasByCardCost"), "totalGasCard")
                    .add(Projections.sum("actualDistance"), "totalDistance")
                    .add(Projections.sum("actualRoadFee"), "totalRoadFee")
                    .add(Projections.sum("overLimitFee"), "totalOverLimitFee")
                    .add(Projections.groupProperty("vehicle.vehicleId"), "vehicleId"))
            .add(Restrictions.eq("vehicle.vehicleId", v.getVehicleId())).add(Restrictions.le("startDate", end))
            .add(Restrictions.ge("startDate", start)).list();

    Double gas = (Double) ((Object[]) results.get(0))[2];
    Double gasByCash = (Double) ((Object[]) results.get(0))[3];
    Double gasByCard = (Double) ((Object[]) results.get(0))[4];

    Double gasFee = gasByCash + gasByCard;
    Double roadFee = (Double) ((Object[]) results.get(0))[6];
    Double limitFee = (Double) ((Object[]) results.get(0))[7];

    CostAnalysisBean bean1 = new CostAnalysisBean();
    bean1.setCategoryName("");
    bean1.setIndex(index);/*from   w w w .j  ava2 s . com*/
    bean1.setLicensePad(v.getLicensPadNumber());
    bean1.setMeasure1(gasFee);
    bean1.setVehicleId(v.getVehicleId());
    result.addRecord(index - 1, bean1);
    index++;

    CostAnalysisBean bean2 = new CostAnalysisBean();
    bean2.setCategoryName("");
    bean2.setIndex(index);
    bean2.setLicensePad(v.getLicensPadNumber());
    bean2.setMeasure1(roadFee);
    bean2.setVehicleId(v.getVehicleId());
    result.addRecord(index - 1, bean2);
    index++;

    CostAnalysisBean bean3 = new CostAnalysisBean();
    bean3.setCategoryName("?");
    bean3.setIndex(index);
    bean3.setLicensePad(v.getLicensPadNumber());
    bean3.setMeasure1(limitFee);
    bean3.setVehicleId(v.getVehicleId());
    result.addRecord(index - 1, bean3);
    index++;

    results = null;
    results = session.createCriteria(FMaintain.class)
            .setProjection(Projections.projectionList().add(Projections.rowCount(), "runCount")
                    .add(Projections.sum("cost"), "total")
                    .add(Projections.groupProperty("vehicle.vehicleId"), "vehicleId"))
            .add(Restrictions.eq("vehicle.vehicleId", v.getVehicleId()))
            .add(Restrictions.le("maintainDate", end)).add(Restrictions.ge("maintainDate", start)).list();

    if (results.size() > 0) {
        Double maitainFee = (Double) ((Object[]) results.get(0))[1];

        CostAnalysisBean bean4 = new CostAnalysisBean();
        bean4.setCategoryName("?");
        bean4.setIndex(index);
        bean4.setLicensePad(v.getLicensPadNumber());
        bean4.setMeasure1(maitainFee);
        bean4.setVehicleId(v.getVehicleId());
        result.addRecord(index - 1, bean4);
        index++;
    }

    String yearMonth = new SimpleDateFormat("yyyyMM").format(start);
    results = null;
    results = session.createCriteria(FExpenseLog.class)
            .setProjection(Projections.projectionList().add(Projections.rowCount(), "runCount")
                    .add(Projections.sum("amount"), "total")
                    .add(Projections.groupProperty("category1"), "category1"))
            .add(Restrictions.eq("vehicle.vehicleId", v.getVehicleId()))
            .add(Restrictions.eq("yearMonth", yearMonth)).list();

    Iterator iter = results.iterator();

    while (iter.hasNext()) {
        Object[] row = (Object[]) iter.next();
        Integer count = (Integer) row[0];
        Double total = (Double) row[1];
        String category = (String) row[2];

        CostAnalysisBean bean = new CostAnalysisBean();
        bean.setIndex(index);
        bean.setCategoryName(category);
        bean.setVehicleId(v.getVehicleId());
        bean.setLicensePad(v.getLicensPadNumber());
        bean.setMeasure1(total);
        result.addRecord(index - 1, bean);
        index++;
    }

    return result;
}

From source file:com.heliosapm.aa4h.parser.XMLQueryParser.java

License:Apache License

/**
 * Adds a new projection to the current projectionList stack.
 * Mandatory Attributes:<ul>// w  ww  . j a va2s  .  c  om
 * <li><b>name</b>: The field to create a projection on.</li>
 * <li><b>type</b>: The projection type.</li>
 * <li><b>alias</b>: The name applied to the projection returned field.</li>
 * </ul>
 * @param attrs The attributes of the processed node.
 * @throws SAXException
 * TODO: Implement checks for mandatory attributes.
 */
public void addProjection(Attributes attrs) throws SAXException {
    ProjectionList projectionList = projectionStack.peek();
    if (projectionList == null) {
        throw new SAXException(
                "Attempted to add Projection and no ProjectionList Exists On The Stack. (Projection must be embedded inside a Projections)");
    }
    String type = attrs.getValue("type");
    String name = attrs.getValue("name");
    String alias = attrs.getValue("alias");
    if ("avg".equalsIgnoreCase(type)) {
        projectionList.add(Projections.avg(name), alias);
    } else if ("count".equalsIgnoreCase(type)) {
        projectionList.add(Projections.count(name), alias);
    } else if ("countDistinct".equalsIgnoreCase(type)) {
        projectionList.add(Projections.countDistinct(name), alias);
    } else if ("groupProperty".equalsIgnoreCase(type)) {
        projectionList.add(Projections.groupProperty(name), alias);
    } else if ("max".equalsIgnoreCase(type)) {
        projectionList.add(Projections.max(name), alias);
    } else if ("min".equalsIgnoreCase(type)) {
        projectionList.add(Projections.min(name), alias);
    } else if ("sum".equalsIgnoreCase(type)) {
        projectionList.add(Projections.sum(name), alias);
    } else if ("rowCount".equalsIgnoreCase(type)) {
        projectionList.add(Projections.rowCount(), alias);
    }

}