001/* 002 * Copyright 2009 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 */ 016package org.kuali.ole.gl.businessobject; 017 018import java.util.LinkedHashMap; 019 020import org.apache.commons.lang.StringUtils; 021import org.kuali.ole.sys.OLEConstants; 022import org.kuali.rice.core.api.util.type.KualiDecimal; 023import org.kuali.rice.krad.bo.TransientBusinessObjectBase; 024 025/** 026 * An OriginEntryInformation wrapper which helpfully summarizes data for the pending entry report 027 */ 028public class PendingEntrySummary extends TransientBusinessObjectBase { 029 private OriginEntryInformation originEntry; 030 private boolean suppress; 031 032 /** 033 * @return the document number of the wrapped entry 034 */ 035 public String getDocumentNumber() { 036 return (!suppress) ? getConstantDocumentNumber() : ""; 037 } 038 039 /** 040 * @return the document number of the wrapped entry - even if suppressed 041 */ 042 public String getConstantDocumentNumber() { 043 return StringUtils.join(new String[] { originEntry.getFinancialSystemOriginationCode(),originEntry.getDocumentNumber()}, '-'); 044 } 045 046 /** 047 * @return the document type code of the wrapped entry 048 */ 049 public String getDocumentTypeCode() { 050 return (!suppress) ? getConstantDocumentTypeCode() : ""; 051 } 052 053 /** 054 * @return the document type code, even if suppressed 055 */ 056 public String getConstantDocumentTypeCode() { 057 return originEntry.getFinancialDocumentTypeCode(); 058 } 059 060 /** 061 * @return the balance type code of the wrapped entry 062 */ 063 public String getBalanceTypeCode() { 064 return (!suppress) ? getConstantBalanceTypeCode() : ""; 065 } 066 067 /** 068 * @return the balance type code, even if suppressed 069 */ 070 public String getConstantBalanceTypeCode() { 071 return originEntry.getFinancialBalanceTypeCode(); 072 } 073 074 /** 075 * @return the chart of accounts code of the wrapped entry 076 */ 077 public String getChartOfAccountsCode() { 078 return originEntry.getChartOfAccountsCode(); 079 } 080 081 /** 082 * @return the account number of the wrapped entry 083 */ 084 public String getAccountNumber() { 085 return originEntry.getAccountNumber(); 086 } 087 088 /** 089 * @return the financial object code of the wrapped entry 090 */ 091 public String getFinancialObjectCode() { 092 return originEntry.getFinancialObjectCode(); 093 } 094 095 /** 096 * @return the amount of the wrapped entry, or null if the entry does not represent a credit 097 */ 098 public KualiDecimal getCreditAmount() { 099 if (!StringUtils.isBlank(originEntry.getTransactionDebitCreditCode())) { 100 if (originEntry.getTransactionDebitCreditCode().equals(OLEConstants.GL_CREDIT_CODE)) { 101 return originEntry.getTransactionLedgerEntryAmount(); 102 } 103 } 104 return null; 105 } 106 107 /** 108 * @return the amount of the wrapped entry, or null if the entry does not represent a debit 109 */ 110 public KualiDecimal getDebitAmount() { 111 if (!StringUtils.isBlank(originEntry.getTransactionDebitCreditCode())) { 112 if (originEntry.getTransactionDebitCreditCode().equals(OLEConstants.GL_DEBIT_CODE)) { 113 return originEntry.getTransactionLedgerEntryAmount(); 114 } 115 } 116 return null; 117 } 118 119 /** 120 * @return the amount for the wrapped entry, or null if the entry represents either a debit or a credt 121 */ 122 public KualiDecimal getBudgetAmount() { 123 return (originEntry.getTransactionDebitCreditCode() == null || originEntry.getTransactionDebitCreditCode().equals(OLEConstants.GL_BUDGET_CODE) || originEntry.getTransactionDebitCreditCode().equals(OLEConstants.EMPTY_STRING)) ? originEntry.getTransactionLedgerEntryAmount() : null; 124 } 125 126 /** 127 * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() 128 */ 129 130 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { 131 LinkedHashMap<String, String> pkHashMap = new LinkedHashMap<String, String>(); 132 pkHashMap.put("documentTypeCode", this.getDocumentTypeCode()); 133 pkHashMap.put("documentNumber", this.getDocumentNumber()); 134 pkHashMap.put("chartOfAccountsCode", this.getChartOfAccountsCode()); 135 pkHashMap.put("accountNumber", this.getAccountNumber()); 136 pkHashMap.put("balanceTypeCode", this.getBalanceTypeCode()); 137 pkHashMap.put("financialObjectCode", this.getFinancialObjectCode()); 138 return pkHashMap; 139 } 140 141 /** 142 * @param originEntry sets the origin entry 143 */ 144 public void setOriginEntry(OriginEntryInformation originEntry) { 145 this.originEntry = originEntry; 146 this.suppress = false; 147 } 148 149 /** 150 * Sets the suppress attribute value. 151 * @param suppress The suppress to set. 152 */ 153 public void suppressCommonFields(boolean suppress) { 154 this.suppress = suppress; 155 } 156 157 /** 158 * @return a String representation of suppressable fields 159 */ 160 public String getSuppressableFieldsAsKey() { 161 return StringUtils.join(new String[] {originEntry.getFinancialDocumentTypeCode(),originEntry.getFinancialSystemOriginationCode(),originEntry.getDocumentNumber(),originEntry.getFinancialBalanceTypeCode()}, ':'); 162 } 163}