Exemple #1
0
        /// <summary>
        /// 添加类型
        /// </summary>
        /// <param name="pt">商品类别对象</param>
        /// <returns></returns>
        public static int AddProType(ProductTypes pt)
        {
            PSSEntities db = new PSSEntities();

            db.ProductTypes.Add(pt);
            return(db.SaveChanges());
        }
Exemple #2
0
        /// <summary>
        /// 条件查询
        /// </summary>
        /// <param name="PIDID"></param>
        /// <param name="DepotID"></param>
        /// <param name="PIDDate"></param>
        /// <param name="UsersName"></param>
        /// <param name="PIDState"></param>
        /// <param name="PageIndex"></param>
        /// <param name="PageSize"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public static List <CheckDepot> Find(string CDID, string DepotID, string UsersName, string CDDate, int CDState, int PageIndex, int PageSize, out int count)
        {
            PSSEntities db   = new PSSEntities();
            var         list = from s in db.CheckDepot select s;

            if (CDID != null && CDID.Trim().Length > 0)//入库单编号
            {
                list = list.Where(s => s.CDID.Contains(CDID));
            }

            if (DepotID != null && DepotID.Trim().Length > 0)//盘点仓库
            {
                list = list.Where(s => s.DepotID.Equals(DepotID));
            }

            if (CDDate != null && CDDate.Trim().Length > 0)//入库时间
            {
                DateTime dt = Convert.ToDateTime(CDDate);
                list = list.Where(s => s.CDDate >= dt);
            }
            if (UsersName != null && UsersName.Trim().Length > 0)//创建人
            {
                list = list.Where(s => s.Users.UsersName.Contains(UsersName));
            }

            if (CDState != -1)//订单状态
            {
                list = list.Where(s => s.CDState == CDState);
            }

            count = list.Count();
            return(list.OrderBy(s => s.CDID).Skip((PageIndex - 1) * PageSize).Take(PageSize).ToList());
        }
Exemple #3
0
        /// <summary>
        /// 查询所有商品类别信息
        /// </summary>
        /// <returns></returns>
        public static List <ProductTypes> GetAll()
        {
            PSSEntities db       = new PSSEntities();
            var         linqlist = db.ProductTypes.Select(p => p).ToList();

            return(linqlist as List <ProductTypes>);
        }
Exemple #4
0
        /// <summary>
        /// 添加客户等级
        /// </summary>
        /// <param name="cusl"></param>
        /// <returns></returns>
        public static int Add(CustomerLevel cusl)
        {
            PSSEntities db = new PSSEntities();

            db.CustomerLevel.Add(cusl);
            return(db.SaveChanges());
        }
