cartGetTotalForAllServices2 function

PriceTotalForCardData cartGetTotalForAllServices2(
  1. List<ProductData> _cart
)

Implementation

PriceTotalForCardData cartGetTotalForAllServices2(List<ProductData> _cart) {
  double subtotal = 0;
  double coupon = 0;
  double tax = 0;
  double total = 0;
  double toAdmin = 0;
  for (var service in _cart){
    if ((cartCurrentProvider != null && service.providers.isNotEmpty && service.providers[0] == cartCurrentProvider!.id)
        || (service.providers.isEmpty && cartCurrentProvider != null && cartCurrentProvider!.id == "root")){
      if (service.thisIsArticle) {
        currentArticle = service;
        var t = articleGetTotalPrice();
        if (t != null) {
          t *= service.countProduct;
          var _tax = service.tax / 100 * t;
          subtotal += t;
          tax += _tax;
          total += (t + _tax);
          toAdmin += (getSubTotalWithCoupon() * service.taxAdmin / 100);
        }
      } else {
        countProduct = service.countProduct;
        setDataToCalculate(null, service);
        subtotal += getSubTotalWithCoupon();
        coupon += getCoupon();
        tax += getTax();
        total += getTotal();
        toAdmin += (getSubTotalWithCoupon() * service.taxAdmin / 100);
      }
    }
  }
  return PriceTotalForCardData(subtotal, coupon, toAdmin, tax, total,
    getPriceString(coupon),
    getPriceString(tax),
    getPriceString(total),
  );
}