001: /*
002: * Copyright 2006-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.gl.service;
017:
018: import java.util.Collection;
019: import java.util.Date;
020: import java.util.Iterator;
021: import java.util.List;
022: import java.util.Map;
023:
024: import org.kuali.kfs.bo.Options;
025: import org.kuali.module.gl.batch.poster.PostTransaction;
026: import org.kuali.module.gl.bo.ExpenditureTransaction;
027: import org.kuali.module.gl.bo.OriginEntryGroup;
028: import org.kuali.module.gl.bo.Transaction;
029: import org.kuali.module.gl.document.CorrectionDocument;
030: import org.kuali.module.gl.service.impl.scrubber.DemergerReportData;
031: import org.kuali.module.gl.service.impl.scrubber.ScrubberReportData;
032: import org.kuali.module.gl.util.Message;
033:
034: /**
035: * An interface of methods that allow all of the GL processes generate reports about their runs
036: */
037:
038: public interface ReportService {
039: /**
040: * Generates a ledger summary of pending entries, created by NightlyOut
041: *
042: * @param runDate the date this nightly out process was run on
043: * @param group the group of origin entries copied from pending entries
044: */
045: public void generatePendingEntryLedgerSummaryReport(Date runDate,
046: OriginEntryGroup group);
047:
048: /**
049: * Generates a report on all pending entries, created by Nightly out
050: *
051: * @param runDate the date this nightly out process was run on
052: * @param group the group of origin entries copied from pending entries
053: */
054: public void generatePendingEntryReport(Date runDate,
055: OriginEntryGroup group);
056:
057: /**
058: * Generates the Sufficient Funds Summary Report
059: *
060: * @param reportErrors the errors generated during the sufficient funds process
061: * @param reportSummary a List of summary data generated by the sufficient funds
062: * @param runDate the date of the sufficient funds rebuild process that is being reported
063: * @param mode not really used
064: */
065: public void generateSufficientFundsReport(Map reportErrors,
066: List reportSummary, Date runDate, int mode);
067:
068: /**
069: * Generates the Scrubber General Ledger Transaction Summary report for online viewing
070: *
071: * @param runDate Run date of the report
072: * @param group Group to summarize for the report
073: */
074: public void generateScrubberLedgerSummaryReportOnline(Date runDate,
075: OriginEntryGroup group, String documentNumber);
076:
077: /**
078: * Generates Scrubber General Ledger Transaction Summary report as a PDF
079: *
080: * @param runDate Run date of the report
081: * @param groups Groups to summarize for the report
082: */
083: public void generateScrubberLedgerSummaryReportBatch(Date runDate,
084: Collection groups);
085:
086: /**
087: * Generates the crubber Statistics report for batch reports
088: *
089: * @param runDate Run date of the report
090: * @param scrubberReport Summary information
091: * @param scrubberReportErrors Map of transactions with errors or warnings
092: */
093: public void generateBatchScrubberStatisticsReport(Date runDate,
094: ScrubberReportData scrubberReport,
095: Map<Transaction, List<Message>> scrubberReportErrors);
096:
097: /**
098: * Generates Scrubber Statistics report for online reports
099: *
100: * @param runDate Run date of the report
101: * @param scrubberReport Summary information
102: * @param scrubberReportErrors Map of transactions with errors or warnings
103: */
104: public void generateOnlineScrubberStatisticsReport(Integer groupId,
105: Date runDate, ScrubberReportData scrubberReport,
106: Map<Transaction, List<Message>> scrubberReportErrors,
107: String documentNumber);
108:
109: /**
110: * Generates the Scrubber Demerger Statistics report
111: *
112: * @param runDate Run date of the report
113: * @param demergerReport Summary information
114: */
115: public void generateScrubberDemergerStatisticsReports(Date runDate,
116: DemergerReportData demergerReport);
117:
118: /**
119: * Generates the Scrubber Bad Balance listing report
120: *
121: * @param runDate Run date of the report
122: * @param groups Groups to summarize for the report
123: */
124: public void generateScrubberBadBalanceTypeListingReport(
125: Date runDate, Collection groups);
126:
127: /**
128: * Generates Scrubber Transaction Listing report for online viewing
129: *
130: * @param runDate Run date of the report
131: * @param validGroup Group with transactions
132: */
133: public void generateScrubberTransactionsOnline(Date runDate,
134: OriginEntryGroup validGroup, String documentNumber);
135:
136: /**
137: * Generates the Scrubber Removed Transactions report
138: *
139: * @param runDate Run date of the report
140: * @param errorGroup Group with error transactions
141: */
142: public void generateScrubberRemovedTransactions(Date runDate,
143: OriginEntryGroup errorGroup);
144:
145: /**
146: * Generates the GL Summary report
147: *
148: * @param runDate the run date of the poster service that should be reported
149: * @param options the options of the fiscal year the poster was run
150: * @param reportType the type of the report that should be generated
151: */
152: public void generateGlSummary(Date runDate, Options year,
153: String reportType);
154:
155: /**
156: * Generates GL Encumbrance Summary report
157: *
158: * @param runDate the run date of the poster service that should be reported
159: * @param options the options of the fiscal year the poster was run
160: * @param reportType the type of the report that should be generated
161: */
162: public void generateGlEncumbranceSummary(Date runDate,
163: Options year, String reportType);
164:
165: /**
166: * Generates the Poster Statistics report
167: *
168: * @param executionDate the actual time of poster execution
169: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back
170: * @param reportSummary a Map of statistical counts generated by the poster run being reported on
171: * @param transactionPosters the list of posting algorithms used during the poster run
172: * @param reportErrors a Map of transactions that caused errors during the process
173: * @param mode the mode the poster was being run in
174: */
175: public void generatePosterStatisticsReport(Date executionDate,
176: Date runDate, Map<String, Integer> reportSummary,
177: List<PostTransaction> transactionPosters,
178: Map<Transaction, List<Message>> reportErrors, int mode);
179:
180: /**
181: * Generates the Poster ICR Statistics report
182: *
183: * @param executionDate the actual time of poster execution
184: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back
185: * @param reportErrors a Map of expenditure transactions that caused errors during the process
186: * @param reportExpendTranRetrieved the number of expenditure transactions read by the poster during the ICR run
187: * @param reportExpendTranDeleted the number of expenditure transactions deleted by the poster during the ICR run
188: * @param reportExpendTranKept the number of expenditure transactions saved by the poster during the ICR run
189: * @param reportOriginEntryGenerated the number of origin entry records generated by the process
190: */
191: public void generatePosterIcrStatisticsReport(Date executionDate,
192: Date runDate,
193: Map<ExpenditureTransaction, List<Message>> reportErrors,
194: int reportExpendTranRetrieved, int reportExpendTranDeleted,
195: int reportExpendTranKept, int reportOriginEntryGenerated);
196:
197: /**
198: * Generates the ICR Encumbrance Statistics report
199: *
200: * @param runDate the date when the poster process was run
201: * @param totalOfIcrEncumbrances the number of ICR encumbrances processed
202: * @param totalOfEntriesGenerated the number of origin entries generated by this step of the process
203: */
204: public void generateIcrEncumbranceStatisticsReport(Date runDate,
205: int totalOfIcrEncumbrances, int totalOfEntriesGenerated);
206:
207: /**
208: * Generates Main Poster Input Transaction Report
209: *
210: * @param executionDate the actual time of poster execution
211: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back in time to redo a failed
212: * poster run)
213: * @param groups origin entry groups produced by the poster to be reported on
214: */
215: public void generatePosterMainLedgerSummaryReport(
216: Date executionDate, Date runDate, Collection groups);
217:
218: /**
219: * Generates the Icr Poster Input Transaction Report
220: *
221: * @param executionDate the actual time of poster execution
222: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back in time to redo a failed
223: * poster run)
224: * @param groups entry groups produced by the poster to be reported on
225: */
226: public void generatePosterIcrLedgerSummaryReport(
227: Date executionDate, Date runDate, Collection groups);
228:
229: /**
230: * Reversal Poster Input Transaction Report
231: *
232: * @param executionDate the actual time of poster execution
233: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back in time to redo a failed
234: * poster run)
235: * @param groups groups produced by the poster to be reported on
236: */
237: public void generatePosterReversalLedgerSummaryReport(
238: Date executionDate, Date runDate, Iterator groups);
239:
240: /**
241: * Generates the Balance Forward Year-End job Report
242: *
243: * @param reportSummary a List of summarized statistics to report
244: * @param runDate the date of the balance forward run
245: * @param openAccountOriginEntryGroup the origin entry group with balance forwarding origin entries with open accounts
246: * @param closedAccountOriginEntryGroup the origin entry group with balance forwarding origin entries with closed accounts
247: */
248: public void generateBalanceForwardStatisticsReport(
249: List reportSummary, Date runDate,
250: OriginEntryGroup openAccountOriginEntryGroup,
251: OriginEntryGroup closedAccountOriginEntryGroup);
252:
253: /**
254: * Generates the encumbrance foward year end job report
255: *
256: * @param jobParameters the parameters that were used by the encumbrance forward job
257: * @param reportSummary a List of summarized statistics to report
258: * @param runDate the date of the encumbrance forward run
259: * @param originEntryGroup the origin entry group that the job placed encumbrance forwarding origin entries into
260: */
261: public void generateEncumbranceClosingStatisticsReport(
262: Map jobParameters, List reportSummary, Date runDate,
263: OriginEntryGroup originEntryGroup);
264:
265: /**
266: * Generates the Nominal Activity Closing Report
267: *
268: * @param jobParameters the parameters that were used by the nominal activity closing job
269: * @param reportSummary a List of summarized statistics to report
270: * @param runDate the date of the nominal activity closing job run
271: * @param originEntryGroup the origin entry group that the job placed nominal activity closing origin entries into
272: */
273: public void generateNominalActivityClosingStatisticsReport(
274: Map jobParameters, List reportSummary, Date runDate,
275: OriginEntryGroup originEntryGroup);
276:
277: /**
278: * This method generates the statistics report of the organization reversion process.
279: *
280: * @param jobParameters the parameters the org reversion process was run with
281: * @param reportSummary a list of various counts the job went through
282: * @param runDate the date the report was run
283: * @param orgReversionOriginEntryGroup the origin entry group that contains the reversion origin entries
284: */
285: public void generateOrgReversionStatisticsReport(Map jobParameters,
286: List reportSummary, Date runDate,
287: OriginEntryGroup orgReversionOriginEntryGroup);
288:
289: /**
290: * Generates the Poster Reversal Transactions Listing
291: *
292: * @param executionDate the actual time of poster execution
293: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back in time to redo a failed
294: * poster run)
295: * @param group Group with valid transactions
296: */
297: public void generatePosterReversalTransactionsListing(
298: Date executionDate, Date runDate, OriginEntryGroup group);
299:
300: /**
301: * Generates the Poster Error transaction listing
302: *
303: * @param executionDate the actual time of poster execution
304: * @param runDate the time assumed by the poster (sometimes the poster can use a transaction date back in time to redo a failed
305: * poster run)
306: * @param group Group with error transactions
307: * @param posterMode Mode the poster is running
308: */
309: public void generatePosterErrorTransactionListing(
310: Date executionDate, Date runDate, OriginEntryGroup group,
311: int posterMode);
312:
313: /**
314: * Generates the on-line GLCP document info report
315: *
316: * @param cDocument the GLCP document to report on
317: * @param runDate the date the GLCP was created
318: */
319: public void correctionOnlineReport(CorrectionDocument cDocument,
320: Date runDate);
321:
322: /**
323: * Poster output Summary Report: a summary of the three poster runs (pulling in the transactions from the main, reversal, and
324: * ICR posters) which we use for balancing.
325: *
326: * @param runDate the date the poster run that is being reported on occurred
327: * @param groups the origin entry groups created by the poster during its run
328: */
329: public void generatePosterOutputTransactionSummaryReport(
330: Date runDate, Collection groups);
331: }
|