View Javadoc
1   package org.kuali.ole.deliver.rule;
2   
3   import org.kuali.ole.OLEConstants;
4   import org.kuali.ole.deliver.bo.OleFeeType;
5   import org.kuali.ole.deliver.bo.OleSourceBo;
6   import org.kuali.rice.core.api.criteria.QueryByCriteria;
7   import org.kuali.rice.krad.maintenance.MaintenanceDocument;
8   import org.kuali.rice.krad.rules.MaintenanceDocumentRuleBase;
9   import org.kuali.rice.krad.service.KRADServiceLocator;
10  
11  import java.util.HashMap;
12  import java.util.List;
13  import java.util.Map;
14  
15  /**
16   * Created with IntelliJ IDEA.
17   * User: divyaj
18   * Date: 6/23/14
19   * Time: 2:40 PM
20   * To change this template use File | Settings | File Templates.
21   */
22  public class OleSourceRule extends MaintenanceDocumentRuleBase {
23  
24      protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) {
25          boolean isValid = true;
26  
27          isValid &= validateOleMaterialTypeCode(document);
28          return isValid;
29      }
30  
31  
32      private boolean validateOleMaterialTypeCode(MaintenanceDocument document) {
33          OleSourceBo oleSourceBo = (OleSourceBo) document.getNewMaintainableObject().getDataObject();
34          if (oleSourceBo.getOleSourceCode() != null) {
35              Map<String, String> criteria = new HashMap<String, String>();
36              criteria.put(OLEConstants.OleSourceBo.SOURCE_CODE, oleSourceBo.getOleSourceCode());
37              List<OleSourceBo> oleSourceBoList = (List<OleSourceBo>) KRADServiceLocator.getDataObjectService().findMatching(OleSourceBo.class, QueryByCriteria.Builder.andAttributes(criteria).build()).getResults();
38              if ((oleSourceBoList.size() > 0) && !document.getNewMaintainableObject().getMaintenanceAction().equals("Edit")) {
39                  for (OleSourceBo sourceBo : oleSourceBoList) {
40                      String sourceId = sourceBo.getOleSourceId();
41                      if (null == oleSourceBo.getOleSourceId() || (!oleSourceBo.getOleSourceId().equalsIgnoreCase(sourceId))) {
42                          this.putFieldError(OLEConstants.OleSourceBo.SOURCE_CODE_FIELD, OLEConstants.OleSourceBo.ERROR_SOURCE_CODE);
43                          return false;
44                      }
45                  }
46              }
47          }
48          return true;
49      }
50  }