/// <summary> /// 修改一条数据 /// </summary> /// <returns></returns> public async Task <ApiResult <string> > ModifyStatusAsync(ErpBackGoods parm) { var res = new ApiResult <string>() { data = "1", statusCode = (int)ApiEnum.Error }; try { //根据退货查询积分变动表里面是否存在用户积分变动信息 var pointLogModel = ErpUserPointLogDb.GetSingle(m => m.OperateGuid == parm.Guid); var model = ErpBackGoodsDb.GetSingle(m => m.Guid == parm.Guid); if (model != null) { //查询加盟商库存中,该条商品的信息 var shopGoods = ErpShopSkuDb.GetSingle(m => m.ShopGuid == model.ShopGuid && m.SkuGuid == model.GoodsGuid); if (model.Status == 1) { //如果状态修改为非正常 需要减少加盟商库存 model.Status = 2; //需要判断加盟商库存是否足够 if (shopGoods.Stock < model.BackCount) { res.message = "加盟商库存不足!"; return(await Task.Run(() => res)); } //加盟商减少 shopGoods.Stock -= model.BackCount; } else { //如果状态修改为正常 需要增加加盟商库存 model.Status = 1; //加盟商增加 shopGoods.Stock += model.BackCount; } var result = Db.Ado.UseTran(() => { //修改加盟商信息 Db.Updateable(shopGoods).ExecuteCommand(); //修改返货商品 Db.Updateable(model).ExecuteCommand(); //如果用户存在积分变更,则根据状态,修改积分变更数值 if (pointLogModel != null) { if (model.Status == 1) { Db.Updateable <ErpShopUser>().UpdateColumns(m => m.Points == m.Points + pointLogModel.Point).Where(m => m.Guid == pointLogModel.UserGuid).ExecuteCommand(); } else { Db.Updateable <ErpShopUser>().UpdateColumns(m => m.Points == m.Points - pointLogModel.Point).Where(m => m.Guid == pointLogModel.UserGuid).ExecuteCommand(); } } }); if (!result.IsSuccess) { res.message = result.ErrorMessage; } res.statusCode = (int)ApiEnum.Status; } else { res.message = "没有查询到该条数据~"; } } catch (Exception ex) { 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> > ModifyStatusAsync(ErpReturnGoods parm) { var res = new ApiResult <string>() { data = "1", statusCode = (int)ApiEnum.Error }; try { var model = ErpReturnGoodsDb.GetSingle(m => m.Guid == parm.Guid); if (model != null) { //查询加盟商库存中,该条商品的信息 var shopGoods = ErpShopSkuDb.GetSingle(m => m.ShopGuid == model.ShopGuid && m.SkuGuid == model.GoodsGuid); //查询平台 该条商品的信息 var platformGoods = ErpGoodsSkuDb.GetSingle(m => m.Guid == model.GoodsGuid); //查询返货订单信息 var returnOrderModel = ErpReturnOrderDb.GetSingle(m => m.Guid == model.OrderGuid); if (model.Status == 1) { //如果状态修改为非正常 需要增加加盟商库存 减少平台库存 model.Status = 2; //加盟商增加 shopGoods.Stock += model.ReturnCount; //需要判断平台库存是否足够 if (platformGoods.StockSum < model.ReturnCount) { res.message = "平台库存不足!"; return(await Task.Run(() => res)); } //平台库存减少 platformGoods.StockSum -= model.ReturnCount; //减少返货订单总数 returnOrderModel.GoodsSum -= model.ReturnCount; } else { //如果状态修改为非正常 需要减少加盟商库存 增加平台库存 model.Status = 1; //需要判断加盟商库存是否足够 if (shopGoods.Stock < model.ReturnCount) { res.message = "加盟商库存不足!"; return(await Task.Run(() => res)); } //加盟商减少 shopGoods.Stock -= model.ReturnCount; //平台库存增加 platformGoods.StockSum += model.ReturnCount; //增加返货订单总数 returnOrderModel.GoodsSum += model.ReturnCount; } var result = Db.Ado.UseTran(() => { //修改加盟商信息 Db.Updateable(shopGoods).ExecuteCommand(); //修改平台库存 Db.Updateable(platformGoods).ExecuteCommand(); //修改返货订单信息 Db.Updateable(returnOrderModel).ExecuteCommand(); //修改返货商品 Db.Updateable(model).ExecuteCommand(); }); if (!result.IsSuccess) { res.message = result.ErrorMessage; } res.statusCode = (int)ApiEnum.Status; } else { res.message = "没有查询到该条数据~"; } } catch (Exception ex) { res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }