View Javadoc
1   /**
2    * Copyright 2004-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.kpme.pm.positionreportsubcat.validation;
17  
18  import org.kuali.kpme.core.bo.validation.HrKeyedBusinessObjectValidation;
19  import org.kuali.kpme.pm.api.positionreportcat.PositionReportCategoryContract;
20  import org.kuali.kpme.pm.positionreportsubcat.PositionReportSubCategoryBo;
21  import org.kuali.kpme.pm.service.base.PmServiceLocator;
22  import org.kuali.rice.krad.maintenance.MaintenanceDocument;
23  
24  public class PositionReportSubCatValidation extends HrKeyedBusinessObjectValidation {
25  	@Override
26  	protected boolean processCustomRouteDocumentBusinessRules(MaintenanceDocument document) {
27  		boolean valid = false;
28  		LOG.debug("entering custom validation for Position Report Sub Category");
29  		PositionReportSubCategoryBo prsc = (PositionReportSubCategoryBo) this.getNewDataObject();
30  		
31  		if (prsc != null) {
32  			valid = true;
33  			valid &= this.validatePositionReportCategory(prsc);
34  		}
35  		return valid;
36  	}
37  	
38  	private boolean validatePositionReportCategory(PositionReportSubCategoryBo prsc) {
39  		PositionReportCategoryContract aCat = PmServiceLocator.getPositionReportCatService().getPositionReportCat(prsc.getPositionReportCat(), prsc.getEffectiveLocalDate());
40  		
41  		String errorMes = "PositionReportCategory '" + prsc.getPositionReportCat() + "'";
42  		if(aCat == null) {
43  			this.putFieldError("positionReportCat", "error.existence", errorMes);
44  			return false;
45  		} 
46  		return true;
47  	}	
48  
49  }