1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.kuali.ole.gl.batch.service.impl;
17  
18  import java.io.File;
19  import java.io.FileNotFoundException;
20  import java.io.PrintStream;
21  import java.sql.Date;
22  import java.util.HashMap;
23  import java.util.Iterator;
24  import java.util.Map;
25  import java.util.Set;
26  
27  import org.kuali.ole.coa.service.BalanceTypeService;
28  import org.kuali.ole.coa.service.ObjectTypeService;
29  import org.kuali.ole.coa.service.PriorYearAccountService;
30  import org.kuali.ole.coa.service.SubFundGroupService;
31  import org.kuali.ole.gl.GeneralLedgerConstants;
32  import org.kuali.ole.gl.batch.BalanceForwardRuleHelper;
33  import org.kuali.ole.gl.batch.NominalActivityClosingHelper;
34  import org.kuali.ole.gl.batch.dataaccess.YearEndDao;
35  import org.kuali.ole.gl.batch.service.EncumbranceClosingOriginEntryGenerationService;
36  import org.kuali.ole.gl.batch.service.YearEndService;
37  import org.kuali.ole.gl.batch.service.impl.exception.FatalErrorException;
38  import org.kuali.ole.gl.businessobject.Balance;
39  import org.kuali.ole.gl.businessobject.Encumbrance;
40  import org.kuali.ole.gl.businessobject.OriginEntryFull;
41  import org.kuali.ole.gl.dataaccess.EncumbranceDao;
42  import org.kuali.ole.gl.report.LedgerSummaryReport;
43  import org.kuali.ole.gl.service.BalanceService;
44  import org.kuali.ole.gl.service.OriginEntryGroupService;
45  import org.kuali.ole.gl.service.OriginEntryService;
46  import org.kuali.ole.sys.OLEConstants;
47  import org.kuali.ole.sys.OLEKeyConstants;
48  import org.kuali.ole.sys.service.ReportWriterService;
49  import org.kuali.rice.core.api.config.property.ConfigurationService;
50  import org.kuali.rice.core.api.datetime.DateTimeService;
51  import org.kuali.rice.coreservice.framework.parameter.ParameterService;
52  import org.kuali.rice.krad.service.PersistenceService;
53  import org.springframework.transaction.annotation.Transactional;
54  
55  
56  
57  
58  @Transactional
59  public class YearEndServiceImpl implements YearEndService {
60      private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(YearEndServiceImpl.class);
61  
62      private EncumbranceDao encumbranceDao;
63      private OriginEntryService originEntryService;
64      private OriginEntryGroupService originEntryGroupService;
65      private DateTimeService dateTimeService;
66      private BalanceService balanceService;
67      private BalanceTypeService balanceTypeService;
68      private ObjectTypeService objectTypeService;
69      private ParameterService parameterService;
70      private ConfigurationService configurationService;
71      private PriorYearAccountService priorYearAccountService;
72      private SubFundGroupService subFundGroupService;
73      private PersistenceService persistenceService;
74      private YearEndDao yearEndDao;
75      private String batchFileDirectoryName;
76      private EncumbranceClosingOriginEntryGenerationService encumbranceClosingOriginEntryGenerationService;
77      private ReportWriterService nominalActivityClosingReportWriterService;
78      private ReportWriterService balanceForwardReportWriterService;
79      private ReportWriterService encumbranceClosingReportWriterService;
80  
81      public static final String TRANSACTION_DATE_FORMAT_STRING = "yyyy-MM-dd";
82  
83      
84  
85  
86      public YearEndServiceImpl() {
87          super();
88      }
89  
90      
91  
92  
93  
94  
95  
96  
97  
98  
99      public void closeNominalActivity(String nominalClosingFileName, Map nominalClosingJobParameters) {
100 
101         Integer varFiscalYear = (Integer) nominalClosingJobParameters.get(GeneralLedgerConstants.ColumnNames.UNIVERSITY_FISCAL_YEAR);
102         NominalActivityClosingHelper closingHelper = new NominalActivityClosingHelper(varFiscalYear, (Date) nominalClosingJobParameters.get(GeneralLedgerConstants.ColumnNames.UNIV_DT), parameterService, configurationService);
103         
104         closingHelper.addNominalClosingJobParameters(nominalClosingJobParameters);
105 
106         Map<String, Integer> nominalActivityClosingCounts = new HashMap<String, Integer>();
107         
108         nominalActivityClosingCounts.put("globalReadCount", new Integer(balanceService.countBalancesForFiscalYear(varFiscalYear)));
109         Iterator<Balance> balanceIterator = balanceService.findNominalActivityBalancesForFiscalYear(varFiscalYear);
110 
111         String accountNumberHold = null;
112 
113         boolean selectSw = false;
114 
115         nominalActivityClosingCounts.put("globalSelectCount", new Integer(0));
116         nominalActivityClosingCounts.put("sequenceNumber", new Integer(0));
117         nominalActivityClosingCounts.put("sequenceWriteCount", new Integer(0));
118         nominalActivityClosingCounts.put("sequenceCheckCount", new Integer(0));
119 
120         boolean nonFatalErrorFlag = false;
121 
122         
123         File nominalClosingFile = new File(batchFileDirectoryName + File.separator + nominalClosingFileName);
124         PrintStream nominalClosingPs = null;
125         
126         try {
127             nominalClosingPs = new PrintStream(nominalClosingFile);
128         } catch (FileNotFoundException e) {
129             throw new RuntimeException("nominalClosingFile Files doesn't exist " + nominalClosingFileName);
130         }
131         
132         LedgerSummaryReport ledgerReport = new LedgerSummaryReport();
133         
134         while (balanceIterator.hasNext()) {
135 
136             Balance balance = balanceIterator.next();
137             balance.refreshReferenceObject("option");
138 
139             selectSw = true;
140 
141             try {
142                 if (LOG.isDebugEnabled()) {
143                     LOG.debug("Balance selected.");
144                 }
145                 if (balance.getAccountNumber().equals(accountNumberHold)) {
146                     incrementCount(nominalActivityClosingCounts, "sequenceNumber");
147                 }
148                 else {
149                     nominalActivityClosingCounts.put("sequenceNumber", new Integer(1));
150                 }
151                 incrementCount(nominalActivityClosingCounts, "globalSelectCount");
152                 OriginEntryFull activityEntry = closingHelper.generateActivityEntry(balance, new Integer(1));
153                 originEntryService.createEntry(activityEntry, nominalClosingPs);
154                 ledgerReport.summarizeEntry(activityEntry);
155                 incrementCount(nominalActivityClosingCounts, "sequenceWriteCount");
156                 nominalActivityClosingCounts.put("sequenceCheckCount", new Integer(nominalActivityClosingCounts.get("sequenceWriteCount").intValue()));
157                 if (0 == nominalActivityClosingCounts.get("sequenceCheckCount").intValue() % 1000) {
158                     LOG.info(new StringBuffer("  SEQUENTIAL RECORDS WRITTEN = ").append(nominalActivityClosingCounts.get("sequenceCheckCount")).toString());
159                 }
160                 OriginEntryFull offsetEntry = closingHelper.generateOffset(balance, new Integer(1));           
161                 originEntryService.createEntry(offsetEntry, nominalClosingPs);
162                 ledgerReport.summarizeEntry(offsetEntry);
163                 incrementCount(nominalActivityClosingCounts, "sequenceWriteCount");
164                 nominalActivityClosingCounts.put("sequenceCheckCount", new Integer(nominalActivityClosingCounts.get("sequenceWriteCount").intValue()));
165                 if (0 == nominalActivityClosingCounts.get("sequenceCheckCount").intValue() % 1000) {
166                     LOG.info(new StringBuffer(" ORIGIN ENTRIES INSERTED = ").append(nominalActivityClosingCounts.get("sequenceCheckCount")).toString());
167                 }
168                 if (nominalActivityClosingCounts.get("globalSelectCount").intValue() % 1000 == 0) {
169                 
170                 }
171                 accountNumberHold = balance.getAccountNumber();
172             }
173             catch (FatalErrorException fee) {
174                 LOG.warn("Failed to create entry pair for balance.", fee);
175             }
176         }
177         nominalActivityClosingCounts.put("nonFatalCount", closingHelper.getNonFatalErrorCount());
178         nominalClosingPs.close();
179         
180         
181         for (Object jobParameterKeyAsObject : nominalClosingJobParameters.keySet()) {
182             if (jobParameterKeyAsObject != null) {
183                 final String jobParameterKey = jobParameterKeyAsObject.toString();
184                 getNominalActivityClosingReportWriterService().writeParameterLine("%32s %10s", jobParameterKey, nominalClosingJobParameters.get(jobParameterKey));
185             }
186         }
187         
188         
189         getNominalActivityClosingReportWriterService().writeStatisticLine("NUMBER OF GLBL RECORDS READ       %9d", nominalActivityClosingCounts.get("globalReadCount"));
190         getNominalActivityClosingReportWriterService().writeStatisticLine("NUMBER OF GLBL RECORDS SELECTED   %9d", nominalActivityClosingCounts.get("globalSelectCount"));
191         getNominalActivityClosingReportWriterService().writeStatisticLine("NUMBER OF SEQ RECORDS WRITTEN     %9d", nominalActivityClosingCounts.get("sequenceWriteCount"));
192         getNominalActivityClosingReportWriterService().pageBreak();
193         
194         
195         getNominalActivityClosingReportWriterService().writeSubTitle(configurationService.getPropertyValueAsString(OLEKeyConstants.MESSAGE_REPORT_YEAR_END_NOMINAL_ACTIVITY_CLOSING_LEDGER_TITLE_LINE));
196         ledgerReport.writeReport(getNominalActivityClosingReportWriterService());
197     }
198 
199     
200 
201 
202 
203 
204 
205 
206     protected int incrementCount(Map<String, Integer> counts, String countName) {
207         Integer value = counts.get(countName);
208         int incremented = value.intValue() + 1;
209         counts.put(countName, new Integer(incremented));
210         return incremented;
211     }
212 
213     
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
226     public void forwardBalances(String balanceForwardsUnclosedFileName, String balanceForwardsclosedFileName, BalanceForwardRuleHelper balanceForwardRuleHelper) {
227         LOG.debug("forwardBalances() started");
228 
229         
230         
231         
232         
233         balanceForwardRuleHelper.setPriorYearAccountService(priorYearAccountService);
234         balanceForwardRuleHelper.setSubFundGroupService(subFundGroupService);
235         balanceForwardRuleHelper.setOriginEntryService(originEntryService);
236         balanceForwardRuleHelper.getState().setGlobalReadCount(balanceService.countBalancesForFiscalYear(balanceForwardRuleHelper.getClosingFiscalYear()));
237 
238         Balance balance;
239 
240         
241         File unclosedOutputFile = new File(batchFileDirectoryName + File.separator + balanceForwardsUnclosedFileName);
242         File closedOutputFile = new File(batchFileDirectoryName + File.separator + balanceForwardsclosedFileName);
243         PrintStream unclosedPs = null;
244         PrintStream closedPs = null;
245         
246         try {
247             unclosedPs = new PrintStream(unclosedOutputFile);
248             closedPs = new PrintStream(closedOutputFile);
249         } catch (FileNotFoundException e) {
250             throw new RuntimeException("balanceForwards Files don't exist " + balanceForwardsUnclosedFileName + " and " + balanceForwardsclosedFileName);
251         }
252         
253         
254         Iterator<Balance> generalBalances = balanceService.findGeneralBalancesToForwardForFiscalYear(balanceForwardRuleHelper.getClosingFiscalYear());
255         while (generalBalances.hasNext()) {
256             balance = generalBalances.next();
257             balanceForwardRuleHelper.processGeneralForwardBalance(balance, closedPs, unclosedPs);
258             if (balanceForwardRuleHelper.getState().getGlobalSelectCount() % 1000 == 0) {
259               
260             }
261         }
262 
263         
264         Iterator<Balance> cumulativeBalances = balanceService.findCumulativeBalancesToForwardForFiscalYear(balanceForwardRuleHelper.getClosingFiscalYear());
265         while (cumulativeBalances.hasNext()) {
266             balance = cumulativeBalances.next();
267             balanceForwardRuleHelper.processCumulativeForwardBalance(balance, closedPs, unclosedPs);
268             if (balanceForwardRuleHelper.getState().getGlobalSelectCount() % 1000 == 0) {
269             
270             }
271         }
272 
273         
274         getBalanceForwardReportWriterService().writeParameterLine("%32s %10s", GeneralLedgerConstants.ANNUAL_CLOSING_TRANSACTION_DATE_PARM, balanceForwardRuleHelper.getTransactionDate().toString());
275         getBalanceForwardReportWriterService().writeParameterLine("%32s %10s", GeneralLedgerConstants.ANNUAL_CLOSING_FISCAL_YEAR_PARM, balanceForwardRuleHelper.getClosingFiscalYear().toString());
276         getBalanceForwardReportWriterService().writeParameterLine("%32s %10s", OLEConstants.SystemGroupParameterNames.GL_ANNUAL_CLOSING_DOC_TYPE, balanceForwardRuleHelper.getAnnualClosingDocType());
277         getBalanceForwardReportWriterService().writeParameterLine("%32s %10s", OLEConstants.SystemGroupParameterNames.GL_ORIGINATION_CODE, balanceForwardRuleHelper.getGlOriginationCode());
278         
279         
280         getBalanceForwardReportWriterService().writeStatisticLine("NUMBER OF GLBL RECORDS READ....: %10d", balanceForwardRuleHelper.getState().getGlobalReadCount());
281         getBalanceForwardReportWriterService().writeStatisticLine("NUMBER OF GLBL RECORDS SELECTED: %10d", balanceForwardRuleHelper.getState().getGlobalSelectCount());
282         getBalanceForwardReportWriterService().writeStatisticLine("NUMBER OF SEQ RECORDS WRITTEN..: %10d", balanceForwardRuleHelper.getState().getSequenceWriteCount());
283         getBalanceForwardReportWriterService().writeStatisticLine("RECORDS FOR CLOSED ACCOUNTS....: %10d", balanceForwardRuleHelper.getState().getSequenceClosedCount());
284         getBalanceForwardReportWriterService().pageBreak();
285         
286         
287         getBalanceForwardReportWriterService().writeSubTitle(configurationService.getPropertyValueAsString(OLEKeyConstants.MESSAGE_REPORT_YEAR_END_BALANCE_FORWARD_OPEN_ACCOUNT_LEDGER_TITLE_LINE));
288         balanceForwardRuleHelper.writeOpenAccountBalanceForwardLedgerSummaryReport(getBalanceForwardReportWriterService());
289         getBalanceForwardReportWriterService().writeNewLines(4);
290         getBalanceForwardReportWriterService().writeSubTitle(configurationService.getPropertyValueAsString(OLEKeyConstants.MESSAGE_REPORT_YEAR_END_BALANCE_FORWARD_CLOSED_ACCOUNT_LEDGER_TITLE_LINE));
291         balanceForwardRuleHelper.writeClosedAccountBalanceForwardLedgerSummaryReport(getBalanceForwardReportWriterService());
292     }
293 
294     
295 
296 
297 
298 
299 
300 
301 
302     public void forwardEncumbrances(String encumbranceForwardFileName, Map jobParameters, Map<String, Integer> counts) {
303         LOG.debug("forwardEncumbrances() started");
304 
305         
306         counts.put("encumbrancesRead", new Integer(0));
307         counts.put("encumbrancesSelected", new Integer(0));
308         counts.put("originEntriesWritten", new Integer(0));
309         
310         LedgerSummaryReport forwardEncumbranceLedgerReport = new LedgerSummaryReport();
311 
312         
313         File encumbranceForwardFile = new File(batchFileDirectoryName + File.separator + encumbranceForwardFileName);
314         PrintStream encumbranceForwardPs = null;
315         
316         try {
317             encumbranceForwardPs = new PrintStream(encumbranceForwardFile);
318         } catch (FileNotFoundException e) {
319             throw new RuntimeException("nominalClosingFile Files doesn't exist " + encumbranceForwardFileName);
320         }
321 
322         
323         Iterator encumbranceIterator = encumbranceDao.getEncumbrancesToClose((Integer) jobParameters.get(GeneralLedgerConstants.ColumnNames.UNIVERSITY_FISCAL_YEAR));
324         while (encumbranceIterator.hasNext()) {
325 
326             Encumbrance encumbrance = (Encumbrance) encumbranceIterator.next();
327             incrementCount(counts, "encumbrancesRead");
328             
329             
330             if (getEncumbranceClosingOriginEntryGenerationService().shouldForwardEncumbrance(encumbrance)) {
331 
332                 incrementCount(counts, "encumbrancesSelected");
333 
334                 
335                 OriginEntryOffsetPair beginningBalanceEntryPair = getEncumbranceClosingOriginEntryGenerationService().createBeginningBalanceEntryOffsetPair(encumbrance, (Integer) jobParameters.get(GeneralLedgerConstants.ColumnNames.UNIVERSITY_FISCAL_YEAR), (Date) jobParameters.get(GeneralLedgerConstants.ColumnNames.UNIV_DT));
336 
337                 if (beginningBalanceEntryPair.isFatalErrorFlag()) {
338 
339                     continue;
340 
341                 }
342                 else {
343                     
344                     originEntryService.createEntry(beginningBalanceEntryPair.getEntry(), encumbranceForwardPs);
345                     forwardEncumbranceLedgerReport.summarizeEntry(beginningBalanceEntryPair.getEntry());
346                     originEntryService.createEntry(beginningBalanceEntryPair.getOffset(), encumbranceForwardPs);
347                     forwardEncumbranceLedgerReport.summarizeEntry(beginningBalanceEntryPair.getOffset());
348                     incrementCount(counts, "originEntriesWritten");
349                     incrementCount(counts, "originEntriesWritten");
350                     if (0 == counts.get("originEntriesWritten").intValue() % 1000) {
351                         LOG.info(new StringBuffer(" ORIGIN ENTRIES INSERTED = ").append(counts.get("originEntriesWritten")).toString());
352                     }
353                 }
354 
355                 
356                 boolean isEligibleForCostShare = false;
357                 try {
358                     isEligibleForCostShare = this.getEncumbranceClosingOriginEntryGenerationService().shouldForwardCostShareForEncumbrance(beginningBalanceEntryPair.getEntry(), beginningBalanceEntryPair.getOffset(), encumbrance, beginningBalanceEntryPair.getEntry().getFinancialObjectTypeCode());
359                 }
360                 catch (FatalErrorException fee) {
361                     LOG.info(fee.getMessage());
362                 }
363 
364                 if (isEligibleForCostShare) {
365                     
366                     OriginEntryOffsetPair costShareBeginningBalanceEntryPair = getEncumbranceClosingOriginEntryGenerationService().createCostShareBeginningBalanceEntryOffsetPair(encumbrance, (Date) jobParameters.get(GeneralLedgerConstants.ColumnNames.UNIV_DT));
367                     if (!costShareBeginningBalanceEntryPair.isFatalErrorFlag()) {
368                         
369                         originEntryService.createEntry(costShareBeginningBalanceEntryPair.getEntry(), encumbranceForwardPs);
370                         forwardEncumbranceLedgerReport.summarizeEntry(costShareBeginningBalanceEntryPair.getEntry());
371                         originEntryService.createEntry(costShareBeginningBalanceEntryPair.getOffset(), encumbranceForwardPs);
372                         forwardEncumbranceLedgerReport.summarizeEntry(costShareBeginningBalanceEntryPair.getOffset());
373                         incrementCount(counts, "originEntriesWritten");
374                         incrementCount(counts, "originEntriesWritten");
375                         if (0 == counts.get("originEntriesWritten").intValue() % 1000) {
376                             LOG.info(new StringBuffer(" ORIGIN ENTRIES INSERTED = ").append(counts.get("originEntriesWritten")).toString());
377                         }
378                     }
379                 }
380             }
381             if (counts.get("encumbrancesSelected").intValue() % 1000 == 0) {
382              
383             }
384         }
385         encumbranceForwardPs.close();
386         
387         
388         for (Object jobParameterKeyAsObject : jobParameters.keySet()) {
389             if (jobParameterKeyAsObject != null) {
390                 final String jobParameterKey = jobParameterKeyAsObject.toString();
391                 getEncumbranceClosingReportWriterService().writeParameterLine("%32s %10s", jobParameterKey, jobParameters.get(jobParameterKey));
392             }
393         }
394         
395         
396         getEncumbranceClosingReportWriterService().writeStatisticLine("NUMBER OF ENCUMBRANCE RECORDS READ:     %10d", counts.get("encumbrancesRead"));
397         getEncumbranceClosingReportWriterService().writeStatisticLine("NUMBER OF ENCUMBRANCE RECORDS SELECTED  %10d", counts.get("encumbrancesSelected"));
398         getEncumbranceClosingReportWriterService().writeStatisticLine("NUMBER OF SEQ RECORDS WRITTEN           %10d", counts.get("originEntriesWritten"));
399         getEncumbranceClosingReportWriterService().pageBreak();
400         
401         
402         getEncumbranceClosingReportWriterService().writeSubTitle(configurationService.getPropertyValueAsString(OLEKeyConstants.MESSAGE_REPORT_YEAR_END_ENCUMBRANCE_FORWARDS_LEDGER_TITLE_LINE));
403         forwardEncumbranceLedgerReport.writeReport(getEncumbranceClosingReportWriterService());
404     }
405 
406     
407 
408 
409 
410     public void logAllMissingPriorYearAccounts(Integer fiscalYear) {
411         Set<Map<String, String>> missingPriorYearAccountKeys = yearEndDao.findKeysOfMissingPriorYearAccountsForBalances(fiscalYear);
412         missingPriorYearAccountKeys.addAll(yearEndDao.findKeysOfMissingPriorYearAccountsForOpenEncumbrances(fiscalYear));
413         for (Map<String, String> key : missingPriorYearAccountKeys) {
414             LOG.info("PRIOR YEAR ACCOUNT MISSING FOR " + key.get("chartOfAccountsCode") + "-" + key.get("accountNumber"));
415         }
416     }
417 
418     
419 
420 
421 
422     public void logAllMissingSubFundGroups(Integer fiscalYear) {
423         Set missingSubFundGroupKeys = yearEndDao.findKeysOfMissingSubFundGroupsForBalances(fiscalYear);
424         missingSubFundGroupKeys.addAll(yearEndDao.findKeysOfMissingSubFundGroupsForOpenEncumbrances(fiscalYear));
425         for (Object key : missingSubFundGroupKeys) {
426             LOG.info("SUB FUND GROUP MISSING FOR " + (String) ((Map) key).get("subFundGroupCode"));
427         }
428 
429     }
430 
431     
432 
433 
434 
435 
436 
437 
438     public void setEncumbranceDao(EncumbranceDao encumbranceDao) {
439         this.encumbranceDao = encumbranceDao;
440     }
441 
442     
443 
444 
445 
446 
447 
448     public void setOriginEntryService(OriginEntryService originEntryService) {
449         this.originEntryService = originEntryService;
450     }
451 
452     public void setDateTimeService(DateTimeService dateTimeService) {
453         this.dateTimeService = dateTimeService;
454     }
455 
456     public void setOriginEntryGroupService(OriginEntryGroupService originEntryGroupService) {
457         this.originEntryGroupService = originEntryGroupService;
458     }
459 
460     public void setBalanceService(BalanceService balanceService) {
461         this.balanceService = balanceService;
462     }
463 
464     public void setBalanceTypeService(BalanceTypeService balanceTypeService) {
465         this.balanceTypeService = balanceTypeService;
466     }
467 
468     public void setObjectTypeService(ObjectTypeService objectTypeService) {
469         this.objectTypeService = objectTypeService;
470     }
471 
472 
473     public void setParameterService(ParameterService parameterService) {
474         this.parameterService = parameterService;
475     }
476 
477     public void setPriorYearAccountService(PriorYearAccountService priorYearAccountService) {
478         this.priorYearAccountService = priorYearAccountService;
479     }
480 
481     public void setSubFundGroupService(SubFundGroupService subFundGroupService) {
482         this.subFundGroupService = subFundGroupService;
483     }
484 
485     
486 
487 
488 
489 
490     public void setPersistenceService(PersistenceService persistenceService) {
491         this.persistenceService = persistenceService;
492     }
493 
494     public void setYearEndDao(YearEndDao yearEndDao) {
495         this.yearEndDao = yearEndDao;
496     }
497 
498     public void setConfigurationService(ConfigurationService configurationService) {
499         this.configurationService = configurationService;
500     }
501 
502     public void setBatchFileDirectoryName(String batchFileDirectoryName) {
503         this.batchFileDirectoryName = batchFileDirectoryName;
504     }
505 
506     
507 
508 
509 
510     public EncumbranceClosingOriginEntryGenerationService getEncumbranceClosingOriginEntryGenerationService() {
511         return encumbranceClosingOriginEntryGenerationService;
512     }
513 
514     
515 
516 
517 
518     public void setEncumbranceClosingOriginEntryGenerationService(EncumbranceClosingOriginEntryGenerationService encumbranceClosingOriginEntryGenerationService) {
519         this.encumbranceClosingOriginEntryGenerationService = encumbranceClosingOriginEntryGenerationService;
520     }
521 
522     
523 
524 
525 
526     public ReportWriterService getNominalActivityClosingReportWriterService() {
527         return nominalActivityClosingReportWriterService;
528     }
529 
530     
531 
532 
533 
534     public void setNominalActivityClosingReportWriterService(ReportWriterService nominalActivityClosingReportWriterService) {
535         this.nominalActivityClosingReportWriterService = nominalActivityClosingReportWriterService;
536     }
537 
538     
539 
540 
541 
542     public ReportWriterService getBalanceForwardReportWriterService() {
543         return balanceForwardReportWriterService;
544     }
545 
546     
547 
548 
549 
550     public void setBalanceForwardReportWriterService(ReportWriterService balanceForwardReportWriterService) {
551         this.balanceForwardReportWriterService = balanceForwardReportWriterService;
552     }
553 
554     
555 
556 
557 
558     public ReportWriterService getEncumbranceClosingReportWriterService() {
559         return encumbranceClosingReportWriterService;
560     }
561 
562     
563 
564 
565 
566     public void setEncumbranceClosingReportWriterService(ReportWriterService encumbranceClosingReportWriterService) {
567         this.encumbranceClosingReportWriterService = encumbranceClosingReportWriterService;
568     }
569 }