Example usage for org.joda.time LocalDate toDateTimeAtStartOfDay

List of usage examples for org.joda.time LocalDate toDateTimeAtStartOfDay

Introduction

In this page you can find the example usage for org.joda.time LocalDate toDateTimeAtStartOfDay.

Prototype

public DateTime toDateTimeAtStartOfDay() 

Source Link

Document

Converts this LocalDate to a full datetime at the earliest valid time for the date using the default time zone.

Usage

From source file:org.kuali.kpme.core.location.service.LocationInternalServiceImpl.java

License:Educational Community License

protected void populateLocationRoleMembers(LocationBo location, LocalDate asOfDate) {
    if (location != null && asOfDate != null && CollectionUtils.isEmpty(location.getRoleMembers())
            && CollectionUtils.isEmpty(location.getInactiveRoleMembers())) {
        Set<RoleMember> roleMembers = new HashSet<RoleMember>();
        roleMembers.addAll(kpmeRoleService.getRoleMembersInLocation(KPMENamespace.KPME_TK.getNamespaceCode(),
                KPMERole.TIME_LOCATION_VIEW_ONLY.getRoleName(), location.getLocation(),
                asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(kpmeRoleService.getRoleMembersInLocation(KPMENamespace.KPME_TK.getNamespaceCode(),
                KPMERole.TIME_LOCATION_ADMINISTRATOR.getRoleName(), location.getLocation(),
                asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(kpmeRoleService.getRoleMembersInLocation(KPMENamespace.KPME_LM.getNamespaceCode(),
                KPMERole.LEAVE_LOCATION_VIEW_ONLY.getRoleName(), location.getLocation(),
                asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(kpmeRoleService.getRoleMembersInLocation(KPMENamespace.KPME_LM.getNamespaceCode(),
                KPMERole.LEAVE_LOCATION_ADMINISTRATOR.getRoleName(), location.getLocation(),
                asOfDate.toDateTimeAtStartOfDay(), false));

        for (RoleMember roleMember : roleMembers) {
            RoleMemberBo roleMemberBo = RoleMemberBo.from(roleMember);

            if (roleMemberBo.isActive()) {
                location.addRoleMember(/*ww w.  j  a  v a  2s  . c  o m*/
                        LocationPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
            } else {
                location.addInactiveRoleMember(
                        LocationPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
            }
        }
    }
}

From source file:org.kuali.kpme.core.location.service.LocationServiceImpl.java

License:Educational Community License

private void populateLocationRoleMembers(Location location, LocalDate asOfDate) {
    if (location != null && asOfDate != null && CollectionUtils.isEmpty(location.getRoleMembers())
            && CollectionUtils.isEmpty(location.getInactiveRoleMembers())) {
        Set<RoleMember> roleMembers = new HashSet<RoleMember>();
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInLocation(
                KPMENamespace.KPME_TK.getNamespaceCode(), KPMERole.TIME_LOCATION_VIEW_ONLY.getRoleName(),
                location.getLocation(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInLocation(
                KPMENamespace.KPME_TK.getNamespaceCode(), KPMERole.TIME_LOCATION_ADMINISTRATOR.getRoleName(),
                location.getLocation(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInLocation(
                KPMENamespace.KPME_LM.getNamespaceCode(), KPMERole.LEAVE_LOCATION_VIEW_ONLY.getRoleName(),
                location.getLocation(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInLocation(
                KPMENamespace.KPME_LM.getNamespaceCode(), KPMERole.LEAVE_LOCATION_ADMINISTRATOR.getRoleName(),
                location.getLocation(), asOfDate.toDateTimeAtStartOfDay(), false));

        for (RoleMember roleMember : roleMembers) {
            RoleMemberBo roleMemberBo = RoleMemberBo.from(roleMember);

            if (roleMemberBo.isActive()) {
                location.addRoleMember(//from w  ww . ja v a2 s.c o m
                        LocationPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
            } else {
                location.addInactiveRoleMember(
                        LocationPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
            }
        }
    }
}

From source file:org.kuali.kpme.core.workarea.service.WorkAreaInternalServiceImpl.java

License:Educational Community License

protected void populateWorkAreaRoleMembers(WorkAreaBo workArea, LocalDate asOfDate) {
    if (workArea != null && asOfDate != null && CollectionUtils.isEmpty(workArea.getPrincipalRoleMembers())
            && CollectionUtils.isEmpty(workArea.getInactivePrincipalRoleMembers())
            && CollectionUtils.isEmpty(workArea.getPositionRoleMembers())
            && CollectionUtils.isEmpty(workArea.getInactivePositionRoleMembers())) {
        Set<RoleMember> roleMembers = new HashSet<RoleMember>();

        roleMembers.addAll(kpmeRoleService.getPrimaryRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.REVIEWER.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(kpmeRoleService.getPrimaryRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.APPROVER.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(kpmeRoleService.getPrimaryRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.APPROVER_DELEGATE.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));

        for (RoleMember roleMember : roleMembers) {
            RoleMemberBo roleMemberBo = RoleMemberBo.from(roleMember);
            // position role
            if (roleMember.getAttributes()
                    .containsKey(KPMERoleMemberAttribute.POSITION.getRoleMemberAttributeName())) {
                if (roleMemberBo.isActive()) {
                    workArea.addPositionRoleMember(
                            WorkAreaPositionRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                } else {
                    workArea.addInactivePositionRoleMember(
                            WorkAreaPositionRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                }/*from ww  w  .  j a va2 s  .com*/
            } else {
                if (roleMemberBo.isActive()) {
                    workArea.addPrincipalRoleMember(
                            WorkAreaPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                } else {
                    workArea.addInactivePrincipalRoleMember(
                            WorkAreaPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                }
            }
        }
    }
}

From source file:org.kuali.kpme.core.workarea.service.WorkAreaServiceImpl.java

License:Educational Community License

private void populateWorkAreaRoleMembers(WorkArea workArea, LocalDate asOfDate) {
    if (workArea != null && asOfDate != null && CollectionUtils.isEmpty(workArea.getPrincipalRoleMembers())
            && CollectionUtils.isEmpty(workArea.getInactivePrincipalRoleMembers())
            && CollectionUtils.isEmpty(workArea.getPositionRoleMembers())
            && CollectionUtils.isEmpty(workArea.getInactivePositionRoleMembers())) {
        Set<RoleMember> roleMembers = new HashSet<RoleMember>();

        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.REVIEWER.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.APPROVER.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));
        roleMembers.addAll(HrServiceLocator.getKPMERoleService().getRoleMembersInWorkArea(
                KPMENamespace.KPME_HR.getNamespaceCode(), KPMERole.APPROVER_DELEGATE.getRoleName(),
                workArea.getWorkArea(), asOfDate.toDateTimeAtStartOfDay(), false));

        for (RoleMember roleMember : roleMembers) {
            RoleMemberBo roleMemberBo = RoleMemberBo.from(roleMember);

            if (!roleMember.getAttributes()
                    .containsKey(KPMERoleMemberAttribute.POSITION.getRoleMemberAttributeName())) {
                if (roleMemberBo.isActive()) {
                    workArea.addPrincipalRoleMember(
                            WorkAreaPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                } else {
                    workArea.addInactivePrincipalRoleMember(
                            WorkAreaPrincipalRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                }/* w  ww .  j av a 2 s.  c  om*/
            } else {
                if (roleMemberBo.isActive()) {
                    workArea.addPositionRoleMember(
                            WorkAreaPositionRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                } else {
                    workArea.addInactivePositionRoleMember(
                            WorkAreaPositionRoleMemberBo.from(roleMemberBo, roleMember.getAttributes()));
                }
            }
        }
    }
}

From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java

License:Educational Community License

@Override
public void calculateFutureAccrualUsingPlanningMonth(String principalId, LocalDate asOfDate,
        String runAsPrincipalId) {
    PrincipalHRAttributes phra = HrServiceLocator.getPrincipalHRAttributeService()
            .getPrincipalCalendar(principalId, asOfDate);
    if (phra != null) {
        // use the date from pay period to get the leave plan
        LeavePlan lp = HrServiceLocator.getLeavePlanService().getLeavePlan(phra.getLeavePlan(), asOfDate);
        if (lp != null && StringUtils.isNotEmpty(lp.getPlanningMonths())) {
            // go back a year 
            LocalDate startDate = asOfDate.minusYears(1);
            if (startDate.getDayOfMonth() > startDate.dayOfMonth().getMaximumValue()) {
                startDate = startDate.withDayOfMonth(startDate.dayOfMonth().getMaximumValue());
            }//from w w w. j a va2s .c om
            // go forward using planning months
            LocalDate endDate = asOfDate.plusMonths(Integer.parseInt(lp.getPlanningMonths()));
            // max days in months differ, if the date is bigger than the max day, set it to the max day of the month
            if (endDate.getDayOfMonth() > endDate.dayOfMonth().getMaximumValue()) {
                endDate = endDate.withDayOfMonth(endDate.dayOfMonth().getMaximumValue());
            }
            runAccrual(principalId, startDate.toDateTimeAtStartOfDay(), endDate.toDateTimeAtStartOfDay(), true,
                    runAsPrincipalId);

        }
    }
}

From source file:org.kuali.kpme.tklm.leave.accrual.service.AccrualServiceImpl.java

License:Educational Community License

public DateTime getRuleStartDate(String earnInterval, LocalDate serviceDate, Long startAcc) {
    DateTime ruleStartDate = null;//from  ww  w. j  a v  a2 s .  c o  m

    String intervalValue = HrConstants.SERVICE_UNIT_OF_TIME.get(earnInterval);

    if (intervalValue.equals("Months")) {
        ruleStartDate = serviceDate.toDateTimeAtStartOfDay().plusMonths(startAcc.intValue());
        if (ruleStartDate.getDayOfMonth() > ruleStartDate.dayOfMonth().getMaximumValue()) {
            ruleStartDate = ruleStartDate.withDayOfMonth(ruleStartDate.dayOfMonth().getMaximumValue());
        }
    } else if (intervalValue.equals("Years")) {
        ruleStartDate = serviceDate.toDateTimeAtStartOfDay().withYear(startAcc.intValue());
    } else {
        ruleStartDate = serviceDate.toDateTimeAtStartOfDay();
    }

    return ruleStartDate;
}

From source file:org.kuali.kpme.tklm.leave.approval.web.LeaveApprovalWSAction.java

License:Educational Community License

public ActionForward searchApprovalRows(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    LeaveApprovalWSActionForm laaf = (LeaveApprovalWSActionForm) form;
    List<Map<String, String>> results = new LinkedList<Map<String, String>>();

    List<String> workAreaList = new ArrayList<String>();
    if (StringUtil.isEmpty(laaf.getSelectedWorkArea())) {
        String principalId = GlobalVariables.getUserSession().getPrincipalId();

        Set<Long> workAreas = new HashSet<Long>();
        workAreas.addAll(HrServiceLocator.getKPMERoleService().getWorkAreasForPrincipalInRole(
                KPMENamespace.KPME_HR.getNamespaceCode(), principalId, KPMERole.APPROVER.getRoleName(),
                new DateTime(), true));
        workAreas.addAll(HrServiceLocator.getKPMERoleService().getWorkAreasForPrincipalInRole(
                KPMENamespace.KPME_HR.getNamespaceCode(), principalId, KPMERole.APPROVER_DELEGATE.getRoleName(),
                new DateTime(), true));

        for (Long workArea : workAreas) {
            workAreaList.add(workArea.toString());
        }/*  w w w  .j  a va  2 s.c  om*/
    } else {
        workAreaList.add(laaf.getSelectedWorkArea());
    }

    LocalDate endDate = laaf.getCalendarEntry().getEndPeriodFullDateTime().toLocalDate();
    LocalDate beginDate = laaf.getCalendarEntry().getBeginPeriodFullDateTime().toLocalDate();

    List<String> principalIds = LmServiceLocator.getLeaveApprovalService()
            .getLeavePrincipalIdsWithSearchCriteria(workAreaList, laaf.getSelectedPayCalendarGroup(), endDate,
                    beginDate, endDate);

    if (StringUtils.equals(laaf.getSearchField(), CalendarApprovalForm.ORDER_BY_PRINCIPAL)) {
        for (String id : principalIds) {
            if (StringUtils.contains(id, laaf.getSearchTerm())) {
                Map<String, String> labelValue = new HashMap<String, String>();
                labelValue.put("id", id);
                labelValue.put("result", id);
                results.add(labelValue);
            }
        }
    } else if (StringUtils.equals(laaf.getSearchField(), CalendarApprovalForm.ORDER_BY_DOCID)) {
        Map<String, LeaveCalendarDocumentHeader> principalDocumentHeaders = LmServiceLocator
                .getLeaveApprovalService().getPrincipalDocumentHeader(principalIds,
                        beginDate.toDateTimeAtStartOfDay(), endDate.toDateTimeAtStartOfDay());

        for (Map.Entry<String, LeaveCalendarDocumentHeader> entry : principalDocumentHeaders.entrySet()) {
            if (StringUtils.contains(entry.getValue().getDocumentId(), laaf.getSearchTerm())) {
                Map<String, String> labelValue = new HashMap<String, String>();
                //                 labelValue.put("id", entry.getValue().getDocumentId() + " (" + entry.getValue().getPrincipalId() + ")");
                //removing principalId to make select/submit the result from dropdown work
                labelValue.put("id", entry.getValue().getDocumentId());
                labelValue.put("result", entry.getValue().getPrincipalId());
                results.add(labelValue);
            }
        }
    }

    laaf.setOutputString(JSONValue.toJSONString(results));

    return mapping.findForward("ws");
}

From source file:org.kuali.kpme.tklm.leave.batch.AccrualJob.java

License:Educational Community License

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
    String batchUserPrincipalId = getBatchUserPrincipalId();

    if (batchUserPrincipalId != null) {
        LocalDate asOfDate = LocalDate.now();
        List<Assignment> assignments = getAssignmentService().getActiveAssignments(asOfDate);

        for (Assignment assignment : assignments) {
            if (assignment.getJob().isEligibleForLeave()) {
                String principalId = assignment.getPrincipalId();

                PrincipalHRAttributes principalHRAttributes = getPrincipalHRAttributesService()
                        .getPrincipalCalendar(principalId, asOfDate);
                if (principalHRAttributes != null) {
                    LeavePlan leavePlan = getLeavePlanService().getLeavePlan(
                            principalHRAttributes.getLeavePlan(),
                            principalHRAttributes.getEffectiveLocalDate());
                    if (leavePlan != null) {
                        DateTime endDate = asOfDate.toDateTimeAtStartOfDay()
                                .plusMonths(Integer.parseInt(leavePlan.getPlanningMonths()));
                        getAccrualService().runAccrual(principalId, asOfDate.toDateTimeAtStartOfDay(), endDate,
                                true, batchUserPrincipalId);
                    }//from  w  ww.  jav a  2s .c  om
                }
            }
        }
    } else {
        String principalName = ConfigContext.getCurrentContextConfig()
                .getProperty(TkConstants.BATCH_USER_PRINCIPAL_NAME);
        LOG.error("Could not run batch jobs due to missing batch user " + principalName);
    }
}

From source file:org.kuali.kpme.tklm.leave.batch.CarryOverSchedulerJob.java

License:Educational Community License

@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
    LocalDate asOfDate = LocalDate.now();
    List<LeavePlan> leavePlans = HrServiceLocator.getLeavePlanService()
            .getLeavePlansNeedsCarryOverScheduled(getLeavePlanPollingWindow(), asOfDate);
    try {/*from   w w w .  j ava2  s.c o m*/
        if (leavePlans != null && !leavePlans.isEmpty()) {
            DateTime current = asOfDate.toDateTimeAtStartOfDay();
            DateTime windowStart = current.minusDays(getLeavePlanPollingWindow());
            DateTime windowEnd = current.plusDays(getLeavePlanPollingWindow());

            // schedule batch job for all LeavePlans who fall in leave polling window.
            for (LeavePlan leavePlan : leavePlans) {
                if (leavePlan.getBatchPriorYearCarryOverStartDate() != null
                        && leavePlan.getBatchPriorYearCarryOverStartTime() != null) {
                    DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd");
                    DateTime batchPriorYearCarryOverStartDateTime = formatter
                            .parseDateTime(leavePlan.getBatchPriorYearCarryOverStartDate())
                            .plus(leavePlan.getBatchPriorYearCarryOverStartTime().getTime());
                    if (batchPriorYearCarryOverStartDateTime.compareTo(windowStart) >= 0
                            && batchPriorYearCarryOverStartDateTime.compareTo(windowEnd) <= 0) {
                        getBatchJobService().scheduleLeaveCarryOverJobs(leavePlan);
                    }
                }
            }
        }
    } catch (SchedulerException se) {
        LOG.warn("Exception thrown during job scheduling of Carry over for Leave", se);
        //           throw new JobExecutionException("Exception thrown during job scheduling of Carry over for Leave", se);
    }
}

From source file:org.kuali.kpme.tklm.leave.calendar.LeaveCalendar.java

License:Educational Community License

public LeaveCalendar(String principalId, CalendarEntry calendarEntry, List<String> assignmentKeys) {
    super(calendarEntry);

    DateTime currentDisplayDateTime = getBeginDateTime();
    DateTime endDisplayDateTime = getEndDateTime();

    // Fill in the days if the first day or end day is in the middle of the week
    if (currentDisplayDateTime.getDayOfWeek() != DateTimeConstants.SUNDAY) {
        currentDisplayDateTime = currentDisplayDateTime.minusDays(currentDisplayDateTime.getDayOfWeek());
    }//from w  w w  .  j av a 2s . co m
    if (endDisplayDateTime.getDayOfWeek() != DateTimeConstants.SATURDAY) {
        endDisplayDateTime = endDisplayDateTime
                .plusDays(DateTimeConstants.SATURDAY - endDisplayDateTime.getDayOfWeek());
    }

    LeaveCalendarWeek leaveCalendarWeek = new LeaveCalendarWeek();
    Integer dayNumber = 0;
    List<LeaveBlock> blocks = LmServiceLocator.getLeaveBlockService().getLeaveBlocks(principalId,
            calendarEntry.getBeginPeriodFullDateTime().toLocalDate(),
            calendarEntry.getEndPeriodFullDateTime().toLocalDate());
    Map<String, List<LeaveBlock>> leaveBlockMap = new HashMap<String, List<LeaveBlock>>();
    for (LeaveBlock lb : blocks) {
        String key = lb.getLeaveLocalDate().toString();
        if (leaveBlockMap.containsKey(key)) {
            leaveBlockMap.get(key).add(lb);
        } else {
            leaveBlockMap.put(key, createNewLeaveBlockList(lb));
        }
    }

    //KPME-2560 If leave calendar document is final status, then User wont be able to add leave blocks to the calendar. 
    Boolean dayEditableFlag = true;
    LeaveCalendarDocumentHeader header = LmServiceLocator.getLeaveCalendarDocumentHeaderService()
            .getDocumentHeader(principalId, calendarEntry.getBeginPeriodFullDateTime(),
                    calendarEntry.getEndPeriodFullDateTime());
    if (header != null && header.getDocumentStatus().equals(HrConstants.ROUTE_STATUS.FINAL))
        dayEditableFlag = false;

    while (currentDisplayDateTime.isBefore(endDisplayDateTime)
            || currentDisplayDateTime.isEqual(endDisplayDateTime)) {
        LeaveCalendarDay leaveCalendarDay = new LeaveCalendarDay();

        // If the day is not within the current pay period, mark them as read only (gray)
        if (currentDisplayDateTime.isBefore(getBeginDateTime())
                || currentDisplayDateTime.isEqual(getEndDateTime())
                || currentDisplayDateTime.isAfter(getEndDateTime())) {
            leaveCalendarDay.setGray(true);
        } else {
            // This is for the div id of the days on the calendar.
            // It creates a day id like day_11/01/2011 which will make day parsing easier in the javascript.
            //                leaveCalendarDay.setDayNumberDelta(currDateTime.toString(HrConstants.DT_BASIC_DATE_FORMAT));
            //                leaveCalendarDay.setDayNumberDelta(currDateTime.getDayOfMonth());
            leaveCalendarDay.setDayNumberDelta(dayNumber);

            LocalDate leaveDate = currentDisplayDateTime.toLocalDate();
            List<LeaveBlock> lbs = leaveBlockMap.get(currentDisplayDateTime.toLocalDate().toString());
            if (lbs == null) {
                lbs = Collections.emptyList();
            }
            // use given assignmentKeys to control leave blocks displayed on the calendar
            if (CollectionUtils.isNotEmpty(lbs) && CollectionUtils.isNotEmpty(assignmentKeys)) {
                List<LeaveBlock> leaveBlocks = LmServiceLocator.getLeaveBlockService()
                        .filterLeaveBlocksForLeaveCalendar(lbs, assignmentKeys);
                leaveCalendarDay.setLeaveBlocks(leaveBlocks);
            } else {
                leaveCalendarDay.setLeaveBlocks(lbs);
            }

            if (HrServiceLocator.getHRPermissionService().canViewLeaveTabsWithNEStatus()) {
                TimesheetDocumentHeader tdh = TkServiceLocator.getTimesheetDocumentHeaderService()
                        .getDocumentHeaderForDate(principalId, leaveDate.toDateTimeAtStartOfDay());
                if (tdh != null) {
                    if (DateUtils.isSameDay(leaveDate.toDate(), tdh.getEndDate())
                            || leaveDate.isAfter(LocalDate.fromDateFields(tdh.getEndDate()))) {
                        leaveCalendarDay.setDayEditable(true);
                    }
                } else {
                    leaveCalendarDay.setDayEditable(true);
                }
            } else {
                leaveCalendarDay.setDayEditable(true);
            }
            //KPME-2560 If leave calendar document is final status, then User wont be able to add leave blocks to the calendar. 
            if (!dayEditableFlag)
                leaveCalendarDay.setDayEditable(false);

            dayNumber++;
        }
        leaveCalendarDay.setDayNumberString(currentDisplayDateTime.dayOfMonth().getAsShortText());
        leaveCalendarDay.setDateString(currentDisplayDateTime.toString(HrConstants.DT_BASIC_DATE_FORMAT));

        leaveCalendarWeek.getDays().add(leaveCalendarDay);

        if (leaveCalendarWeek.getDays().size() == DateTimeConstants.DAYS_PER_WEEK) {
            getWeeks().add(leaveCalendarWeek);
            leaveCalendarWeek = new LeaveCalendarWeek();
        }

        currentDisplayDateTime = currentDisplayDateTime.plusDays(1);
    }

    if (!leaveCalendarWeek.getDays().isEmpty()) {
        getWeeks().add(leaveCalendarWeek);
    }

    boolean isPlanningCal = LmServiceLocator.getLeaveCalendarService().isLeavePlanningCalendar(principalId,
            calendarEntry.getBeginPeriodFullDateTime().toLocalDate(),
            calendarEntry.getEndPeriodFullDateTime().toLocalDate());
    Map<String, String> earnCodes = HrServiceLocator.getEarnCodeService().getEarnCodesForDisplay(principalId,
            isPlanningCal);
    setEarnCodeList(earnCodes);
}