serviceAgreementExpiry property

DateTime? get serviceAgreementExpiry

Returns the service agreement expiry based on the existing service agreement details.

Will return null if there is no service agreement, or if there is no begin date or terms.

Implementation

DateTime? get serviceAgreementExpiry {
  if (hasServiceAgreement != true) return null;

  final beginDate = serviceAgreementBeginDate != null
      ? Jiffy.parseFromDateTime(serviceAgreementBeginDate!)
      : null;
  if (beginDate == null) return null;

  switch (serviceAgreementTerm) {
    case null:
      return null;
    case ServiceAgreementTerm.annual:
      return beginDate.add(years: 1).dateTime;
    case ServiceAgreementTerm.semiAnnual:
      return beginDate.add(months: 6).dateTime;
    case ServiceAgreementTerm.custom:
      return beginDate
          .add(
            months: serviceAgreementTermMonths ?? 0,
            days: serviceAgreementTermDays ?? 0,
          )
          .dateTime;
  }
}