public VScanResponse MoveUp(long id, string code, VMoveScan request) { var prodSku = skuService.GetSkuByBarcode(request.Barcode); var move = wmsstock.TInvtMoves.Where(x => x.Id == id).FirstOrDefault(); var zoneBin = binService.GetBinByCode(move.WhId, request.BinCode); TInvtUp up = new TInvtUp(); up.HId = id; up.Code = code; up.TypeCode = "RepUp"; up.Carton = request.Carton; up.Barcode = request.Barcode; up.ToZoneId = zoneBin.ZoneId; up.ToZoneCode = zoneBin.ZoneCode; up.ToBinId = zoneBin.Id; up.ToBinCode = request.BinCode; up.Carton = request.Carton; up.SkuId = prodSku.Id; up.Sku = prodSku.Code; up.Qty = 1; up.CreatedBy = DefaultUser.UserName; up.CreatedTime = DateTime.UtcNow; wmsstock.TInvtUps.Add(up); wmsstock.SaveChanges(); return(new VScanResponse()); }
public VScanResponse MoveUp(long id, VMoveScan request) { //移货上架会释放锁定数 var result = new VScanResponse(); var prodSku = skuService.GetSkuByBarcode(request.Barcode); var move = wmsstock.TInvtMoves.Where(x => x.Id == id).FirstOrDefault(); var zoneBin = binService.GetBinByCode(move.WhId, request.BinCode); var ups = wmsstock.TInvtUps.Where(x => x.HId == id).Count(); if (ups + 1 <= move.Qty) { TInvtUp up = new TInvtUp(); up.HId = id; up.Code = move.Code; up.TypeCode = "MoveUp"; up.Carton = request.Carton; up.Barcode = request.Barcode; up.ToZoneId = zoneBin.ZoneId; up.ToZoneCode = zoneBin.ZoneCode; up.ToBinId = zoneBin.Id; up.ToBinCode = request.BinCode; up.Carton = request.Carton; up.SkuId = prodSku.Id; up.Sku = prodSku.Code; up.Qty = 1; up.CreatedBy = DefaultUser.UserName; up.CreatedTime = DateTime.UtcNow; wmsstock.TInvtUps.Add(up); move.UpStatus = Enum.GetName(typeof(EnumOperateStatus), EnumOperateStatus.Doing); wmsstock.SaveChanges(); if (ups + 1 == move.Qty) { result.IsAllFinished = true; result.Message = string.Format("{0}/{1}", ups + 1, move.Qty); move.UpStatus = Enum.GetName(typeof(EnumOperateStatus), EnumOperateStatus.Done); //更新上架数量 inventoryService.UnlockAndMove(move.Id, move.Code, move.WhId, 0, new VInvtData { ZoneId = move.FromZoneId, ZoneCode = move.FromZoneCode, BinId = move.FromBinId, BinCode = move.FromBinCode, SkuId = move.SkuId, Sku = move.Sku, Barcode = move.Barcode, Qty = move.Qty }, new VInvtData { ZoneId = move.ToZoneId, ZoneCode = move.ToZoneCode, BinId = move.ToBinId, BinCode = move.ToBinCode, SkuId = move.SkuId, Sku = move.Sku, Barcode = move.Barcode, Qty = move.Qty } ); } } else { result.IsAllFinished = true; result.Message = string.Format("{0}/{1}", move.Qty, move.Qty); } return(result); }