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.fp.document.web.struts;
017    
018    import java.util.List;
019    
020    import javax.servlet.http.HttpServletRequest;
021    
022    import org.kuali.kfs.fp.businessobject.AdvanceDepositDetail;
023    import org.kuali.kfs.fp.businessobject.CapitalAssetInformation;
024    import org.kuali.kfs.fp.document.AdvanceDepositDocument;
025    import org.kuali.kfs.fp.document.CapitalAssetEditable;
026    import org.kuali.kfs.sys.context.SpringContext;
027    import org.kuali.kfs.sys.web.struts.KualiAccountingDocumentFormBase;
028    import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
029    
030    /**
031     * This class is the struts form for Advance Deposit document.
032     */
033    public class AdvanceDepositForm extends KualiAccountingDocumentFormBase implements CapitalAssetEditable {
034        protected AdvanceDepositDetail newAdvanceDeposit;
035    
036        protected CapitalAssetInformation capitalAssetInformation;
037    
038        /**
039         * Constructs a AdvanceDepositForm.java.
040         */
041        public AdvanceDepositForm() {
042            super();
043    
044            AdvanceDepositDetail advanceDepositDetail = new AdvanceDepositDetail();
045            advanceDepositDetail.setDefautBankCode();
046            setNewAdvanceDeposit(advanceDepositDetail);
047    
048            this.setCapitalAssetInformation(new CapitalAssetInformation());
049        }
050    
051        @Override
052        protected String getDefaultDocumentTypeName() {
053            return "AD";
054        }
055        
056        /**
057         * @return AdvanceDepositDocument
058         */
059        public AdvanceDepositDocument getAdvanceDepositDocument() {
060            return (AdvanceDepositDocument) getDocument();
061        }
062    
063        /**
064         * @return AdvanceDepositDetail
065         */
066        public AdvanceDepositDetail getNewAdvanceDeposit() {
067            return newAdvanceDeposit;
068        }
069    
070        /**
071         * @param newAdvanceDeposit
072         */
073        public void setNewAdvanceDeposit(AdvanceDepositDetail newAdvanceDeposit) {
074            this.newAdvanceDeposit = newAdvanceDeposit;
075        }
076    
077        /**
078         * Overrides the parent to call super.populate and then tells each line to check the associated data dictionary and modify the
079         * values entered to follow all the attributes set for the values of the accounting line.
080         * 
081         * @see org.kuali.rice.kns.web.struts.form.KualiTransactionalDocumentFormBase#populate(javax.servlet.http.HttpServletRequest)
082         */
083        @Override
084        public void populate(HttpServletRequest request) {
085            super.populate(request);
086    
087            //
088            // now run through all of the accounting lines and make sure they've been uppercased and populated appropriately
089            SpringContext.getBean(BusinessObjectDictionaryService.class).performForceUppercase(getNewAdvanceDeposit());
090    
091            List<AdvanceDepositDetail> advancedDeposits = getAdvanceDepositDocument().getAdvanceDeposits();
092            for (AdvanceDepositDetail detail : advancedDeposits) {
093                SpringContext.getBean(BusinessObjectDictionaryService.class).performForceUppercase(detail);
094            }
095        }
096    
097        /**
098         * @see org.kuali.kfs.fp.document.CapitalAssetEditable#getCapitalAssetInformation()
099         */
100        public CapitalAssetInformation getCapitalAssetInformation() {
101            return capitalAssetInformation;
102        }
103    
104        /**
105         * @see org.kuali.kfs.fp.document.CapitalAssetEditable#setCapitalAssetInformation(org.kuali.kfs.fp.businessobject.CapitalAssetInformation)
106         */
107        public void setCapitalAssetInformation(CapitalAssetInformation capitalAssetInformation) {
108            this.capitalAssetInformation = capitalAssetInformation;
109        }
110    }