/// <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);
     }
 }
Beispiel #2
0
        /// <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);
        }