/**
   * проверяем, согласовал ли РП заявление на отпуск. Возвращаем его решение. если письмо
   * руководителю проекта не посылалось, то выбрасывается VacationApprovalServiceException
   */
  private Boolean getProjectManagerApproveResult(
      List<VacationApproval> projectManagerApprovals, Project project)
      throws VacationApprovalServiceException {
    if (project != null) {
      if (project.getManager() != null) {
        Integer projectManagerId = project.getManager().getId();
        for (VacationApproval approval : projectManagerApprovals) {
          Integer managerId = approval.getManager().getId();
          if (managerId.equals(projectManagerId)) {
            return approval.getResult();
          }
        }

        Integer vacationId = projectManagerApprovals.get(0).getVacation().getId();
        throw new VacationApprovalServiceException(
            String.format(
                "В БД не найдены данные о письме руководителю проекта %s для подтверждения отпуска №%s!",
                project.getName(), vacationId));
      } else {
        throw new VacationApprovalServiceException(
            String.format("В БД не найдены данные о руководителе проекта %s", project.getName()));
      }
    } else {
      throw new VacationApprovalServiceException("В БД не найдены данные о проекте");
    }
  }
Exemplo n.º 2
0
  private boolean setPM(Project project, String pmLdap) {
    // APLANATS-429
    if ((pmLdap == null) || (pmLdap.equals(""))) {
      trace
          .append("Проект ")
          .append(project.getName())
          .append(" пропущен, т.к. не указан руководитель проекта \n");
      return false;
    }

    Employee projectLeader = this.employeeDAO.findByLdapName(pmLdap.split("/")[0]);
    if (projectLeader == null) {
      trace
          .append("Проект ")
          .append(project.getName())
          .append(" проигнорирован, " + "т.к. руководитель проекта ")
          .append(pmLdap)
          .append(" не найден в базе ldap\n");
      return false;
    }

    project.setManager(projectLeader);
    return true;
  }