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    
017    package org.kuali.kfs.fp.businessobject;
018    
019    import java.sql.Date;
020    import java.util.LinkedHashMap;
021    
022    import org.kuali.kfs.fp.document.AdvanceDepositDocument;
023    import org.kuali.kfs.sys.KFSPropertyConstants;
024    import org.kuali.kfs.sys.businessobject.Bank;
025    import org.kuali.kfs.sys.context.SpringContext;
026    import org.kuali.kfs.sys.service.BankService;
027    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
028    import org.kuali.rice.kns.service.DataDictionaryService;
029    import org.kuali.rice.kns.util.KualiDecimal;
030    
031    /**
032     * This business object represents the advance deposit detail business object that is used by the Advance Deposit Document.
033     */
034    public class AdvanceDepositDetail extends PersistableBusinessObjectBase {
035        private String documentNumber;
036        private String financialDocumentTypeCode;
037        private String financialDocumentColumnTypeCode;
038        private Integer financialDocumentLineNumber;
039        private Date financialDocumentAdvanceDepositDate;
040        private String financialDocumentAdvanceDepositReferenceNumber;
041        private String financialDocumentAdvanceDepositDescription;
042        private KualiDecimal financialDocumentAdvanceDepositAmount;
043        private String financialDocumentBankCode;
044    
045        private AdvanceDepositDocument advanceDepositDocument;
046        private Bank bank;
047    
048        /**
049         * Default constructor.
050         */
051        public AdvanceDepositDetail() {
052            bank = new Bank();
053        }
054        
055        /**
056         * Sets the bank code for a new AdvanceDepositDetail to the setup default for the Advance Deposit document.
057         */
058        public void setDefautBankCode() {
059            Bank defaultBank = SpringContext.getBean(BankService.class).getDefaultBankByDocType(AdvanceDepositDocument.ADVANCE_DEPOSIT_DOCUMENT_TYPE_CODE);
060            if (defaultBank != null) {
061                this.financialDocumentBankCode = defaultBank.getBankCode();
062                this.bank = defaultBank;
063            }
064        }
065    
066        /**
067         * Gets the documentNumber attribute.
068         * 
069         * @return Returns the documentNumber
070         */
071        public String getDocumentNumber() {
072            return documentNumber;
073        }
074    
075        /**
076         * Sets the documentNumber attribute.
077         * 
078         * @param documentNumber The documentNumber to set.
079         */
080        public void setDocumentNumber(String documentNumber) {
081            this.documentNumber = documentNumber;
082        }
083    
084        /**
085         * Gets the financialDocumentTypeCode attribute.
086         * 
087         * @return Returns the financialDocumentTypeCode
088         */
089        public String getFinancialDocumentTypeCode() {
090            return financialDocumentTypeCode;
091        }
092    
093        /**
094         * Sets the financialDocumentTypeCode attribute.
095         * 
096         * @param financialDocumentTypeCode The financialDocumentTypeCode to set.
097         */
098        public void setFinancialDocumentTypeCode(String financialDocumentTypeCode) {
099            this.financialDocumentTypeCode = financialDocumentTypeCode;
100        }
101    
102    
103        /**
104         * Gets the financialDocumentColumnTypeCode attribute.
105         * 
106         * @return Returns the financialDocumentColumnTypeCode
107         */
108        public String getFinancialDocumentColumnTypeCode() {
109            return financialDocumentColumnTypeCode;
110        }
111    
112        /**
113         * Sets the financialDocumentColumnTypeCode attribute.
114         * 
115         * @param financialDocumentColumnTypeCode The financialDocumentColumnTypeCode to set.
116         */
117        public void setFinancialDocumentColumnTypeCode(String financialDocumentColumnTypeCode) {
118            this.financialDocumentColumnTypeCode = financialDocumentColumnTypeCode;
119        }
120    
121    
122        /**
123         * Gets the financialDocumentLineNumber attribute.
124         * 
125         * @return Returns the financialDocumentLineNumber
126         */
127        public Integer getFinancialDocumentLineNumber() {
128            return financialDocumentLineNumber;
129        }
130    
131        /**
132         * Sets the financialDocumentLineNumber attribute.
133         * 
134         * @param financialDocumentLineNumber The financialDocumentLineNumber to set.
135         */
136        public void setFinancialDocumentLineNumber(Integer financialDocumentLineNumber) {
137            this.financialDocumentLineNumber = financialDocumentLineNumber;
138        }
139    
140    
141        /**
142         * Gets the financialDocumentAdvanceDepositDate attribute.
143         * 
144         * @return Returns the financialDocumentAdvanceDepositDate
145         */
146        public Date getFinancialDocumentAdvanceDepositDate() {
147            return financialDocumentAdvanceDepositDate;
148        }
149    
150        /**
151         * Sets the financialDocumentAdvanceDepositDate attribute.
152         * 
153         * @param financialDocumentAdvanceDepositDate The financialDocumentAdvanceDepositDate to set.
154         */
155        public void setFinancialDocumentAdvanceDepositDate(Date financialDocumentAdvanceDepositDate) {
156            this.financialDocumentAdvanceDepositDate = financialDocumentAdvanceDepositDate;
157        }
158    
159        /**
160         * Gets the financialDocumentAdvanceDepositReferenceNumber attribute.
161         * 
162         * @return Returns the financialDocumentAdvanceDepositReferenceNumber
163         */
164        public String getFinancialDocumentAdvanceDepositReferenceNumber() {
165            return financialDocumentAdvanceDepositReferenceNumber;
166        }
167    
168        /**
169         * Sets the financialDocumentAdvanceDepositReferenceNumber attribute.
170         * 
171         * @param financialDocumentAdvanceDepositReferenceNumber The financialDocumentAdvanceDepositReferenceNumber to set.
172         */
173        public void setFinancialDocumentAdvanceDepositReferenceNumber(String financialDocumentAdvanceDepositReferenceNumber) {
174            this.financialDocumentAdvanceDepositReferenceNumber = financialDocumentAdvanceDepositReferenceNumber;
175        }
176    
177    
178        /**
179         * Gets the financialDocumentAdvanceDepositDescription attribute.
180         * 
181         * @return Returns the financialDocumentAdvanceDepositDescription
182         */
183        public String getFinancialDocumentAdvanceDepositDescription() {
184            return financialDocumentAdvanceDepositDescription;
185        }
186    
187        /**
188         * Sets the financialDocumentAdvanceDepositDescription attribute.
189         * 
190         * @param financialDocumentAdvanceDepositDescription The financialDocumentAdvanceDepositDescription to set.
191         */
192        public void setFinancialDocumentAdvanceDepositDescription(String financialDocumentAdvanceDepositDescription) {
193            this.financialDocumentAdvanceDepositDescription = financialDocumentAdvanceDepositDescription;
194        }
195    
196    
197        /**
198         * Gets the financialDocumentAdvanceDepositAmount attribute.
199         * 
200         * @return Returns the financialDocumentAdvanceDepositAmount
201         */
202        public KualiDecimal getFinancialDocumentAdvanceDepositAmount() {
203            return financialDocumentAdvanceDepositAmount;
204        }
205    
206        /**
207         * Sets the financialDocumentAdvanceDepositAmount attribute.
208         * 
209         * @param financialDocumentAdvanceDepositAmount The financialDocumentAdvanceDepositAmount to set.
210         */
211        public void setFinancialDocumentAdvanceDepositAmount(KualiDecimal financialDocumentAdvanceDepositAmount) {
212            this.financialDocumentAdvanceDepositAmount = financialDocumentAdvanceDepositAmount;
213        }
214    
215    
216        /**
217         * Gets the financialDocumentBankCode attribute.
218         * 
219         * @return Returns the financialDocumentBankCode
220         */
221        public String getFinancialDocumentBankCode() {
222            return financialDocumentBankCode;
223        }
224    
225        /**
226         * Sets the financialDocumentBankCode attribute.
227         * 
228         * @param financialDocumentBankCode The financialDocumentBankCode to set.
229         */
230        public void setFinancialDocumentBankCode(String financialDocumentBankCode) {
231            this.financialDocumentBankCode = financialDocumentBankCode;
232        }
233    
234        /**
235         * @return AdvanceDepositDocument
236         */
237        public AdvanceDepositDocument getAdvanceDepositDocument() {
238            return advanceDepositDocument;
239        }
240    
241        /**
242         * @param advanceDepositDocument
243         */
244        public void setAdvanceDepositDocument(AdvanceDepositDocument advanceDepositDocument) {
245            this.advanceDepositDocument = advanceDepositDocument;
246        }
247    
248        /**
249         * @return Bank
250         */
251        public Bank getBank() {
252            return bank;
253        }
254    
255        /**
256         * @param bank
257         */
258        public void setBank(Bank bank) {
259            this.bank = bank;
260        }
261    
262        /**
263         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
264         */
265        @Override
266        protected LinkedHashMap toStringMapper() {
267            LinkedHashMap m = new LinkedHashMap();
268            m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
269            m.put("financialDocumentTypeCode", this.financialDocumentTypeCode);
270            m.put("financialDocumentColumnTypeCode", this.financialDocumentColumnTypeCode);
271            if (this.financialDocumentLineNumber != null) {
272                m.put("financialDocumentLineNumber", this.financialDocumentLineNumber.toString());
273            }
274            return m;
275        }
276    }