1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.kpme.core.web;
17
18 import org.kuali.rice.core.api.CoreApiServiceLocator;
19 import org.kuali.rice.kns.document.MaintenanceDocument;
20 import org.kuali.rice.kns.rules.PromptBeforeValidationBase;
21 import org.kuali.rice.krad.bo.PersistableBusinessObject;
22 import org.kuali.rice.krad.document.Document;
23
24 public abstract class KpmeEffectiveDatePromptBase extends PromptBeforeValidationBase {
25 @Override
26 public boolean doPrompts(Document document) {
27 boolean preRulesOK = true;
28 preRulesOK &= conditionallyAskQuestion(document);
29 return preRulesOK;
30 }
31
32 protected boolean conditionallyAskQuestion(Document document) {
33 MaintenanceDocument maintenanceDocument = (MaintenanceDocument)document;
34 PersistableBusinessObject bo = (PersistableBusinessObject)maintenanceDocument.getNewMaintainableObject().getDataObject();
35 boolean askQuestion = futureEffectiveDateExists(bo);
36 if (askQuestion) {
37 String questionText = CoreApiServiceLocator.getKualiConfigurationService().getPropertyValueAsString("warning.future.eff.date");
38 boolean confirm = super.askOrAnalyzeYesNoQuestion("FutureEffectiveDateRecordExists", questionText);
39 if (!confirm) {
40 super.abortRulesCheck();
41 }
42
43 }
44 return true;
45 }
46
47 protected abstract boolean futureEffectiveDateExists(PersistableBusinessObject bo);
48
49
50 }