001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.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/ecl2.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.kfs.module.ld.document.service; 017 018 import org.kuali.kfs.module.ld.businessobject.ExpenseTransferAccountingLine; 019 import org.kuali.kfs.module.ld.businessobject.LaborLedgerPendingEntry; 020 import org.kuali.kfs.module.ld.document.LaborLedgerPostingDocument; 021 import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper; 022 import org.kuali.rice.kns.util.KualiDecimal; 023 024 /** 025 * This class provides a set of facilities that can convert the accounting document and its accounting lines into labor pending 026 * entries 027 */ 028 public interface LaborPendingEntryConverterService { 029 /** 030 * convert the given document and accounting line into the expense pending entries 031 * 032 * @param document the given accounting document 033 * @param accountingLine the given accounting line 034 * @param sequenceHelper the given sequence helper 035 * @return a set of expense pending entries 036 */ 037 public abstract LaborLedgerPendingEntry getExpensePendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper); 038 039 /** 040 * convert the given document and accounting line into the expense pending entries for effort reporting 041 * 042 * @param document the given accounting document 043 * @param accountingLine the given accounting line 044 * @param sequenceHelper the given sequence helper 045 * @return a set of expense pending entries for effort reporting 046 */ 047 public abstract LaborLedgerPendingEntry getExpenseA21PendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper); 048 049 /** 050 * convert the given document and accounting line into the expense reversal pending entries for effort reporting 051 * 052 * @param document the given accounting document 053 * @param accountingLine the given accounting line 054 * @param sequenceHelper the given sequence helper 055 * @return a set of expense reversal pending entries for effort reporting 056 */ 057 public abstract LaborLedgerPendingEntry getExpenseA21ReversalPendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper); 058 059 /** 060 * convert the given document and accounting line into the benefit pending entries 061 * 062 * @param document the given accounting document 063 * @param accountingLine the given accounting line 064 * @param sequenceHelper the given sequence helper 065 * @param benefitAmount the given benefit amount 066 * @param fringeBenefitObjectCode the given fringe benefit object code 067 * @return a set of benefit pending entries 068 */ 069 public abstract LaborLedgerPendingEntry getBenefitPendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, KualiDecimal benefitAmount, String fringeBenefitObjectCode); 070 071 /** 072 * convert the given document and accounting line into the benefit pending entry for effort reporting 073 * 074 * @param document the given accounting document 075 * @param accountingLine the given accounting line 076 * @param sequenceHelper the given sequence helper 077 * @param benefitAmount the given benefit amount 078 * @param fringeBenefitObjectCode the given fringe benefit object code 079 * @return a set of benefit pending entries for effort reporting 080 */ 081 public abstract LaborLedgerPendingEntry getBenefitA21PendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, KualiDecimal benefitAmount, String fringeBenefitObjectCode); 082 083 /** 084 * convert the given document and accounting line into the benefit reversal pending entries for effort reporting 085 * 086 * @param document the given accounting document 087 * @param accountingLine the given accounting line 088 * @param sequenceHelper the given sequence helper 089 * @param benefitAmount the given benefit amount 090 * @param fringeBenefitObjectCode the given fringe benefit object code 091 * @return a set of benefit reversal pending entries for effort reporting 092 */ 093 public abstract LaborLedgerPendingEntry getBenefitA21ReversalPendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, KualiDecimal benefitAmount, String fringeBenefitObjectCode); 094 095 /** 096 * convert the given document into benefit clearing pending entries with the given account, chart, amount and benefit type 097 * 098 * @param document the given accounting document 099 * @param sequenceHelper the given sequence helper 100 * @param accountNumber the given account number that the benefit clearing amount can be charged 101 * @param chartOfAccountsCode the given chart of accounts code that the benefit clearing amount can be charged 102 * @param benefitTypeCode the given benefit type code 103 * @param clearingAmount the benefit clearing amount 104 * @return a set of benefit clearing pending entries 105 */ 106 public abstract LaborLedgerPendingEntry getBenefitClearingPendingEntry(LaborLedgerPostingDocument document, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, String accountNumber, String chartOfAccountsCode, String benefitTypeCode, KualiDecimal clearingAmount); 107 108 /** 109 * construct a LaborLedgerPendingEntry object based on the information in the given document and accounting line. The object can 110 * be used as a template 111 * 112 * @param document the given document 113 * @param accountingLine the given accounting line 114 * @return a LaborLedgerPendingEntry object based on the information in the given document and accounting line 115 */ 116 public abstract LaborLedgerPendingEntry getDefaultPendingEntry(LaborLedgerPostingDocument document, ExpenseTransferAccountingLine accountingLine); 117 118 /** 119 * construct a LaborLedgerPendingEntry object based on the information in the given document. The object can be used as a 120 * template 121 * 122 * @param document the given document 123 * @return a LaborLedgerPendingEntry object based on the information in the given document 124 */ 125 public abstract LaborLedgerPendingEntry getDefaultPendingEntry(LaborLedgerPostingDocument document); 126 127 /** 128 * construct a LaborLedgerPendingEntry object based on the information in the given document and accounting line. The object can 129 * be used as a template 130 * 131 * @param document the given document 132 * @param accountingLine the given accounting line 133 * @return a LaborLedgerPendingEntry object based on the information in the given document and accounting line 134 */ 135 public abstract LaborLedgerPendingEntry getSimpleDefaultPendingEntry(); 136 137 138 139 140 141 142 143 144 }