| | |
| | | { |
| | | delProStockDetails.Add(proStockInfoDetail); |
| | | proStockInfo.proStockInfoDetails.Remove(proStockInfoDetail); |
| | | item.OutDetailId = proStockInfoDetail.OutDetailId; |
| | | item.OutDetailSaleNo = proStockInfoDetail.OutDetailSaleNo; |
| | | } |
| | | else |
| | | { |
| | | proStockInfoDetail.StockPcsQty -= item.StockPcsQty; |
| | | proStockInfoDetail.SETQty -= item.SETQty; |
| | | proStockInfoDetail.OutboundQuantity = 0; |
| | | item.OutDetailId = 0; |
| | | item.OutDetailSaleNo = ""; |
| | | upProStockDetails.Add(proStockInfoDetail); |
| | | } |
| | | |
| | |
| | | { |
| | | _stockRepository.ProStockInfoDetailRepository.UpdateData(upProStockDetails); |
| | | } |
| | | content.OK(); |
| | | content.OK("æå", proStockInfoDetails); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | Dt_ProStockInfo stockInfo = stockInfos[index]; |
| | | float useableStockQuantity = stockInfo.proStockInfoDetails |
| | | .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0,1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | .Sum(x => x.StockPcsQty - x.OutboundQuantity); |
| | | if (useableStockQuantity < needQuantity) |
| | | if (useableStockQuantity < needQuantity && useableStockQuantity >0) |
| | | { |
| | | stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); |
| | | stockInfo.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)).ToList().ForEach(x => x.OutboundQuantity = x.StockPcsQty); |
| | | needQuantity -= useableStockQuantity; |
| | | } |
| | | else |
| | | { |
| | | stockInfo.proStockInfoDetails.ForEach(x => |
| | | { |
| | | //满足æ¡ä»¶è¿è¡åé
|
| | | if ((x.StockPcsQty > x.OutboundQuantity) |
| | | && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | && x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | { |
| | |
| | | { |
| | | x.OutboundQuantity += needQuantity; |
| | | needQuantity = 0; |
| | | x.OutDetailSaleNo = outOrderDetail.SaleOrder; |
| | | x.OutDetailId = outOrderDetail.Id; |
| | | } |
| | | else |
| | | { |
| | | needQuantity -= (x.StockPcsQty - x.OutboundQuantity); |
| | | x.OutboundQuantity = x.StockPcsQty; |
| | | x.OutDetailSaleNo = outOrderDetail.SaleOrder; |
| | | x.OutDetailId = outOrderDetail.Id; |
| | | } |
| | | } |
| | | }); |
| | |
| | | index++; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | for (int i = 0; i < stockInfos.Count; i++) |
| | | { |
| | | Dt_ProStockInfo stockInfo = stockInfos[i]; |
| | | float useableStockQuantity = stockInfo.proStockInfoDetails |
| | | .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | .Sum(x => x.StockPcsQty - x.OutboundQuantity); |
| | | if (useableStockQuantity < needQuantity) |
| | | { |
| | | stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); |
| | | needQuantity -= useableStockQuantity; |
| | | } |
| | | else |
| | | { |
| | | stockInfo.proStockInfoDetails.ForEach(x => |
| | | { |
| | | if (x.StockPcsQty > x.OutboundQuantity && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | { |
| | | if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) |
| | | { |
| | | x.OutboundQuantity += needQuantity; |
| | | needQuantity = 0; |
| | | } |
| | | else |
| | | { |
| | | needQuantity -= (x.StockPcsQty - x.OutboundQuantity); |
| | | x.OutboundQuantity = x.StockPcsQty; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | assignOutStocks.Add(stockInfo); |
| | | } |
| | | } |
| | | #region æåå¯ç¨åºåä¸è¶³ä¸è¿è¡åé
|
| | | //else |
| | | //{ |
| | | // for (int i = 0; i < stockInfos.Count; i++) |
| | | // { |
| | | // Dt_ProStockInfo stockInfo = stockInfos[i]; |
| | | // float useableStockQuantity = stockInfo.proStockInfoDetails |
| | | // .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | // && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | // && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | // .Sum(x => x.StockPcsQty - x.OutboundQuantity); |
| | | // if (useableStockQuantity < needQuantity) |
| | | // { |
| | | // stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); |
| | | // needQuantity -= useableStockQuantity; |
| | | // } |
| | | // else |
| | | // { |
| | | // stockInfo.proStockInfoDetails.ForEach(x => |
| | | // { |
| | | // if (x.StockPcsQty > x.OutboundQuantity && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer |
| | | // && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | // && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | // { |
| | | // if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) |
| | | // { |
| | | // x.OutboundQuantity += needQuantity; |
| | | // needQuantity = 0; |
| | | // } |
| | | // else |
| | | // { |
| | | // needQuantity -= (x.StockPcsQty - x.OutboundQuantity); |
| | | // x.OutboundQuantity = x.StockPcsQty; |
| | | // } |
| | | // } |
| | | // }); |
| | | // } |
| | | // stockInfo.proStockInfoDetails.ForEach(x => |
| | | // { |
| | | // x.OutDetailSaleNo = outOrderDetail.SaleOrder; |
| | | // x.OutDetailId = outOrderDetail.Id; |
| | | // }); |
| | | // assignOutStocks.Add(stockInfo); |
| | | // } |
| | | //} |
| | | #endregion |
| | | residueQuantity = needQuantity; |
| | | return assignOutStocks; |
| | | } |