Exemple #5
0
        /// <summary>
        /// 修改【---事务---】
        /// </summary>
        /// <param name="dp"></param>
        /// <returns></returns>
        public static int EdiStocks(Splits dep, List <SplitDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            ///以下开始事务操作
            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    //将要修改的创建人找回来,避免修改时没有创建人
                    Splits st = db.Splits.FirstOrDefault(p => p.SplitID == dep.SplitID);
                    st.DepotID     = dep.DepotID;                                                    //商品仓库
                    st.ProID       = dep.ProID;                                                      //拆分商品
                    st.SplitDate   = dep.SplitDate;                                                  //拆分时间
                    st.SplitDesc   = dep.SplitDesc;                                                  //备注
                    st.SplitAmount = dep.SplitAmount;                                                //拆分数量
                    st.SplitPrice  = dep.SplitPrice;                                                 //价格
                    db.SplitDetail.RemoveRange(db.SplitDetail.Where(p => p.SplitID == dep.SplitID)); //删除详单
                    if (list != null)
                    {
                        db.SplitDetail.AddRange(list);              //如果添加的详单不为空的话,那么就添加详单
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Exemple #6
0
        /// <summary>
        /// 修改【---事务---】
        /// </summary>
        /// <param name="dp"></param>
        /// <returns></returns>
        public static int EdiStocks(CheckDepot dep, List <CheckDepotDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            ///以下开始事务操作
            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    //将要修改的创建人找回来,避免修改时没有创建人
                    CheckDepot st = db.CheckDepot.FirstOrDefault(p => p.CDID == dep.CDID);
                    st.DepotID = dep.DepotID;                                                            //盘点仓库
                    st.CDDate  = dep.CDDate;                                                             //盘点时间
                    st.CDDesc  = dep.CDDesc;                                                             //备注
                    db.CheckDepotDetail.RemoveRange(db.CheckDepotDetail.Where(p => p.CDID == dep.CDID)); //删除详单
                    if (list != null)
                    {
                        db.CheckDepotDetail.AddRange(list);              //如果添加的详单不为空的话,那么就添加详单
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Exemple #7
0
        /// <summary>
        ///  查询出入库记录
        /// </summary>
        /// <param name="ProID">商品ID</param>
        /// <param name="BDate">开始时间</param>
        /// <param name="EDate">结束时间</param>
        /// <param name="DepotID">仓库编号</param>
        /// <param name="count">查询个数</param>
        /// <returns></returns>
        public static List <InOutDepotDetail> Find(string ProID, string BDate, string EDate, string DepotID, out int count, int PageIndex)
        {
            PSSEntities db   = new PSSEntities();
            var         list = from s in db.InOutDepotDetail
                               select s;

            if (ProID != null && ProID.Trim().Length > 0)
            {
                int id = Convert.ToInt32(ProID);
                list = list.Where(c => c.ProID == id);
            }
            if (BDate != null && BDate.Trim().Length > 0)
            {
                DateTime dt = Convert.ToDateTime(BDate);
                list = list.Where(c => c.InOutDepot.IODDate > dt);
            }
            if (EDate != null && EDate.Trim().Length > 0)
            {
                DateTime dt = Convert.ToDateTime(EDate);
                list = list.Where(c => c.InOutDepot.IODDate < dt);
            }
            if (DepotID != null && DepotID.Trim().Length > 0)
            {
                list = list.Where(c => c.InOutDepot.DepotID.Equals(DepotID));
            }
            count = list.Count();
            return(list.OrderBy(p => p.IODDID).Skip((PageIndex - 1) * 10).Take(10).ToList());
        }
Exemple #8
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="index">页数</param>
        /// <returns></returns>
        public static List <ProductTypes> GetAll(int index)
        {
            PSSEntities db       = new PSSEntities();
            var         linqlist = db.ProductTypes.Select(p => p).OrderBy(p => p.PTID).Skip(10 * (index - 1)).Take(10).ToList();

            return(linqlist as List <ProductTypes>);
        }
Exemple #9
0
        /// <summary>
        /// 多条件查询商品
        /// </summary>
        /// <param name="ProName">商品名称</param>
        /// <param name="PTID">商品类别ID</param>
        /// <param name="PUID">商品规格ID</param>
        /// <param name="PCID">商品颜色ID</param>
        /// <param name="PSID">商品单位ID</param>
        /// <param name="count">总条数</param>
        /// <param name="PageIndex">当前页</param>
        /// <param name="PageSize">页大小</param>
        /// <returns></returns>
        public static List <Products> Find(string ProName, int PTID, int PUID, int PCID, int PSID, out int count, int PageIndex, int PageSize)
        {
            PSSEntities db   = new PSSEntities();
            var         list = db.Products.Select(s => s);

            if (ProName != null && ProName.Trim().Length > 0)
            {
                list = list.Where(s => s.ProName.Contains(ProName));
            }
            if (PTID != -1 && PTID > 0)
            {
                List <int?> ids = new List <int?>();
                ids.Add(PTID);
                GetPTID(PTID, ids);
                list = list.Where(s => ids.Contains(s.PTID));
            }
            if (PUID != -1 && PUID > 0)
            {
                list = list.Where(s => s.PUID == PUID);
            }
            if (PCID != -1 && PCID > 0)
            {
                list = list.Where(s => s.PCID == PCID);
            }
            if (PSID != -1 && PSID > 0)
            {
                list = list.Where(s => s.PSID == PSID);
            }
            count = list.Count();
            return(list.OrderBy(s => s.ProID).Skip((PageIndex - 1) * PageSize).Take(PageSize).ToList());
        }
Exemple #10
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="pro"></param>
        /// <returns></returns>
        public static int Edit(Products pro)
        {
            PSSEntities db = new PSSEntities();

            db.Entry <Products>(pro).State = System.Data.Entity.EntityState.Modified;
            return(db.SaveChanges());
        }
Exemple #11
0
        /// <summary>
        /// 审核销售出库单
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        internal static int CKInDepot(string id, int userid)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    SaleDepot co = db.SaleDepot.FirstOrDefault(p => p.SDID.Equals(id));
                    co.SDState = 1;
                    ObjectParameter para = new ObjectParameter("DD", "");
                    db.pro_order("InOutDepot", "IODNum", "RK", para);
                    string IODNum = para.Value.ToString();
                    //添加入库记录
                    db.InOutDepot.Add(new InOutDepot()
                    {
                        DepotID = co.DepotID, IODType = 2, IODNum = IODNum, IODDate = DateTime.Now, IODUser = userid, IODDesc = co.SDDesc
                    });
                    db.SaveChanges();
                    int inod = db.InOutDepot.Max(i => i.IODID);
                    List <SaleDepotDetail>     list    = db.SaleDepotDetail.Where(p => p.SDID.Equals(id)).ToList();          //销售出库详单
                    List <CustomerOrderDetail> cuslist = db.CustomerOrderDetail.Where(p => p.COID.Equals(co.COID)).ToList(); //客户订单详单
                    foreach (SaleDepotDetail item in list)
                    {
                        //修改客户订单已销数量
                        foreach (CustomerOrderDetail cus in cuslist)
                        {
                            if (cus.ProID == item.ProID)
                            {
                                cus.CODSale = item.SDDAmount;
                            }
                        }
                        if (db.DepotStock.FirstOrDefault(p => p.DepotID.Equals(co.DepotID) && p.ProID == item.ProID) == null)
                        {//如果指定的仓库中不存在该商品
                            throw new Exception("不存在该商品,操作失败!");
                        }
                        else
                        {//如果指定仓库存在这个商品,修改这个商品的库存
                            DepotStock ds = db.DepotStock.FirstOrDefault(d => d.ProID == item.ProID && d.DepotID == co.DepotID);
                            ds.DSAmount = ds.DSAmount - item.SDDAmount;
                        }
                        //添加入库记录详情
                        db.InOutDepotDetail.Add(new InOutDepotDetail()
                        {
                            IODID = inod, ProID = item.ProID, IODDAmount = item.SDDAmount, IODDPrice = item.SDDPrice
                        });
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(ex.Message);
                }
            }
            return(fg);
        }
Exemple #12
0
        /// <summary>
        /// 条件查询
        /// </summary>
        /// <param name="COID"></param>
        /// <param name="CusID"></param>
        /// <param name="CODate"></param>
        /// <param name="CORefDate"></param>
        /// <param name="UsersName"></param>
        /// <param name="COState"></param>
        /// <param name="PageIndex"></param>
        /// <param name="PageSize"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        internal static List <SaleDepot> Find(string SDID, string CusID, string DepotID, string SDDate, string UsersName, int SDState, int PageIndex, int PageSize, out int count)
        {
            PSSEntities db   = new PSSEntities();
            var         list = from c in db.SaleDepot select c;

            if (SDID != null && SDID.Trim().Length > 0)
            {
                list = list.Where(p => p.SDID.Contains(SDID));
            }
            if (CusID != null && CusID.Trim().Length > 0)
            {
                list = list.Where(p => p.CusID.Equals(CusID));
            }
            if (DepotID != null && DepotID.Trim().Length > 0)
            {
                list = list.Where(p => p.DepotID.Equals(DepotID));
            }
            if (SDDate != null && SDDate.Trim().Length > 0)
            {
                DateTime dt = Convert.ToDateTime(SDDate);
                list = list.Where(p => p.SDDate >= dt);
            }
            if (UsersName != null && UsersName.Trim().Length > 0)
            {
                list = list.Where(p => p.Users.UsersName.Contains(UsersName));
            }
            if (SDState != -1)
            {
                list = list.Where(p => p.SDState == SDState);
            }
            count = list.Count();
            return(list.OrderBy(p => p.SDID).Skip((PageIndex - 1) * PageSize).Take(PageSize).ToList());
        }
Exemple #13
0
        /// <summary>
        /// 修改【---事务---】
        /// </summary>
        /// <param name="dp"></param>
        /// <returns></returns>
        public static int EdiStocks(ProduceOutDepot dep, List <ProduceOutDepotDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            ///以下开始事务操作
            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    //将要修改的创建人找回来,避免修改时没有创建人
                    ProduceOutDepot st = db.ProduceOutDepot.FirstOrDefault(p => p.PODID == dep.PODID);
                    st.DepotID = dep.DepotID;
                    st.PODDate = dep.PODDate;
                    st.PODDesc = dep.PODDesc;
                    db.ProduceOutDepotDetail.RemoveRange(db.ProduceOutDepotDetail.Where(p => p.PODID == dep.PODID));
                    if (list != null)
                    {
                        db.ProduceOutDepotDetail.AddRange(list);
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Exemple #14
0
        /// <summary>
        /// 修改销售出库单
        /// </summary>
        /// <param name="qp"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        internal static int EditStocks(SaleDepot qp, List <SaleDepotDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    SaleDepot c = db.SaleDepot.FirstOrDefault(p => p.SDID.Equals(qp.SDID));
                    c.CusID   = qp.CusID;
                    c.DepotID = qp.DepotID;
                    c.SDState = qp.SDState;
                    c.SDDesc  = qp.SDDesc;
                    db.SaleDepotDetail.RemoveRange(db.SaleDepotDetail.Where(s => s.SDID.Equals(qp.SDID)));
                    if (list != null)
                    {
                        db.SaleDepotDetail.AddRange(list);
                    }

                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(ex.Message);
                }
            }
            return(fg);
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="dep"></param>
        /// <returns></returns>
        public static int AddStockDetail(ProduceInDepotDeteil dep)
        {
            PSSEntities db = new PSSEntities();

            db.ProduceInDepotDeteil.Add(dep);
            return(db.SaveChanges());
        }
Exemple #16
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int Delete(int id)
        {
            PSSEntities db = new PSSEntities();

            db.ProductSpec.Remove(db.ProductSpec.FirstOrDefault(p => p.PSID == id));
            return(db.SaveChanges());
        }
Exemple #17
0
        /// <summary>
        /// 添加采购退货单
        /// </summary>
        /// <param name="qp"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        internal static int AddStocks(StockReturn qp, List <StockReturnDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    db.StockReturn.Add(qp);
                    if (list != null)
                    {
                        db.StockReturnDetail.AddRange(list);
                    }

                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(ex.Message);
                }
            }
            return(fg);
        }
