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.gl.businessobject;
017    
018    import java.util.LinkedHashMap;
019    
020    import org.kuali.kfs.coa.businessobject.Account;
021    import org.kuali.kfs.sys.businessobject.SystemOptions;
022    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
023    import org.kuali.rice.kns.util.KualiDecimal;
024    
025    /**
026     * Represents a expenditure transaction for a specific fiscal year, COA code, account number,
027     * sub account number, object code, sub-object code, balance type code, object type code,
028     * fiscal accounting period, project code, organization reference ID
029     */
030    public class ExpenditureTransaction extends PersistableBusinessObjectBase {
031        static final long serialVersionUID = 5296540728313789670L;
032    
033        private final static String UNIVERISITY_FISCAL_YEAR = "universityFiscalYear";
034        private final static String CHART_OF_ACCOUNTS_CODE = "chartOfAccountsCode";
035        private final static String ACCOUNT_NUMBER = "accountNumber";
036        private final static String SUB_ACCOUNT_NUMBER = "subAccountNumber";
037        private final static String OBJECT_CODE = "objectCode";
038        private final static String BALANCE_TYPE_CODE = "balanceTypeCode";
039        private final static String OBJECT_TYPE_CODE = "objectTypeCode";
040        private final static String UNIVERSITY_FISCAL_ACCOUNTING_PERIOD = "universityFiscalAccountingPeriod";
041        private final static String SUB_OBJECT_CODE = "subObjectCode";
042        private final static String PROJECT_CODE = "projectCode";
043        private final static String ORGANIZATION_REFERENCE_ID = "organizationReferenceId";
044    
045        private Integer universityFiscalYear;
046        private String chartOfAccountsCode;
047        private String accountNumber;
048        private String subAccountNumber;
049        private String objectCode;
050        private String subObjectCode;
051        private String balanceTypeCode;
052        private String objectTypeCode;
053        private String universityFiscalAccountingPeriod;
054        private String projectCode;
055        private String organizationReferenceId;
056        private KualiDecimal accountObjectDirectCostAmount;
057    
058        private Account account;
059        private SystemOptions option;
060    
061        /**
062         * 
063         */
064        public ExpenditureTransaction() {
065            super();
066        }
067    
068        public ExpenditureTransaction(Transaction t) {
069            universityFiscalYear = t.getUniversityFiscalYear();
070            chartOfAccountsCode = t.getChartOfAccountsCode();
071            accountNumber = t.getAccountNumber();
072            subAccountNumber = t.getSubAccountNumber();
073            objectCode = t.getFinancialObjectCode();
074            subObjectCode = t.getFinancialSubObjectCode();
075            balanceTypeCode = t.getFinancialBalanceTypeCode();
076            objectTypeCode = t.getFinancialObjectTypeCode();
077            universityFiscalAccountingPeriod = t.getUniversityFiscalPeriodCode();
078            projectCode = t.getProjectCode();
079            organizationReferenceId = t.getOrganizationReferenceId();
080            accountObjectDirectCostAmount = new KualiDecimal(KualiDecimal.ZERO.toString());
081        }
082    
083        protected LinkedHashMap toStringMapper() {
084            LinkedHashMap map = new LinkedHashMap();
085            map.put(UNIVERISITY_FISCAL_YEAR, getUniversityFiscalYear());
086            map.put(CHART_OF_ACCOUNTS_CODE, getChartOfAccountsCode());
087            map.put(ACCOUNT_NUMBER, getAccountNumber());
088            map.put(SUB_ACCOUNT_NUMBER, getSubAccountNumber());
089            map.put(OBJECT_CODE, getObjectCode());
090            map.put(SUB_OBJECT_CODE, getSubObjectCode());
091            map.put(BALANCE_TYPE_CODE, getBalanceTypeCode());
092            map.put(OBJECT_TYPE_CODE, getObjectTypeCode());
093            map.put(UNIVERSITY_FISCAL_ACCOUNTING_PERIOD, getUniversityFiscalAccountingPeriod());
094            map.put(PROJECT_CODE, getProjectCode());
095            map.put(ORGANIZATION_REFERENCE_ID, getOrganizationReferenceId());
096            return map;
097        }
098    
099        public SystemOptions getOption() {
100            return option;
101        }
102    
103        public void setOption(SystemOptions option) {
104            this.option = option;
105        }
106    
107        public Account getAccount() {
108            return account;
109        }
110    
111        public void setAccount(Account a) {
112            account = a;
113        }
114    
115        public String getAccountNumber() {
116            return accountNumber;
117        }
118    
119        public void setAccountNumber(String accountNumber) {
120            this.accountNumber = accountNumber;
121        }
122    
123        public KualiDecimal getAccountObjectDirectCostAmount() {
124            return accountObjectDirectCostAmount;
125        }
126    
127        public void setAccountObjectDirectCostAmount(KualiDecimal accountObjectDirectCostAmount) {
128            this.accountObjectDirectCostAmount = accountObjectDirectCostAmount;
129        }
130    
131        public String getBalanceTypeCode() {
132            return balanceTypeCode;
133        }
134    
135        public void setBalanceTypeCode(String balanceTypeCode) {
136            this.balanceTypeCode = balanceTypeCode;
137        }
138    
139        public String getChartOfAccountsCode() {
140            return chartOfAccountsCode;
141        }
142    
143        public void setChartOfAccountsCode(String chartOfAccountsCode) {
144            this.chartOfAccountsCode = chartOfAccountsCode;
145        }
146    
147        public String getObjectCode() {
148            return objectCode;
149        }
150    
151        public void setObjectCode(String objectCode) {
152            this.objectCode = objectCode;
153        }
154    
155        public String getObjectTypeCode() {
156            return objectTypeCode;
157        }
158    
159        public void setObjectTypeCode(String objectTypeCode) {
160            this.objectTypeCode = objectTypeCode;
161        }
162    
163        public String getOrganizationReferenceId() {
164            return organizationReferenceId;
165        }
166    
167        public void setOrganizationReferenceId(String organizationReferenceId) {
168            this.organizationReferenceId = organizationReferenceId;
169        }
170    
171        public String getProjectCode() {
172            return projectCode;
173        }
174    
175        public void setProjectCode(String projectCode) {
176            this.projectCode = projectCode;
177        }
178    
179        public String getSubAccountNumber() {
180            return subAccountNumber;
181        }
182    
183        public void setSubAccountNumber(String subAccountNumber) {
184            this.subAccountNumber = subAccountNumber;
185        }
186    
187        public String getSubObjectCode() {
188            return subObjectCode;
189        }
190    
191        public void setSubObjectCode(String subObjectCode) {
192            this.subObjectCode = subObjectCode;
193        }
194    
195        public String getUniversityFiscalAccountingPeriod() {
196            return universityFiscalAccountingPeriod;
197        }
198    
199        public void setUniversityFiscalAccountingPeriod(String universityFiscalAccountingPeriod) {
200            this.universityFiscalAccountingPeriod = universityFiscalAccountingPeriod;
201        }
202    
203        public Integer getUniversityFiscalYear() {
204            return universityFiscalYear;
205        }
206    
207        public void setUniversityFiscalYear(Integer universityFiscalYear) {
208            this.universityFiscalYear = universityFiscalYear;
209        }
210    }