Ejemplo n.º 1
0
  @Transactional
  public String approveVacation(Integer vacationId) {
    Vacation vacation = findVacation(vacationId);
    Set<VacationApproval> vacationApprovals = vacation.getVacationApprovals();

    Date responseDate = new Date();

    vacation.setStatus(dictionaryItemService.find(VacationStatusEnum.APPROVED.getId()));
    store(vacation);

    vacationApprovalProcessService.sendBackDateVacationApproved(vacation);

    if (!vacationApprovals.isEmpty()) {
      for (VacationApproval vacationApproval : vacationApprovals) {
        vacationApproval.setResult(true);
        vacationApproval.setResponseDate(responseDate);
        StringBuilder comment = new StringBuilder("Согласовано ");
        if (isVacationApprovePermission(vacation)) {
          comment.append("РЦК");
        } else if (request.isUserInRole(ROLE_ADMIN)) {
          comment.append("Администратором");
        }
        vacationApproval.setComment(comment.toString());
        vacationApprovalService.store(vacationApproval);
      }
    }

    return JsonUtil.format(
        anObjectBuilder().withField("isApproved", JsonNodeBuilders.aTrueBuilder()));
  }