private static void CalculateRateByProduct(Mall_Product data, out string RateTitle, out decimal RateAmount, out int RateID, out int RateType, int ProvinceID = 0, int Quantity = 0) { RateTitle = "快递 免邮"; RateAmount = 0; RateID = 0; RateType = 0; if (data == null) { return; } if (data.ShipRateID <= 0) { return; } var ship_rate = Mall_ShipRate.GetMall_ShipRate(data.ShipRateID); if (ship_rate == null) { return; } RateID = ship_rate.ID; RateType = ship_rate.RateType; var ship_rate_list = Mall_ShipRateDetail.GetMall_ShipRateDetailListByRateID(ship_rate.ID, ProvinceID: ProvinceID); if (ship_rate_list.Length > 0) { RateAmount = CalculateRateAmount(ship_rate_list[0], Quantity); if (RateAmount > 0) { RateTitle = "快递"; } } else if (ship_rate.RateType == 2) { RateTitle = ship_rate.RateTypeDesc; } else { var default_ship_rate = Mall_ShipRateDetail.GetDefaultMall_ShipRateDetailByRateID(ship_rate.ID); if (default_ship_rate != null) { RateAmount = CalculateRateAmount(default_ship_rate, Quantity); if (RateAmount > 0) { RateTitle = "快递"; } } } }
private static void CalculateRateByProductOutDic(Mall_ShipRate[] ship_rate_list, out List <Dictionary <string, object> > ShipRateList, int ProvinceID = 0, int Quantity = 0, int BusinessID = 0) { ShipRateList = new List <Dictionary <string, object> >(); if (ship_rate_list.Length == 0) { return; } foreach (var ship_rate in ship_rate_list) { var dic = new Dictionary <string, object>(); dic["BusinessID"] = BusinessID; dic["RateID"] = ship_rate.ID; dic["RateType"] = ship_rate.RateType; string RateTitle = ship_rate.RateTile; decimal RateAmount = 0; var ship_rate_detail_list = Mall_ShipRateDetail.GetMall_ShipRateDetailListByRateID(ship_rate.ID, ProvinceID: ProvinceID); if (ship_rate_detail_list.Length > 0) { RateAmount = CalculateRateAmount(ship_rate_detail_list[0], Quantity); } else { var default_ship_rate = Mall_ShipRateDetail.GetDefaultMall_ShipRateDetailByRateID(ship_rate.ID); if (default_ship_rate != null) { RateAmount = CalculateRateAmount(default_ship_rate, Quantity); } } dic["name"] = RateTitle; dic["amount"] = RateAmount; dic["amountdesc"] = "¥" + RateAmount.ToString("0.00"); dic["id"] = ship_rate.ID; dic["text"] = RateTitle; dic["selected"] = ""; dic["isdefault"] = ship_rate.IsDefault; ShipRateList.Add(dic); } }