package info.bukova.isspst.services.invoicing;

import info.bukova.isspst.data.Invoicing;
import info.bukova.isspst.data.Requirement;
import info.bukova.isspst.data.Season;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.services.Service;

import java.math.BigDecimal;
import java.util.List;

public interface InvoicingService extends Service<Invoicing> {
	
	public BigDecimal totalInvoicedForWorkgroup(Workgroup workgroup);

	public BigDecimal totalInvoicedForWorkgroupAndSeason(Workgroup workgroup, Season season);
	
	public void loadReqItems(Invoicing invoicing);
	
	public void loadItems(Invoicing invoicing);
	
	public void calculate(Invoicing invoicing);

	public List<Invoicing> getPendingList();

	public List<Invoicing> getArchiveList();

	public Invoicing getForRequirement(Requirement req);

	public List<Invoicing> getMaterialPendingList();

	public List<Invoicing> getMaterialArchiveList();

	public List<Invoicing> getServicesPendingList();

	public List<Invoicing> getServicesArchiveList();
}
