1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.hr.time.position.validation;
17
18 import java.sql.Date;
19
20 import org.kuali.hr.time.position.Position;
21 import org.kuali.hr.time.service.base.TkServiceLocator;
22 import org.kuali.rice.kns.document.MaintenanceDocument;
23 import org.kuali.rice.kns.maintenance.rules.MaintenanceDocumentRuleBase;
24 import org.kuali.rice.krad.bo.PersistableBusinessObject;
25
26 public class PositionValidation extends MaintenanceDocumentRuleBase {
27
28 protected boolean validatePositionWorkarea(Position position) {
29
30 boolean workAreaValidity = true;
31
32 if (position.getWorkArea() != null) {
33 Long WANumbr = position.getWorkArea();
34 Date effDate = position.getEffectiveDate();
35
36 if (TkServiceLocator.getWorkAreaService().getWorkArea(WANumbr,
37 effDate) != null) {
38 return workAreaValidity;
39 } else {
40 this.putFieldError("workArea", "pos.workArea.invalid",
41 "work area '" + position.getWorkArea() + "'");
42 workAreaValidity = false;
43 }
44 }
45 return workAreaValidity;
46 }
47
48 @Override
49 protected boolean processCustomRouteDocumentBusinessRules(
50 MaintenanceDocument document) {
51 boolean valid = false;
52 LOG.debug("entering custom validation for Position");
53 PersistableBusinessObject pbo = (PersistableBusinessObject) this.getNewBo();
54
55 if (pbo instanceof Position) {
56 Position position = (Position) pbo;
57 if (position != null) {
58 valid = true;
59 valid &= this.validatePositionWorkarea(position);
60 }
61 }
62 return valid;
63 }
64 }