Пример #1
0
        /// <summary>
        /// 复杂查询
        /// </summary>
        /// <param name="model">查询对象</param>
        /// <param name="Orders">排序字典key:排序的字段,value:asc升序/desc降序</param>
        /// <param name="PageSize">每页行数,默认15</param>
        /// <param name="PageIndex">当前页码,默认100</param>
        /// <returns></returns>
        public DataGrid <T_CostModel> Search(T_CostModel model, Dictionary <string, string> Orders = null, int PageSize = 15, int PageIndex = 100)
        {
            Expression <Func <T_Cost, bool> > where = null;                   //最终查询条件
            var lambdaList = new List <Expression <Func <T_Cost, bool> > >(); //lambda查询条件集合
            int total      = 0;                                               //总行数

            if (model.Description != null)
            {
                lambdaList.Add(c => c.Description.Contains(model.Description));
            }
            if (model.CategoryId != null && model.CategoryId > 0)
            {
                T_SysListBLL syslist = new T_SysListBLL();
                List <int>   childer = syslist.GetChildren(1, (int)model.CategoryId);
                lambdaList.Add(c => childer.Contains((int)c.CategoryId));
            }
            //将集合表达式树转换成Expression表达式树
            MyVisitor <T_Cost, T_Cost> visitor = new MyVisitor <T_Cost, T_Cost>();

            where = visitor.Modify(lambdaList);
            var list   = dal.Search(out total, where, Orders, PageSize, PageIndex).DTOList().ToList();
            var result = new DataGrid <T_CostModel>()
            {
                rows  = list,
                total = total
            };

            return(result);
        }
Пример #2
0
 public static T_Cost ToModel(this  T_CostModel node)
 {
     return(new T_Cost()
     {
         Id = node.Id,
         CategoryId = node.CategoryId,
         SupplierId = node.SupplierId,
         Group = node.Group,
         Cost = node.Cost,
         Description = node.Description,
         Level = node.Level,
         Profit = node.Profit,
         Remark = node.Remark,
         Uom = node.Uom,
         Enable = node.Enable,
     });
 }
Пример #3
0
 public int DeleteData(T_CostModel model)
 {
     return(this.Delete(model.Id));
 }
Пример #4
0
 public int EditData(T_CostModel model)
 {
     return(this.Edit(model.ToModel()));
 }
Пример #5
0
 public int AddData(T_CostModel model)
 {
     return(this.Add(model.ToModel()));
 }
Пример #6
0
        public static T_CostModel DTO(this T_Cost node)
        {
            if (node == null)
            {
                return(null);
            }
            var model = new T_CostModel()
            {
                Id           = node.Id,
                CategoryId   = node.CategoryId,
                SupplierId   = node.SupplierId,
                Group        = node.Group,
                Cost         = node.Cost,
                Description  = node.Description,
                Level        = node.Level,
                Profit       = node.Profit,
                Remark       = node.Remark,
                Uom          = node.Uom,
                Enable       = node.Enable,
                Category     = node.Category.DTO(),
                CategoryName = node.Category != null ? node.Category.Name:null,
                Supplier     = node.Supplier.DTO(),
                Qty          = 1,
                Price        = node.Profit,
            };

            if (model.Profit > 0)
            {
                model.CostMarkup = Math.Round(((model.Profit - model.Cost) / model.Profit) * 100, 2);
            }
            else
            {
                model.CostMarkup = 0;
            }

            if (model.Category != null)
            {
                //默认只到6级
                #region 循环
                var           firstname = "";
                List <string> fromname  = new List <string>();
                var           item      = model.Category;
                firstname = item.Name;
                fromname.Add(item.Name);
                //第2
                if (item.ParSysList != null)
                {
                    var item2 = item.ParSysList;
                    firstname = item2.Name;
                    fromname.Add(item2.Name);
                    //第2
                    if (item2.ParSysList != null)
                    {
                        var item3 = item2.ParSysList;
                        firstname = item3.Name;
                        fromname.Add(item3.Name);
                        //第3
                        if (item3.ParSysList != null)
                        {
                            var item4 = item3.ParSysList;
                            firstname = item4.Name;
                            fromname.Add(item4.Name);
                            //第4
                            if (item4.ParSysList != null)
                            {
                                var item5 = item4.ParSysList;
                                firstname = item5.Name;
                                fromname.Add(item5.Name);
                                //第5
                                if (item5.ParSysList != null)
                                {
                                    var item6 = item5.ParSysList;
                                    firstname = item6.Name;
                                    fromname.Add(item6.Name);
                                    //第6
                                    if (item6.ParSysList != null)
                                    {
                                        var item7 = item6.ParSysList;
                                        firstname = item7.Name;
                                        fromname.Add(item7.Name);
                                        //第7
                                        if (item7.ParSysList != null)
                                        {
                                            var item8 = item7.ParSysList;
                                            firstname = item8.Name;
                                            fromname.Add(item8.Name);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                #endregion
                model.CategoryLoopName = firstname;
                model.CategoryFromName = string.Join(",", fromname.ToArray());
            }

            return(model);
        }