Exemple #18
0
        /// <summary>
        /// 修改客户等级
        /// </summary>
        /// <param name="cusl"></param>
        /// <returns></returns>
        public static int Edit(CustomerLevel cusl)
        {
            PSSEntities db = new PSSEntities();

            db.Entry <CustomerLevel>(cusl).State = System.Data.Entity.EntityState.Modified;
            return(db.SaveChanges());
        }
Exemple #19
0
        /// <summary>
        /// 添加供货商
        /// </summary>
        /// <param name="pd"></param>
        /// <returns></returns>
        public static int Add(ProductLend pd)
        {
            PSSEntities db = new PSSEntities();

            db.ProductLend.Add(pd);
            return(db.SaveChanges());
        }
Exemple #20
0
        /// <summary>
        /// 删除客户等级
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int Delete(int id)
        {
            PSSEntities db = new PSSEntities();

            db.CustomerLevel.Remove(db.CustomerLevel.FirstOrDefault(c => c.CLID == id));
            return(db.SaveChanges());
        }
Exemple #21
0
        /// <summary>
        /// 删除供应商
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int Delete(string id)
        {
            PSSEntities db = new PSSEntities();

            db.ProductLend.Remove(db.ProductLend.FirstOrDefault(p => p.PPID == id));
            return(db.SaveChanges());
        }
