/// <summary> /// 修改商品价格 /// </summary> public void DoWork(string comm) { try { SOSOshop.BLL.JTTX.Price bll = new SOSOshop.BLL.JTTX.Price(); } catch (Exception ex) { SOSOshop.BLL.Logs.Log.LogServiceAdd(ex.Message, 0, "", "价格变动:CommandListen", ex.ToString(), 2); } }
/// <summary> /// 根据会员的角色取得会员品种显示的价格 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static DataTable GetPriceTable(this DataTable dt) { if (dt == null) { return(dt); } #region 判断是否有必须的列 if (!dt.Columns.Contains("test001")) { string[] Columns = SOSOshop.BLL.Product.Product._PriceTableColumns.Trim().TrimEnd(',').Split(','); foreach (var item in Columns) { if (item == "'' test001" || item.EndsWith("sellType")) { continue; } if (!dt.Columns.Contains(item.Trim())) { throw new Exception("如果要调用'GetPriceTable' 方法,请拼接常量 'SOSOshop.BLL.Product._PriceTableColumns',并注意不要和常量字段中出现过的字段重复!" + item); throw new Exception("GetPriceTable() 缺少列:" + item); } } } if (!dt.Columns.Contains("sellType")) { throw new Exception("GetPriceTable() 缺少列:sellType"); } #endregion dt.Columns.Add("showPrice", typeof(string)); dt.Columns.Add("Price", typeof(decimal)); if (!dt.Columns.Contains("BeginDate")) { dt.Columns.Add("BeginDate", typeof(DateTime)); } if (!dt.Columns.Contains("EndDate")) { dt.Columns.Add("EndDate", typeof(DateTime)); } if (!dt.Columns.Contains("iscu")) { dt.Columns.Add("iscu", typeof(bool)); } if (!dt.Columns.Contains("otcMinSell")) { dt.Columns.Add("otcMinSell", typeof(int)); } if (!dt.Columns.Contains("OrigPrice")) { dt.Columns.Add("OrigPrice", typeof(decimal)); } //客户类别(0.批发客户,1.OTC拆零客户, -1未知【刚注册的】) int Member_Class1 = 0; var mp = GetMemberpermission(out Member_Class1); int RegisterDate = 0; if (mp != null) { if (mp.IsSpecialTrade) { RegisterDate = (int)new SOSOshop.BLL.Db().ExecuteTableForCache("SELECT DATEDIFF(d,isIsSpecialTradeDate,GETDATE()) FROM dbo.memberaccount WHERE UID=" + Public.GetUserId()).Rows[0][0]; } } //可拆零 bool is_cl = dt.Columns.Contains("is_cl"); SOSOshop.BLL.JTTX.Price bll = new SOSOshop.BLL.JTTX.Price(); string PriceCategory = Public.GetPriceCategory(); //用户享有折扣率 decimal user_discount = SOSOshop.BLL.MemberInfo.GetDiscount(Public.GetUserId()); foreach (DataRow item in dt.Rows) { item["showPrice"] = "<a href='/account/logon'>登录可见</a>"; item["Price"] = 100000; item["OrigPrice"] = 100000; item["iscu"] = false; if (Public.GetUserId() == 0) { item["showPrice"] = "<a href='/account/logon'>登录可见</a>"; continue; } if (Public.GetUserId() < 0) { item["showPrice"] = "<a href='/account/logon'>会员可见</a>"; continue; } if (is_cl) { item["is_cl"] = (int)item["sellType"] < 3 ? "是" : "否"; } if ((int)item["minsell"] == 0) { item["minsell"] = 1; } item["showPrice"] = "<a style=\"cursor:pointer\" onclick='javascript:loginAttention()'>会员可见</a>"; item["Price"] = 0M; if (mp == null) { item["showPrice"] = "<a href='/account/logon'>登录可见</a>"; item["Price"] = 0; continue; } if (isDrugSensitive((int)item["Product_ID"])) { item["showPrice"] = "<a href='javascript:alert(\"" + Public.GetNetSiteInfo().Phone + "\")'>电话报价</a>"; item["Price"] = 0; continue; } if (!mp.IsBuyFilingStatus && !mp.IsSpecialTrade) { item["showPrice"] = "<a href='/MemberCenter/Upgrade'>会员可见</a>"; item["Price"] = 0; continue; } //拥有快捷交易的权限,看权限是否过期 if (mp.IsSpecialTrade && !mp.IsBuyFilingStatus) { if (RegisterDate > 7) { item["showPrice"] = "<a href='/MemberCenter/Upgrade'>会员可见</a>"; item["Price"] = 0; continue; } } if ((bool)item["drug_sensitive"])//敏感购销品种 { item["showPrice"] = "电话报价"; item["Price"] = 0; continue; } //近效期产品特殊处理 if (dt.Columns.Contains("IsExpirationProduct")) { bool IsExpirationProduct = item["IsExpirationProduct"] != null && item["IsExpirationProduct"] != DBNull.Value && Convert.ToBoolean(item["IsExpirationProduct"]); if (IsExpirationProduct) { int Product_ID = (int)item["Product_ID"]; DataTable dt_temp = SOSOshop.BLL.Product.ExpirationTime.CreateInstance().ExecuteTable("SELECT * FROM dbo.Product_ExpirationTime WHERE product_id=" + Product_ID); if (dt_temp != null && dt_temp.Rows.Count > 0) { if (dt.Columns.Contains("showPrice")) { item["showPrice"] = dt_temp.Rows[0]["price"]; } if (dt.Columns.Contains("dw")) { item["dw"] = dt_temp.Rows[0]["goods_unit"]; } if (dt.Columns.Contains("Price")) { item["Price"] = dt_temp.Rows[0]["price"]; } if (dt.Columns.Contains("OrigPrice")) { item["OrigPrice"] = dt_temp.Rows[0]["price"]; } } continue; } } //取出实时的当前库存价格 PriceTx model = GetPrice((int)item["Product_ID"]); var priceCache = bll.GetModel((int)item["Product_ID"]); if (priceCache.ContainsKey(PriceCategory)) { if (priceCache[PriceCategory] > 0) { item["showPrice"] = string.Format("{0:C2}", priceCache[PriceCategory]); item["Price"] = priceCache[PriceCategory]; item["OrigPrice"] = priceCache[PriceCategory]; } else { item["showPrice"] = "暂无售价"; item["Price"] = 0M; item["OrigPrice"] = 0M; } } else { item["showPrice"] = "暂无售价"; item["Price"] = 0M; item["OrigPrice"] = 0M; } //有促销价格执行促销价 if (model.CuPrice > 0) { DateTime ctime = DateTime.Now; int seconds = ctime.Subtract(model.BeginDate).Seconds; if (ctime.Subtract(model.BeginDate).Seconds > 0 && ctime.Subtract(model.EndDate).Seconds < 0) { item["showPrice"] = string.Format("{0:C2}", model.CuPrice); item["Price"] = model.CuPrice; item["Maxsell"] = model.Maxsell; item["Minsell"] = model.Minsell; item["OtcMinsell"] = model.OtcMinsell; item["BeginDate"] = model.BeginDate; item["EndDate"] = model.EndDate; item["iscu"] = true; } } else if (model.Discount > 0)//执行折扣价 { DateTime ctime = DateTime.Now; if (ctime.Subtract(model.BeginDate).Seconds > 0 && ctime.Subtract(model.EndDate).Seconds < 0) { item["showPrice"] = string.Format("{0:C2}", Convert.ToDouble(item["Price"]) * model.Discount); item["Price"] = Convert.ToDouble(item["Price"]) * model.Discount; item["Maxsell"] = model.Maxsell; item["Minsell"] = model.Minsell; item["OtcMinsell"] = model.OtcMinsell; item["BeginDate"] = model.BeginDate; item["EndDate"] = model.EndDate; item["iscu"] = true; } } //用户享有的折扣率 //float user_discount = 0; if (!(bool)item["iscu"] && user_discount > 0) { decimal disprice = Convert.ToDecimal(item["Price"]) * user_discount; if (disprice > 0) { item["showPrice"] = string.Format("{0:C2}", disprice); item["Price"] = disprice; } } } return(dt); }