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.PurchaseOrderQuoteLanguage;
21 import org.kuali.rice.kns.document.MaintenanceDocument;
22 import org.kuali.rice.kns.maintenance.rules.MaintenanceDocumentRuleBase;
23 import org.kuali.rice.krad.service.BusinessObjectService;
24 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
25
26 import java.util.HashMap;
27 import java.util.Map;
28
29
30
31
32 public class PurchaseOrderQuoteLanguageRule extends MaintenanceDocumentRuleBase {
33
34 protected PurchaseOrderQuoteLanguage oldQuoteLanguage;
35 protected PurchaseOrderQuoteLanguage newQuoteLanguage;
36 protected BusinessObjectService boService;
37
38
39
40
41 @Override
42 public void setupConvenienceObjects() {
43 oldQuoteLanguage = (PurchaseOrderQuoteLanguage) super.getOldBo();
44
45 newQuoteLanguage = (PurchaseOrderQuoteLanguage) super.getNewBo();
46 boService = (BusinessObjectService) super.getBoService();
47 super.setupConvenienceObjects();
48 }
49
50 protected boolean processCustomApproveDocumentBusinessRules(MaintenanceDocument document) {
51 LOG.info("processCustomApproveDocumentBusinessRules called");
52 this.setupConvenienceObjects();
53 boolean success = this.checkForDuplicate();
54 return success && super.processCustomApproveDocumentBusinessRules(document);
55 }
56
57 protected boolean processCustomRouteDocumentBusinessRules(MaintenanceDocument document) {
58 LOG.info("processCustomRouteDocumentBusinessRules called");
59 this.setupConvenienceObjects();
60 boolean success = this.checkForDuplicate();
61 return success && super.processCustomRouteDocumentBusinessRules(document);
62 }
63
64 protected boolean processCustomSaveDocumentBusinessRules(MaintenanceDocument document) {
65 LOG.info("processCustomSaveDocumentBusinessRules called");
66 this.setupConvenienceObjects();
67 boolean success = this.checkForDuplicate();
68 return success && super.processCustomSaveDocumentBusinessRules(document);
69 }
70
71 protected boolean checkForDuplicate() {
72 LOG.info("checkForDuplicate called");
73 boolean success = true;
74 Map fieldValues = new HashMap();
75
76 fieldValues.put("purchaseOrderQuoteLanguageDescription", newQuoteLanguage.getPurchaseOrderQuoteLanguageDescription());
77 fieldValues.put("purchaseOrderQuoteLanguageCreateDate", newQuoteLanguage.getPurchaseOrderQuoteLanguageCreateDate());
78
79 if (oldQuoteLanguage != null && newQuoteLanguage != null &&
80 newQuoteLanguage.getPurchaseOrderQuoteLanguageIdentifier() != null && oldQuoteLanguage.getPurchaseOrderQuoteLanguageIdentifier() != null &&
81 newQuoteLanguage.getPurchaseOrderQuoteLanguageCreateDate() != null && oldQuoteLanguage.getPurchaseOrderQuoteLanguageCreateDate() != null &&
82 StringUtils.equalsIgnoreCase(newQuoteLanguage.getPurchaseOrderQuoteLanguageDescription(), oldQuoteLanguage.getPurchaseOrderQuoteLanguageDescription()) &&
83 newQuoteLanguage.getPurchaseOrderQuoteLanguageIdentifier().equals(oldQuoteLanguage.getPurchaseOrderQuoteLanguageIdentifier()) &&
84 newQuoteLanguage.getPurchaseOrderQuoteLanguageCreateDate().equals(oldQuoteLanguage.getPurchaseOrderQuoteLanguageCreateDate())) {
85 success = true;
86 } else if ((KRADServiceLocatorWeb.getLegacyDataAdapter().findMatching(newQuoteLanguage.getClass(), fieldValues)).size() != 0) {
87 success &= false;
88 putGlobalError(PurapKeyConstants.PURAP_GENERAL_POTENTIAL_DUPLICATE);
89 }
90 return success;
91 }
92 }