ASP.NET MVC 计算运输总量

2024-01-03

如何计算 razor html 中的运费总额?第一件商品的运费为 3.99 美元,每件附加商品的运费为 0.99 美元。

 @{
     double itemTotal = 0;
     double subTotal = 0;
     int totalQty = 0;
     double discount = 0.8;
     double shippingBase = 3.99;
     double shippingItem = 0.99;

 }

    @foreach (var item in Model)
    {

        double price = (double)item.price / 100 * discount;
        itemTotal = @item.qty * price;
        subTotal += itemTotal;
        totalQty += @item.qty;

使用这个语句

第一件商品的运费为 3.99 美元,每件商品的运费为 0.99 美元 附加项目。

提取以下数据来创建运费模型。

public class ShippingCharge {
    public decimal basePrice { get; set; }
    public int baseCount { get; set; }
    public decimal unitPrice { get; set; }
}

使用 OP 中的示例将填充为

//Shipping charges are 
shippingCharge = new ShippingCharge() {
    // $3.99 
    basePrice = 3.99M,
    //for the first item 
    baseCount = 1,
    // $.99 for each additional item. 
    unitPrice = 0.99M
};

完成此操作后,使用以下算法来计算给定商品数量的运费。

decimal? CalculateShippingTotal(int itemCount, ShippingCharge charge) {
    decimal? total = null;
    if (charge != null) {
        var basePrice = charge.basePrice;
        var baseCount = charge.baseCount;

        if (itemCount > baseCount) {
            var qtyDifference = itemCount - baseCount;
            var additionalCost = qtyDifference * charge.unitPrice;

            total = basePrice + additionalCost;
        } else {
            total = itemCount * basePrice;
        }
    }
    return total;
}

以下单元测试验证了计算总运费的算法的正确性。

[TestMethod]
public void _TotalShipping_For_One_Item() {
    //Arrange
    var totalQty = 1;
    var expected = 3.99M;

    //Act
    var actual = CalculateShippingTotal(totalQty, shippingCharge);

    //Assert
    actual.ShouldBeEquivalentTo(expected);
}

[TestMethod]
public void _TotalShipping_For_Two_Items() {
    //Arrange
    var totalQty = 2;
    var expected = 4.98M;

    //Act
    var actual = CalculateShippingTotal(totalQty, shippingCharge);

    //Assert
    actual.ShouldBeEquivalentTo(expected);
}

[TestMethod]
public void _TotalShipping_For_Three_Items() {
    //Arrange
    var totalQty = 3;
    var expected = 5.97M;

    //Act
    var actual = CalculateShippingTotal(totalQty, shippingCharge);

    //Assert
    actual.ShouldBeEquivalentTo(expected);
}

这个答案具体针对如何根据OP而不是折扣小计计算运费。这应该很简单,您可以通过统计商品、数量和价格来进行计算。完成后,使用商品数量和费用来计算运费。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 计算运输总量 的相关文章

随机推荐