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.util.HashMap;
020    import java.util.LinkedHashMap;
021    import java.util.Map;
022    
023    import org.apache.commons.lang.StringUtils;
024    import org.kuali.kfs.sys.KFSConstants;
025    import org.kuali.kfs.sys.context.SpringContext;
026    import org.kuali.rice.kns.bo.Campus;
027    import org.kuali.rice.kns.bo.CampusImpl;
028    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
029    import org.kuali.rice.kns.service.BusinessObjectService;
030    import org.kuali.rice.kns.service.KualiModuleService;
031    import org.kuali.rice.kns.util.KNSPropertyConstants;
032    import org.kuali.rice.kns.util.KualiDecimal;
033    
034    /**
035     * This class represents a cash drawer used in cash management document. It contains amounts for 
036     * different types of denominations for currency and coin. 
037     */
038    public class CashDrawer extends PersistableBusinessObjectBase {
039        private String campusCode;
040        private String statusCode;
041    
042        private KualiDecimal cashDrawerTotalAmount;
043    
044        private KualiDecimal financialDocumentHundredDollarAmount;
045        private KualiDecimal financialDocumentFiftyDollarAmount;
046        private KualiDecimal financialDocumentTwentyDollarAmount;
047        private KualiDecimal financialDocumentTenDollarAmount;
048        private KualiDecimal financialDocumentFiveDollarAmount;
049        private KualiDecimal financialDocumentTwoDollarAmount;
050        private KualiDecimal financialDocumentOneDollarAmount;
051        private KualiDecimal financialDocumentOtherDollarAmount;
052    
053        private KualiDecimal financialDocumentHundredCentAmount;
054        private KualiDecimal financialDocumentFiftyCentAmount;
055        private KualiDecimal financialDocumentTwentyFiveCentAmount;
056        private KualiDecimal financialDocumentTenCentAmount;
057        private KualiDecimal financialDocumentFiveCentAmount;
058        private KualiDecimal financialDocumentOneCentAmount;
059        private KualiDecimal financialDocumentOtherCentAmount;
060    
061        private KualiDecimal financialDocumentMiscellaneousAdvanceAmount;
062    
063        private String referenceFinancialDocumentNumber;
064        private Campus campus;
065    
066        /**
067         * Default constructor.
068         */
069        public CashDrawer() {
070    
071        }
072    
073        /**
074         * This method returns true if the cash drawer is open.
075         * 
076         * @return boolean
077         */
078        public boolean isOpen() {
079            return StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_OPEN, statusCode);
080        }
081    
082        /**
083         * This method returns true if the cash drawer is closed.
084         * 
085         * @return boolean
086         */
087        public boolean isClosed() {
088            return (statusCode == null || StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_CLOSED, statusCode) || referenceFinancialDocumentNumber == null);
089        }
090    
091        /**
092         * This method returns true if the cash drawer is locked.
093         * 
094         * @return boolean
095         */
096        public boolean isLocked() {
097            return StringUtils.equals(KFSConstants.CashDrawerConstants.STATUS_LOCKED, statusCode);
098        }
099    
100    
101        /**
102         * Gets the campusCode attribute.
103         * 
104         * @return Returns the campusCode
105         */
106        public String getCampusCode() {
107            return campusCode;
108        }
109    
110        /**
111         * Sets the campusCode attribute.
112         * 
113         * @param campusCode The campusCode to set.
114         */
115        public void setCampusCode(String campusCode) {
116            this.campusCode = campusCode;
117        }
118    
119    
120        /**
121         * Gets the statusCode attribute.
122         * 
123         * @return Returns the statusCode
124         */
125        public String getStatusCode() {
126            return statusCode;
127        }
128    
129        /**
130         * Sets the statusCode attribute.
131         * 
132         * @param financialDocumentOpenDepositCode The statusCode to set.
133         */
134        public void setStatusCode(String financialDocumentOpenDepositCode) {
135            this.statusCode = financialDocumentOpenDepositCode;
136        }
137    
138    
139        /**
140         * Gets the cashDrawerTotalAmount attribute.
141         * 
142         * @return Returns the cashDrawerTotalAmount
143         */
144        public KualiDecimal getCashDrawerTotalAmount() {
145            return cashDrawerTotalAmount;
146        }
147    
148        /**
149         * Sets the cashDrawerTotalAmount attribute.
150         * 
151         * @param cashDrawerTotalAmount The cashDrawerTotalAmount to set.
152         */
153        public void setCashDrawerTotalAmount(KualiDecimal cashDrawerTotalAmount) {
154            this.cashDrawerTotalAmount = cashDrawerTotalAmount;
155        }
156    
157    
158        /**
159         * Gets the financialDocumentHundredDollarAmount attribute.
160         * 
161         * @return Returns the financialDocumentHundredDollarAmount
162         */
163        public KualiDecimal getFinancialDocumentHundredDollarAmount() {
164            return financialDocumentHundredDollarAmount;
165        }
166    
167        /**
168         * Sets the financialDocumentHundredDollarAmount attribute.
169         * 
170         * @param financialDocumentHundredDollarAmount The financialDocumentHundredDollarAmount to set.
171         */
172        public void setFinancialDocumentHundredDollarAmount(KualiDecimal financialDocumentHundredDollarAmount) {
173            this.financialDocumentHundredDollarAmount = financialDocumentHundredDollarAmount;
174        }
175    
176        /**
177         * Returns the actual count of hundred dollar bills
178         * 
179         * @return the number of hundred dollar bills present in the drawer
180         */
181        public Integer getHundredDollarCount() {
182            return (financialDocumentHundredDollarAmount != null) ? new Integer(financialDocumentHundredDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.HUNDRED_DOLLAR_AMOUNT).intValue()) : new Integer(0);
183        }
184    
185        /**
186         * This sets the count of hundred dollar bills present in the drawer
187         * 
188         * @param count the number of hundred dollar bills present in the drawer
189         */
190        public void setHundredDollarCount(Integer count) {
191            if (count != null) {
192                this.financialDocumentHundredDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.HUNDRED_DOLLAR_AMOUNT);
193            }
194        }
195    
196        /**
197         * Gets the financialDocumentFiftyDollarAmount attribute.
198         * 
199         * @return Returns the financialDocumentFiftyDollarAmount
200         */
201        public KualiDecimal getFinancialDocumentFiftyDollarAmount() {
202            return financialDocumentFiftyDollarAmount;
203        }
204    
205        /**
206         * Sets the financialDocumentFiftyDollarAmount attribute.
207         * 
208         * @param financialDocumentFiftyDollarAmount The financialDocumentFiftyDollarAmount to set.
209         */
210        public void setFinancialDocumentFiftyDollarAmount(KualiDecimal financialDocumentFiftyDollarAmount) {
211            this.financialDocumentFiftyDollarAmount = financialDocumentFiftyDollarAmount;
212        }
213    
214        /**
215         * Returns the actual count of fifty dollar bills
216         * 
217         * @return the number of fifty dollar bills present in the drawer
218         */
219        public Integer getFiftyDollarCount() {
220            return (financialDocumentFiftyDollarAmount != null) ? new Integer(financialDocumentFiftyDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.FIFTY_DOLLAR_AMOUNT).intValue()) : new Integer(0);
221        }
222    
223        /**
224         * This sets the count of hundred dollar bills present in the drawer
225         * 
226         * @param count the number of hundred dollar bills present in the drawer
227         */
228        public void setFiftyDollarCount(Integer count) {
229            if (count != null) {
230                this.financialDocumentFiftyDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.FIFTY_DOLLAR_AMOUNT);
231            }
232        }
233    
234        /**
235         * Gets the financialDocumentTwentyDollarAmount attribute.
236         * 
237         * @return Returns the financialDocumentTwentyDollarAmount
238         */
239        public KualiDecimal getFinancialDocumentTwentyDollarAmount() {
240            return financialDocumentTwentyDollarAmount;
241        }
242    
243        /**
244         * Sets the financialDocumentTwentyDollarAmount attribute.
245         * 
246         * @param financialDocumentTwentyDollarAmount The financialDocumentTwentyDollarAmount to set.
247         */
248        public void setFinancialDocumentTwentyDollarAmount(KualiDecimal financialDocumentTwentyDollarAmount) {
249            this.financialDocumentTwentyDollarAmount = financialDocumentTwentyDollarAmount;
250        }
251    
252        /**
253         * Returns the actual count of twenty dollar bills
254         * 
255         * @return the number of twenty dollar bills present in the drawer
256         */
257        public Integer getTwentyDollarCount() {
258            return (financialDocumentTwentyDollarAmount != null) ? new Integer(financialDocumentTwentyDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TWENTY_DOLLAR_AMOUNT).intValue()) : new Integer(0);
259        }
260    
261        /**
262         * This sets the count of twenty dollar bills present in the drawer
263         * 
264         * @param count the number of twenty dollar bills present in the drawer
265         */
266        public void setTwentyDollarCount(Integer count) {
267            if (count != null) {
268                this.financialDocumentTwentyDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TWENTY_DOLLAR_AMOUNT);
269            }
270        }
271    
272        /**
273         * Gets the financialDocumentTenDollarAmount attribute.
274         * 
275         * @return Returns the financialDocumentTenDollarAmount
276         */
277        public KualiDecimal getFinancialDocumentTenDollarAmount() {
278            return financialDocumentTenDollarAmount;
279        }
280    
281        /**
282         * Sets the financialDocumentTenDollarAmount attribute.
283         * 
284         * @param financialDocumentTenDollarAmount The financialDocumentTenDollarAmount to set.
285         */
286        public void setFinancialDocumentTenDollarAmount(KualiDecimal financialDocumentTenDollarAmount) {
287            this.financialDocumentTenDollarAmount = financialDocumentTenDollarAmount;
288        }
289    
290        /**
291         * Returns the actual count of ten dollar bills
292         * 
293         * @return the number of ten dollar bills present in the drawer
294         */
295        public Integer getTenDollarCount() {
296            return (financialDocumentTenDollarAmount != null) ? new Integer(financialDocumentTenDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TEN_DOLLAR_AMOUNT).intValue()) : new Integer(0);
297        }
298    
299        /**
300         * This sets the count of ten dollar bills present in the drawer
301         * 
302         * @param count the number of ten dollar bills present in the drawer
303         */
304        public void setTenDollarCount(Integer count) {
305            if (count != null) {
306                this.financialDocumentTenDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TEN_DOLLAR_AMOUNT);
307            }
308        }
309    
310        /**
311         * Gets the financialDocumentFiveDollarAmount attribute.
312         * 
313         * @return Returns the financialDocumentFiveDollarAmount
314         */
315        public KualiDecimal getFinancialDocumentFiveDollarAmount() {
316            return financialDocumentFiveDollarAmount;
317        }
318    
319        /**
320         * Sets the financialDocumentFiveDollarAmount attribute.
321         * 
322         * @param financialDocumentFiveDollarAmount The financialDocumentFiveDollarAmount to set.
323         */
324        public void setFinancialDocumentFiveDollarAmount(KualiDecimal financialDocumentFiveDollarAmount) {
325            this.financialDocumentFiveDollarAmount = financialDocumentFiveDollarAmount;
326        }
327    
328        /**
329         * Returns the actual count of five dollar bills
330         * 
331         * @return the number of five dollar bills present in the drawer
332         */
333        public Integer getFiveDollarCount() {
334            return (financialDocumentFiveDollarAmount != null) ? new Integer(financialDocumentFiveDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.FIVE_DOLLAR_AMOUNT).intValue()) : new Integer(0);
335        }
336    
337        /**
338         * This sets the count of five dollar bills present in the drawer
339         * 
340         * @param count the number of five dollar bills present in the drawer
341         */
342        public void setFiveDollarCount(Integer count) {
343            if (count != null) {
344                this.financialDocumentFiveDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.FIVE_DOLLAR_AMOUNT);
345            }
346        }
347    
348        /**
349         * Gets the financialDocumentTwoDollarAmount attribute.
350         * 
351         * @return Returns the financialDocumentTwoDollarAmount
352         */
353        public KualiDecimal getFinancialDocumentTwoDollarAmount() {
354            return financialDocumentTwoDollarAmount;
355        }
356    
357        /**
358         * Sets the financialDocumentTwoDollarAmount attribute.
359         * 
360         * @param financialDocumentTwoDollarAmount The financialDocumentTwoDollarAmount to set.
361         */
362        public void setFinancialDocumentTwoDollarAmount(KualiDecimal financialDocumentTwoDollarAmount) {
363            this.financialDocumentTwoDollarAmount = financialDocumentTwoDollarAmount;
364        }
365    
366        /**
367         * Returns the actual count of two dollar bills
368         * 
369         * @return the number of two dollar bills present in the drawer
370         */
371        public Integer getTwoDollarCount() {
372            return (financialDocumentTwoDollarAmount != null) ? new Integer(financialDocumentTwoDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.TWO_DOLLAR_AMOUNT).intValue()) : new Integer(0);
373        }
374    
375        /**
376         * This sets the count of two dollar bills present in the drawer
377         * 
378         * @param count the number of two dollar bills present in the drawer
379         */
380        public void setTwoDollarCount(Integer count) {
381            if (count != null) {
382                this.financialDocumentTwoDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.TWO_DOLLAR_AMOUNT);
383            }
384        }
385    
386        /**
387         * Gets the financialDocumentOneDollarAmount attribute.
388         * 
389         * @return Returns the financialDocumentOneDollarAmount
390         */
391        public KualiDecimal getFinancialDocumentOneDollarAmount() {
392            return financialDocumentOneDollarAmount;
393        }
394    
395        /**
396         * Sets the financialDocumentOneDollarAmount attribute.
397         * 
398         * @param financialDocumentOneDollarAmount The financialDocumentOneDollarAmount to set.
399         */
400        public void setFinancialDocumentOneDollarAmount(KualiDecimal financialDocumentOneDollarAmount) {
401            this.financialDocumentOneDollarAmount = financialDocumentOneDollarAmount;
402        }
403    
404        /**
405         * Returns the actual count of one dollar bills
406         * 
407         * @return the number of one dollar bills present in the drawer
408         */
409        public Integer getOneDollarCount() {
410            return (financialDocumentOneDollarAmount != null) ? new Integer(financialDocumentOneDollarAmount.divide(KFSConstants.CurrencyTypeAmounts.ONE_DOLLAR_AMOUNT).intValue()) : new Integer(0);
411        }
412    
413        /**
414         * This sets the count of one dollar bills present in the drawer
415         * 
416         * @param count the number of one dollar bills present in the drawer
417         */
418        public void setOneDollarCount(Integer count) {
419            if (count != null) {
420                this.financialDocumentOneDollarAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CurrencyTypeAmounts.ONE_DOLLAR_AMOUNT);
421            }
422        }
423    
424        /**
425         * Gets the financialDocumentOtherDollarAmount attribute.
426         * 
427         * @return Returns the financialDocumentOtherDollarAmount
428         */
429        public KualiDecimal getFinancialDocumentOtherDollarAmount() {
430            return financialDocumentOtherDollarAmount;
431        }
432    
433        /**
434         * Sets the financialDocumentOtherDollarAmount attribute.
435         * 
436         * @param financialDocumentOtherDollarAmount The financialDocumentOtherDollarAmount to set.
437         */
438        public void setFinancialDocumentOtherDollarAmount(KualiDecimal financialDocumentOtherDollarAmount) {
439            this.financialDocumentOtherDollarAmount = financialDocumentOtherDollarAmount;
440        }
441    
442    
443        /**
444         * Gets the financialDocumentFiftyCentAmount attribute.
445         * 
446         * @return Returns the financialDocumentFiftyCentAmount
447         */
448        public KualiDecimal getFinancialDocumentFiftyCentAmount() {
449            return financialDocumentFiftyCentAmount;
450        }
451    
452        /**
453         * Sets the financialDocumentFiftyCentAmount attribute.
454         * 
455         * @param financialDocumentFiftyCentAmount The financialDocumentFiftyCentAmount to set.
456         */
457        public void setFinancialDocumentFiftyCentAmount(KualiDecimal financialDocumentFiftyCentAmount) {
458            this.financialDocumentFiftyCentAmount = financialDocumentFiftyCentAmount;
459        }
460    
461        /**
462         * Returns the number of half-cent coins in the drawer
463         * 
464         * @return the count of half cent coins in the drawer
465         */
466        public Integer getFiftyCentCount() {
467            return (financialDocumentFiftyCentAmount != null) ? new Integer(financialDocumentFiftyCentAmount.divide(KFSConstants.CoinTypeAmounts.FIFTY_CENT_AMOUNT).intValue()) : new Integer(0);
468        }
469    
470        /**
471         * Sets the number of fifty cent coins in the drawer. This is useful if, you know, you're in da club, with, say a bottle full of
472         * "bub"
473         * 
474         * @param count the number of fifty cent coins present in the drawer
475         */
476        public void setFiftyCentCount(Integer count) {
477            if (count != null) {
478                financialDocumentFiftyCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.FIFTY_CENT_AMOUNT);
479            }
480        }
481    
482        /**
483         * Gets the financialDocumentTwentyFiveCentAmount attribute.
484         * 
485         * @return Returns the financialDocumentTwentyFiveCentAmount
486         */
487        public KualiDecimal getFinancialDocumentTwentyFiveCentAmount() {
488            return financialDocumentTwentyFiveCentAmount;
489        }
490    
491        /**
492         * Sets the financialDocumentTwentyFiveCentAmount attribute.
493         * 
494         * @param financialDocumentTwentyFiveCentAmount The financialDocumentTwentyFiveCentAmount to set.
495         */
496        public void setFinancialDocumentTwentyFiveCentAmount(KualiDecimal financialDocumentTwentyFiveCentAmount) {
497            this.financialDocumentTwentyFiveCentAmount = financialDocumentTwentyFiveCentAmount;
498        }
499    
500        /**
501         * Returns the number of quarters in the drawer
502         * 
503         * @return the count of quarters in the drawer
504         */
505        public Integer getTwentyFiveCentCount() {
506            return (financialDocumentTwentyFiveCentAmount != null) ? new Integer(financialDocumentTwentyFiveCentAmount.divide(KFSConstants.CoinTypeAmounts.TWENTY_FIVE_CENT_AMOUNT).intValue()) : new Integer(0);
507        }
508    
509        /**
510         * Sets the number of quarters in the drawer
511         * 
512         * @param count the number of quarters present in the drawer
513         */
514        public void setTwentyFiveCentCount(Integer count) {
515            if (count != null) {
516                financialDocumentTwentyFiveCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.TWENTY_FIVE_CENT_AMOUNT);
517            }
518        }
519    
520        /**
521         * Gets the financialDocumentTenCentAmount attribute.
522         * 
523         * @return Returns the financialDocumentTenCentAmount
524         */
525        public KualiDecimal getFinancialDocumentTenCentAmount() {
526            return financialDocumentTenCentAmount;
527        }
528    
529        /**
530         * Sets the financialDocumentTenCentAmount attribute.
531         * 
532         * @param financialDocumentTenCentAmount The financialDocumentTenCentAmount to set.
533         */
534        public void setFinancialDocumentTenCentAmount(KualiDecimal financialDocumentTenCentAmount) {
535            this.financialDocumentTenCentAmount = financialDocumentTenCentAmount;
536        }
537    
538        /**
539         * Returns the number of dimes in the drawer
540         * 
541         * @return the count of dimes in the drawer
542         */
543        public Integer getTenCentCount() {
544            return (financialDocumentTenCentAmount != null) ? new Integer(financialDocumentTenCentAmount.divide(KFSConstants.CoinTypeAmounts.TEN_CENT_AMOUNT).intValue()) : new Integer(0);
545        }
546    
547        /**
548         * Sets the number of dimes in the drawer
549         * 
550         * @param count the number of dimes present in the drawer
551         */
552        public void setTenCentCount(Integer count) {
553            if (count != null) {
554                financialDocumentTenCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.TEN_CENT_AMOUNT);
555            }
556        }
557    
558        /**
559         * Gets the financialDocumentFiveCentAmount attribute.
560         * 
561         * @return Returns the financialDocumentFiveCentAmount
562         */
563        public KualiDecimal getFinancialDocumentFiveCentAmount() {
564            return financialDocumentFiveCentAmount;
565        }
566    
567        /**
568         * Sets the financialDocumentFiveCentAmount attribute.
569         * 
570         * @param financialDocumentFiveCentAmount The financialDocumentFiveCentAmount to set.
571         */
572        public void setFinancialDocumentFiveCentAmount(KualiDecimal financialDocumentFiveCentAmount) {
573            this.financialDocumentFiveCentAmount = financialDocumentFiveCentAmount;
574        }
575    
576        /**
577         * Returns the number of nickels in the drawer
578         * 
579         * @return the count of nickels in the drawer
580         */
581        public Integer getFiveCentCount() {
582            return (financialDocumentFiveCentAmount != null) ? new Integer(financialDocumentFiveCentAmount.divide(KFSConstants.CoinTypeAmounts.FIVE_CENT_AMOUNT).intValue()) : new Integer(0);
583        }
584    
585        /**
586         * Sets the number of nickels in the drawer
587         * 
588         * @param count the number of nickels present in the drawer
589         */
590        public void setFiveCentCount(Integer count) {
591            if (count != null) {
592                financialDocumentFiveCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.FIVE_CENT_AMOUNT);
593            }
594        }
595    
596        /**
597         * Gets the financialDocumentOneCentAmount attribute.
598         * 
599         * @return Returns the financialDocumentOneCentAmount
600         */
601        public KualiDecimal getFinancialDocumentOneCentAmount() {
602            return financialDocumentOneCentAmount;
603        }
604    
605        /**
606         * Sets the financialDocumentOneCentAmount attribute.
607         * 
608         * @param financialDocumentOneCentAmount The financialDocumentOneCentAmount to set.
609         */
610        public void setFinancialDocumentOneCentAmount(KualiDecimal financialDocumentOneCentAmount) {
611            this.financialDocumentOneCentAmount = financialDocumentOneCentAmount;
612        }
613    
614        /**
615         * Returns the number of pennies in the drawer
616         * 
617         * @return the count of pennies in the drawer
618         */
619        public Integer getOneCentCount() {
620            return (financialDocumentOneCentAmount != null) ? new Integer(financialDocumentOneCentAmount.divide(KFSConstants.CoinTypeAmounts.ONE_CENT_AMOUNT).intValue()) : new Integer(0);
621        }
622    
623        /**
624         * Sets the number of pennies in the drawer
625         * 
626         * @param count the number of pennies present in the drawer
627         */
628        public void setOneCentCount(Integer count) {
629            if (count != null) {
630                financialDocumentOneCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.ONE_CENT_AMOUNT);
631            }
632        }
633    
634        /**
635         * Gets the financialDocumentOtherCentAmount attribute.
636         * 
637         * @return Returns the financialDocumentOtherCentAmount
638         */
639        public KualiDecimal getFinancialDocumentOtherCentAmount() {
640            return financialDocumentOtherCentAmount;
641        }
642    
643        /**
644         * Sets the financialDocumentOtherCentAmount attribute.
645         * 
646         * @param financialDocumentOtherCentAmount The financialDocumentOtherCentAmount to set.
647         */
648        public void setFinancialDocumentOtherCentAmount(KualiDecimal financialDocumentOtherCentAmount) {
649            this.financialDocumentOtherCentAmount = financialDocumentOtherCentAmount;
650        }
651    
652    
653        /**
654         * Gets the financialDocumentHundredCentAmount attribute.
655         * 
656         * @return Returns the financialDocumentHundredCentAmount
657         */
658        public KualiDecimal getFinancialDocumentHundredCentAmount() {
659            return financialDocumentHundredCentAmount;
660        }
661    
662        /**
663         * Sets the financialDocumentHundredCentAmount attribute.
664         * 
665         * @param financialDocumentHundredCentAmount The financialDocumentHundredCentAmount to set.
666         */
667        public void setFinancialDocumentHundredCentAmount(KualiDecimal financialDocumentHundredCentAmount) {
668            this.financialDocumentHundredCentAmount = financialDocumentHundredCentAmount;
669        }
670    
671        /**
672         * Returns the number of dollar coins--Sacajawea, Susan B. Anthony, or otherwise--in the drawer
673         * 
674         * @return the count of dollar coins in the drawer
675         */
676        public Integer getHundredCentCount() {
677            return (financialDocumentHundredCentAmount != null) ? new Integer(financialDocumentHundredCentAmount.divide(KFSConstants.CoinTypeAmounts.HUNDRED_CENT_AMOUNT).intValue()) : new Integer(0);
678        }
679    
680        /**
681         * Sets the number of hundred cent coins in the drawer
682         * 
683         * @param count the number of hundred cent coins present in the drawer
684         */
685        public void setHundredCentCount(Integer count) {
686            if (count != null) {
687                financialDocumentHundredCentAmount = new KualiDecimal(count.intValue()).multiply(KFSConstants.CoinTypeAmounts.HUNDRED_CENT_AMOUNT);
688            }
689        }
690    
691        /**
692         * Gets the financialDocumentMiscellaneousAdvanceAmount attribute.
693         * 
694         * @return Returns the financialDocumentMiscellaneousAdvanceAmount
695         */
696        public KualiDecimal getFinancialDocumentMiscellaneousAdvanceAmount() {
697            return financialDocumentMiscellaneousAdvanceAmount;
698        }
699    
700        /**
701         * Sets the financialDocumentMiscellaneousAdvanceAmount attribute.
702         * 
703         * @param financialDocumentMiscellaneousAdvanceAmount The financialDocumentMiscellaneousAdvanceAmount to set.
704         */
705        public void setFinancialDocumentMiscellaneousAdvanceAmount(KualiDecimal financialDocumentMiscellaneousAdvanceAmount) {
706            this.financialDocumentMiscellaneousAdvanceAmount = financialDocumentMiscellaneousAdvanceAmount;
707        }
708    
709    
710        /**
711         * Gets the referenceFinancialDocumentNumber attribute.
712         * 
713         * @return Returns the referenceFinancialDocumentNumber
714         */
715        public String getReferenceFinancialDocumentNumber() {
716            return referenceFinancialDocumentNumber;
717        }
718    
719        /**
720         * Sets the referenceFinancialDocumentNumber attribute.
721         * 
722         * @param referenceFinancialDocumentNumber The referenceFinancialDocumentNumber to set.
723         */
724        public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) {
725            this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber;
726        }
727    
728        /**
729         * This method calculates the total amount of currency in the cash drawer
730         * 
731         * @return the total amount of currency
732         */
733        public KualiDecimal getCurrencyTotalAmount() {
734            KualiDecimal result = KualiDecimal.ZERO;
735            if (this.financialDocumentHundredDollarAmount != null) {
736                result = result.add(this.financialDocumentHundredDollarAmount);
737            }
738            if (this.financialDocumentFiftyDollarAmount != null) {
739                result = result.add(this.financialDocumentFiftyDollarAmount);
740            }
741            if (this.financialDocumentTwentyDollarAmount != null) {
742                result = result.add(this.financialDocumentTwentyDollarAmount);
743            }
744            if (this.financialDocumentTenDollarAmount != null) {
745                result = result.add(this.financialDocumentTenDollarAmount);
746            }
747            if (this.financialDocumentFiveDollarAmount != null) {
748                result = result.add(this.financialDocumentFiveDollarAmount);
749            }
750            if (this.financialDocumentTwoDollarAmount != null) {
751                result = result.add(this.financialDocumentTwoDollarAmount);
752            }
753            if (this.financialDocumentOneDollarAmount != null) {
754                result = result.add(this.financialDocumentOneDollarAmount);
755            }
756            if (this.financialDocumentOtherDollarAmount != null) {
757                result = result.add(this.financialDocumentOtherDollarAmount);
758            }
759            return result;
760        }
761    
762        /**
763         * This method calculates the total amount of coin in the cash drawer
764         * 
765         * @return the total amount of coin
766         */
767        public KualiDecimal getCoinTotalAmount() {
768            KualiDecimal result = KualiDecimal.ZERO;
769            if (this.financialDocumentHundredCentAmount != null) {
770                result = result.add(this.financialDocumentHundredCentAmount);
771            }
772            if (this.financialDocumentFiftyCentAmount != null) {
773                result = result.add(this.financialDocumentFiftyCentAmount);
774            }
775            if (this.financialDocumentTwentyFiveCentAmount != null) {
776                result = result.add(this.financialDocumentTwentyFiveCentAmount);
777            }
778            if (this.financialDocumentTenCentAmount != null) {
779                result = result.add(this.financialDocumentTenCentAmount);
780            }
781            if (this.financialDocumentFiveCentAmount != null) {
782                result = result.add(this.financialDocumentFiveCentAmount);
783            }
784            if (this.financialDocumentOneCentAmount != null) {
785                result = result.add(this.financialDocumentOneCentAmount);
786            }
787            if (this.financialDocumentOtherCentAmount != null) {
788                result = result.add(this.financialDocumentOtherCentAmount);
789            }
790            return result;
791        }
792    
793        /**
794         * This calculates the total amount of money currently in the cash drawer
795         * 
796         * @return the amount currently in the cash drawer
797         */
798        public KualiDecimal getTotalAmount() {
799            return this.getCurrencyTotalAmount().add(this.getCoinTotalAmount());
800        }
801    
802        /**
803         * This method adds currency to the cash drawer
804         * 
805         * @param detail the record indicating how much of each denomination of currency to add
806         */
807        public void addCurrency(CurrencyDetail detail) {
808            if (detail.getFinancialDocumentHundredDollarAmount() != null) {
809                if (financialDocumentHundredDollarAmount == null) {
810                    financialDocumentHundredDollarAmount = new KualiDecimal(detail.getFinancialDocumentHundredDollarAmount().bigDecimalValue());
811                }
812                else {
813                    financialDocumentHundredDollarAmount = financialDocumentHundredDollarAmount.add(detail.getFinancialDocumentHundredDollarAmount());
814                }
815            }
816            if (detail.getFinancialDocumentFiftyDollarAmount() != null) {
817                if (financialDocumentFiftyDollarAmount == null) {
818                    financialDocumentFiftyDollarAmount = new KualiDecimal(detail.getFinancialDocumentFiftyDollarAmount().bigDecimalValue());
819                }
820                else {
821                    financialDocumentFiftyDollarAmount = financialDocumentFiftyDollarAmount.add(detail.getFinancialDocumentFiftyDollarAmount());
822                }
823            }
824            if (detail.getFinancialDocumentTwentyDollarAmount() != null) {
825                if (financialDocumentTwentyDollarAmount == null) {
826                    financialDocumentTwentyDollarAmount = new KualiDecimal(detail.getFinancialDocumentTwentyDollarAmount().bigDecimalValue());
827                }
828                else {
829                    financialDocumentTwentyDollarAmount = financialDocumentTwentyDollarAmount.add(detail.getFinancialDocumentTwentyDollarAmount());
830                }
831            }
832            if (detail.getFinancialDocumentTenDollarAmount() != null) {
833                if (financialDocumentTenDollarAmount == null) {
834                    financialDocumentTenDollarAmount = new KualiDecimal(detail.getFinancialDocumentTenDollarAmount().bigDecimalValue());
835                }
836                else {
837                    financialDocumentTenDollarAmount = financialDocumentTenDollarAmount.add(detail.getFinancialDocumentTenDollarAmount());
838                }
839            }
840            if (detail.getFinancialDocumentFiveDollarAmount() != null) {
841                if (financialDocumentFiveDollarAmount == null) {
842                    financialDocumentFiveDollarAmount = new KualiDecimal(detail.getFinancialDocumentFiveDollarAmount().bigDecimalValue());
843                }
844                else {
845                    financialDocumentFiveDollarAmount = financialDocumentFiveDollarAmount.add(detail.getFinancialDocumentFiveDollarAmount());
846                }
847            }
848            if (detail.getFinancialDocumentTwoDollarAmount() != null) {
849                if (financialDocumentTwoDollarAmount == null) {
850                    financialDocumentTwoDollarAmount = new KualiDecimal(detail.getFinancialDocumentTwoDollarAmount().bigDecimalValue());
851                }
852                else {
853                    financialDocumentTwoDollarAmount = financialDocumentTwoDollarAmount.add(detail.getFinancialDocumentTwoDollarAmount());
854                }
855            }
856            if (detail.getFinancialDocumentOneDollarAmount() != null) {
857                if (financialDocumentOneDollarAmount == null) {
858                    financialDocumentOneDollarAmount = new KualiDecimal(detail.getFinancialDocumentOneDollarAmount().bigDecimalValue());
859                }
860                else {
861                    financialDocumentOneDollarAmount = financialDocumentOneDollarAmount.add(detail.getFinancialDocumentOneDollarAmount());
862                }
863            }
864            if (detail.getFinancialDocumentOtherDollarAmount() != null) {
865                if (financialDocumentOtherDollarAmount == null) {
866                    financialDocumentOtherDollarAmount = new KualiDecimal(detail.getFinancialDocumentOtherDollarAmount().bigDecimalValue());
867                }
868                else {
869                    financialDocumentOtherDollarAmount = financialDocumentOtherDollarAmount.add(detail.getFinancialDocumentOtherDollarAmount());
870                }
871            }
872        }
873    
874        /**
875         * This method puts coin into the cash drawer
876         * 
877         * @param detail the record indicating how much coin of each denomiation to add
878         */
879        public void addCoin(CoinDetail detail) {
880            if (detail.getFinancialDocumentHundredCentAmount() != null) {
881                if (getFinancialDocumentHundredCentAmount() == null) {
882                    setFinancialDocumentHundredCentAmount(new KualiDecimal(detail.getFinancialDocumentHundredCentAmount().bigDecimalValue()));
883                }
884                else {
885                    setFinancialDocumentHundredCentAmount(getFinancialDocumentHundredCentAmount().add(detail.getFinancialDocumentHundredCentAmount()));
886                }
887            }
888            if (detail.getFinancialDocumentFiftyCentAmount() != null) {
889                if (getFinancialDocumentFiftyCentAmount() == null) {
890                    setFinancialDocumentFiftyCentAmount(new KualiDecimal(detail.getFinancialDocumentFiftyCentAmount().bigDecimalValue()));
891                }
892                else {
893                    setFinancialDocumentFiftyCentAmount(getFinancialDocumentFiftyCentAmount().add(detail.getFinancialDocumentFiftyCentAmount()));
894                }
895            }
896            if (detail.getFinancialDocumentTwentyFiveCentAmount() != null) {
897                if (getFinancialDocumentTwentyFiveCentAmount() == null) {
898                    setFinancialDocumentTwentyFiveCentAmount(new KualiDecimal(detail.getFinancialDocumentTwentyFiveCentAmount().bigDecimalValue()));
899                }
900                else {
901                    setFinancialDocumentTwentyFiveCentAmount(getFinancialDocumentTwentyFiveCentAmount().add(detail.getFinancialDocumentTwentyFiveCentAmount()));
902                }
903            }
904            if (detail.getFinancialDocumentTenCentAmount() != null) {
905                if (getFinancialDocumentTenCentAmount() == null) {
906                    setFinancialDocumentTenCentAmount(new KualiDecimal(detail.getFinancialDocumentTenCentAmount().bigDecimalValue()));
907                }
908                else {
909                    setFinancialDocumentTenCentAmount(getFinancialDocumentTenCentAmount().add(detail.getFinancialDocumentTenCentAmount()));
910                }
911            }
912            if (detail.getFinancialDocumentFiveCentAmount() != null) {
913                if (getFinancialDocumentFiveCentAmount() == null) {
914                    setFinancialDocumentFiveCentAmount(new KualiDecimal(detail.getFinancialDocumentFiveCentAmount().bigDecimalValue()));
915                }
916                else {
917                    setFinancialDocumentFiveCentAmount(getFinancialDocumentFiveCentAmount().add(detail.getFinancialDocumentFiveCentAmount()));
918                }
919            }
920            if (detail.getFinancialDocumentOneCentAmount() != null) {
921                if (getFinancialDocumentOneCentAmount() == null) {
922                    setFinancialDocumentOneCentAmount(new KualiDecimal(detail.getFinancialDocumentOneCentAmount().bigDecimalValue()));
923                }
924                else {
925                    setFinancialDocumentOneCentAmount(getFinancialDocumentOneCentAmount().add(detail.getFinancialDocumentOneCentAmount()));
926                }
927            }
928            if (detail.getFinancialDocumentOtherCentAmount() != null) {
929                if (getFinancialDocumentOtherCentAmount() == null) {
930                    setFinancialDocumentOtherCentAmount(new KualiDecimal(detail.getFinancialDocumentOtherCentAmount().bigDecimalValue()));
931                }
932                else {
933                    setFinancialDocumentOtherCentAmount(getFinancialDocumentOtherCentAmount().add(detail.getFinancialDocumentOtherCentAmount()));
934                }
935            }
936        }
937    
938        /**
939         * This method removes currency amounts from the cash drawer
940         * 
941         * @param detail the record indicating how much currency of each denomination to remove
942         */
943        public void removeCurrency(CurrencyDetail detail) {
944            if (detail.getFinancialDocumentHundredDollarAmount() != null) {
945                if (this.getFinancialDocumentHundredDollarAmount() == null || detail.getFinancialDocumentHundredDollarAmount().isGreaterThan(this.getFinancialDocumentHundredDollarAmount())) {
946                    throw new IllegalArgumentException("The requested amount of hundred dollar bills exceeds the amount in the cash drawer");
947                }
948                else {
949                    setFinancialDocumentHundredDollarAmount(getFinancialDocumentHundredDollarAmount().subtract(detail.getFinancialDocumentHundredDollarAmount()));
950                }
951            }
952            if (detail.getFinancialDocumentFiftyDollarAmount() != null) {
953                if (this.getFinancialDocumentFiftyDollarAmount() == null || detail.getFinancialDocumentFiftyDollarAmount().isGreaterThan(this.getFinancialDocumentFiftyDollarAmount())) {
954                    throw new IllegalArgumentException("The requested amount of fifty dollar bills exceeds the amount in the cash drawer");
955                }
956                else {
957                    setFinancialDocumentFiftyDollarAmount(getFinancialDocumentFiftyDollarAmount().subtract(detail.getFinancialDocumentFiftyDollarAmount()));
958                }
959            }
960            if (detail.getFinancialDocumentTwentyDollarAmount() != null) {
961                if (this.getFinancialDocumentTwentyDollarAmount() == null || detail.getFinancialDocumentTwentyDollarAmount().isGreaterThan(this.getFinancialDocumentTwentyDollarAmount())) {
962                    throw new IllegalArgumentException("The requested amount of twenty dollar bills exceeds the amount in the cash drawer");
963                }
964                else {
965                    setFinancialDocumentTwentyDollarAmount(getFinancialDocumentTwentyDollarAmount().subtract(detail.getFinancialDocumentTwentyDollarAmount()));
966                }
967            }
968            if (detail.getFinancialDocumentTenDollarAmount() != null) {
969                if (this.getFinancialDocumentTenDollarAmount() == null || detail.getFinancialDocumentTenDollarAmount().isGreaterThan(this.getFinancialDocumentTenDollarAmount())) {
970                    throw new IllegalArgumentException("The requested amount of ten dollar bills exceeds the amount in the cash drawer");
971                }
972                else {
973                    setFinancialDocumentTenDollarAmount(getFinancialDocumentTenDollarAmount().subtract(detail.getFinancialDocumentTenDollarAmount()));
974                }
975            }
976            if (detail.getFinancialDocumentFiveDollarAmount() != null) {
977                if (this.getFinancialDocumentFiveDollarAmount() == null || detail.getFinancialDocumentFiveDollarAmount().isGreaterThan(this.getFinancialDocumentFiveDollarAmount())) {
978                    throw new IllegalArgumentException("The requested amount of five dollar bills exceeds the amount in the cash drawer");
979                }
980                else {
981                    setFinancialDocumentFiveDollarAmount(getFinancialDocumentFiveDollarAmount().subtract(detail.getFinancialDocumentFiveDollarAmount()));
982                }
983            }
984            if (detail.getFinancialDocumentTwoDollarAmount() != null) {
985                if (this.getFinancialDocumentTwoDollarAmount() == null || detail.getFinancialDocumentTwoDollarAmount().isGreaterThan(this.getFinancialDocumentTwoDollarAmount())) {
986                    throw new IllegalArgumentException("The requested amount of two dollar bills exceeds the amount in the cash drawer");
987                }
988                else {
989                    setFinancialDocumentTwoDollarAmount(getFinancialDocumentTwoDollarAmount().subtract(detail.getFinancialDocumentTwoDollarAmount()));
990                }
991            }
992            if (detail.getFinancialDocumentOneDollarAmount() != null) {
993                if (this.getFinancialDocumentOneDollarAmount() == null || detail.getFinancialDocumentOneDollarAmount().isGreaterThan(this.getFinancialDocumentOneDollarAmount())) {
994                    throw new IllegalArgumentException("The requested amount of one dollar bills exceeds the amount in the cash drawer");
995                }
996                else {
997                    setFinancialDocumentOneDollarAmount(getFinancialDocumentOneDollarAmount().subtract(detail.getFinancialDocumentOneDollarAmount()));
998                }
999            }
1000            if (detail.getFinancialDocumentOtherDollarAmount() != null) {
1001                if (this.getFinancialDocumentOtherDollarAmount() == null || detail.getFinancialDocumentOtherDollarAmount().isGreaterThan(this.getFinancialDocumentOtherDollarAmount())) {
1002                    throw new IllegalArgumentException("The requested other dollar amount exceeds the amount in the cash drawer");
1003                }
1004                else {
1005                    setFinancialDocumentOtherDollarAmount(getFinancialDocumentOtherDollarAmount().subtract(detail.getFinancialDocumentOtherDollarAmount()));
1006                }
1007            }
1008        }
1009    
1010        /**
1011         * This method takes coin out of the cash drawer
1012         * 
1013         * @param detail the record indicating how much coin of each denomination to remove
1014         */
1015        public void removeCoin(CoinDetail detail) {
1016            if (detail.getFinancialDocumentHundredCentAmount() != null) {
1017                if (this.getFinancialDocumentHundredCentAmount() == null || detail.getFinancialDocumentHundredCentAmount().isGreaterThan(this.getFinancialDocumentHundredCentAmount())) {
1018                    throw new IllegalArgumentException("The requested amount of hundred cent pieces exceeds the amount in the cash drawer");
1019                }
1020                else {
1021                    setFinancialDocumentHundredCentAmount(getFinancialDocumentHundredCentAmount().subtract(detail.getFinancialDocumentHundredCentAmount()));
1022                }
1023            }
1024            if (detail.getFinancialDocumentFiftyCentAmount() != null) {
1025                if (this.getFinancialDocumentFiftyCentAmount() == null || detail.getFinancialDocumentFiftyCentAmount().isGreaterThan(this.getFinancialDocumentFiftyCentAmount())) {
1026                    throw new IllegalArgumentException("The requested amount of fifty cent pieces exceeds the amount in the cash drawer");
1027                }
1028                else {
1029                    setFinancialDocumentFiftyCentAmount(getFinancialDocumentFiftyCentAmount().subtract(detail.getFinancialDocumentFiftyCentAmount()));
1030                }
1031            }
1032            if (detail.getFinancialDocumentTwentyFiveCentAmount() != null) {
1033                if (this.getFinancialDocumentTwentyFiveCentAmount() == null || detail.getFinancialDocumentTwentyFiveCentAmount().isGreaterThan(this.getFinancialDocumentTwentyFiveCentAmount())) {
1034                    throw new IllegalArgumentException("The requested amount of twenty five cent pieces exceeds the amount in the cash drawer");
1035                }
1036                else {
1037                    setFinancialDocumentTwentyFiveCentAmount(getFinancialDocumentTwentyFiveCentAmount().subtract(detail.getFinancialDocumentTwentyFiveCentAmount()));
1038                }
1039            }
1040            if (detail.getFinancialDocumentTenCentAmount() != null) {
1041                if (this.getFinancialDocumentTenCentAmount() == null || detail.getFinancialDocumentTenCentAmount().isGreaterThan(this.getFinancialDocumentTenCentAmount())) {
1042                    throw new IllegalArgumentException("The requested amount of ten cent pieces exceeds the amount in the cash drawer");
1043                }
1044                else {
1045                    setFinancialDocumentTenCentAmount(getFinancialDocumentTenCentAmount().subtract(detail.getFinancialDocumentTenCentAmount()));
1046                }
1047            }
1048            if (detail.getFinancialDocumentFiveCentAmount() != null) {
1049                if (this.getFinancialDocumentFiveCentAmount() == null || detail.getFinancialDocumentFiveCentAmount().isGreaterThan(this.getFinancialDocumentFiveCentAmount())) {
1050                    throw new IllegalArgumentException("The requested amount of five cent pieces exceeds the amount in the cash drawer");
1051                }
1052                else {
1053                    setFinancialDocumentFiveCentAmount(getFinancialDocumentFiveCentAmount().subtract(detail.getFinancialDocumentFiveCentAmount()));
1054                }
1055            }
1056            if (detail.getFinancialDocumentOneCentAmount() != null) {
1057                if (this.getFinancialDocumentOneCentAmount() == null || detail.getFinancialDocumentOneCentAmount().isGreaterThan(this.getFinancialDocumentOneCentAmount())) {
1058                    throw new IllegalArgumentException("The requested amount of one cent pieces exceeds the amount in the cash drawer");
1059                }
1060                else {
1061                    setFinancialDocumentOneCentAmount(getFinancialDocumentOneCentAmount().subtract(detail.getFinancialDocumentOneCentAmount()));
1062                }
1063            }
1064            if (detail.getFinancialDocumentOtherCentAmount() != null) {
1065                if (this.getFinancialDocumentOtherCentAmount() == null || detail.getFinancialDocumentOtherCentAmount().isGreaterThan(this.getFinancialDocumentOtherCentAmount())) {
1066                    throw new IllegalArgumentException("The requested other cent amount exceeds the amount in the cash drawer");
1067                }
1068                else {
1069                    setFinancialDocumentOtherCentAmount(getFinancialDocumentOtherCentAmount().subtract(detail.getFinancialDocumentOtherCentAmount()));
1070                }
1071            }
1072        }
1073        
1074        /**
1075         * @return the campus associated with this cash drawer
1076         */
1077        public Campus getCampus() {
1078            if (campusCode != null && (campus == null || !campus.getCampusCode().equals(campusCode))) {
1079                campus = retrieveCampus();
1080            }
1081            return campus;
1082        }
1083        
1084        private Campus retrieveCampus() {
1085            Map<String, Object> criteria = new HashMap<String, Object>();
1086            criteria.put(KNSPropertyConstants.CAMPUS_CODE, campusCode);
1087            return campus = (Campus) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(Campus.class).getExternalizableBusinessObject(Campus.class, criteria);
1088        }
1089    
1090        /**
1091         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
1092         */
1093        protected LinkedHashMap toStringMapper() {
1094            LinkedHashMap m = new LinkedHashMap();
1095            m.put("campusCode", this.campusCode);
1096            return m;
1097        }
1098    }