Exemple #22
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="pro"></param>
        /// <returns></returns>
        public static int Add(Products pro)
        {
            PSSEntities db = new PSSEntities();

            db.Products.Add(pro);
            return(db.SaveChanges());
        }
Exemple #23
0
        /// <summary>
        /// 添加【---事务---】
        /// </summary>
        /// <param name="dep"></param>
        /// <returns></returns>
        public static int AddStocks(CheckDepot dep, List <CheckDepotDetail> list)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    db.CheckDepot.Add(dep);
                    if (list != null)
                    {
                        db.CheckDepotDetail.AddRange(list);
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Exemple #24
0
        /// <summary>
        /// 审核订单【修改后不可修改,直接影响库存数据】
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int CKDepot(string id, int userid)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            ///以下开始事务操作
            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    /*
                     * --------------------------------------- 【库存盘点】-------------------------------------------------
                     * 1、将盘点状态改为1
                     * 2、直接修改对应仓库中的商品库存为拆分商品后的实际库存
                     */
                    Splits st = db.Splits.FirstOrDefault(s => s.SplitID.Equals(id));
                    st.SplitState = 1;
                    List <SplitDetail> list = db.SplitDetail.Where(p => p.SplitID.Equals(id)).ToList();//销售出库详单
                    DepotStock         ds   = db.DepotStock.FirstOrDefault(s => s.DepotID == st.DepotID && s.ProID == st.ProID);
                    if (ds == null)
                    {
                        throw new Exception("拆分商品未在当前仓库中!!!");
                    }
                    if (ds.DSAmount < st.SplitAmount)//判断库存是否充足
                    {
                        throw new Exception("拆分数量超出当前商品的库存数量!!");
                    }
                    else
                    {
                        ds.DSAmount -= st.SplitAmount;//减少被拆分商品的库存
                    }
                    foreach (SplitDetail item in list)
                    {
                        //如果拆分后的商品在当前仓库中不存在
                        if (db.DepotStock.FirstOrDefault(p => p.DepotID.Equals(st.DepotID) && p.ProID == item.ProID) == null)
                        {
                            //添加新的商品库存
                            db.DepotStock.Add(new DepotStock()
                            {
                                DepotID = st.DepotID, ProID = item.ProID, DSAmount = item.SDAmount, DSPrice = item.SDPrice
                            });
                        }
                        else
                        {//如果指定仓库存在这个商品,修改这个商品的库存
                            DepotStock dss = db.DepotStock.FirstOrDefault(d => d.ProID == item.ProID && d.DepotID == st.DepotID);
                            dss.DSAmount += item.SDAmount;
                        }
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Exemple #25
0
        /// <summary>
        /// 获取采购退货单编号
        /// </summary>
        /// <returns></returns>
        public ActionResult GetStockReturnID()
        {
            PSSEntities     db   = new PSSEntities();
            ObjectParameter para = new ObjectParameter("DD", "");

            db.pro_order("StockReturn", "KRID", "CT", para);
            return(Content(para.Value.ToString()));
        }
        /// <summary>
        /// 获取编号
        /// </summary>
        /// <returns></returns>
        public ActionResult GetID()
        {
            PSSEntities     db   = new PSSEntities();
            ObjectParameter para = new ObjectParameter("DD", "");

            db.pro_order("Splits", "SplitID", "CF", para);
            return(Content(para.Value.ToString()));
        }
Exemple #27
0
        /// <summary>
        /// 获取采购订单编号
        /// </summary>
        /// <returns></returns>
        public ActionResult GetStockInID()
        {
            ObjectParameter para = new ObjectParameter("DD", "");
            PSSEntities     db   = new PSSEntities();

            db.pro_order("StockInDepot", "SIDID", "CR", para);
            return(Content(para.Value.ToString()));
        }
Exemple #28
0
        /// <summary>
        ///查询审核订单和未审核订单数
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        public static int FindStateCount(int state)
        {
            string      sql   = "select *  from SaleReturn where  SRState = " + state;
            PSSEntities db    = new PSSEntities();
            int         count = db.Database.SqlQuery <SaleReturn>(sql).ToList().Count;

            return(count);
        }
Exemple #29
0
        /// <summary>
        /// 根据时间查询当前月订单个数
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static int FindByYCount(DateTime dt, int state)
        {
            PSSEntities       db   = new PSSEntities();
            string            sql  = "select * from SaleReturn where datepart(MM,SRDate)=" + dt.Month + " and  datepart(YYYY,SRDate) = " + dt.Year + " and SRState =" + state;
            List <SaleReturn> list = db.Database.SqlQuery <SaleReturn>(sql).ToList();

            return(list.Count());
        }
Exemple #30
0
        /// <summary>
        /// 根据时间查询当前月订单个数
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static int FindByYCount(DateTime dt)
        {
            PSSEntities     db   = new PSSEntities();
            string          sql  = "select * from Devolves where datepart(MM,DevDate)=" + dt.Month + " and  datepart(YYYY,DevDate) = " + dt.Year;
            List <Devolves> list = db.Database.SqlQuery <Devolves>(sql).ToList();

            return(list.Count());
        }