Beispiel #1
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);
        }
        public void BatchDeleteTest()
        {
            CheckDepot v1 = new CheckDepot();
            CheckDepot v2 = new CheckDepot();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v1.DepotsID        = AddDepots();
                v1.FrameworkUserID = AddFrameworkUser();
                v1.CDState         = SCMSupplyChain.Model.CDState.盘点中;
                v1.CDDesc          = "f8r";
                v2.DepotsID        = v1.DepotsID;
                v2.FrameworkUserID = v1.FrameworkUserID;
                v2.CDState         = SCMSupplyChain.Model.CDState.盘点核算;
                v2.CDDesc          = "Z1chJ";
                context.Set <CheckDepot>().Add(v1);
                context.Set <CheckDepot>().Add(v2);
                context.SaveChanges();
            }

            var rv = _controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });

            Assert.IsInstanceOfType(rv, typeof(OkObjectResult));

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data1 = context.Set <CheckDepot>().Find(v1.ID);
                var data2 = context.Set <CheckDepot>().Find(v2.ID);
                Assert.AreEqual(data1.IsValid, false);
                Assert.AreEqual(data2.IsValid, false);
            }

            rv = _controller.BatchDelete(new string[] {});
            Assert.IsInstanceOfType(rv, typeof(OkResult));
        }
Beispiel #3
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);
        }
Beispiel #4
0
 /// <summary>
 /// 修改订单
 /// </summary>
 /// <param name="pd"></param>
 /// <param name="list"></param>
 /// <returns></returns>
 public ActionResult Edit(CheckDepot pd, List <CheckDepotDetail> list)
 {
     if (CheckDepotBLL.EdiStocks(pd, list) > 0)
     {
         return(Content("edit_yes"));
     }
     else
     {
         return(Content("edit_no"));
     }
 }
Beispiel #5
0
 /// <summary>
 /// 添加订单
 /// </summary>
 /// <param name="pd"></param>
 /// <param name="list"></param>
 /// <returns></returns>
 public ActionResult Add(CheckDepot pd, List <CheckDepotDetail> list)
 {
     pd.UserID = Convert.ToInt32(Session["uid"]);
     if (CheckDepotBLL.AddStocks(pd, list) > 0)
     {
         return(Content("add_yes"));
     }
     else
     {
         return(Content("add_no"));
     }
 }
        public void GetTest()
        {
            CheckDepot v = new CheckDepot();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.DepotsID        = AddDepots();
                v.FrameworkUserID = AddFrameworkUser();
                v.CDState         = SCMSupplyChain.Model.CDState.盘点中;
                v.CDDesc          = "f8r";
                context.Set <CheckDepot>().Add(v);
                context.SaveChanges();
            }
            var rv = _controller.Get(v.ID.ToString());

            Assert.IsNotNull(rv);
        }
        public void EditTest()
        {
            CheckDepot v = new CheckDepot();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.DepotsID        = AddDepots();
                v.FrameworkUserID = AddFrameworkUser();
                v.CDState         = SCMSupplyChain.Model.CDState.盘点中;
                v.CDDesc          = "f8r";
                context.Set <CheckDepot>().Add(v);
                context.SaveChanges();
            }

            CheckDepotVM vm    = _controller.Wtm.CreateVM <CheckDepotVM>();
            var          oldID = v.ID;

            v    = new CheckDepot();
            v.ID = oldID;

            v.CDState = SCMSupplyChain.Model.CDState.盘点核算;
            v.CDDesc  = "Z1chJ";
            vm.Entity = v;
            vm.FC     = new Dictionary <string, object>();

            vm.FC.Add("Entity.DepotsID", "");
            vm.FC.Add("Entity.FrameworkUserID", "");
            vm.FC.Add("Entity.CDState", "");
            vm.FC.Add("Entity.CDDesc", "");
            var rv = _controller.Edit(vm);

            Assert.IsInstanceOfType(rv, typeof(OkObjectResult));

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <CheckDepot>().Find(v.ID);

                Assert.AreEqual(data.CDState, SCMSupplyChain.Model.CDState.盘点核算);
                Assert.AreEqual(data.CDDesc, "Z1chJ");
                Assert.AreEqual(data.UpdateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
            }
        }
