public boolean processSaveAwardDetailsAndDates(
      AwardDetailsAndDatesSaveEvent awardDetailsAndDatesSaveEvent) {
    boolean valid = true;
    Award award = awardDetailsAndDatesSaveEvent.getAward();
    if (award.getAnticipatedTotal().isLessThan(award.getObligatedTotal())) {
      valid = false;
      reportError(ANTICIPATED_AMOUNT_PROPERTY_NAME, KeyConstants.ERROR_ANTICIPATED_AMOUNT);
    }
    if (award.getObligatedTotal().isLessThan(KualiDecimal.ZERO)) {
      valid = false;
      reportError(OBLIGATED_AMOUNT_PROPERTY_NAME, KeyConstants.ERROR_OBLIGATED_AMOUNT_NEGATIVE);
    }
    if (award.getAnticipatedTotal().isLessThan(KualiDecimal.ZERO)) {
      valid = false;
      reportError(ANTICIPATED_AMOUNT_PROPERTY_NAME, KeyConstants.ERROR_ANTICIPATED_AMOUNT_NEGATIVE);
    }
    if (award.getObligatedTotal().isGreaterThan(new KualiDecimal(0))
        &&
        // award.getAwardEffectiveDate() == null) {
        award
                .getAwardAmountInfos()
                .get(award.getAwardAmountInfos().size() - 1)
                .getCurrentFundEffectiveDate()
            == null) {
      valid = false;
      reportError(AWARD_EFFECTIVE_DATE_PROPERTY_NAME, KeyConstants.ERROR_AWARD_EFFECTIVE_DATE);
    }
    if (award.getObligatedTotal().isGreaterThan(new KualiDecimal(0))
        &&
        // award.getObligationExpirationDate() == null) {
        award
                .getAwardAmountInfos()
                .get(award.getAwardAmountInfos().size() - 1)
                .getObligationExpirationDate()
            == null) {
      valid = false;
      reportError(
          OBLIGATION_EXPIRATION_DATE_PROPERTY_NAME, KeyConstants.ERROR_OBLIGATION_EXPIRATION_DATE);
    }

    return valid;
  }