protected decimal GetBasketSubtotal()
        {
            decimal basketTotal = 0;

            foreach (BasketItem bi in _DisplayedBasketItems)
            {
                basketTotal += (InvoiceHelper.GetInvoiceExtendedPrice(bi));
            }

            return(basketTotal);
        }
        protected decimal GetBasketGrandtotal()
        {
            decimal grandTotal = 0;

            foreach (BasketItem bi in _DisplayedBasketItems)
            {
                grandTotal += (InvoiceHelper.GetInvoiceExtendedPrice(bi) * (decimal)1.1);
            }

            return(grandTotal);
        }
Exemple #3
0
        protected decimal GetBasketSubtotal()
        {
            decimal            basketTotal  = 0;
            IList <BasketItem> displayItems = BasketHelper.GetDisplayItems(AbleContext.Current.User.Basket, true, true);

            foreach (BasketItem bi in displayItems)
            {
                basketTotal += InvoiceHelper.GetInvoiceExtendedPrice(bi);
            }

            return(basketTotal);
        }
        //USE PRERENDER TO ALLOW FOR CALCULATIONS TO BASKET CONTENTS
        protected void Page_PreRender(object sender, EventArgs e)
        {
            decimal productsTotal = 0;
            decimal subtotal      = 0;
            decimal gstTotal      = 0;
            decimal shipping      = 0;
            decimal handling      = 0;
            Dictionary <string, decimal> taxes = new Dictionary <string, decimal>();
            decimal totalTaxAmount             = 0;
            decimal coupons          = 0;
            decimal discounts        = 0;
            decimal total            = 0;
            decimal giftwrap         = 0;
            int     numberOfProducts = 0;
            decimal giftCodes        = 0;
            Basket  basket           = AbleContext.Current.User.Basket;

            foreach (BasketItem item in basket.Items)
            {
                decimal extendedPrice = InvoiceHelper.GetInvoiceExtendedPrice(item); /*TaxHelper.GetInvoiceExtendedPrice(AbleContext.Current.User.Basket, item);*/

                switch (item.OrderItemType)
                {
                case OrderItemType.Product:
                    bool countItem = !item.IsChildItem;
                    if (!countItem)
                    {
                        BasketItem parentItem = item.GetParentItem(false);
                        if (parentItem != null)
                        {
                            countItem = parentItem.Product.IsKit && parentItem.Product.Kit.ItemizeDisplay;
                        }
                    }
                    if (countItem)
                    {
                        productsTotal    += extendedPrice;
                        subtotal         += extendedPrice;
                        gstTotal         += ((extendedPrice * (decimal)1.1) - extendedPrice);
                        numberOfProducts += item.Quantity;
                    }
                    else
                    {
                        // zero out the ext price - it is included with the parent
                        extendedPrice = 0;
                    }
                    break;

                case OrderItemType.Shipping:
                    shipping += extendedPrice;
                    break;

                case OrderItemType.Handling:
                    BasketShipment shipment = item.Shipment;
                    if (shipment != null && shipment.ShipMethod != null && shipment.ShipMethod.SurchargeIsVisible)
                    {
                        handling += extendedPrice;
                    }
                    else
                    {
                        shipping += extendedPrice;
                    }
                    break;

                case OrderItemType.Tax:
                    if (taxes.ContainsKey(item.Name + ":"))
                    {
                        taxes[item.Name + ":"] += extendedPrice;
                    }
                    else
                    {
                        taxes[item.Name + ":"] = extendedPrice;
                    }
                    totalTaxAmount += extendedPrice;
                    break;

                case OrderItemType.Coupon:
                    coupons += extendedPrice;
                    break;

                case OrderItemType.GiftWrap:
                    giftwrap += extendedPrice;
                    break;

                case OrderItemType.Discount:
                    discounts += extendedPrice;
                    subtotal  += extendedPrice;
                    break;

                case OrderItemType.GiftCertificatePayment:
                    giftCodes += extendedPrice;
                    break;

                default:
                    subtotal += extendedPrice;
                    break;
                }
                total += (extendedPrice * (decimal)1.1);
            }
            ProductTotalLabel.Text = string.Format(ProductTotalLabel.Text, numberOfProducts);
            ProductTotal.Text      = productsTotal.LSCurrencyFormat("ulc");
            Subtotal.Text          = subtotal.LSCurrencyFormat("ulc");
            GstTotal.Text          = gstTotal.LSCurrencyFormat("ulc");
            // DISCOUNT ROW VISIBILITY
            if (discounts != 0)
            {
                trDiscounts.Visible = true;
                Discounts.Text      = discounts.LSCurrencyFormat("ulc");
            }
            else
            {
                trDiscounts.Visible = false;
            }

            if (giftwrap != 0)
            {
                trGiftWrap.Visible = true;
                GiftWrap.Text      = giftwrap.LSCurrencyFormat("ulc");
            }
            else
            {
                trGiftWrap.Visible = false;
            }

            if (this.ShowTaxes &&
                AbleContext.Current.User.PrimaryAddress.IsValid &&
                TaxHelper.GetEffectiveInvoiceDisplay(AbleContext.Current.User) != TaxInvoiceDisplay.Included)
            {
                if (ShowTaxBreakdown)
                {
                    TaxesBreakdownRepeater.DataSource = taxes;
                    TaxesBreakdownRepeater.DataBind();
                    TaxesBreakdownRepeater.Visible = true;
                    trTax.Visible = false;
                }
                else
                {
                    TaxesLabel.Text = totalTaxAmount.LSCurrencyFormat("ulc");
                    TaxesBreakdownRepeater.Visible = false;
                    trTax.Visible = true;
                }
            }
            else
            {
                // TAXES ARE NOT DISPLAYED, REMOVE ANY TAX FROM THE TOTAL
                total -= totalTaxAmount;
                TaxesBreakdownRepeater.Visible = false;
                trTax.Visible = false;
                trTaxCloudTaxExemption.Visible = false;
            }

            // SHIPPING SHOULD NOT BE VISIBLE WHEN USER BILLING ADDRESS IS NOT SELECTED
            Shipping.Text = shipping.LSCurrencyFormat("ulc");
            if (!basket.User.PrimaryAddress.IsValid)
            {
                trShipping.Visible = false;
            }
            else if (shipping > 0)
            {
                trShipping.Visible = true;
            }
            else
            {
                trShipping.Visible = ShowShipping;
            }

            if (handling > 0 && trShipping.Visible)
            {
                trHandling.Visible = true;
                Handling.Text      = handling.LSCurrencyFormat("ulc");
            }
            else
            {
                trHandling.Visible = false;
            }

            if (giftCodes != 0)
            {
                trGifCodes.Visible = true;
                GifCodes.Text      = giftCodes.LSCurrencyFormat("ulc");
            }
            else
            {
                trGifCodes.Visible = false;
            }

            // COUPON ROW VISIBILITY
            if (coupons != 0)
            {
                trCoupon.Visible = true;
                Coupons.Text     = coupons.LSCurrencyFormat("ulc");
            }
            else
            {
                trCoupon.Visible = false;
            }

            trCouponsDivider.Visible = trCoupon.Visible || trGifCodes.Visible;

            Total.Text = total.LSCurrencyFormat("ulc");
            TotalPendingMessagePanel.Visible = this.ShowMessage;

            TaxCloudProvider taxProvider = ProviderHelper.LoadTaxProvider <TaxCloudProvider>();

            if (taxProvider != null && taxProvider.EnableTaxCloud && ShowTaxes && taxes.Count > 0 && taxProvider.UseTaxExemption)
            {
                trTaxCloudTaxExemption.Visible = true;
            }
        }