TavernerPOS - Source Code

Clone: 

git clone http://www.librarysmith.co.uk/tavernerPOS

 

package com.floreantpos.model.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import com.floreantpos.model.RefundTransaction;
import com.floreantpos.model.Terminal;
import com.floreantpos.model.util.RefundSummary;


public class RefundTransactionDAO extends BaseRefundTransactionDAO {

	/**
	 * Default constructor.  Can be used in place of getInstance()
	 */
	public RefundTransactionDAO () {}

	public RefundSummary getTotalRefundForTerminal(Terminal terminal) {
		Session session = null;
		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);
		}

	}
}

Add comment
These comments are moderated so so won't be published until reviewed.