List of usage examples for org.joda.time DateTime toLocalDate
public LocalDate toLocalDate()
LocalDate
with the same date and chronology. From source file:org.kuali.kpme.tklm.leave.calendar.service.LeaveCalendarServiceImpl.java
License:Educational Community License
protected LeaveCalendarDocument initiateWorkflowDocument(String principalId, DateTime payBeginDate, DateTime payEndDate, CalendarEntry calendarEntry, String documentType, String title) throws WorkflowException { LeaveCalendarDocument leaveCalendarDocument = null; WorkflowDocument workflowDocument = null; workflowDocument = WorkflowDocumentFactory.createDocument(principalId, documentType, title); String status = workflowDocument.getStatus().getCode(); LeaveCalendarDocumentHeader documentHeader = new LeaveCalendarDocumentHeader( workflowDocument.getDocumentId(), principalId, payBeginDate.toDate(), payEndDate.toDate(), status); documentHeader.setDocumentId(workflowDocument.getDocumentId()); documentHeader.setDocumentStatus(HrConstants.ROUTE_STATUS.INITIATED); KRADServiceLocator.getBusinessObjectService().save(documentHeader); leaveCalendarDocument = new LeaveCalendarDocument(documentHeader); leaveCalendarDocument.setCalendarEntry(calendarEntry); loadLeaveCalendarDocumentData(leaveCalendarDocument, principalId, calendarEntry); TkServiceLocator.getTkSearchableAttributeService().updateSearchableAttribute(leaveCalendarDocument, payEndDate.toLocalDate()); updateLeaveBlockDocumentIds(principalId, payBeginDate.toLocalDate(), payEndDate.toLocalDate(), workflowDocument.getDocumentId()); updatePlannedLeaveBlocks(principalId, payBeginDate.toLocalDate(), payEndDate.toLocalDate()); return leaveCalendarDocument; }
From source file:org.kuali.kpme.tklm.leave.calendar.validation.LeaveCalendarValidationUtil.java
License:Educational Community License
public static List<String> validateAvailableLeaveBalanceForUsage(String earnCode, String leaveStartDateString, String leaveEndDateString, BigDecimal leaveAmount, LeaveBlock updatedLeaveBlock) { List<String> errors = new ArrayList<String>(); boolean earnCodeChanged = false; BigDecimal oldAmount = null;//from w w w .jav a 2 s . c o m if (leaveAmount == null) { leaveAmount = TKUtils.getHoursBetween(TKUtils.formatDateString(leaveStartDateString).toDate().getTime(), TKUtils.formatDateString(leaveEndDateString).toDate().getTime()); } if (updatedLeaveBlock != null) { if (!updatedLeaveBlock.getEarnCode().equals(earnCode)) { earnCodeChanged = true; } if (!updatedLeaveBlock.getLeaveAmount().equals(leaveAmount)) { oldAmount = updatedLeaveBlock.getLeaveAmount(); } } LocalDate startDate = TKUtils.formatDateString(leaveStartDateString); LocalDate endDate = TKUtils.formatDateString(leaveEndDateString); long daysSpan = TKUtils.getDaysBetween(startDate, endDate); EarnCode earnCodeObj = HrServiceLocator.getEarnCodeService().getEarnCode(earnCode, endDate); if (earnCodeObj != null && earnCodeObj.getAllowNegativeAccrualBalance().equals("N")) { AccrualCategory accrualCategory = HrServiceLocator.getAccrualCategoryService() .getAccrualCategory(earnCodeObj.getAccrualCategory(), endDate); if (accrualCategory != null) { DateTime nextIntervalDate = LmServiceLocator.getAccrualService().getNextAccrualIntervalDate( accrualCategory.getAccrualEarnInterval(), endDate.toDateTimeAtStartOfDay()); // get the usage checking cut off Date, normally it's the day before the next interval date DateTime usageEndDate = nextIntervalDate; if (nextIntervalDate.compareTo(endDate.toDateTimeAtCurrentTime()) > 0) { usageEndDate = nextIntervalDate.minusDays(1); } // use the end of the year as the interval date for usage checking of no-accrual hours, // normally no-accrual hours are from banked/transferred system scheduled time offs if (accrualCategory.getAccrualEarnInterval() .equals(HrConstants.ACCRUAL_EARN_INTERVAL_CODE.NO_ACCRUAL)) { usageEndDate = endDate.toDateTimeAtStartOfDay().withMonthOfYear(DateTimeConstants.DECEMBER) .withDayOfMonth(31); } BigDecimal availableBalance = LmServiceLocator.getLeaveSummaryService() .getLeaveBalanceForAccrCatUpToDate(HrContext.getTargetPrincipalId(), startDate, endDate, accrualCategory.getAccrualCategory(), usageEndDate.toLocalDate()); if (oldAmount != null) { if (!earnCodeChanged || updatedLeaveBlock.getAccrualCategory() .equals(accrualCategory.getAccrualCategory())) { availableBalance = availableBalance.add(oldAmount.abs()); } } //multiply by days in span in case the user has also edited the start/end dates. BigDecimal desiredUsage = null; if (!HrConstants.EARN_CODE_TIME.equals(earnCodeObj.getRecordMethod())) { desiredUsage = leaveAmount.multiply(new BigDecimal(daysSpan + 1)); } else { desiredUsage = leaveAmount.multiply(new BigDecimal(daysSpan)); } if (desiredUsage.compareTo(availableBalance) > 0) { errors.add("Requested leave amount " + desiredUsage.toString() + " is greater than available leave balance " + availableBalance.toString()); //errorMessages } } } return errors; }
From source file:org.kuali.kpme.tklm.leave.calendar.validation.LeaveCalendarValidationUtil.java
License:Educational Community License
public static List<String> validateParametersForLeaveEntry(String selectedEarnCode, CalendarEntry leaveCalEntry, String startDateS, String endDateS, String startTimeS, String endTimeS, String selectedAssignment, LeaveCalendarDocument leaveCalendarDocument, String leaveBlockId) { List<String> errors = new ArrayList<String>(); if (StringUtils.isNotBlank(selectedEarnCode)) { EarnCode earnCode = HrServiceLocator.getEarnCodeService().getEarnCode(selectedEarnCode, leaveCalEntry.getEndPeriodFullDateTime().toLocalDate()); if (earnCode != null && earnCode.getRecordMethod().equalsIgnoreCase(HrConstants.EARN_CODE_TIME)) { errors.addAll(LeaveCalendarValidationUtil.validateDates(startDateS, endDateS)); errors.addAll(LeaveCalendarValidationUtil.validateTimes(startTimeS, endTimeS)); if (errors.size() > 0) return errors; Long startTime;/*from w w w . j a v a 2 s . com*/ Long endTime; startTime = TKUtils.convertDateStringToDateTimeWithoutZone(startDateS, startTimeS).getMillis(); endTime = TKUtils.convertDateStringToDateTimeWithoutZone(endDateS, endTimeS).getMillis(); errors.addAll(validateInterval(leaveCalEntry, startTime, endTime)); if (errors.size() > 0) return errors; if (startTimeS == null) errors.add("The start time is blank."); if (endTimeS == null) errors.add("The end time is blank."); if (startTime - endTime == 0) errors.add("Start time and end time cannot be equivalent"); if (errors.size() > 0) return errors; DateTime startTemp = new DateTime(startTime); DateTime endTemp = new DateTime(endTime); if (errors.size() == 0) { Hours hrs = Hours.hoursBetween(startTemp, endTemp); if (hrs.getHours() >= 24) errors.add("One leaveblock cannot exceed 24 hours"); } if (errors.size() > 0) return errors; //Check that assignment is valid for both days AssignmentDescriptionKey assignKey = HrServiceLocator.getAssignmentService() .getAssignmentDescriptionKey(selectedAssignment); Assignment assign = HrServiceLocator.getAssignmentService().getAssignment(assignKey, startTemp.toLocalDate()); if ((startTime.compareTo(endTime) > 0 || endTime.compareTo(startTime) < 0)) { errors.add("The time or date is not valid."); } if (errors.size() > 0) return errors; // boolean isRegularEarnCode = StringUtils.equals(assign.getJob().getPayTypeObj().getRegEarnCode(),selectedEarnCode); boolean isRegularEarnCode = true; errors.addAll(validateOverlap(startTime, endTime, startDateS, endTimeS, startTemp, endTemp, leaveCalEntry, leaveBlockId, isRegularEarnCode, earnCode.getRecordMethod())); if (errors.size() > 0) return errors; } } return errors; }
From source file:org.kuali.kpme.tklm.leave.calendar.web.LeaveCalendarAction.java
License:Educational Community License
public ActionForward addLeaveBlock(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LeaveCalendarForm lcf = (LeaveCalendarForm) form; LeaveCalendarDocument lcd = lcf.getLeaveCalendarDocument(); String principalId = HrContext.getPrincipalId(); String targetPrincipalId = HrContext.getTargetPrincipalId(); CalendarEntry calendarEntry = lcf.getCalendarEntry(); String selectedAssignment = lcf.getSelectedAssignment(); DateTime beginDate = null;/*from w ww. jav a 2s.com*/ DateTime endDate = null; /** -- Jignasha : if earchcode type is 'T' then change the date and time with timezone. // Surgery point - Need to construct a Date/Time with Appropriate Timezone. * */ LOG.debug("Start time is " + lcf.getStartTime()); LOG.debug("Emnd time is " + lcf.getEndTime()); if (lcf.getStartTime() != null && lcf.getEndTime() != null) { beginDate = TKUtils.convertDateStringToDateTimeWithoutZone(lcf.getStartDate(), lcf.getStartTime()); endDate = TKUtils.convertDateStringToDateTimeWithoutZone(lcf.getEndDate(), lcf.getEndTime()); } else { beginDate = TKUtils.formatDateTimeStringNoTimezone(lcf.getStartDate()); endDate = TKUtils.formatDateTimeStringNoTimezone(lcf.getEndDate()); } LOG.debug("Begin Date is>> " + beginDate); LOG.debug("End Date is>> " + endDate); String selectedEarnCode = lcf.getSelectedEarnCode(); BigDecimal hours = lcf.getLeaveAmount(); String desc = lcf.getDescription(); String spanningWeeks = lcf.getSpanningWeeks(); // KPME-1446 String approval = lcf.getApproval(); // KPME-2540 String documentId = lcd != null ? lcd.getDocumentId() : ""; Assignment assignment = null; if (lcd != null) { assignment = lcd.getAssignment(AssignmentDescriptionKey.get(selectedAssignment)); if (assignment == null) LOG.warn("No matched assignment found"); } else { List<Assignment> assignments = HrServiceLocator.getAssignmentService() .getAssignmentsByCalEntryForLeaveCalendar(targetPrincipalId, calendarEntry); assignment = HrServiceLocator.getAssignmentService().getAssignment(assignments, selectedAssignment, calendarEntry.getBeginPeriodFullDateTime().toLocalDate()); } LmServiceLocator.getLeaveBlockService().addLeaveBlocks(beginDate, endDate, calendarEntry, selectedEarnCode, hours, desc, assignment, spanningWeeks, LMConstants.LEAVE_BLOCK_TYPE.LEAVE_CALENDAR, targetPrincipalId); generateLeaveCalendarChangedNotification(principalId, targetPrincipalId, documentId, calendarEntry.getHrCalendarEntryId()); // after adding the leave block, set the fields of this form to null for future new leave blocks lcf.setLeaveAmount(null); lcf.setDescription(null); // call accrual service if earn code is not eligible for accrual if (calendarEntry != null) { this.rerunAccrualForNotEligibleForAccrualChanges(selectedEarnCode, endDate.toLocalDate(), calendarEntry.getBeginPeriodFullDateTime().toLocalDate(), calendarEntry.getEndPeriodFullDateTime().toLocalDate()); } // recalculate summary if (calendarEntry != null) { LeaveSummary ls = LmServiceLocator.getLeaveSummaryService().getLeaveSummary(targetPrincipalId, calendarEntry); lcf.setLeaveSummary(ls); } // KPME-2540 replicate submitForApproval method in LeaveRequestAction here if (!StringUtils.isEmpty(approval)) { List<LeaveBlock> leaveBlocks = LmServiceLocator.getLeaveBlockService().getLeaveBlocks(targetPrincipalId, beginDate.toLocalDate(), endDate.toLocalDate()); for (LeaveBlock leaveBlock : leaveBlocks) { LeaveRequestDocument lrd = LmServiceLocator.getLeaveRequestDocumentService() .createLeaveRequestDocument(leaveBlock.getLmLeaveBlockId()); LmServiceLocator.getLeaveRequestDocumentService().requestLeave(lrd.getDocumentNumber()); } } return mapping.findForward("basic"); }
From source file:org.kuali.kpme.tklm.leave.calendar.web.LeaveCalendarAction.java
License:Educational Community License
protected void setLeaveSummary(LeaveCalendarForm leaveCalendarForm) throws Exception { String principalId = HrContext.getTargetPrincipalId(); CalendarEntry calendarEntry = leaveCalendarForm.getCalendarEntry(); PrincipalHRAttributes principalHRAttributes = HrServiceLocator.getPrincipalHRAttributeService() .getPrincipalCalendar(principalId, calendarEntry.getEndPeriodFullDateTime().toLocalDate()); //check to see if we are on a previous leave plan if (principalHRAttributes != null) { DateTime currentYearBeginDate = HrServiceLocator.getLeavePlanService() .getFirstDayOfLeavePlan(principalHRAttributes.getLeavePlan(), LocalDate.now()); DateTime calEntryEndDate = calendarEntry.getEndPeriodFullDateTime(); if (calEntryEndDate.getMillis() > currentYearBeginDate.getMillis()) { //current or future year LeaveSummary ls = LmServiceLocator.getLeaveSummaryService().getLeaveSummary(principalId, calendarEntry);//from ww w .j a va2s . c o m leaveCalendarForm.setLeaveSummary(ls); } else { //current year roll over date has been passed, all previous calendars belong to the previous leave plan calendar year. DateTime effDate = HrServiceLocator.getLeavePlanService().getRolloverDayOfLeavePlan( principalHRAttributes.getLeavePlan(), calEntryEndDate.minusDays(1).toLocalDate()); LeaveSummary ls = LmServiceLocator.getLeaveSummaryService() .getLeaveSummaryAsOfDateWithoutFuture(principalId, effDate.toLocalDate()); //override title element (based on date passed in) DateFormat formatter = new SimpleDateFormat("MMMM d"); DateFormat formatter2 = new SimpleDateFormat("MMMM d yyyy"); DateTime entryEndDate = new LocalDateTime(calendarEntry.getEndPeriodDate()).toDateTime(); if (entryEndDate.getHourOfDay() == 0) { entryEndDate = entryEndDate.minusDays(1); } String aString = formatter.format(calendarEntry.getBeginPeriodDate()) + " - " + formatter2.format(entryEndDate.toDate()); ls.setPendingDatesString(aString); DateTimeFormatter fmt = DateTimeFormat.forPattern("MMM d, yyyy"); ls.setNote("Values as of: " + fmt.print(effDate)); leaveCalendarForm.setLeaveSummary(ls); } } }
From source file:org.kuali.kpme.tklm.leave.calendar.web.LeaveCalendarWSAction.java
License:Educational Community License
public ActionForward getEarnCodeJson(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LeaveCalendarWSForm lcf = (LeaveCalendarWSForm) form; List<Map<String, Object>> earnCodeList = new LinkedList<Map<String, Object>>(); CalendarEntry calendarEntry = lcf.getCalendarEntry(); if (StringUtils.isNotBlank(lcf.getSelectedAssignment())) { LocalDate asOfDate = calendarEntry.getEndPeriodFullDateTime().toLocalDate(); if (lcf.getStartDate() != null) { try { DateTime utilDate = HrConstants.DateTimeFormats.BASIC_DATE_FORMAT .parseDateTime(lcf.getStartDate()); asOfDate = utilDate.toLocalDate(); } catch (Exception ex) { //ignore and use the timesheet as of date. }// w ww .j a v a 2 s . c o m } Map<LocalDate, List<Assignment>> assignments = HrServiceLocator.getAssignmentService() .getAssignmentsByCalEntryForLeaveCalendar(HrContext.getTargetPrincipalId(), calendarEntry); boolean leavePlanningCalendar = LmServiceLocator.getLeaveCalendarService().isLeavePlanningCalendar( HrContext.getTargetPrincipalId(), calendarEntry.getBeginPeriodFullDateTime().toLocalDate(), calendarEntry.getEndPeriodFullDateTime().toLocalDate()); AssignmentDescriptionKey key = AssignmentDescriptionKey.get(lcf.getSelectedAssignment()); List<Assignment> dayAssigns = assignments.get(asOfDate); for (Assignment assignment : dayAssigns) { if (assignment.getJobNumber().compareTo(key.getJobNumber()) == 0 && assignment.getWorkArea().compareTo(key.getWorkArea()) == 0 && assignment.getTask().compareTo(key.getTask()) == 0) { List<EarnCode> earnCodes = HrServiceLocator.getEarnCodeService() .getEarnCodesForLeave(assignment, asOfDate, leavePlanningCalendar); for (EarnCode earnCode : earnCodes) { Map<String, Object> earnCodeMap = new HashMap<String, Object>(); earnCodeMap.put("assignment", assignment.getAssignmentKey()); earnCodeMap.put("earnCode", earnCode.getEarnCode()); earnCodeMap.put("desc", earnCode.getDescription()); earnCodeMap.put("type", earnCode.getEarnCodeType()); earnCodeMap.put("earnCodeId", earnCode.getHrEarnCodeId()); earnCodeMap.put("unitOfTime", earnCode.getRecordMethod()); earnCodeMap.put("defaultAmountofTime", earnCode.getDefaultAmountofTime()); earnCodeMap.put("fractionalTimeAllowed", earnCode.getFractionalTimeAllowed()); earnCodeList.add(earnCodeMap); } } } } LOG.info(lcf.toString()); lcf.setOutputString(JSONValue.toJSONString(earnCodeList)); return mapping.findForward("ws"); }
From source file:org.kuali.kpme.tklm.leave.calendar.web.LeaveCalendarWSAction.java
License:Educational Community License
public ActionForward getValidAssignments(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { TimeDetailWSActionForm tdaf = (TimeDetailWSActionForm) form; //need an asOfDate here LocalDate asOfDate = tdaf.getTimesheetDocument().getAsOfDate(); if (tdaf.getStartDate() != null) { try {//from w w w. j a va2 s.co m DateTime utilDate = HrConstants.DateTimeFormats.BASIC_DATE_FORMAT .parseDateTime(tdaf.getStartDate()); asOfDate = utilDate.toLocalDate(); } catch (Exception ex) { //ignore and use the timesheet as of date. } } String earnCode = tdaf.getSelectedEarnCode(); List<Map<String, Object>> assignments = new ArrayList<Map<String, Object>>(); if (tdaf.getTimesheetDocument() != null && StringUtils.isNotEmpty(earnCode)) { assignments = getAssignmentsForRegEarnCode(tdaf.getTimesheetDocument().getAssignmentMap().get(asOfDate), earnCode, asOfDate); } tdaf.setOutputString(JSONValue.toJSONString(assignments)); return mapping.findForward("ws"); }
From source file:org.kuali.kpme.tklm.leave.calendar.web.LeaveCalendarWSAction.java
License:Educational Community License
public ActionForward getAssignmentJson(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LeaveCalendarWSForm lcf = (LeaveCalendarWSForm) form; String earnCode = lcf.getSelectedEarnCode(); LocalDate asOfDate = null;/*from ww w .ja va2 s .c o m*/ if (lcf.getStartDate() != null) { try { DateTime utilDate = HrConstants.DateTimeFormats.BASIC_DATE_FORMAT.parseDateTime(lcf.getStartDate()); asOfDate = utilDate.toLocalDate(); } catch (Exception ex) { //ignore and use the leaveCalendar as of date. } } List<Map<String, Object>> assignments = new ArrayList<Map<String, Object>>(); if (asOfDate == null) { Map<String, Object> assignmentMap = new HashMap<String, Object>(2); assignmentMap.put("assignment", ""); assignmentMap.put("desc", "-- enter valid date range --"); assignments.add(assignmentMap); } lcf.setLeaveCalendarDocument( LmServiceLocator.getLeaveCalendarService().getLeaveCalendarDocument(lcf.getDocumentId())); if (lcf.getLeaveCalendarDocument() != null && asOfDate != null) { //check date to see if assignment is active String principalId = lcf.getLeaveCalendarDocument().getPrincipalId(); CalendarEntry ce = lcf.getLeaveCalendarDocument().getCalendarEntry(); Map<LocalDate, List<Assignment>> history = lcf.getLeaveCalendarDocument().getAssignmentMap(); List<Assignment> dayAssignments = history.get(asOfDate); dayAssignments = HrServiceLocator.getAssignmentService() .filterAssignmentListForUser(HrContext.getPrincipalId(), dayAssignments); if (CollectionUtils.isNotEmpty(dayAssignments)) { if (dayAssignments.size() > 1) { Map<String, Object> assignmentMap = new HashMap<String, Object>(2); assignmentMap.put("assignment", ""); assignmentMap.put("desc", "-- select an assignment --"); assignments.add(assignmentMap); } for (Assignment a : dayAssignments) { Map<String, Object> assignmentMap = new HashMap<String, Object>(2); assignmentMap.put("assignment", a.getAssignmentKey()); assignmentMap.put("desc", HrServiceLocator.getAssignmentService() .getAssignmentDescriptionForAssignment(a, asOfDate)); assignments.add(assignmentMap); } } } lcf.setOutputString(JSONValue.toJSONString(assignments)); return mapping.findForward("ws"); }
From source file:org.kuali.kpme.tklm.leave.request.web.LeaveRequestAction.java
License:Educational Community License
@Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = super.execute(mapping, form, request, response); LeaveRequestForm leaveForm = (LeaveRequestForm) form; String principalId = HrContext.getTargetPrincipalId(); DateTime currentDate = LocalDate.now().toDateTimeAtStartOfDay(); if (leaveForm.getNavString() == null) { leaveForm.setYear(LocalDate.now().getYear()); } else if (leaveForm.getNavString().equals("NEXT")) { leaveForm.setYear(leaveForm.getYear() + 1); } else if (leaveForm.getNavString().equals("PREV")) { leaveForm.setYear(leaveForm.getYear() - 1); }/*from w ww . j a va 2s . com*/ LocalDate beginDate = new LocalDate(leaveForm.getYear(), 1, 1); LocalDate endDate = new LocalDate(leaveForm.getYear(), 12, 31); // CalendarEntry calendarEntry = HrServiceLocator.getCalendarService().getCurrentCalendarDatesForLeaveCalendar(principalId, currentDate); CalendarEntry calendarEntry = HrServiceLocator.getCalendarEntryService() .getCurrentCalendarDatesForLeaveCalendar(principalId, beginDate.toDateTimeAtStartOfDay(), endDate.toDateTimeAtStartOfDay()); // If the current pay period ends before the current leave calendar ends, then we need to include any planned leave blocks that occur // in this window between the current pay end and the beginning of the leave planning calendar (the next future leave period). // The most common scenario occurs when a non-monthly pay period ends before the current leave calendar ends. CalendarEntry payCalendarEntry = HrServiceLocator.getCalendarEntryService().getCurrentCalendarDates( principalId, beginDate.toDateTimeAtStartOfDay(), endDate.toDateTimeAtStartOfDay()); Boolean checkLeaveEligible = true; Boolean nonExemptLeaveEligible = LmServiceLocator.getLeaveApprovalService() .isActiveAssignmentFoundOnJobFlsaStatus(principalId, HrConstants.FLSA_STATUS_NON_EXEMPT, checkLeaveEligible); if (nonExemptLeaveEligible && calendarEntry != null && payCalendarEntry != null) { if (payCalendarEntry.getEndPeriodDate().before(calendarEntry.getEndPeriodDate())) { calendarEntry = payCalendarEntry; } } if (calendarEntry != null) { if (calendarEntry.getEndPeriodLocalDateTime().getMillisOfDay() == 0) { // if the time of the end date is the beginning of a day, subtract one day from the end date currentDate = calendarEntry.getEndPeriodFullDateTime().minusDays(1); } else { currentDate = calendarEntry.getEndPeriodFullDateTime(); // only show leave requests from planning calendars on leave request page } } List<LeaveBlock> plannedLeaves = getLeaveBlocksWithRequestStatus(principalId, beginDate, endDate, HrConstants.REQUEST_STATUS.PLANNED); plannedLeaves.addAll(getLeaveBlocksWithRequestStatus(principalId, beginDate, endDate, HrConstants.REQUEST_STATUS.DEFERRED)); leaveForm.setPlannedLeaves(plannedLeaves); leaveForm.setPendingLeaves(getLeaveBlocksWithRequestStatus(principalId, beginDate, endDate, HrConstants.REQUEST_STATUS.REQUESTED)); leaveForm.setApprovedLeaves(getLeaveBlocksWithRequestStatus(principalId, beginDate, endDate, HrConstants.REQUEST_STATUS.APPROVED)); leaveForm.setDisapprovedLeaves(getDisapprovedLeaveBlockHistory(principalId, currentDate.toLocalDate())); leaveForm.setDocuments(getLeaveRequestDocuments(leaveForm)); return forward; }
From source file:org.kuali.kpme.tklm.leave.workflow.postprocessor.LmPostProcessor.java
License:Educational Community License
private void calculateMaxCarryOver(LeaveCalendarDocumentHeader leaveCalendarDocumentHeader, DocumentStatus newDocumentStatus) { String documentId = leaveCalendarDocumentHeader.getDocumentId(); String principalId = leaveCalendarDocumentHeader.getPrincipalId(); DateTime endDate = leaveCalendarDocumentHeader.getEndDateTime(); if (DocumentStatus.ENROUTE.equals(newDocumentStatus)) { //create pending carry over leave blocks. Calendar calendar = HrServiceLocator.getCalendarService().getCalendarByPrincipalIdAndDate(principalId, endDate.toLocalDate(), true); if (calendar != null) { CalendarEntry calendarEntry = HrServiceLocator.getCalendarEntryService() .getCalendarEntryByIdAndPeriodEndDate(calendar.getHrCalendarId(), endDate); LmServiceLocator.getAccrualCategoryMaxCarryOverService().calculateMaxCarryOver(documentId, principalId, calendarEntry, endDate.toLocalDate()); }/*w w w . j a v a2 s. c o m*/ } else if (DocumentStatus.FINAL.equals(newDocumentStatus)) { //approve the carry over leave block. List<LeaveBlock> leaveBlocks = LmServiceLocator.getLeaveBlockService().getLeaveBlocks(principalId, leaveCalendarDocumentHeader.getBeginDateTime().toLocalDate(), endDate.toLocalDate()); for (LeaveBlock lb : leaveBlocks) { if (StringUtils.equals(lb.getLeaveBlockType(), LMConstants.LEAVE_BLOCK_TYPE.CARRY_OVER_ADJUSTMENT)) { lb.setRequestStatus(HrConstants.REQUEST_STATUS.APPROVED); LmServiceLocator.getLeaveBlockService().updateLeaveBlock(lb, lb.getPrincipalIdModified()); } } } }