Пример #1
0
  private void addEmployeePlans(
      List<EmployeePlan> employeePlans,
      Integer year,
      Integer month,
      Employee employee,
      JsonNode jsonNode) {
    final Map<JsonStringNode, JsonNode> fields = jsonNode.getFields();

    JsonStringNode field;

    for (Map.Entry<JsonStringNode, TSEnum> entry : PLAN_TYPE_MAP.entrySet()) {
      field = entry.getKey();

      final EmployeePlan employeePlan =
          createEmployeePlanIfNeed(
              year, month, employee, dictionaryItemService.find(entry.getValue().getId()));

      if (fields.containsKey(field)) {
        employeePlan.setValue(JsonUtil.getFloatNumberValue(jsonNode, field.getText()));

        employeePlans.add(employeePlan);
      }
    }

    // KSS APLANATS-850 Удалять будем только существующие записи с value=0.
    // Удаление будет вызвано в методе
    // com.aplana.timesheet.service.EmployeePlanService.mergeProjectPlans

  }
Пример #2
0
 public Map<Vacation, Integer> getCalDays(List<Vacation> vacations) {
   Map<Vacation, Integer> calDays = new HashMap<Vacation, Integer>(vacations.size());
   for (Vacation vacation : vacations) {
     Integer diffInDays =
         DateTimeUtil.getDiffInDays(vacation.getBeginDate(), vacation.getEndDate());
     calDays.put(vacation, diffInDays);
   }
   return calDays;
 }
Пример #3
0
  // возвращает список отпусков за год определенного типа с указанием количества календарных или
  // рабочих дней
  // в зависимости от того, какой список был передан
  private Map<Vacation, Integer> getDaysForYearByType(
      Map<Vacation, Integer> days, int year, DictionaryItem type) {
    Map<Vacation, Integer> daysForYearByType = new HashMap<Vacation, Integer>();
    for (Map.Entry<Vacation, Integer> entry : days.entrySet()) {
      Vacation vacation = entry.getKey();
      Integer calDaysInVacation = entry.getValue();

      if (vacationStatusInThisYear(vacation, year)
          && type.getId().equals(vacation.getType().getId())) {
        daysForYearByType.put(vacation, calDaysInVacation);
      }
    }
    return daysForYearByType;
  }
Пример #4
0
  public Map<Vacation, Integer> getWorkDays(
      Map<Vacation, Integer> calDays, List<Holiday> holidays) {
    Map<Vacation, Integer> workDays = new HashMap<Vacation, Integer>(calDays.size());

    for (Map.Entry<Vacation, Integer> entry : calDays.entrySet()) {
      Vacation vacation = entry.getKey();
      Integer calDaysInVacation = entry.getValue();
      Region emplRegion = vacation.getEmployee().getRegion();
      final int holidaysCount =
          getHolidaysCount(holidays, emplRegion, vacation.getBeginDate(), vacation.getEndDate());
      final int workDaysCount = calDaysInVacation - holidaysCount;
      workDays.put(vacation, workDaysCount);
    }

    return workDays;
  }
Пример #5
0
 // возвращает количество дней в списке отпусков (в зависимости от того какой список был передан)
 private int getSummaryDaysCount(Map<Vacation, Integer> days) {
   int summaryDays = 0;
   for (Map.Entry<Vacation, Integer> entry : days.entrySet()) {
     Vacation vacation = entry.getKey();
     Integer daysInVacation = entry.getValue();
     if (VacationStatusEnum.APPROVED.getId() == vacation.getStatus().getId()
         || VacationTypesEnum.PLANNED.getId() == vacation.getType().getId()) {
       summaryDays += daysInVacation;
     }
   }
   return summaryDays;
 }