1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.ole.module.purap.document.validation.impl;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.ole.module.purap.PurapKeyConstants;
20 import org.kuali.ole.module.purap.businessobject.PurchaseOrderContractLanguage;
21 import org.kuali.ole.sys.context.SpringContext;
22 import org.kuali.rice.core.api.criteria.QueryByCriteria;
23 import org.kuali.rice.krad.data.DataObjectService;
24 import org.kuali.rice.krad.maintenance.MaintenanceDocument;
25 import org.kuali.rice.krad.rules.MaintenanceDocumentRuleBase;
26 import org.kuali.rice.krad.service.BusinessObjectService;
27 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
28
29 import java.util.HashMap;
30 import java.util.Map;
31
32
33
34
35 public class PurchaseOrderContractLanguageRule extends MaintenanceDocumentRuleBase {
36
37 protected PurchaseOrderContractLanguage newContractLanguage;
38 protected PurchaseOrderContractLanguage oldContractLanguage;
39 protected DataObjectService dataObjectService;
40
41
42
43
44 @Override
45 public void setupConvenienceObjects() {
46 oldContractLanguage = (PurchaseOrderContractLanguage) super.getOldDataObject();
47
48 newContractLanguage = (PurchaseOrderContractLanguage) super.getNewDataObject();
49 dataObjectService = (DataObjectService) super.getDataObjectService();
50 super.setupConvenienceObjects();
51 }
52
53
54
55
56 protected boolean processCustomApproveDocumentBusinessRules(MaintenanceDocument document) {
57 LOG.info("processCustomApproveDocumentBusinessRules called");
58 this.setupConvenienceObjects();
59 boolean success = this.checkForDuplicate();
60 return success && super.processCustomApproveDocumentBusinessRules(document);
61 }
62
63
64
65
66 protected boolean processCustomRouteDocumentBusinessRules(MaintenanceDocument document) {
67 LOG.info("processCustomRouteDocumentBusinessRules called");
68 this.setupConvenienceObjects();
69 boolean success = this.checkForDuplicate();
70 return success && super.processCustomRouteDocumentBusinessRules(document);
71 }
72
73
74
75
76 protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) {
77 LOG.info("processCustomSaveDocumentBusinessRules called");
78 this.setupConvenienceObjects();
79 boolean success = this.checkForDuplicate();
80 return success && super.processCustomSaveDocumentBusinessRules(document);
81 }
82
83
84
85
86
87
88 protected boolean checkForDuplicate() {
89 LOG.info("checkForDuplicate called");
90 boolean success = true;
91 Map fieldValues = new HashMap();
92
93 if (oldContractLanguage.getPurchaseOrderContractLanguageIdentifier() != null &&
94 newContractLanguage.getPurchaseOrderContractLanguageIdentifier() != null &&
95 StringUtils.equalsIgnoreCase(newContractLanguage.getCampusCode(), oldContractLanguage.getCampusCode()) &&
96 newContractLanguage.getPurchaseOrderContractLanguageIdentifier().equals(oldContractLanguage.getPurchaseOrderContractLanguageIdentifier()) &&
97 StringUtils.equalsIgnoreCase(newContractLanguage.getPurchaseOrderContractLanguageDescription(), oldContractLanguage.getPurchaseOrderContractLanguageDescription()) &&
98 newContractLanguage.getContractLanguageCreateDate().equals(oldContractLanguage.getContractLanguageCreateDate())) {
99 success = true;
100 } else {
101 fieldValues.put("campusCode", newContractLanguage.getCampusCode());
102 fieldValues.put("purchaseOrderContractLanguageDescription", newContractLanguage.getPurchaseOrderContractLanguageDescription());
103 fieldValues.put("contractLanguageCreateDate", newContractLanguage.getContractLanguageCreateDate());
104 if ((KRADServiceLocatorWeb.getLegacyDataAdapter().findMatching(newContractLanguage.getClass(),fieldValues)).size()!= 0) {
105 success &= false;
106 putGlobalError(PurapKeyConstants.PURAP_GENERAL_POTENTIAL_DUPLICATE);
107 }
108 }
109 return success;
110 }
111 }