/// <summary>
            /// 对象实体绑定数据
            /// </summary>
            public Lebi_Transport_Container ReaderBind(IDataReader dataReader)
            {
                Lebi_Transport_Container model = new Lebi_Transport_Container();
                object ojb;

                ojb = dataReader["id"];
                if (ojb != null && ojb != DBNull.Value)
                {
                    model.id = (int)ojb;
                }
                model.Name        = dataReader["Name"].ToString();
                model.Description = dataReader["Description"].ToString();
                ojb = dataReader["Volume"];
                if (ojb != null && ojb != DBNull.Value)
                {
                    model.Volume = (decimal)ojb;
                }
                ojb = dataReader["Weight"];
                if (ojb != null && ojb != DBNull.Value)
                {
                    model.Weight = (decimal)ojb;
                }
                ojb = dataReader["Sort"];
                if (ojb != null && ojb != DBNull.Value)
                {
                    model.Sort = (int)ojb;
                }
                return(model);
            }
            /// <summary>
            /// 更新一条数据
            /// </summary>
            public void Update(Lebi_Transport_Container model)
            {
                StringBuilder strSql = new StringBuilder();

                strSql.Append("update [Lebi_Transport_Container] set ");
                strSql.Append("Name= @Name,");
                strSql.Append("Description= @Description,");
                strSql.Append("Volume= @Volume,");
                strSql.Append("Weight= @Weight,");
                strSql.Append("Sort= @Sort");
                strSql.Append(" where id=@id");
                SqlParameter[] parameters =
                {
                    new SqlParameter("@id",          SqlDbType.Int,        4),
                    new SqlParameter("@Name",        SqlDbType.NVarChar, 100),
                    new SqlParameter("@Description", SqlDbType.NVarChar, 255),
                    new SqlParameter("@Volume",      SqlDbType.Decimal,    9),
                    new SqlParameter("@Weight",      SqlDbType.Decimal,    9),
                    new SqlParameter("@Sort",        SqlDbType.Int, 4)
                };
                parameters[0].Value = model.id;
                parameters[1].Value = model.Name;
                parameters[2].Value = model.Description;
                parameters[3].Value = model.Volume;
                parameters[4].Value = model.Weight;
                parameters[5].Value = model.Sort;

                SqlUtils.SqlUtilsInstance.TextExecuteNonQuery(strSql.ToString(), parameters);
            }
            /// <summary>
            /// 增加一条数据
            /// </summary>
            public int Add(Lebi_Transport_Container model)
            {
                StringBuilder strSql = new StringBuilder();

                strSql.Append("insert into [Lebi_Transport_Container](");
                strSql.Append("Name,Description,Volume,Weight,Sort)");
                strSql.Append(" values (");
                strSql.Append("@Name,@Description,@Volume,@Weight,@Sort)");
                strSql.Append(";select @@IDENTITY");
                SqlParameter[] parameters =
                {
                    new SqlParameter("@Name",        model.Name),
                    new SqlParameter("@Description", model.Description),
                    new SqlParameter("@Volume",      model.Volume),
                    new SqlParameter("@Weight",      model.Weight),
                    new SqlParameter("@Sort",        model.Sort)
                };

                object obj = SqlUtils.SqlUtilsInstance.TextExecuteNonQuery(strSql.ToString(), parameters);

                if (obj == null)
                {
                    return(1);
                }
                else
                {
                    return(Convert.ToInt32(obj));
                }
            }
            /// <summary>
            /// 得到一个对象实体 by id
            /// </summary>
            public Lebi_Transport_Container GetModel(int id)
            {
                StringBuilder strSql = new StringBuilder();

                strSql.Append("select  top 1  * from [Lebi_Transport_Container] ");
                strSql.Append(" where id=@id");
                SqlParameter[] parameters =
                {
                    new SqlParameter("@id", SqlDbType.Int, 4)
                };
                parameters[0].Value = id;

                Lebi_Transport_Container model = new Lebi_Transport_Container();
                DataSet ds = SqlUtils.SqlUtilsInstance.TextExecuteDataset(strSql.ToString(), parameters);

                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (ds.Tables[0].Rows[0]["id"].ToString() != "")
                    {
                        model.id = int.Parse(ds.Tables[0].Rows[0]["id"].ToString());
                    }
                    model.Name        = ds.Tables[0].Rows[0]["Name"].ToString();
                    model.Description = ds.Tables[0].Rows[0]["Description"].ToString();
                    if (ds.Tables[0].Rows[0]["Volume"].ToString() != "")
                    {
                        model.Volume = decimal.Parse(ds.Tables[0].Rows[0]["Volume"].ToString());
                    }
                    if (ds.Tables[0].Rows[0]["Weight"].ToString() != "")
                    {
                        model.Weight = decimal.Parse(ds.Tables[0].Rows[0]["Weight"].ToString());
                    }
                    if (ds.Tables[0].Rows[0]["Sort"].ToString() != "")
                    {
                        model.Sort = int.Parse(ds.Tables[0].Rows[0]["Sort"].ToString());
                    }
                    return(model);
                }
                else
                {
                    return(null);
                }
            }
            /// <summary>
            /// 增加一条数据
            /// </summary>
            public int Add(Lebi_Transport_Container model)
            {
                StringBuilder strSql = new StringBuilder();

                strSql.Append("insert into [Lebi_Transport_Container](");
                strSql.Append("[Name],[Description],[Volume],[Weight],[Sort])");
                strSql.Append(" values (");
                strSql.Append("@Name,@Description,@Volume,@Weight,@Sort)");
                OleDbParameter[] parameters =
                {
                    new OleDbParameter("@Name",        model.Name),
                    new OleDbParameter("@Description", model.Description),
                    new OleDbParameter("@Volume",      model.Volume),
                    new OleDbParameter("@Weight",      model.Weight),
                    new OleDbParameter("@Sort",        model.Sort)
                };

                AccessUtils.Instance.TextExecuteNonQuery(strSql.ToString(), parameters);
                return(1);
            }
            /// <summary>
            /// 得到一个对象实体 by where条件
            /// </summary>
            public Lebi_Transport_Container GetModel(string strWhere)
            {
                if (strWhere.IndexOf("lbsql{") > 0)
                {
                    SQLPara para = new SQLPara(strWhere, "", "");
                    return(GetModel(para));
                }
                StringBuilder strSql = new StringBuilder();

                strSql.Append("select  top 1  * from [Lebi_Transport_Container] ");
                strSql.Append(" where " + strWhere + "");
                Lebi_Transport_Container model = new Lebi_Transport_Container();
                DataSet ds = SqlUtils.SqlUtilsInstance.TextExecuteDataset(strSql.ToString());

                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (ds.Tables[0].Rows[0]["id"].ToString() != "")
                    {
                        model.id = int.Parse(ds.Tables[0].Rows[0]["id"].ToString());
                    }
                    model.Name        = ds.Tables[0].Rows[0]["Name"].ToString();
                    model.Description = ds.Tables[0].Rows[0]["Description"].ToString();
                    if (ds.Tables[0].Rows[0]["Volume"].ToString() != "")
                    {
                        model.Volume = decimal.Parse(ds.Tables[0].Rows[0]["Volume"].ToString());
                    }
                    if (ds.Tables[0].Rows[0]["Weight"].ToString() != "")
                    {
                        model.Weight = decimal.Parse(ds.Tables[0].Rows[0]["Weight"].ToString());
                    }
                    if (ds.Tables[0].Rows[0]["Sort"].ToString() != "")
                    {
                        model.Sort = int.Parse(ds.Tables[0].Rows[0]["Sort"].ToString());
                    }
                    return(model);
                }
                else
                {
                    return(null);
                }
            }
            /// <summary>
            /// 更新一条数据
            /// </summary>
            public void Update(Lebi_Transport_Container model)
            {
                StringBuilder strSql = new StringBuilder();

                strSql.Append("update [Lebi_Transport_Container] set ");
                strSql.Append("[Name]=@Name,");
                strSql.Append("[Description]=@Description,");
                strSql.Append("[Volume]=@Volume,");
                strSql.Append("[Weight]=@Weight,");
                strSql.Append("[Sort]=@Sort");
                strSql.Append(" where id=" + model.id);
                OleDbParameter[] parameters =
                {
                    new OleDbParameter("@Name",        model.Name),
                    new OleDbParameter("@Description", model.Description),
                    new OleDbParameter("@Volume",      model.Volume),
                    new OleDbParameter("@Weight",      model.Weight),
                    new OleDbParameter("@Sort",        model.Sort)
                };

                AccessUtils.Instance.TextExecuteNonQuery(strSql.ToString(), parameters);
            }
        protected void Page_Load(object sender, EventArgs e)
        {
            int id = RequestTool.RequestInt("id", 0);

            if (id == 0)
            {
                if (!EX_Admin.Power("transport_add", "添加配送方式"))
                {
                    WindowNoPower();
                }
            }
            else
            {
                if (!EX_Admin.Power("transport_edit", "编辑配送方式"))
                {
                    WindowNoPower();
                }
            }
            model = B_Lebi_Transport_Container.GetModel(id);
            if (model == null)
            {
                model = new Lebi_Transport_Container();
            }
        }
 /// <summary>
 /// 安全方式绑定对象表单
 /// </summary>
 public Lebi_Transport_Container SafeBindForm(Lebi_Transport_Container model)
 {
     if (HttpContext.Current.Request["Name"] != null)
     {
         model.Name = Shop.Tools.RequestTool.RequestSafeString("Name");
     }
     if (HttpContext.Current.Request["Description"] != null)
     {
         model.Description = Shop.Tools.RequestTool.RequestSafeString("Description");
     }
     if (HttpContext.Current.Request["Volume"] != null)
     {
         model.Volume = Shop.Tools.RequestTool.RequestDecimal("Volume", 0);
     }
     if (HttpContext.Current.Request["Weight"] != null)
     {
         model.Weight = Shop.Tools.RequestTool.RequestDecimal("Weight", 0);
     }
     if (HttpContext.Current.Request["Sort"] != null)
     {
         model.Sort = Shop.Tools.RequestTool.RequestInt("Sort", 0);
     }
     return(model);
 }
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public static void Update(Lebi_Transport_Container model)
 {
     D_Lebi_Transport_Container.Instance.Update(model);
 }
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public static int Add(Lebi_Transport_Container model)
 {
     return(D_Lebi_Transport_Container.Instance.Add(model));
 }
 /// <summary>
 /// 安全方式绑定表单数据
 /// </summary>
 public static Lebi_Transport_Container SafeBindForm(Lebi_Transport_Container model)
 {
     return(D_Lebi_Transport_Container.Instance.SafeBindForm(model));
 }
Exemple #13
0
        /// <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);
        }
Exemple #14
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);
        }