001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.opensource.org/licenses/ecl1.php
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.kuali.module.labor.service;
017:
018: import java.util.Collection;
019: import java.util.Date;
020: import java.util.List;
021: import java.util.Map;
022:
023: import org.kuali.module.gl.bo.OriginEntryGroup;
024: import org.kuali.module.gl.bo.Transaction;
025: import org.kuali.module.gl.service.impl.scrubber.DemergerReportData;
026: import org.kuali.module.gl.service.impl.scrubber.ScrubberReportData;
027: import org.kuali.module.gl.util.Message;
028: import org.kuali.module.gl.util.Summary;
029: import org.kuali.module.labor.document.LaborCorrectionDocument;
030: import org.kuali.module.labor.util.ReportRegistry;
031:
032: /**
033: * This defines a set of reporting generation facilities
034: */
035: public interface LaborReportService {
036:
037: /**
038: * Generate input summary report with the given information
039: *
040: * @param groups the given origin entry groups
041: * @param reportInfo the primary elements of a report, such as report title and report file name
042: * @param reportsDirectory the directory in file system that is used to contain reports
043: * @param runDate the datetime of the repor generation
044: */
045: public void generateInputSummaryReport(
046: Collection<OriginEntryGroup> groups,
047: ReportRegistry reportInfo, String reportsDirectory,
048: Date runDate);
049:
050: /**
051: * Generate input summary report with the given information
052: *
053: * @param group the given origin entry group
054: * @param reportInfo the primary elements of a report, such as report title and report file name
055: * @param reportsDirectory the directory in file system that is used to contain reports
056: * @param runDate the datetime of the repor generation
057: */
058: public void generateInputSummaryReport(OriginEntryGroup group,
059: ReportRegistry reportInfo, String reportsDirectory,
060: Date runDate);
061:
062: /**
063: * Generate error transaction listing as a report
064: *
065: * @param group the given origin entry group
066: * @param reportInfo the primary elements of a report, such as report title and report file name
067: * @param reportsDirectory the directory in file system that is used to contain reports
068: * @param runDate the datetime of the repor generation
069: */
070: public void generateErrorTransactionListing(OriginEntryGroup group,
071: ReportRegistry reportInfo, String reportsDirectory,
072: Date runDate);
073:
074: /**
075: * Generate statistics report with the given information
076: *
077: * @param reportSummary a list of report <code>Summary<code> objects
078: * @param errors the tansactions with problems and the descriptions of the problems
079: * @param reportInfo the primary elements of a report, such as report title and report file name
080: * @param reportsDirectory the directory in file system that is used to contain reports
081: * @param runDate the datetime of the repor generation
082: */
083: public void generateStatisticsReport(List<Summary> reportSummary,
084: Map<Transaction, List<Message>> errors,
085: ReportRegistry reportInfo, String reportsDirectory,
086: Date runDate);
087:
088: /**
089: * Generate statistics report with the given information
090: *
091: * @param reportSummary a list of report String objects
092: * @param reportInfo the primary elements of a report, such as report title and report file name
093: * @param reportsDirectory the directory in file system that is used to contain reports
094: * @param runDate the datetime of the repor generation
095: */
096: public void generateStatisticsReport(List<String> reportSummary,
097: ReportRegistry reportInfo, String reportsDirectory,
098: Date runDate);
099:
100: /**
101: * Generate output summary report with the given information
102: *
103: * @param groups the given origin entry groups
104: * @param reportInfo the primary elements of a report, such as report title and report file name
105: * @param reportsDirectory the directory in file system that is used to contain reports
106: * @param runDate the datetime of the repor generation
107: */
108: public void generateOutputSummaryReport(
109: Collection<OriginEntryGroup> groups,
110: ReportRegistry reportInfo, String reportsDirectory,
111: Date runDate);
112:
113: /**
114: * Generate output summary report with the given information
115: *
116: * @param group the given origin entry group
117: * @param reportInfo the primary elements of a report, such as report title and report file name
118: * @param reportsDirectory the directory in file system that is used to contain reports
119: * @param runDate the datetime of the repor generation
120: */
121: public void generateOutputSummaryReport(OriginEntryGroup group,
122: ReportRegistry reportInfo, String reportsDirectory,
123: Date runDate);
124:
125: /**
126: * Generate the balance summary report with the given information in the monthly level
127: *
128: * @param fiscalYear the given fiscal year
129: * @param balanceTypes the given balance type codes
130: * @param reportInfo the primary elements of a report, such as report title and report file name
131: * @param reportsDirectory the directory in file system that is used to contain reports
132: * @param runDate the datetime of the repor generation
133: */
134: public void generateMonthlyBalanceSummaryReport(Integer fiscalYear,
135: List<String> balanceTypes, ReportRegistry reportInfo,
136: String reportsDirectory, Date runDate);
137:
138: /**
139: * Generate the balance summary report with the given information in a simple format
140: *
141: * @param fiscalYear the given fiscal year
142: * @param balanceTypes the given balance type codes
143: * @param reportInfo the primary elements of a report, such as report title and report file name
144: * @param reportsDirectory the directory in file system that is used to contain reports
145: * @param runDate the datetime of the repor generation
146: */
147: public void generateBalanceSummaryReport(Integer fiscalYear,
148: List<String> balanceTypes, ReportRegistry reportInfo,
149: String reportsDirectory, Date runDate);
150:
151: /**
152: * Generate GL summary report with the given information
153: *
154: * @param group the given origin entry group into which the entries have copied to GL
155: * @param reportInfo the primary elements of a report, such as report title and report file name
156: * @param reportsDirectory the directory in file system that is used to contain reports
157: * @param runDate the datetime of the repor generation
158: */
159: public void generateGLSummaryReport(OriginEntryGroup group,
160: ReportRegistry reportInfo, String reportsDirectory,
161: Date runDate);
162:
163: /**
164: * LLCP document info report
165: *
166: * @param cDocument
167: * @param runDate
168: */
169: public void generateCorrectionOnlineReport(
170: LaborCorrectionDocument cDocument, String reportsDirectory,
171: Date runDate);
172:
173: /**
174: * Scrubber General Ledger Transaction Summary report
175: *
176: * @param runDate Run date of the report
177: * @param groups Groups to summarize for the report
178: */
179: public void generateScrubberLedgerSummaryReportBatch(
180: Collection groups, String reportsDirectory, Date runDate);
181:
182: /**
183: * Scrubber General Ledger Transaction Summary report
184: *
185: * @param runDate Run date of the report
186: * @param groups Groups to summarize for the report
187: */
188: public void generateScrubberLedgerSummaryReportOnline(
189: OriginEntryGroup group, String documentNumber,
190: String reportsDirectory, Date runDate);
191:
192: /**
193: * Scrubber Statistics report for batch reports
194: *
195: * @param runDate Run date of the report
196: * @param scrubberReport Summary information
197: * @param scrubberReportErrors Map of transactions with errors or warnings
198: */
199: public void generateBatchScrubberStatisticsReport(
200: ScrubberReportData scrubberReport,
201: Map<Transaction, List<Message>> scrubberReportErrors,
202: String reportsDirectory, Date runDate);
203:
204: /**
205: * Scrubber Statistics report for online reports
206: *
207: * @param runDate Run date of the report
208: * @param scrubberReport Summary information
209: * @param scrubberReportErrors Map of transactions with errors or warnings
210: */
211: public void generateOnlineScrubberStatisticsReport(Integer groupId,
212: ScrubberReportData scrubberReport,
213: Map<Transaction, List<Message>> scrubberReportErrors,
214: String documentNumber, String reportsDirectory, Date runDate);
215:
216: /**
217: * Scrubber Demerger Statistics report
218: *
219: * @param runDate Run date of the report
220: * @param demergerReport Summary information
221: */
222: public void generateScrubberDemergerStatisticsReports(
223: DemergerReportData demergerReport, String reportsDirectory,
224: Date runDate);
225:
226: /**
227: * Scrubber Bad Balance listing report
228: *
229: * @param runDate Run date of the report
230: * @param groups Groups to summarize for the report
231: */
232: public void generateScrubberBadBalanceTypeListingReport(
233: Collection groups, String reportsDirectory, Date runDate);
234:
235: /**
236: * Scrubber Transaction Listing report
237: *
238: * @param runDate Run date of the report
239: * @param validGroup Group with transactions
240: */
241: public void generateScrubberTransactionsOnline(
242: OriginEntryGroup validGroup, String documentNumber,
243: String reportsDirectory, Date runDate);
244:
245: /**
246: * Scrubber Removed Transactions report
247: *
248: * @param runDate Run date of the report
249: * @param errorGroup Group with error transactions
250: */
251: public void generateScrubberRemovedTransactions(
252: OriginEntryGroup errorGroup, String reportsDirectory,
253: Date runDate);
254: }
|