Пример #1
0
        /// <summary>
        /// 修改一条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > ModifyAsync(ErpInOutLog parm)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = 200
            };

            try
            {
                //判断条形码是否存在
                var isExt = ErpGoodsSkuDb.IsAny(m => m.Guid == parm.GoodsGuid && !m.IsDel);
                if (!isExt)
                {
                    res.statusCode = (int)ApiEnum.ParameterError;
                    res.message    = "该条形码不存在~";
                }
                else
                {
                    var dbres = ErpInOutLogDb.Update(parm);
                    if (!dbres)
                    {
                        res.statusCode = (int)ApiEnum.Error;
                        res.message    = "修改数据失败~";
                    }
                }
            }
            catch (Exception ex)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Пример #2
0
        /// <summary>
        /// 获得一条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <ErpInOutLog> > GetByGuidAsync(string parm)
        {
            var model = ErpInOutLogDb.GetById(parm);
            var res   = new ApiResult <ErpInOutLog>
            {
                statusCode = 200,
                data       = model ?? new ErpInOutLog()
                {
                }
            };

            return(await Task.Run(() => res));
        }
Пример #3
0
        /// <summary>
        /// 删除一条或多条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > DeleteAsync(string parm)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = 200
            };

            try
            {
                var list  = Utils.StrToListString(parm);
                var dbres = ErpInOutLogDb.Delete(m => list.Contains(m.Guid));
                if (!dbres)
                {
                    res.statusCode = (int)ApiEnum.Error;
                    res.message    = "删除数据失败~";
                }
            }
            catch (Exception ex)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Пример #4
0
        /// <summary>
        /// 添加一条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > AddAsync(ErpInOutLog parm)
        {
            var res = new ApiResult <string>()
            {
                statusCode = 200
            };

            try
            {
                //判断条形码是否存在
                var skuModel = ErpGoodsSkuDb.GetSingle(m => m.Code == parm.GoodsSku && !m.IsDel);
                if (skuModel == null)
                {
                    res.statusCode = (int)ApiEnum.ParameterError;
                    res.message    = "该条形码不存在~";
                    return(await Task.Run(() => res));
                }
                if (parm.Types == 2)
                {
                    //出库  需要判断库存是否足够
                    if (skuModel.StockSum < parm.GoodsSum)
                    {
                        res.statusCode = (int)ApiEnum.ParameterError;
                        res.message    = "库存不足,只剩下" + skuModel.StockSum + "件~";
                        return(await Task.Run(() => res));
                    }
                }
                parm.Guid      = Guid.NewGuid().ToString();
                parm.GoodsGuid = skuModel.Guid;
                //开启事务
                Db.Ado.BeginTran();
                if (parm.Types == 1)
                {
                    //更新该条形码的库存
                    ErpGoodsSkuDb.Update(m => new ErpGoodsSku()
                    {
                        StockSum = m.StockSum + parm.GoodsSum
                    }, m => m.Guid == parm.GoodsGuid);
                }
                else
                {
                    //更新平台的库存,减少
                    ErpGoodsSkuDb.Update(m => new ErpGoodsSku()
                    {
                        StockSum = m.StockSum - parm.GoodsSum
                    }, m => m.Guid == parm.GoodsGuid);
                    //增加到店铺条形码表中
                    var shopSku = ErpShopSkuDb.GetSingle(m => m.ShopGuid == parm.ShopGuid && m.SkuGuid == parm.GoodsGuid);
                    if (shopSku != null)
                    {
                        //修改,增加库存
                        ErpShopSkuDb.Update(m => new ErpShopSku()
                        {
                            Stock = m.Stock + parm.GoodsSum, UpdateDate = DateTime.Now
                        }, m => m.ShopGuid == parm.ShopGuid && m.SkuGuid == parm.GoodsGuid);
                    }
                    else
                    {
                        //增加一条库存
                        var shopSkuModel = new ErpShopSku()
                        {
                            SkuGuid  = skuModel.Guid,
                            SkuCode  = skuModel.Code,
                            ShopGuid = parm.ShopGuid,
                            Stock    = parm.GoodsSum
                        };
                        ErpShopSkuDb.Insert(shopSkuModel);
                    }
                }
                ErpInOutLogDb.Insert(parm);
                Db.Ado.CommitTran();
            }
            catch (Exception ex)
            {
                Db.Ado.CommitTran();
                res.statusCode = (int)ApiEnum.Error;
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }
Пример #5
0
        /// <summary>
        /// 删除一条或多条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > DeleteAsync(string parm)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = (int)ApiEnum.Error
            };

            try
            {
                var list = Utils.StrToListString(parm);
                //根据主键查询详细
                var inoutList = ErpInOutLogDb.GetList(m => list.Contains(m.Guid));
                //获得条形码数据
                var codeList = inoutList.Select(m => m.GoodsGuid).ToList();
                var skuList  = ErpGoodsSkuDb.GetList(m => codeList.Contains(m.Guid));
                //定义一个值,判断条形码里面没有的数据数量
                var noSkuCount = 0;
                //获得打包日志的ID
                var packGuid = "";
                //循环平台数据,减少相应的库存
                foreach (var item in skuList)
                {
                    var goodsModel = inoutList.Find(m => m.GoodsGuid == item.Guid);
                    packGuid = goodsModel.PackGuid;
                    if (goodsModel != null && goodsModel.Types == 2)
                    {
                        item.StockSum = item.StockSum + goodsModel.GoodsSum;
                    }
                    else if (goodsModel != null && goodsModel.Types == 1)
                    {
                        item.StockSum = item.StockSum - goodsModel.GoodsSum;
                    }
                    else
                    {
                        noSkuCount++;
                    }
                }
                if (noSkuCount != 0)
                {
                    res.message = "删除的商品在平台没有查询到~";
                    return(await Task.Run(() => res));
                }

                var result = Db.Ado.UseTran(() =>
                {
                    //删除出入库信息
                    Db.Deleteable(inoutList).ExecuteCommand();
                    //修改平台库存数量
                    Db.Updateable(skuList).ExecuteCommand();
                    //根据打包ID获得下面商品的总数
                    var packInOutCount = Db.Queryable <ErpInOutLog>().Where(m => m.PackGuid == packGuid).Sum(m => m.GoodsSum);
                    //更新打包日志数量
                    Db.Updateable <ErpPackLog>().UpdateColumns(m => new ErpPackLog()
                    {
                        GoodsSum = packInOutCount
                    }).Where(m => m.Guid == packGuid).ExecuteCommand();
                });
                res.statusCode = (int)ApiEnum.Status;
                if (!result.IsSuccess)
                {
                    res.statusCode = (int)ApiEnum.Error;
                    res.message    = result.ErrorMessage;
                }
            }
            catch (Exception ex)
            {
                res.message = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }