001    /**
002     * Copyright 2004-2012 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.hr.earncodesec.service;
017    
018    import org.kuali.hr.earncodesec.EarnCodeSecurity;
019    import org.kuali.hr.time.HrBusinessObject;
020    import org.kuali.hr.time.service.base.TkServiceLocator;
021    import org.kuali.hr.time.util.HrBusinessObjectMaintainableImpl;
022    import org.kuali.hr.time.util.ValidationUtils;
023    import org.kuali.rice.kns.document.MaintenanceDocument;
024    import org.kuali.rice.krad.util.GlobalVariables;
025    import org.kuali.rice.krad.util.KRADConstants;
026    
027    import java.util.Map;
028    
029    public class EarnCodeSecurityMaintainableImpl extends HrBusinessObjectMaintainableImpl {
030            /**
031             * 
032             */
033            private static final long serialVersionUID = 1L;
034    
035            
036            @Override
037        public void processAfterEdit( MaintenanceDocument document, Map<String,String[]> parameters ) {
038                    EarnCodeSecurity departmentEarnCode = (EarnCodeSecurity) this.getBusinessObject();
039                    int count = TkServiceLocator.getEarnCodeSecurityService().getNewerEarnCodeSecurityCount(departmentEarnCode.getEarnCode(), departmentEarnCode.getEffectiveDate());
040                    if(count > 0) {
041                            GlobalVariables.getMessageMap().putWarningWithoutFullErrorPath(
042                                            KRADConstants.MAINTENANCE_NEW_MAINTAINABLE + "effectiveDate", 
043                                            "deptEarncode.effectiveDate.newer.exists");
044                    }
045                    
046                    if(ValidationUtils.duplicateDeptEarnCodeExists(departmentEarnCode)) {
047                            GlobalVariables.getMessageMap().putWarningWithoutFullErrorPath(
048                                            KRADConstants.MAINTENANCE_NEW_MAINTAINABLE + "dept", 
049                                            "deptEarncode.duplicate.exists");
050                    }
051        }
052    
053            @Override
054            public HrBusinessObject getObjectById(String id) {
055                    return TkServiceLocator.getEarnCodeSecurityService().getEarnCodeSecurity(id);
056            }
057    }