/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }