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.module.purap.document.service.impl;
017    
018    import java.math.BigDecimal;
019    import java.util.ArrayList;
020    import java.util.Collection;
021    import java.util.HashMap;
022    import java.util.Iterator;
023    import java.util.List;
024    
025    import org.apache.commons.lang.BooleanUtils;
026    import org.apache.commons.lang.StringUtils;
027    import org.kuali.kfs.module.purap.PurapConstants;
028    import org.kuali.kfs.module.purap.PurapKeyConstants;
029    import org.kuali.kfs.module.purap.PurapParameterConstants;
030    import org.kuali.kfs.module.purap.businessobject.CreditMemoItem;
031    import org.kuali.kfs.module.purap.businessobject.PaymentRequestAccount;
032    import org.kuali.kfs.module.purap.businessobject.PaymentRequestItem;
033    import org.kuali.kfs.module.purap.businessobject.PurchaseOrderItem;
034    import org.kuali.kfs.module.purap.businessobject.PurchasingCapitalAssetItem;
035    import org.kuali.kfs.module.purap.document.VendorCreditMemoDocument;
036    import org.kuali.kfs.module.purap.document.PaymentRequestDocument;
037    import org.kuali.kfs.module.purap.document.PurchaseOrderDocument;
038    import org.kuali.kfs.module.purap.document.service.AccountsPayableService;
039    import org.kuali.kfs.module.purap.document.service.CreditMemoCreateService;
040    import org.kuali.kfs.module.purap.document.service.CreditMemoService;
041    import org.kuali.kfs.module.purap.document.service.PaymentRequestService;
042    import org.kuali.kfs.module.purap.document.service.PurapService;
043    import org.kuali.kfs.module.purap.document.service.PurchaseOrderService;
044    import org.kuali.kfs.module.purap.service.PurapAccountingService;
045    import org.kuali.kfs.module.purap.util.ExpiredOrClosedAccountEntry;
046    import org.kuali.kfs.sys.context.SpringContext;
047    import org.kuali.kfs.vnd.VendorConstants;
048    import org.kuali.kfs.vnd.VendorUtils;
049    import org.kuali.kfs.vnd.businessobject.VendorAddress;
050    import org.kuali.kfs.vnd.businessobject.VendorDetail;
051    import org.kuali.kfs.vnd.document.service.VendorService;
052    import org.kuali.rice.kns.bo.DocumentHeader;
053    import org.kuali.rice.kns.document.Document;
054    import org.kuali.rice.kns.service.DataDictionaryService;
055    import org.kuali.rice.kns.service.KualiConfigurationService;
056    import org.kuali.rice.kns.service.ParameterService;
057    import org.kuali.rice.kns.util.GlobalVariables;
058    import org.kuali.rice.kns.util.KNSPropertyConstants;
059    import org.kuali.rice.kns.util.KualiDecimal;
060    
061    
062    /**
063     * Performs initial population of the credit memo document.
064     */
065    public class CreditMemoCreateServiceImpl implements CreditMemoCreateService {
066        private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(CreditMemoServiceImpl.class);
067        private VendorService vendorService;
068        private CreditMemoService creditMemoService;
069        private AccountsPayableService accountsPayableService;
070        private PurapService purapService;
071        private PurchaseOrderService purchaseOrderService;
072        private PaymentRequestService paymentRequestService;
073        private DataDictionaryService dataDictionaryService;
074        private PurapAccountingService purapAccountingService;
075        
076        public void setCreditMemoService(CreditMemoService creditMemoService) {
077            this.creditMemoService = creditMemoService;
078        }
079    
080        public void setAccountsPayableService(AccountsPayableService accountsPayableService) {
081            this.accountsPayableService = accountsPayableService;
082        }
083    
084        public void setPurapService(PurapService purapService) {
085            this.purapService = purapService;
086        }
087    
088        public void setPurchaseOrderService(PurchaseOrderService purchaseOrderService) {
089            this.purchaseOrderService = purchaseOrderService;
090        }
091    
092        public void setPaymentRequestService(PaymentRequestService paymentRequestService) {
093            this.paymentRequestService = paymentRequestService;
094        }
095    
096        public void setPurapAccountingService(PurapAccountingService purapAccountingService) {
097            this.purapAccountingService = purapAccountingService;
098        }
099        
100        
101    }
102