public void GetCoupon_UnitOfWorkReturnsCoupon_UutReturnsCorrectType() { var key = new object[] { defaultCoupon.BarName, defaultCoupon.CouponID }; mockUnitOfWork.CouponRepository.Get(key) .Returns(defaultCoupon); var result = uut.GetCoupon(defaultCouponDto.CouponID, defaultCouponDto.BarName); Assert.That(result, Is.TypeOf <OkObjectResult>()); }
private void BindCoupon() { if (CouponID != Null.NullInteger) { var objCouponController = new CouponController(); var objCoupon = objCouponController.GetCoupon(CouponID, ModuleId); if (objCoupon == null) { Response.Redirect(EditUrl("EditCoupons")); } else { txtCode.Text = objCoupon.Code; if (lstDiscountType.Items.FindByValue(objCoupon.DiscountType.ToString()) != null) { lstDiscountType.SelectedValue = objCoupon.DiscountType.ToString(); } txtAmount.Text = objCoupon.Amount.ToString(); txtQuantity.Text = objCoupon.Quantity.ToString(); txtStartDate.SelectedDate = objCoupon.StartDate; txtEndDate.SelectedDate = objCoupon.EndDate; chkIsActive.Checked = objCoupon.IsActive; // Allow users to delete coupon cmdDelete.Visible = true; } } }
protected void Page_Load(object sender, EventArgs e) { // Get Coupon ID _couponId = (int)DataSource; // Handle CouponID=0 as Null.NullInteger if (_couponId == 0) { _couponId = Null.NullInteger; } if (Page.IsPostBack == false) { cmdDelete.Attributes.Add("onClick", "javascript:return confirm('" + Localization.GetString("DeleteItem") + "');"); if (_couponId != Null.NullInteger) { // Get the selected coupon to edit CouponInfo coupon = _controller.GetCoupon(PortalId, _couponId); if (coupon != null) { txtCode.Text = coupon.Code; txtDescription.Text = coupon.Description; rblRuleType.SelectedIndex = (int)coupon.RuleType; decimal ruleAmount = coupon.RuleAmount; txtRuleAmount.Text = Null.IsNull(ruleAmount) ? "0" : ruleAmount.ToString("0.00"); rblDiscountType.SelectedIndex = (int)coupon.DiscountType; int discountPercentage = coupon.DiscountPercentage; txtDiscountPercentage.Text = Null.IsNull(discountPercentage) ? "0" : discountPercentage.ToString("0"); decimal discountAmount = coupon.DiscountAmount; txtDiscountAmount.Text = Null.IsNull(discountAmount) ? "0" : discountAmount.ToString("0.00"); rblApplyTo.SelectedIndex = (int)coupon.ApplyTo; hfItemID.Value = coupon.ItemID.ToString(); chkIncludeSubCategories.Checked = coupon.IncludeSubCategories; txtStartDate.Text = coupon.StartDate.ToShortDateString(); rblValidity.SelectedIndex = (int)coupon.Validity; txtEndDate.Text = coupon.EndDate.ToShortDateString(); cmdDelete.Visible = true; } } else { // Initialize default values txtRuleAmount.Text = "0"; txtDiscountPercentage.Text = "0"; txtDiscountAmount.Text = "0"; hfItemID.Value = "-1"; txtStartDate.Text = DateTime.Now.ToShortDateString(); txtEndDate.Text = ""; } // Update UI elements trRuleAmount.Visible = rblRuleType.SelectedIndex != 0; DisplayDiscountTypeRows(); DisplaySelectedItem((CouponApplyTo)rblApplyTo.SelectedIndex, Int32.Parse(hfItemID.Value)); DisplayValidityRows(); } MakeCalendars(); }
protected void OnDeleteClick(object sender, EventArgs e) { try { if (CouponID != Null.NullInteger) { // Update Coupon var objCouponController = new CouponController(); var objCoupon = objCouponController.GetCoupon(CouponID, ModuleId); if (objCoupon != null) { objCouponController.DeleteCoupon(objCoupon); } } Response.Redirect(EditUrl("EditCoupons")); } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }
protected void OnSaveClick(object sender, EventArgs e) { try { if (Page.IsValid) { if (CouponID != Null.NullInteger) { // Update Coupon var objCouponController = new CouponController(); var objCoupon = objCouponController.GetCoupon(CouponID, ModuleId); if (objCoupon != null) { objCoupon.ModuleID = ModuleId; objCoupon.Code = txtCode.Text; objCoupon.DiscountType = (DiscountType)Enum.Parse(typeof(DiscountType), lstDiscountType.SelectedValue); Int32 amount; if (!Int32.TryParse(txtAmount.Text, out amount)) { amount = 0; } if (amount < 0) { amount = 0; } objCoupon.Amount = amount; Int32 quantity; if (Int32.TryParse(txtQuantity.Text, out quantity)) { if (quantity > 0) { objCoupon.Quantity = quantity; } } objCoupon.Quantity = null; if (txtStartDate.SelectedDate.HasValue) { objCoupon.StartDate = txtStartDate.SelectedDate.Value; } if (txtEndDate.SelectedDate.HasValue) { objCoupon.EndDate = txtEndDate.SelectedDate.Value; } objCoupon.IsActive = chkIsActive.Checked; objCouponController.UpdateCoupon(objCoupon); } } else { // Add Coupon var objCoupon = new Coupon(); objCoupon.ModuleID = ModuleId; objCoupon.Code = txtCode.Text; objCoupon.DiscountType = (DiscountType)Enum.Parse(typeof(DiscountType), lstDiscountType.SelectedValue); Int32 amount; if (!Int32.TryParse(txtAmount.Text, out amount)) { amount = 0; } if (amount < 0) { amount = 0; } objCoupon.Amount = amount; Int32 quantity; if (Int32.TryParse(txtQuantity.Text, out quantity)) { if (quantity > 0) { objCoupon.Quantity = quantity; } } if (txtStartDate.SelectedDate.HasValue) { objCoupon.StartDate = txtStartDate.SelectedDate.Value; } if (txtEndDate.SelectedDate.HasValue) { objCoupon.EndDate = txtEndDate.SelectedDate.Value; } objCoupon.IsActive = chkIsActive.Checked; var objCouponController = new CouponController(); objCouponController.AddCoupon(objCoupon); } Response.Redirect(EditUrl("EditCoupons")); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } }
/// <summary> /// Calculate the tax and shipping cost for the order. /// </summary> private void CalculateTaxAndShipping(CouponInfo coupon) { if (Order != null) { List <ItemInfo> cartItems = CurrentCart.GetItems(PortalId, StoreSettings.SecureCookie); IShippingInfo shippingInfo; // Calculate Shipping if enabled IShippingProvider shippingProvider = StoreController.GetShippingProvider(StoreSettings.ShippingName); if (StoreSettings.NoDelivery || Shipping == ShippingMode.None || ApplyFreeShipping(cartItems, ShippingAddress.CountryCode)) { shippingInfo = shippingProvider.GetFreeShipping(); } else { shippingInfo = shippingProvider.CalculateShippingFee(PortalId, BillingAddress, ShippingAddress, cartItems); } if (shippingInfo == null) { plhCheckout.Visible = false; lblError.Text = String.Format(Localization.GetString("ErrorShippingRates", LocalResourceFile), StoreSettings.DefaultEmailAddress); plhError.Visible = true; return; } plhCheckout.Visible = true; plhError.Visible = false; // Check for coupon validity bool couponIsValid = false; if (StoreSettings.AllowCoupons) { int couponID = Order.CouponID; if (couponID != Null.NullInteger) { if (coupon == null || coupon.CouponID != couponID) { CouponController couponController = new CouponController(); coupon = couponController.GetCoupon(PortalId, couponID); } couponIsValid = ValidateCoupon(coupon, Order); } divStoreCheckoutCoupon.Visible = true; } else { divStoreCheckoutCoupon.Visible = false; } // Apply Discount if coupon is valid if (couponIsValid) { decimal discountTotal = 0; switch (coupon.DiscountType) { case CouponDiscount.Percentage: decimal discountPercentage = Convert.ToDecimal(coupon.DiscountPercentage) / 100; foreach (ItemInfo cartItem in cartItems) { switch (coupon.ApplyTo) { case CouponApplyTo.Order: cartItem.Discount = cartItem.SubTotal * discountPercentage; discountTotal += cartItem.Discount; break; case CouponApplyTo.Category: if (ValidateCategoryCoupon(coupon, cartItem.CategoryID)) { cartItem.Discount = cartItem.SubTotal * discountPercentage; discountTotal += cartItem.Discount; } break; case CouponApplyTo.Product: if (cartItem.ProductID == coupon.ItemID) { cartItem.Discount = cartItem.SubTotal * discountPercentage; discountTotal += cartItem.Discount; } break; } } break; case CouponDiscount.FixedAmount: int itemsCount = cartItems.Count; foreach (ItemInfo cartItem in cartItems) { switch (coupon.ApplyTo) { case CouponApplyTo.Order: cartItem.Discount = coupon.DiscountAmount / itemsCount; discountTotal = coupon.DiscountAmount; break; case CouponApplyTo.Category: if (ValidateCategoryCoupon(coupon, cartItem.CategoryID)) { cartItem.Discount = coupon.DiscountAmount * cartItem.Quantity; discountTotal += cartItem.Discount; } break; case CouponApplyTo.Product: if (cartItem.ProductID == coupon.ItemID) { cartItem.Discount = coupon.DiscountAmount * cartItem.Quantity; discountTotal += cartItem.Discount; } break; } } break; case CouponDiscount.FreeShipping: discountTotal = shippingInfo.Cost; // If Free Shipping exclude amount before tax computation! shippingInfo.Cost = 0; break; } Order.Discount = -discountTotal; lblDiscount.Text = Order.Discount.ToString("C", _localFormat); tbDiscount.Visible = Order.Discount > 0; } else { // Reset order discount Order.CouponID = Null.NullInteger; Order.Discount = Null.NullDecimal; foreach (ItemInfo cartItem in cartItems) { cartItem.Discount = 0; } tbDiscount.Visible = false; } // Add Surcharges if any decimal fixedSurcharge = PaymentControl.SurchargeFixed; decimal percentSurcharge = PaymentControl.SurchargePercent; if (fixedSurcharge != 0 || percentSurcharge != 0) { Order.ShippingCost = shippingInfo.Cost + fixedSurcharge + ((Order.OrderNetTotal + shippingInfo.Cost + fixedSurcharge) * (percentSurcharge / 100)); shippingInfo.Cost = Order.ShippingCost; } else { Order.ShippingCost = shippingInfo.Cost; } plhShippingCheckout.Visible = Order.ShippingCost > 0; // Calculate Tax Amount ITaxProvider taxProvider = StoreController.GetTaxProvider(StoreSettings.TaxName); ITaxInfo taxInfo = taxProvider.CalculateSalesTax(PortalId, cartItems, shippingInfo, BillingAddress); if (taxInfo.ShowTax && taxInfo.SalesTax > 0) { plhTaxCheckout.Visible = true; Order.TaxTotal = taxInfo.SalesTax; Order.ShippingTax = taxInfo.ShippingTax; } else { plhTaxCheckout.Visible = false; Order.TaxTotal = 0; Order.ShippingTax = 0; } } }