001 /** 002 * Copyright 2004-2013 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.time.admin.web; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.apache.log4j.Logger; 020 import org.apache.struts.action.ActionForm; 021 import org.apache.struts.action.ActionForward; 022 import org.apache.struts.action.ActionMapping; 023 import org.kuali.hr.time.base.web.TkAction; 024 import org.kuali.hr.time.service.base.TkServiceLocator; 025 import org.kuali.rice.kim.api.identity.principal.Principal; 026 import org.kuali.rice.kim.api.services.KimApiServiceLocator; 027 028 import javax.servlet.http.HttpServletRequest; 029 import javax.servlet.http.HttpServletResponse; 030 import java.text.DateFormat; 031 import java.text.SimpleDateFormat; 032 033 public class CalculateLeaveAccrualsAction extends TkAction { 034 035 private static final Logger LOG = Logger.getLogger(ChangeTargetPersonAction.class); 036 037 public ActionForward runAccruals(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 038 CalculateLeaveAccrualsForm calculateLeaveAccrualsForm = (CalculateLeaveAccrualsForm) form; 039 040 DateFormat formater = new SimpleDateFormat("MM/dd/yyyy"); 041 Principal principal = KimApiServiceLocator.getIdentityService().getPrincipalByPrincipalName(calculateLeaveAccrualsForm.getPrincipalName()); 042 if (principal != null) { 043 if (StringUtils.isNotBlank(calculateLeaveAccrualsForm.getStartDate()) && StringUtils.isNotBlank(calculateLeaveAccrualsForm.getEndDate())) { 044 java.util.Date parsedStartDate = formater.parse(calculateLeaveAccrualsForm.getStartDate()); 045 java.sql.Date startDate= new java.sql.Date(parsedStartDate.getTime()); 046 047 java.util.Date parsedEndDate = formater.parse(calculateLeaveAccrualsForm.getEndDate()); 048 java.sql.Date endDate= new java.sql.Date(parsedEndDate.getTime()); 049 050 LOG.debug("AccrualServiceImpl.runAccrual() called with Principal: " + principal.getPrincipalName() + " Start: " + startDate.toString() + " End: " + endDate.toString()); 051 TkServiceLocator.getLeaveAccrualService().runAccrual(principal.getPrincipalId(), startDate, endDate, true); 052 } else { 053 LOG.debug("AccrualServiceImpl.runAccrual() called with Principal: " + principal.getPrincipalName()); 054 TkServiceLocator.getLeaveAccrualService().runAccrual(principal.getPrincipalId()); 055 } 056 } 057 return mapping.findForward("basic"); 058 } 059 060 public ActionForward clearAccruals(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 061 CalculateLeaveAccrualsForm adminForm = (CalculateLeaveAccrualsForm) form; 062 063 if (StringUtils.isNotBlank(adminForm.getPrincipalName())) { 064 LOG.debug("AccrualServiceImpl.clearAccrual() called with Principal: " + adminForm.getPrincipalName()); 065 adminForm.setPrincipalName(""); 066 } 067 if (StringUtils.isNotBlank(adminForm.getStartDate())) { 068 LOG.debug("AccrualServiceImpl.clearAccrual() called with Start Date: " + adminForm.getStartDate()); 069 adminForm.setStartDate(""); 070 } 071 if (StringUtils.isNotBlank(adminForm.getEndDate())) { 072 LOG.debug("AccrualServiceImpl.clearAccrual() called with End Date: " + adminForm.getEndDate()); 073 adminForm.setEndDate(""); 074 } 075 076 return mapping.findForward("basic"); 077 } 078 079 }