/* * 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.tem.batch.service; import java.util.List; import org.kuali.kfs.module.tem.businessobject.AgencyServiceFee; import org.kuali.kfs.module.tem.businessobject.AgencyStagingData; import org.kuali.kfs.module.tem.businessobject.ImportedExpense; import org.kuali.kfs.module.tem.businessobject.TripAccountingInformation; import org.kuali.kfs.module.tem.document.TravelDocument; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntry; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySequenceHelper; import org.kuali.kfs.sys.businessobject.GeneralLedgerPendingEntrySourceDetail; import org.kuali.rice.core.api.util.type.KualiDecimal; public interface ImportedExpensePendingEntryService { public boolean checkAndAddPendingEntriesToList(List<GeneralLedgerPendingEntry> pendingEntries, List<GeneralLedgerPendingEntry> entryList, AgencyStagingData agencyData, boolean isCredit, boolean generateOffset); /** * Build a GLPE base on agency data and trip accounting information, this is used for the import matching process * * @param agencyData * @param info * @param sequenceHelper * @param chartCode * @param objectCode * @param amount * @param glCredtiDebitCode * @return */ public GeneralLedgerPendingEntry buildGeneralLedgerPendingEntry(AgencyStagingData agencyData, TripAccountingInformation info, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, String chartCode, String objectCode, KualiDecimal amount, String glCredtiDebitCode); /** * Build a debit GLPE entry. Generate additional offset entry if parameter is set * * @param agencyData * @param info * @param sequenceHelper * @param objectCode * @param amount * @param generateOffset * @return */ public List<GeneralLedgerPendingEntry> buildDebitPendingEntry(AgencyStagingData agencyData, TripAccountingInformation info, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, String objectCode, KualiDecimal amount, boolean generateOffset); /** * Build a credit GLPE entry. Generate additional offset entry if parameter is set * * Credit GLPE uses TEM parameter for agency matching for Account and SubAccount * * @param agencyData * @param info * @param sequenceHelper * @param objectCode * @param amount * @param generateOffset * @return */ public List<GeneralLedgerPendingEntry> buildCreditPendingEntry(AgencyStagingData agencyData, TripAccountingInformation info, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, String objectCode, KualiDecimal amount, boolean generateOffset); /** * Build a credit GLPE entry for service fee. Generate additional offset entry if parameter is set * Agency Service Fee contains the Accounting information. * * Credit GLPE uses TEM parameter for agency matching for Account and SubAccount * * @param agencyData * @param info * @param sequenceHelper * @param serviceFee * @param amount * @param generateOffset * @return */ public List<GeneralLedgerPendingEntry> buildServiceFeeCreditPendingEntry(AgencyStagingData agencyData, TripAccountingInformation info, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, AgencyServiceFee serviceFee, KualiDecimal amount, boolean generateOffset); /** * Generate the GLPE for imported expenses in the TEM documents, generate offset for the entries * * @param travelDocument * @param glpeSourceDetail * @param sequenceHelper * @param isCredit * @param docType * @return */ public boolean generateDocumentImportedExpenseGeneralLedgerPendingEntries(TravelDocument travelDocument, GeneralLedgerPendingEntrySourceDetail glpeSourceDetail, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, boolean isCredit, String docType); /** * Generate GLPEs to credit CTS expenses on TEM documents and the debiting offset * @param expense the historical travel expense to build a GLPE for * @param sequenceHelper the sequence number helper for the glpe's * @param travelDocumentIdentifier the trip id which will act as the organization document number * @return a List of pending entries */ public List<GeneralLedgerPendingEntry> buildDistributionEntriesForCTSExpense(ImportedExpense expense, GeneralLedgerPendingEntrySequenceHelper sequenceHelper, String travelDocumentIdentifier); }