package org.netevolved.reporting; import java.util.Date; import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.entermediadb.asset.MediaArchive; import org.netevolved.reporting.orders.AccommodationsReport; import org.netevolved.reporting.orders.FinancialReport; import org.netevolved.reporting.orders.InternationalParticipantsReport; import org.netevolved.reporting.orders.ParticipantsReport; import org.netevolved.reporting.orders.PaymentTypesReport; import org.netevolved.reporting.orders.PaymentsAndTransactionsReport; import org.netevolved.reporting.orders.ProfitReport; import org.netevolved.reporting.orders.RevenueTypesReport; import org.netevolved.reporting.orders.VocationalReport; import org.netevolved.reporting.orders.VoucherReport; import org.openedit.data.SearcherManager; import org.openedit.hittracker.HitTracker; import org.openedit.store.Store; import org.openedit.store.orders.Order; import org.openedit.store.orders.OrderSearcher; import org.openedit.users.User; public class OrderReport { private static final Log log = LogFactory.getLog( OrderReport.class ); protected HitTracker fieldOrders; protected SearcherManager fieldSearcherManager; protected MediaArchive fieldMediaArchive; protected String fieldCatalogId; protected boolean fieldUseSelections; protected User fieldUser; protected Date fieldDate; protected Store fieldStore; public Store getStore() { return fieldStore; } public void setStore(Store inStore) { fieldStore = inStore; } public MediaArchive getMediaArchive() { return fieldMediaArchive; } public void setMediaArchive(MediaArchive inMediaArchive) { fieldMediaArchive = inMediaArchive; } public User getUser() { return fieldUser; } public void setUser(User inUser) { fieldUser = inUser; } public Date getDate() { return fieldDate; } public void setDate(Date inDate) { fieldDate = inDate; } public SearcherManager getSearcherManager() { return fieldSearcherManager; } public void setSearcherManager(SearcherManager inSearcherManager) { fieldSearcherManager = inSearcherManager; } public boolean isUseSelections() { return fieldUseSelections; } public void setUseSelections(boolean inUseSelections) { fieldUseSelections = inUseSelections; } public String getCatalogId() { return fieldCatalogId; } public void setCatalogId(String inCatalogId) { fieldCatalogId = inCatalogId; } public HitTracker getOrders() { return fieldOrders; } public void setOrders(HitTracker inOrders) { fieldOrders = inOrders; } public Iterator getOrderIterator() { if(isUseSelections()){ return getOrders().getSelectedHitracker().iterator(); } else{ return getOrders().iterator(); } } public int getCount(){ if(isUseSelections()){ return getOrders().getSelectedHitracker().size(); } else{ return getOrders().size(); } } public Order getOrder(String inId) { OrderSearcher searcher = (OrderSearcher) getSearcherManager().getSearcher(getCatalogId(), "storeOrder"); return (Order) searcher.searchById(inId); } public String getSessionId(){ if (getOrders()!=null) { return getOrders().getSessionId(); } return null; } protected void prepareReport(BaseReport report){ report.setHitTracker(getOrders()); report.setUser(getUser()); report.setDate(getDate()); report.setMediaArchive(getMediaArchive()); report.setStore(getStore()); report.generateGroups(); } public ProfitReport getProfitReport(){ ProfitReport report = new ProfitReport(); report.setIncludeRefunds(true); prepareReport(report); return report; } public FinancialReport getFinancialReport(){ FinancialReport report = new FinancialReport(); report.setIncludeRefunds(true); prepareReport(report); return report; } public ParticipantsReport getParticipantsReport(){ ParticipantsReport report = new ParticipantsReport(); prepareReport(report); return report; } public VoucherReport getVoucherReport(){ VoucherReport report = new VoucherReport(); prepareReport(report); return report; } public AccommodationsReport getAccommodationsReport(){ AccommodationsReport report = new AccommodationsReport(); prepareReport(report); return report; } public InternationalParticipantsReport getInternationalParticipantsReport(){ InternationalParticipantsReport report = new InternationalParticipantsReport(); prepareReport(report); return report; } public RevenueTypesReport getRevenueTypesReport(){ RevenueTypesReport report = new RevenueTypesReport(); prepareReport(report); return report; } public VocationalReport getVocationalReport(){ VocationalReport report = new VocationalReport(); prepareReport(report); return report; } public PaymentsAndTransactionsReport getPaymentsAndTransactionsReport(){ PaymentsAndTransactionsReport report = new PaymentsAndTransactionsReport(); report.setIncludeRefunds(true); prepareReport(report); return report; } public PaymentTypesReport getPaymentTypesReport(){ PaymentTypesReport report = new PaymentTypesReport(); prepareReport(report); return report; } }