View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.module.ar.businessobject.options;
20  
21  import java.util.ArrayList;
22  import java.util.List;
23  
24  import org.kuali.kfs.module.ar.businessobject.DunningLetterTemplate;
25  import org.kuali.kfs.module.ar.document.service.DunningLetterService;
26  import org.kuali.kfs.sys.context.SpringContext;
27  import org.kuali.rice.core.api.util.ConcreteKeyValue;
28  import org.kuali.rice.core.api.util.KeyValue;
29  import org.kuali.rice.kim.api.identity.Person;
30  import org.kuali.rice.krad.keyvalues.KeyValuesBase;
31  import org.kuali.rice.krad.service.BusinessObjectService;
32  import org.kuali.rice.krad.util.GlobalVariables;
33  
34  /**
35   * Value finder class for Dunning Letter Template.
36   */
37  public class DunningLetterTemplateValuesFinder extends KeyValuesBase {
38      protected static volatile DunningLetterService dunningLetterService;
39  
40      protected List<KeyValue> keyValues = new ArrayList();
41  
42      /**
43       * @see org.kuali.keyvalues.KeyValuesFinder#getKeyValues()
44       */
45      @Override
46      @SuppressWarnings("unchecked")
47      public List<KeyValue> getKeyValues() {
48          final Person currentUser = GlobalVariables.getUserSession().getPerson();
49  
50          List<DunningLetterTemplate> boList = (List<DunningLetterTemplate>) SpringContext.getBean(BusinessObjectService.class).findAll(DunningLetterTemplate.class);
51          for (DunningLetterTemplate element : boList) {
52              if (!element.isRestrictUseByChartOrg() && element.isActive()) {
53                  keyValues.add(new ConcreteKeyValue(element.getDunningLetterTemplateCode(), element.getDunningLetterTemplateDescription()));
54              }
55              else {
56                  if (getDunningLetterService().isValidOrganizationForTemplate(element, currentUser) && element.isActive()) {
57                      keyValues.add(new ConcreteKeyValue(element.getDunningLetterTemplateCode(), element.getDunningLetterTemplateDescription()));
58                  }
59              }
60          }
61          return keyValues;
62      }
63  
64      /**
65       * @see org.kuali.rice.krad.keyvalues.KeyValuesBase#clearInternalCache()
66       */
67      @Override
68      public void clearInternalCache() {
69          keyValues = null;
70      }
71  
72      public DunningLetterService getDunningLetterService() {
73          if (dunningLetterService == null) {
74              dunningLetterService = SpringContext.getBean(DunningLetterService.class);
75          }
76          return dunningLetterService;
77      }
78  }