protected int sid = 0;//结算供应商ID public void LoadPage() { if (CurrentUser.User_Address_id == 0) { //未设置收货地区的话,不显示内容 Response.Write(""); Response.End(); return; } address = B_Lebi_User_Address.GetModel(CurrentUser.User_Address_id); if (address == null) { //未设置收获地区的话,不显示内容 Response.Write(""); Response.End(); return; } CurrentUser.Transport_Price_id = CurrentUser.Transport_Price_id == "" ? "0" : CurrentUser.Transport_Price_id; if (TPrice == null) { TPrice = new Lebi_Transport_Price(); } if (Transport == null) { Transport = new Lebi_Transport(); } sid = RequestTool.RequestInt("sid", 0); basket = new Basket(sid); Shops = new List <BasketShop>(); if (basket.IsMutiCash) { foreach (Shop.Model.BasketShop shop in basket.Shops) { if (shop.Shop.id == basket.cashsupplierid) { Shops.Add(shop); } } } else { Shops = basket.Shops; } //检查运输方式是否设置正确 foreach (Shop.Model.BasketShop shop in Shops) { Lebi_Transport st = GetTransport(shop.Shop.id); if (st.id == 0) { havedefault = false; } } }
/// <summary> /// 计算购物车商品的运费 /// </summary> /// <param name="price"></param> /// <returns></returns> public decimal GetYunFei(BasketShop shop) { if (shop.IsTransportPriceOne) { return(shop.Money_Transport_One); } if (CurrentUser.Transport_Price_id != "" && (!CurrentUser.Transport_Price_id.Contains("undefined"))) { Lebi_Transport_Price price = B_Lebi_Transport_Price.GetModel("id in (" + CurrentUser.Transport_Price_id + ") and Supplier_id=" + shop.Shop.id + ""); return(GetYunFei(price, shop)); } return(0); }
/// <summary> /// 编辑配送区域价格 /// </summary> public void Transport_Price_Edit() { if (!Power("supplier_transport_list", "配送方式")) { AjaxNoPower(); return; } int id = RequestTool.RequestInt("id", 0); int tid = RequestTool.RequestInt("tid", 0); Lebi_Transport tmodel = B_Lebi_Transport.GetModel(tid); Lebi_Transport_Price model = B_Lebi_Transport_Price.GetModel("id = " + id + " and Supplier_id = " + CurrentSupplier.id + ""); if (model != null) { int Area_id = model.Area_id; B_Lebi_Transport_Price.SafeBindForm(model); model.Transport_id = tmodel.id; model.Area_id = Area_id; B_Lebi_Transport_Price.Update(model); Log.Add("编辑配送区域", "Transport_Price", id.ToString(), CurrentSupplier, tmodel.Name); } else { string aids = RequestTool.RequestString("Area_ids"); if (aids == "") { aids = "0"; } List <Lebi_Area> areas = B_Lebi_Area.GetList("id in (lbsql{" + aids + "})", ""); model = new Lebi_Transport_Price(); foreach (Lebi_Area area in areas) { //避免重复添加 int count = B_Lebi_Transport_Price.Counts("Transport_id=" + tmodel.id + " and Area_id=" + area.id + " and Supplier_id = " + CurrentSupplier.id + ""); if (count > 0) { continue; } B_Lebi_Transport_Price.SafeBindForm(model); model.Area_id = area.id; model.Transport_id = tmodel.id; model.Supplier_id = CurrentSupplier.id; B_Lebi_Transport_Price.Add(model); } Log.Add("添加配送区域", "Transport_Price", id.ToString(), CurrentSupplier, tmodel.Name); } Response.Write("{\"msg\":\"OK\"}"); }
/// <summary> /// 获得当前运输方式 /// </summary> /// <param name="shopid"></param> /// <returns></returns> public Lebi_Transport GetTransport(int shopid) { Lebi_Transport_Price price = B_Lebi_Transport_Price.GetModel("id in (" + CurrentUser.Transport_Price_id + ") and Supplier_id=" + shopid + ""); if (price == null) { return(new Lebi_Transport()); } Lebi_Transport model = B_Lebi_Transport.GetModel(price.Transport_id); if (model == null) { model = new Lebi_Transport(); } return(model); }
public static decimal GetYunFei(List <Lebi_User_Product> pros, Lebi_Transport_Price price, decimal ordermoney = 0) { decimal weight = 0; decimal tiji = 0; foreach (Lebi_User_Product pro in pros) { Lebi_Product product = B_Lebi_Product.GetModel(pro.Product_id); if (product == null) { continue; } weight = weight + product.Weight * pro.count; //总重量:单位:克 tiji = tiji + product.VolumeL * product.VolumeH * product.VolumeW * pro.count; //总体积:单位:立方厘米 } return(GetYunFei(weight, tiji, price, ordermoney)); }
public decimal GetYunFei(Lebi_Transport_Price price, BasketShop shop) { if (shop.IsTransportPriceOne) { return(shop.Money_Transport_One); } //Lebi_Transport_Price price = B_Lebi_Transport_Price.GetModel("Supplier_id in (" + CurrentUser.Transport_Price_id + ") and Supplier_id=" + shop.Shop.id + ""); List <Lebi_User_Product> pros = shop.Products; try { return(EX_Area.GetYunFei(pros, price, shop.Money_Product)); } catch { return(0); } }
/// <summary> /// 验证运输区域与运费区域是否匹配 /// </summary> /// <returns></returns> public static bool CheckAreaPrice(Lebi_Transport_Price price, int area_id) { if (price == null) { return(false); } Lebi_Transport_Price p = GetAreaPrice(price.Transport_id, area_id, price.Supplier_id); if (p != null) { if (p.id == price.id) { return(true); } return(false); } return(false); }
/// <summary> /// 获取指定运输公司,指定区域的价格 /// </summary> /// <returns></returns> public static Lebi_Transport_Price GetAreaPrice(int transport_id, int area_id, int supplierid) { Lebi_Transport_Price price = B_Lebi_Transport_Price.GetModel("Transport_id=" + transport_id + " and Area_id=" + area_id + " and Supplier_id=" + supplierid + ""); if (price == null) { Lebi_Area area = B_Lebi_Area.GetModel(area_id); if (area != null) { if (area.Parentid > 0) { return(GetAreaPrice(transport_id, area.Parentid, supplierid)); } return(null); } return(null); } return(price); }
/// <summary> /// 生成新订单 /// </summary> public void order_save() { if (CurrentUserLevel.BuyRight != 1) { Response.Write("{\"msg\":\"" + Tag("您所在的分组不允许下单") + "\"}"); return; } int pay_id = RequestTool.RequestInt("pay_id", 0); int sid = RequestTool.RequestInt("sid", 0);//结算供应商ID int onlinepay_id = RequestTool.RequestInt("onlinepay_id", 0); decimal Money_UserCut = RequestTool.RequestDecimal("Money_UserCut", 0); int usermoneytype = RequestTool.RequestInt("usermoneytype", 0); string Pay_Password = RequestTool.RequestSafeString("Pay_Password"); Lebi_PickUp pick = null; DateTime pickdate = System.DateTime.Now; if (usermoneytype == 3) { if (Pay_Password == "") { Response.Write("{\"msg\":\"" + Tag("请输入支付密码") + "\"}"); return; } else { if (EX_User.MD5(Pay_Password) != CurrentUser.Pay_Password) { Response.Write("{\"msg\":\"" + Tag("支付密码不正确") + "\"}"); return; } } if (Money_UserCut > 0 && Money_UserCut > CurrentUser.Money) { Response.Write("{\"msg\":\"" + Tag("余额不足") + "\"}"); return; } } Lebi_Pay pay = B_Lebi_Pay.GetModel(pay_id); if (pay == null) { Response.Write("{\"msg\":\"" + Tag("请设置付款方式") + "\"}"); return; } Basket basket = new Basket(sid); int CustomOfflineMoney = RequestTool.RequestInt("CustomOfflineMoney" + pay.id, 0); decimal OfflineMoney = RequestTool.RequestDecimal("OfflineMoney" + pay.id, 0); if (CustomOfflineMoney == 1) { if (pay.Code != "OfflinePay" && pay.Code != "OnlinePay") { //订单如果选择了线下支付,并且非货到付款 if (OfflineMoney < basket.Money_Product) { Response.Write("{\"msg\":\"" + Tag("打款金额不能少于订单金额") + "\"}"); return; } } } if (pay.Code == "OnlinePay") { Lebi_OnlinePay onpay = B_Lebi_OnlinePay.GetModel(onlinepay_id); if (onpay == null) { Response.Write("{\"msg\":\"" + Tag("请设置付款方式") + "\"}"); return; } } if (basket.Products.Count == 0) { Response.Write("{\"msg\":\"" + Tag("购物车为空") + "\"}"); return; } foreach (Lebi_User_Product up in basket.Products) { if (up.count < 1) { Response.Write("{\"msg\":\"" + Tag("购物车异常") + "\"}"); return; } } if (basket.Point_Buy > 0 && (basket.Point_Buy > CurrentUser.Point)) { Response.Write("{\"msg\":\"" + Tag("积分不足") + "\"}"); return; } int ProductCount = 0; foreach (Lebi_User_Product up in basket.Products) { Lebi_Product pro = B_Lebi_Product.GetModel(up.Product_id); if (pro.Type_id_ProductType != 323) { ProductCount += up.count; } //<-{ 判断是否上架状态 by lebi.kingdge 2015-02-10 if (pro.Type_id_ProductStatus != 101) { Response.Write("{\"msg\":\"" + Lang(pro.Name) + " " + Tag("该商品已经下架") + "\"}"); return; } //}-> if (pro.Type_id_ProductType != 324) { int levelcount = ProductLevelCount(pro); if (up.count < levelcount) { Response.Write("{\"msg\":\"" + Lang(pro.Name) + " " + Tag("起订量") + " " + levelcount + "\"}"); return; } } if (pro.Type_id_ProductType != 320 && pro.Time_Expired > System.DateTime.Now) { if (pro.Count_Limit < up.count && pro.Count_Limit > 0) { Response.Write("{\"msg\":\"" + Tag("购买数量大于限购数量") + "\"}"); return; } } if (SYS.IsNullStockSale != "1") { if (pro.Count_Stock - pro.Count_Freeze < up.count && pro.Type_id_ProductType != 324) { Response.Write("{\"msg\":\"" + Lang(pro.Name) + "" + Tag("库存不足") + "\"}"); return; } } } //验证当前分组允许的最低订单提交金额 if (CurrentUserLevel.OrderSubmit > 0) { if (basket.Money_Product < CurrentUserLevel.OrderSubmit) { Response.Write("{\"msg\":\"" + Tag("单笔订单最低金额为:") + FormatMoney(CurrentUserLevel.OrderSubmit) + "\"}"); return; } } //验证当前分组允许的最低订单提交数量 if (CurrentUserLevel.OrderSubmitCount > 0 && ProductCount > 0) { if (ProductCount < CurrentUserLevel.OrderSubmitCount) { Response.Write("{\"msg\":\"" + Tag("单笔订单最低数量为:") + CurrentUserLevel.OrderSubmitCount + "\"}"); return; } } Lebi_User_Address shouhuo = B_Lebi_User_Address.GetModel(CurrentUser.User_Address_id); if (shouhuo == null) { Response.Write("{\"msg\":\"" + Tag("未设置收获地址") + "\"}"); return; } if (CurrentUser.Transport_Price_id == "") { Response.Write("{\"msg\":\"" + Tag("运费设置错误") + "\"}"); return; } foreach (BasketShop shop in basket.Shops) { Lebi_Transport_Price tprice = B_Lebi_Transport_Price.GetModel("id in (lbsql{" + CurrentUser.Transport_Price_id + "}) and Supplier_id=" + shop.Shop.id + ""); if (tprice == null) { Response.Write("{\"msg\":\"" + Tag("运费设置错误") + "\"}"); return; } Lebi_Transport transport = B_Lebi_Transport.GetModel(tprice.Transport_id); if (tprice == null) { Response.Write("{\"msg\":\"" + Tag("运费设置错误") + "\"}"); return; } //检查运费设置是否正确 if (!EX_Area.CheckAreaPrice(tprice, shouhuo.Area_id)) { Response.Write("{\"msg\":\"" + Tag("运费设置错误") + "\"}"); return; } if (transport.Type_id_TransportType == 332)//自提检查 { int pickup_id = RequestTool.RequestInt("pickup_id" + shop.Shop.id); string pickdate_ = RequestTool.RequestString("pickupdate_" + pickup_id); try { pickdate = Convert.ToDateTime(pickdate_); } catch { Response.Write("{\"msg\":\"" + Tag("配送方式设置错误") + "\"}"); return; } pick = B_Lebi_PickUp.GetModel(pickup_id); if (pick == null) { Response.Write("{\"msg\":\"" + Tag("配送方式设置错误") + "\"}"); return; } if (pick.IsCanWeekend == 0 && (pickdate.DayOfWeek == DayOfWeek.Saturday || pickdate.DayOfWeek == DayOfWeek.Sunday)) { Response.Write("{\"msg\":\"" + Tag("配送方式设置错误") + "\"}"); return; } if (System.DateTime.Now.Date.AddDays(pick.BeginDays) > pickdate) { Response.Write("{\"msg\":\"" + Tag("配送方式设置错误") + "\"}"); return; } string NoServiceDays = pick.NoServiceDays.TrimStart('0').Replace(".0", "."); string nowday = pickdate.ToString("M.d"); if (("," + NoServiceDays + ",").Contains("," + nowday + ",")) { Response.Write("{\"msg\":\"" + Tag("配送方式设置错误") + "\"}"); return; } } } //检查代金券 string pay312 = RequestTool.RequestSafeString("pay312"); if (pay312 != "") { List <Lebi_Card> cs = B_Lebi_Card.GetList("User_id=" + CurrentUser.id + " and id in (lbsql{" + pay312 + "})", "id asc"); int flag = cs.FirstOrDefault().IsCanOtherUse; if (flag == 0 && cs.Count > 1) { Response.Write("{\"msg\":\"" + Tag("代金券异常") + "\"}"); return; } foreach (Lebi_Card c in cs) { if (flag != c.IsCanOtherUse) { Response.Write("{\"msg\":\"" + Tag("代金券异常") + "\"}"); return; } if (!Basket.CheckCard(basket, c)) { Response.Write("{\"msg\":\"" + Tag("代金券异常") + "\"}"); return; } } } //检查代金券结束 //检查发票信息 int billtype_id = RequestTool.RequestInt("billtype_id", 0); Lebi_BillType billtype = B_Lebi_BillType.GetModel(billtype_id); if (ShopCache.GetBaseConfig().BillFlag == "1") { if (billtype == null) { Response.Write("{\"msg\":\"" + Tag("请设置发票内容") + "\"}"); return; } } CurrentUser.Pay_id = pay.id; CurrentUser.OnlinePay_id = onlinepay_id; Lebi_Order ordergroup; List <Lebi_Order> orders = Shop.Bussiness.Order.CreateOrder(CurrentUser, basket, shouhuo, billtype, CurrentCurrency, CurrentSite, CurrentLanguage, out ordergroup); CurrentUser.Count_Order = CurrentUser.Count_Order + orders.Count; B_Lebi_User.Update(CurrentUser); List <Lebi_Order> ordermodel = B_Lebi_Order.GetList("User_id=" + CurrentUser.id + "", "id desc"); ordergroup = ordermodel.FirstOrDefault(); if (OfflineMoney == 0) { OfflineMoney = ordergroup.Money_Order; } string remark = RequestTool.RequestSafeString("remark"); ordergroup.Remark_User = remark; bool needupdate = false; if (remark != "") { Lebi_Comment model = new Lebi_Comment(); model.Content = remark; model.Keyid = ordergroup.id; model.TableName = "Order"; model.User_id = CurrentUser.id; model.User_UserName = CurrentUser.UserName; B_Lebi_Comment.Add(model); needupdate = true; } if (pick != null) { ordergroup.PickUp_Date = pickdate; ordergroup.PickUp_id = pick.id; ordergroup.PickUp_Name = pick.Name; needupdate = true; } if (needupdate) { B_Lebi_Order.Update(ordergroup); } if (pay.Code != "OfflinePay" && pay.Code != "OnlinePay") { //订单如果选择了线下支付,并且非货到付款 //生成一笔充值单 //OfflineMoney Lebi_Currency DefaultCurrency = B_Lebi_Currency.GetModel("IsDefault=1"); if (DefaultCurrency == null) { DefaultCurrency = B_Lebi_Currency.GetList("", "Sort desc").FirstOrDefault(); } Lebi_Order order = new Lebi_Order(); order.Code = "M" + Shop.Bussiness.Order.CreateOrderCode(); order.Money_Order = OfflineMoney; order.Money_Pay = OfflineMoney; order.User_id = CurrentUser.id; order.User_UserName = CurrentUser.UserName; order.IsPaid = 0; order.Currency_Code = ordergroup.Currency_Code; order.Currency_ExchangeRate = ordergroup.Currency_ExchangeRate; order.Currency_id = ordergroup.Currency_id; order.Currency_Msige = ordergroup.Currency_Msige; order.Type_id_OrderType = 214; order.Pay_id = pay.id; order.Pay = pay.Name; order.Site_id = CurrentSite.id; order.Language_id = CurrentLanguage.id; order.Remark_Admin = ""; order.Order_id = ordergroup.id; B_Lebi_Order.Add(order); } //if (orders.Count == 1) // ordergroup = orders.FirstOrDefault(); //Shop.Bussiness.Order.SupplierOrder(order);//根据商品供应商分单 Response.Write("{\"msg\":\"OK\",\"id\":\"" + ordergroup.id + "\"}"); return; }
/// <summary> /// 安全方式绑定表单数据 /// </summary> public static Lebi_Transport_Price SafeBindForm(Lebi_Transport_Price model) { return(D_Lebi_Transport_Price.Instance.SafeBindForm(model)); }
protected void Page_Load(object sender, EventArgs e) { int id = RequestTool.RequestInt("id", 0); if (id == 0) { if (!EX_Admin.Power("transport_price_add", "添加配送区域")) { WindowNoPower(); } } else { if (!EX_Admin.Power("transport_price_edit", "编辑配送区域")) { WindowNoPower(); } } int tid = RequestTool.RequestInt("tid", 0); model = B_Lebi_Transport_Price.GetModel(id); if (model == null) { tmodel = B_Lebi_Transport.GetModel(tid); model = new Lebi_Transport_Price(); } else { tmodel = B_Lebi_Transport.GetModel(model.Transport_id); } JavaScriptSerializer jss = new JavaScriptSerializer(); try { kvs = jss.Deserialize <List <KeyValue> >(model.Container); } catch { kvs = new List <KeyValue>(); } //生成货柜价格编辑区 conts = B_Lebi_Transport_Container.GetList("", "Volume desc"); foreach (Shop.Model.Lebi_Transport_Container cont in conts) { KeyValue kv; try { kv = (from m in kvs where m.K == cont.id.ToString() select m).ToList().FirstOrDefault(); } catch (System.ArgumentNullException ex) { kv = null; } bool flag = false; if (kv != null) { flag = true; } else { kv = new KeyValue(); } string price_ = kv.V.ToString(); decimal price = 0; decimal.TryParse(price_, out price); Containestr += "<tr class=\"list\">"; Containestr += "<td><input type=\"checkbox\" name=\"Containerid\" shop=\"true\" value=\"" + cont.id + "\" " + (flag ? "checked" : "") + " /></td>"; Containestr += "<td>" + cont.Name + "</td>"; Containestr += "<td>"; Containestr += " <input type=\"text\" class=\"input\" shop=\"true\" name=\"ContainerPrice" + cont.id + "\" id=\"ContainerPrice" + cont.id + "\" value=\"" + FormatMoney(price, "Number") + "\" style=\"width: 100px;\" onkeyup=\"value=value.replace(/[^\\d]/g,'')\" /> <span></span>"; Containestr += "</td></tr>"; } }
protected int sid = 0;//结算供应商ID public void LoadPage() { sid = RequestTool.RequestInt("sid", 0); basket = new Basket(sid); bool offlinepay = false; if (CurrentUser.Transport_Price_id == "") { CurrentUser.Transport_Price_id = "0"; } List <Lebi_Transport_Price> prices = B_Lebi_Transport_Price.GetList("id in (" + CurrentUser.Transport_Price_id + ")", ""); if (prices.Count == 0) { Response.Write(Tag("请先选择配送方式")); Response.End(); return; } Lebi_Transport_Price currenttranprice = new Lebi_Transport_Price(); Lebi_Transport currenttran = new Lebi_Transport(); foreach (Lebi_Transport_Price price in prices) { currenttran = B_Lebi_Transport.GetModel(price.Transport_id); if (currenttran == null) { Response.Write(Tag("请先选择配送方式")); Response.End(); return; } if (basket.cashsupplierid == price.Supplier_id)//商城收款,供应商发货的情况必须用在线支付,所以下永远匹配不上。 { currenttranprice = price; } } string where = "IsUsed=1"; //if (prices.Count > 1 || currenttranprice.Supplier_id > 0 || basket.cashsupplierid > 0) //{ // where += " and Code='OnlinePay'"; //} //else //{ if (currenttran.IsCanofflinePay == 1 && currenttranprice.IsCanofflinePay == 1) { offlinepay = true; } if (offlinepay == false) { where += " and Code!='OfflinePay'"; } //} string onpaywhere = "IsUsed=1 and parentid=0 and ','+Language_ids+',' like '%," + CurrentLanguage.id + ",%'"; //string useragent=Request.UserAgent.ToString().ToLower(); //if (!useragent.Contains("micromessenger")) //{ // onpaywhere += " and Code!='weixinpay'"; //} if (CurrentSite.IsMobile == 1) { onpaywhere += " and (showtype='' or showtype like '%wap%')"; } else { onpaywhere += " and (showtype='' or showtype like '%web%')"; } SystemLog.Add(onpaywhere); pays = B_Lebi_Pay.GetList(where, "Sort desc"); if ((CurrentUser.Pay_id == 0 || pays.Count == 1) && pays.Count > 0) { CurrentUser.Pay_id = pays.FirstOrDefault().id; } onpays = B_Lebi_OnlinePay.GetList(onpaywhere, "Sort desc"); if (onpays.Count == 0) { CurrentUser.OnlinePay_id = 0; } else { if (CurrentUser.OnlinePay_id == 0 || onpays.Count == 1) { CurrentUser.OnlinePay_id = onpays.FirstOrDefault().id; } else { bool flag = false; foreach (Lebi_OnlinePay p in onpays) { if (p.id == CurrentUser.OnlinePay_id) { flag = true; break; } } if (flag == false) { CurrentUser.OnlinePay_id = onpays.FirstOrDefault().id; } } } }
/// <summary> /// 获得运费备注 /// </summary> /// <param name="weight"></param> /// <param name="volume"></param> /// <param name="price"></param> /// <param name="ordermoney"></param> /// <returns></returns> public static string GerYunFeiMark(decimal weight, decimal volume, Lebi_Transport_Price price, decimal ordermoney = 0) { string res = ""; if (price.IsOnePrice == 1 && ordermoney >= price.OrderMoney)//满足订单金额要求 { return(""); } else { Lebi_Transport transport = B_Lebi_Transport.GetModel(price.Transport_id); decimal money = price.Price; if (transport.Type_id_TransportType == 331) { //货柜方式计算 JavaScriptSerializer jss = new JavaScriptSerializer(); List <KeyValue> kvs = jss.Deserialize <List <KeyValue> >(price.Container); string ids = ""; foreach (KeyValue kv in kvs) { if (ids == "") { ids = kv.K; } else { ids += "," + kv.K; } } int count = 0; //需要的货柜数量 decimal cprice = 0; //使用的货柜价格 if (ids != "") { List <Lebi_Transport_Container> conts = B_Lebi_Transport_Container.GetList("id in (lbsql{" + ids + "})", "Volume desc"); //判断使用哪个货柜 Lebi_Transport_Container UseCont = new Lebi_Transport_Container(); foreach (Lebi_Transport_Container cont in conts) { if (volume / 100 / 100 / 100 > cont.Volume) { UseCont = cont; break; } } if (UseCont.id == 0) { UseCont = conts.FirstOrDefault(); } UseCont.Weight = UseCont.Weight * 1000 * 1000; //单位转换为克 UseCont.Volume = UseCont.Volume * 100 * 100 * 100; //单位转换为立方厘米 KeyValue kv = (from m in kvs where m.K == UseCont.id.ToString() select m).ToList().FirstOrDefault(); cprice = Convert.ToDecimal(kv.V); if (weight > UseCont.Weight) { //按重量计算 count = (int)(weight / UseCont.Weight); if (weight % UseCont.Weight > 0) { count++; } } else { //按体积计算 count = (int)(volume / UseCont.Volume); if (volume % UseCont.Volume > 0) { count++; } } count = count == 0 ? 1 : count; res = UseCont.Name + ":" + count; } } else { } } return(res); }
/// <summary> /// 增加一条数据 /// </summary> public static int Add(Lebi_Transport_Price model) { return(D_Lebi_Transport_Price.Instance.Add(model)); }
public static decimal GetYunFei(List <Lebi_User_Product> pros, Lebi_Transport_Price price) { return(GetYunFei(pros, price, 0)); }
/// <summary> /// 计算运费 /// </summary> /// <param name="weight"></param> /// <param name="volume"></param> /// <param name="price"></param> /// <param name="ordermoney"></param> /// <returns></returns> public static decimal GetYunFei(decimal weight, decimal volume, Lebi_Transport_Price price, decimal ordermoney) { if (price == null) { price = new Lebi_Transport_Price(); } decimal res = 0; if (ordermoney >= price.OrderMoney && price.OrderMoney > 0)//满足订单金额要求 { return(price.Price_OrderMoneyOK); } if (price.IsOnePrice == 1)//定额运费 { return(price.Price); } else { Lebi_Transport transport = B_Lebi_Transport.GetModel(price.Transport_id); if (transport == null) { return(0); } decimal money = price.Price; if (transport.Type_id_TransportType == 331) { //货柜方式计算 JavaScriptSerializer jss = new JavaScriptSerializer(); List <KeyValue> kvs = jss.Deserialize <List <KeyValue> >(price.Container); string ids = ""; foreach (KeyValue kv in kvs) { if (ids == "") { ids = kv.K; } else { ids += "," + kv.K; } } int count = 0; //需要的货柜数量 decimal cprice = 0; //使用的货柜价格 if (ids != "") { List <Lebi_Transport_Container> conts = B_Lebi_Transport_Container.GetList("id in (lbsql{" + ids + "})", "Volume desc"); //判断使用哪个货柜 Lebi_Transport_Container UseCont = new Lebi_Transport_Container(); foreach (Lebi_Transport_Container cont in conts) { if (volume / 100 / 100 / 100 > cont.Volume) { UseCont = cont; break; } } if (UseCont.id == 0) { UseCont = conts.FirstOrDefault(); } UseCont.Weight = UseCont.Weight * 1000 * 1000; //单位转换为克 UseCont.Volume = UseCont.Volume * 100 * 100 * 100; //单位转换为立方厘米 KeyValue kv = (from m in kvs where m.K == UseCont.id.ToString() select m).ToList().FirstOrDefault(); cprice = Convert.ToDecimal(kv.V); if (weight > UseCont.Weight) { //按重量计算 count = (int)(weight / UseCont.Weight); if (weight % UseCont.Weight > 0) { count++; } } else { //按体积计算 count = (int)(volume / UseCont.Volume); if (volume % UseCont.Volume > 0) { count++; } } } count = count == 0 ? 1 : count; money = money + cprice * count; } else { //包裹方式计算 int wei = (int)weight + 1; if (weight > price.Weight_Start) { try { decimal step = (weight - price.Weight_Start) / price.Weight_Step; step = Math.Ceiling(step); money = money + step * price.Price_Step; } catch (DivideByZeroException) { // money = money; } } } res = money; } return(res); }
/// <summary> /// 更新一条数据 /// </summary> public static void Update(Lebi_Transport_Price model) { D_Lebi_Transport_Price.Instance.Update(model); }