Beispiel #8
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、将盘点状态改为3
                     * 2、直接修改对应仓库中的商品库存为盘点后的实际库存
                     */
                    CheckDepot st = db.CheckDepot.FirstOrDefault(s => s.CDID.Equals(id));
                    st.CDState = 2;
                    List <CheckDepotDetail> list = db.CheckDepotDetail.Where(p => p.CDID.Equals(id)).ToList();//销售出库详单
                    foreach (CheckDepotDetail item in list)
                    {
                        //如果盘点的仓库中不存在该商品
                        if (db.DepotStock.FirstOrDefault(p => p.DepotID.Equals(st.DepotID) && p.ProID == item.ProID) == null)
                        {
                            throw new Exception("商品不存在该仓库中!");
                        }
                        else
                        {//如果指定仓库存在这个商品,修改这个商品的库存为盘点后的库存
                            DepotStock ds = db.DepotStock.FirstOrDefault(d => d.ProID == item.ProID && d.DepotID == st.DepotID);
                            ds.DSAmount = item.CDDAmount1;
                        }
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception e)
                {
                    tx.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(fg);
        }
Beispiel #9
0
        /// <summary>
        /// 盘点【将状态改为二】
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int PDDepot(string id)
        {
            PSSEntities db = new PSSEntities();
            int         fg = 1;

            using (var tx = db.Database.BeginTransaction())
            {
                try
                {
                    CheckDepot cd = db.CheckDepot.FirstOrDefault(s => s.CDID == id);
                    cd.CDState = 1;
                    List <CheckDepotDetail> list = db.CheckDepotDetail.Where(s => s.CDID == id).ToList();
                    List <DepotStock>       dps  = db.DepotStock.Where(p => p.DepotID == cd.DepotID).ToList();
                    foreach (var item in list)
                    {
                        foreach (DepotStock d in dps)
                        {
                            if (item.ProID == d.ProID)
                            {
                                item.DevAmount2 = d.DSAmount;
                                break;
                            }
                        }
                    }
                    db.SaveChanges();
                    tx.Commit();
                }
                catch (Exception ex)
                {
                    fg = 0;
                    tx.Rollback();
                    throw new Exception(ex.Message);
                }
            }
            return(fg);
        }
        public void CreateTest()
        {
            CheckDepotVM vm = _controller.Wtm.CreateVM <CheckDepotVM>();
            CheckDepot   v  = new CheckDepot();

            v.DepotsID        = AddDepots();
            v.FrameworkUserID = AddFrameworkUser();
            v.CDState         = SCMSupplyChain.Model.CDState.盘点中;
            v.CDDesc          = "f8r";
            vm.Entity         = v;
            var rv = _controller.Add(vm);

            Assert.IsInstanceOfType(rv, typeof(OkObjectResult));

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <CheckDepot>().Find(v.ID);

                Assert.AreEqual(data.CDState, SCMSupplyChain.Model.CDState.盘点中);
                Assert.AreEqual(data.CDDesc, "f8r");
                Assert.AreEqual(data.CreateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
            }
        }
Beispiel #11
0
 /// <summary>
 /// 修改【---事务---】
 /// </summary>
 /// <param name="dp"></param>
 /// <returns></returns>
 public static int EdiStocks(CheckDepot dep, List <CheckDepotDetail> list)
 {
     return(CheckDepotDAL.EdiStocks(dep, list));
 }
Beispiel #12
0
 public async Task <int> PutCD_K([FromUri] dynamic key, [FromBody] CheckDepot checkDepot)
 {
     return(await universalModuel.Update_Key(key, checkDepot));
 }
Beispiel #13
0
 public async Task <int> PostCDI([FromBody] CheckDepot checkDepot)
 {
     return(await universalModuel.Insert(checkDepot).ConfigureAwait(false));
 }
Beispiel #14
0
        public async Task <int> PutCD_P([FromUri] string properties_json, [FromBody] CheckDepot checkDepot)
        {
            Dictionary <string, dynamic> properties = universalModuel.JsonToDictionary(properties_json);

            return(await universalModuel.Update_Properties(properties, checkDepot).ConfigureAwait(false));
        }