/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package com.jboss.dvd.seam;
import java.math.BigDecimal;
import java.io.Serializable;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import org.jboss.seam.annotations.Name;
@Stateless
@Name("stats")
public class StoreManagerBean
implements StoreManager,
Serializable
{
private static final long serialVersionUID = 7011610947757223263L;
@PersistenceContext
EntityManager em;
public long getNumberOrders() {
return (Long) em.createQuery("select count(o) from Order o where o.status != :status")
.setParameter("status", Order.Status.CANCELLED)
.getSingleResult();
}
public BigDecimal getTotalSales() {
try {
BigDecimal totalSales = (BigDecimal) em.createQuery("select sum(o.totalAmount) from Order o where o.status != :status")
.setParameter("status", Order.Status.CANCELLED)
.getSingleResult();
return totalSales==null ? BigDecimal.ZERO : totalSales;
} catch (NoResultException e) {
return BigDecimal.ZERO;
}
}
public long getUnitsSold() {
try {
return (Long) em.createQuery("select sum(i.sales) from Inventory i").getSingleResult();
} catch (NoResultException e) {
return 0;
}
}
public long getTotalInventory() {
try {
return (Long) em.createQuery("select sum(i.quantity) from Inventory i").getSingleResult();
} catch (NoResultException e) {
return 0;
}
}
}