/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.ld.service;
import java.io.BufferedReader;
import java.util.List;
import java.util.Map;
import org.kuali.kfs.gl.businessobject.OriginEntryStatistics;
import org.kuali.kfs.module.ld.businessobject.LaborOriginEntry;
/**
* Defines methods that must be implemented by classes providing a LaborOriginEntryServiceImpl.
*/
public interface LaborOriginEntryService {
/**
* Get statistics from a group
*/
//public OriginEntryStatistics getStatistics(Integer groupId);
public OriginEntryStatistics getStatistics(String fileName);
/**
* Copy a set of entries into a new group
*/
//public OriginEntryGroup copyEntries(Date date, String sourceCode, boolean valid, boolean process, boolean scrub, Collection<LaborOriginEntry> entries);
/**
* Copy a set of entries into a new group
*/
//public OriginEntryGroup copyEntries(Date date, String sourceCode, boolean valid, boolean process, boolean scrub, Iterator<LaborOriginEntry> entries);
/**
* Delete entry
*
* @param oe Entry to delete
*/
//public void delete(LaborOriginEntry oe);
/**
* Return all documents in a group
*
* @param oeg Group used to select documents
* @return Collection to all documents
*/
//public Collection<LaborOriginEntry> getDocumentsByGroup(OriginEntryGroup oeg);
/**
* Return all entries for a group sorted by account number for the error
*
* @param oeg
* @return
*/
//public Iterator<LaborOriginEntry> getEntriesByGroupAccountOrder(OriginEntryGroup oeg);
/**
* Return all entries for a group sorted for display on the pending entry report.
*
* @param oeg
* @return
*/
//public Iterator<LaborOriginEntry> getEntriesByGroupReportOrder(OriginEntryGroup oeg);
/**
* Return all entries for a group sorted across the columns in report from left to right.
*
* @param oeg
* @return
*/
//public Iterator<LaborOriginEntry> getEntriesByGroupListingReportOrder(OriginEntryGroup oeg);
/**
* Return all entries for the groups where the balance type is empty
*
* @param groups
* @return
*/
//public Iterator<LaborOriginEntry> getBadBalanceEntries(Collection groups);
/**
* Return all the entries for a specific document in a specific group
*
* @param oeg Group selection
* @param documentNumber Document number selection
* @param documentTypeCode Document type selection
* @param originCode Origin Code selection
* @return iterator to all the entries
*/
//public Collection<LaborOriginEntry> getEntriesByDocument(OriginEntryGroup oeg, String documentNumber, String documentTypeCode, String originCode);
/**
* Take a generic transaction and save it as an origin entry in a specific group
*
* @param tran transaction to save
* @param group group to save the transaction
*/
//public void createEntry(LaborTransaction laborTran, OriginEntryGroup group);
/**
* Save an laborOrigin entry
*
* @param entry
*/
//public void save(LaborOriginEntry entry);
/**
* Export all origin entries in a group to a flat text file
*
* @param filename Filename to save the text
* @param groupId Group to save
*/
//public void exportFlatFile(String filename, Integer groupId);
/**
* Load a flat file of transations into the origin entry table
*
* @param filename Filename with the text
* @param groupSourceCode Source of the new group
* @param valid Valid flag for new group
* @param processed Process flag for new group
* @param scrub Scrub flag for new group
*/
//public void loadFlatFile(String filename, String groupSourceCode, boolean valid, boolean processed, boolean scrub);
/**
* Send data to an output stream
*
* @param groupId
* @param bw
*/
//public void flatFile(Integer groupId, BufferedOutputStream bw);
/**
* Return all entries by searchCriteria
*
* @param searchCriteria
*/
//public Collection getMatchingEntriesByCollection(Map searchCriteria);
/**
* Return a matched entry with entryId
*
* @param entryId
*/
//public LaborOriginEntry getExactMatchingEntry(Integer entryId);
/**
* Get origin entries that belong to the given group
*
* @param group the given origin entry group
* @return origin entries that belong to the given group
*/
//public Iterator<LaborOriginEntry> getEntriesByGroup(OriginEntryGroup group);
/**
* Get origin entries that belong to the given group
*
* @param group the given origin entry group
* @return origin entries that belong to the given group
*/
//public Collection<LaborOriginEntry> getEntryCollectionByGroup(OriginEntryGroup group);
/**
* Get origin entries that belong to the given groups
*
* @param groups the given origin entry groups
* @return origin entries that belong to the given groups
*/
//public Iterator<LaborOriginEntry> getEntriesByGroups(Collection<OriginEntryGroup> groups);
/**
* Get the origin entries that belong to the given group in either the consolidation manner or not
*
* @param group the given group
* @param isConsolidated the flag that indicates if return origin entries in either the consolidation manner or not
* @return the origin entries that belong to the given group in either the consolidation manner or not
*/
//public Iterator<LaborOriginEntry> getEntriesByGroup(OriginEntryGroup group, boolean isConsolidated);
/**
* Get the origin entries that belong to the given group in either the consolidation manner or not
*
* @param group the given group
* @param isConsolidated the flag that indicates if return origin entries in either the consolidation manner or not
* @return the origin entries that belong to the given group in either the consolidation manner or not
*/
//public Collection<LaborOriginEntry> getConsolidatedEntryCollectionByGroup(OriginEntryGroup group);
/**
* get the summarized information of the entries that belong to the given entry groups
*
* @param groups the origin entry groups
* @return a set of summarized information of the entries within the specified groups
*/
//public LedgerEntryHolder getSummariedEntriesByGroups(Collection<OriginEntryGroup> groups);
/**
* get the summarized information of poster input entries that belong to the given entry groups
*
* @param groups the origin entry groups
* @return a map of summarized information of poster input entries within the specified groups
*/
//public Map<String, PosterOutputSummaryEntry> getPosterOutputSummaryByGroups(Collection<OriginEntryGroup> groups);
/**
* get the count of the origin entry collection in the given groups
*
* @param groups the given groups
* @return the count of the origin entry collection in the given group
*/
//public int getCountOfEntriesInGroups(Collection<OriginEntryGroup> groups);
/**
* get all entries with groupId
*
* @param groupId
*/
//public List<LaborOriginEntry> getEntriesByGroupId(Integer groupId);
public Map getEntriesByGroupIdWithPath(String fileNameWithPath, List<LaborOriginEntry> originEntryList);
public Map getEntriesByBufferedReader(BufferedReader inputBufferedReader, List<LaborOriginEntry> originEntryList);
/**
* get the summarized information of the entries that belong to the entry groups with the given group id list
*
* @param groupIdList the origin entry groups
* @return a set of summarized information of the entries within the specified group
*/
//public LedgerEntryHolder getSummaryByGroupId(Collection groupIdList);
/**
* get the count of the origin entry collection in the given group
*
* @param group the given group
* @return the count of the origin entry collection in the given group
*/
//public int getCountOfEntriesInSingleGroup(OriginEntryGroup group);
/**
* Get all the unscrubbed backup groups for Labor
*
* @param backupDate the date all groups created on or before should be return to be backed up
* @return a Collection of labor origin entry groups to backup
*/
//public Collection getLaborBackupGroups(Date backupDate);
/**
* Counts the number of entries in a group
* @param the id of an origin entry group
* @return the count of the entries in that group
*/
//public Integer getGroupCount(Integer groupId);
public Integer getGroupCount(String fileName);
}