subscriptionTotalPrice method

num subscriptionTotalPrice()

Implementation

num subscriptionTotalPrice() {
  if (subscriptionType.value == SubscriptionType.corporateAddon) {
    if (passengerAddonsPricing.value == null) {
      return 0;
    }

    var discount = 0;
    for (var d in passengerAddonsPricing.value!.discounts!) {
      if (corporatePassengersNumber.value >= (d.minPassengers ?? 0) &&
          corporatePassengersNumber.value <=
              (d.maxPassenger ?? double.maxFinite)) {
        if (d.discount is int) {
          discount = d.discount;
        }
      }
    }
    return (passengerAddonsPricing.value!.newPassengerPrice ?? 0) *
        corporatePassengersNumber.value *
        (1 - (discount / 100));
  }

  if (subscriptionType.value != SubscriptionType.upgrade ||
      selectedUpgradeOption.value == UpgradeOption.upgradeNewYear) {
    return selectedPackage.value?.price ?? 0;
  }

  return selectedPackage.value?.discountedPrice ?? 0;
}