public ActiveTaskBo saveOrUpdateActiveTask()

in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/dao/StudyActiveTasksDAOImpl.java [490:669]


  public ActiveTaskBo saveOrUpdateActiveTask(ActiveTaskBo activeTaskBo, String customStudyId) {
    logger.entry("begin saveOrUpdateActiveTask()");
    Session session = null;
    try {
      session = hibernateTemplate.getSessionFactory().openSession();
      transaction = session.beginTransaction();
      session.saveOrUpdate(activeTaskBo);
      if (activeTaskBo.getType().equalsIgnoreCase(FdahpStudyDesignerConstants.SCHEDULE)
          && (activeTaskBo != null)
          && (activeTaskBo.getId() != null)) {
        if ((activeTaskBo.getActiveTaskFrequenciesList() != null)
            && !activeTaskBo.getActiveTaskFrequenciesList().isEmpty()) {
          String deleteQuery =
              "delete from active_task_custom_frequencies where active_task_id=:activeTaskId";
          query =
              session
                  .createSQLQuery(deleteQuery)
                  .setParameter("activeTaskId", activeTaskBo.getId());
          query.executeUpdate();
          String deleteQuery2 =
              "delete from active_task_frequencies where active_task_id=:activeTaskId";
          query =
              session
                  .createSQLQuery(deleteQuery2)
                  .setParameter("activeTaskId", activeTaskBo.getId());
          query.executeUpdate();
          for (ActiveTaskFrequencyBo activeTaskFrequencyBo :
              activeTaskBo.getActiveTaskFrequenciesList()) {
            if (activeTaskFrequencyBo.getFrequencyTime() != null) {
              activeTaskFrequencyBo.setFrequencyTime(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskFrequencyBo.getFrequencyTime(),
                      FdahpStudyDesignerConstants.SDF_TIME,
                      FdahpStudyDesignerConstants.UI_SDF_TIME));
              if (activeTaskFrequencyBo.getActiveTaskId() == null) {
                activeTaskFrequencyBo.setId(null);
                activeTaskFrequencyBo.setActiveTaskId(activeTaskBo.getId());
              }
              session.saveOrUpdate(activeTaskFrequencyBo);
            }
          }
        }
        if (activeTaskBo.getActiveTaskFrequenciesList() != null) {
          ActiveTaskFrequencyBo activeTaskFrequencyBo = activeTaskBo.getActiveTaskFrequenciesBo();
          if ((activeTaskFrequencyBo.getFrequencyDate() != null)
              || (activeTaskFrequencyBo.getFrequencyTime() != null)
              || activeTaskBo
                  .getFrequency()
                  .equalsIgnoreCase(FdahpStudyDesignerConstants.FREQUENCY_TYPE_ONE_TIME)) {
            if (!activeTaskBo
                .getFrequency()
                .equalsIgnoreCase(activeTaskBo.getPreviousFrequency())) {
              String deleteQuery =
                  "delete from active_task_custom_frequencies where active_task_id=:activeTaskId";
              query =
                  session
                      .createSQLQuery(deleteQuery)
                      .setParameter("activeTaskId", activeTaskBo.getId());
              query.executeUpdate();
              String deleteQuery2 =
                  "delete from active_task_frequencies where active_task_id=:activeTaskId";
              query =
                  session
                      .createSQLQuery(deleteQuery2)
                      .setParameter("activeTaskId", activeTaskBo.getId());
              query.executeUpdate();
            }
            if (activeTaskFrequencyBo.getActiveTaskId() == null) {
              activeTaskFrequencyBo.setActiveTaskId(activeTaskBo.getId());
            }
            if ((activeTaskBo.getActiveTaskLifetimeStart() != null)
                && !activeTaskBo.getActiveTaskLifetimeStart().isEmpty()) {
              activeTaskFrequencyBo.setFrequencyDate(activeTaskBo.getActiveTaskLifetimeStart());
            }
            if ((activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyTime() != null)
                && !activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyTime().isEmpty()) {
              activeTaskBo
                  .getActiveTaskFrequenciesBo()
                  .setFrequencyTime(
                      FdahpStudyDesignerUtil.getFormattedDate(
                          activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyTime(),
                          FdahpStudyDesignerConstants.SDF_TIME,
                          FdahpStudyDesignerConstants.UI_SDF_TIME));
            }

            if ((activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyDate() != null)
                && !activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyDate().isEmpty()
                && !FdahpStudyDesignerUtil.isValidDateFormat(
                    activeTaskBo.getActiveTaskFrequenciesBo().getFrequencyDate(),
                    FdahpStudyDesignerConstants.SD_DATE_FORMAT)) {

              activeTaskFrequencyBo.setFrequencyDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskFrequencyBo.getFrequencyDate(),
                      FdahpStudyDesignerConstants.UI_SDF_DATE,
                      FdahpStudyDesignerConstants.SD_DATE_FORMAT));
            }

            session.saveOrUpdate(activeTaskFrequencyBo);
          }
        }
        if ((activeTaskBo.getActiveTaskCustomScheduleBo() != null)
            && (activeTaskBo.getActiveTaskCustomScheduleBo().size() > 0)) {
          String deleteQuery =
              "delete from active_task_custom_frequencies where active_task_id=:activeTaskId";
          query =
              session
                  .createSQLQuery(deleteQuery)
                  .setParameter("activeTaskId", activeTaskBo.getId());
          query.executeUpdate();
          String deleteQuery2 =
              "delete from active_task_frequencies where active_task_id=:activeTaskId";
          query =
              session
                  .createSQLQuery(deleteQuery2)
                  .setParameter("activeTaskId", activeTaskBo.getId());
          query.executeUpdate();
          for (ActiveTaskCustomScheduleBo activeTaskCustomScheduleBo :
              activeTaskBo.getActiveTaskCustomScheduleBo()) {
            if (activeTaskCustomScheduleBo.getActiveTaskId() == null) {
              activeTaskCustomScheduleBo.setActiveTaskId(activeTaskBo.getId());
            }
            if ((activeTaskCustomScheduleBo.getFrequencyStartDate() != null)
                && !activeTaskCustomScheduleBo.getFrequencyStartDate().isEmpty()) {
              activeTaskCustomScheduleBo.setFrequencyStartDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskCustomScheduleBo.getFrequencyStartDate(),
                      FdahpStudyDesignerConstants.UI_SDF_DATE,
                      FdahpStudyDesignerConstants.SD_DATE_FORMAT));
            }
            if ((activeTaskCustomScheduleBo.getFrequencyEndDate() != null)
                && !activeTaskCustomScheduleBo.getFrequencyEndDate().isEmpty()) {
              activeTaskCustomScheduleBo.setFrequencyEndDate(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskCustomScheduleBo.getFrequencyEndDate(),
                      FdahpStudyDesignerConstants.UI_SDF_DATE,
                      FdahpStudyDesignerConstants.SD_DATE_FORMAT));
            }
            if ((activeTaskCustomScheduleBo.getFrequencyStartTime() != null)
                && !activeTaskCustomScheduleBo.getFrequencyStartTime().isEmpty()) {
              activeTaskCustomScheduleBo.setFrequencyStartTime(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskCustomScheduleBo.getFrequencyStartTime(),
                      FdahpStudyDesignerConstants.SDF_TIME,
                      FdahpStudyDesignerConstants.UI_SDF_TIME));
            }
            if ((activeTaskCustomScheduleBo.getFrequencyEndTime() != null)
                && !activeTaskCustomScheduleBo.getFrequencyEndTime().isEmpty()) {
              activeTaskCustomScheduleBo.setFrequencyEndTime(
                  FdahpStudyDesignerUtil.getFormattedDate(
                      activeTaskCustomScheduleBo.getFrequencyEndTime(),
                      FdahpStudyDesignerConstants.SDF_TIME,
                      FdahpStudyDesignerConstants.UI_SDF_TIME));
            }
            activeTaskCustomScheduleBo.setxDaysSign(activeTaskCustomScheduleBo.isxDaysSign());
            if (activeTaskCustomScheduleBo.getTimePeriodFromDays() != null) {
              activeTaskCustomScheduleBo.setTimePeriodFromDays(
                  activeTaskCustomScheduleBo.getTimePeriodFromDays());
            }
            activeTaskCustomScheduleBo.setyDaysSign(activeTaskCustomScheduleBo.isyDaysSign());
            if (activeTaskCustomScheduleBo.getTimePeriodToDays() != null) {
              activeTaskCustomScheduleBo.setTimePeriodToDays(
                  activeTaskCustomScheduleBo.getTimePeriodToDays());
            }
            session.saveOrUpdate(activeTaskCustomScheduleBo);
          }
        }
      }
      transaction.commit();
    } catch (Exception e) {
      transaction.rollback();
      logger.error("StudyActiveTasksDAOImpl - saveOrUpdateActiveTask() - Error", e);
    } finally {
      if (session != null) {
        session.close();
      }
    }
    logger.exit("saveOrUpdateActiveTask() - Ends");
    return activeTaskBo;
  }