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