BillBeanLocal.java 1.85 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
package fi.codecrew.moya.beans;

import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;

import javax.ejb.Local;

import fi.codecrew.moya.bortal.views.BillSummary;
import fi.codecrew.moya.exceptions.BillException;
import fi.codecrew.moya.model.Bill;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.FoodWave;
import fi.codecrew.moya.model.Product;

@Local
public interface BillBeanLocal {

	Bill findById(int id);

	//
	// Bill createEmptyBill(User shoppingUser) throws PermissionDeniedException;
	//
	// BillLine addProductToBill(Bill bill, Product product, BigDecimal count)
	// throws PermissionDeniedException;

	List<Bill> findAll();

	Collection<BillSummary> getBillLineSummary();

	Bill markPaid(Bill bill, Calendar when, boolean useCredits) throws BillException;

	void getPdfBillStream(Bill bill, OutputStream ostream);

	Bill createBill(Bill bill);

	Bill save(Bill bill);

	List<Bill> find(EventUser user);

	Bill expireBill(Bill bill);
	
	Bill addProductToBill(Bill bill, Product product, BigDecimal count, FoodWave foodwave);
	
	Bill addProductToBill(Bill bill, Product product, BigDecimal count);

}