| | |
| | | bool isCanLot = string.IsNullOrEmpty(outOrderDetail.PLot); |
| | | bool isCanDate = string.IsNullOrEmpty(outOrderDetail.DateCode); |
| | | float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | .Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x); |
| | | //stockInfos = stockInfos.OrderBy(x => x.Id).ToList(); |
| | |
| | | Dt_ProStockInfo stockInfo = stockInfos[index]; |
| | | float useableStockQuantity = stockInfo.proStockInfoDetails |
| | | .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0,1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | .Sum(x => x.StockPcsQty - x.OutboundQuantity); |
| | | if (useableStockQuantity < needQuantity && useableStockQuantity >0) |
| | | { |
| | | stockInfo.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)).ToList().ForEach(x => x.OutboundQuantity = x.StockPcsQty); |
| | | needQuantity -= useableStockQuantity; |
| | | } |
| | |
| | | //满足æ¡ä»¶è¿è¡åé
|
| | | if ((x.StockPcsQty > x.OutboundQuantity) |
| | | && x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) |
| | | && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) |
| | | && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) |
| | | { |
| | | if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) |
| | |
| | | // } |
| | | // return (deleteStockDetails, updateStockDetails); |
| | | //} |
| | | public WebResponseContent GetProCodeByWarehouse(int warehouseId) |
| | | { |
| | | try |
| | | { |
| | | //è·åææåºååå· |
| | | List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId) |
| | | .Where((master, detail) => master.WarehouseId == warehouseId) |
| | | .Select((master, detail) => detail) |
| | | .ToList(); |
| | | //è¿æ»¤éå¤ |
| | | List<string> proCode = proStockInfoDetails.Select(x => x.ProductCode).Distinct().ToList(); |
| | | return WebResponseContent.Instance.OK("æå",data: proCode); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent GetProVersionByCode(string scrapProCode, int warehouseId) |
| | | { |
| | | try |
| | | { |
| | | //è·åæå®äº§ååºåçæ¬ |
| | | List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId) |
| | | .Where((master, detail) => master.WarehouseId == warehouseId && detail.ProductCode== scrapProCode) |
| | | .Select((master, detail) => detail) |
| | | .ToList(); |
| | | //è¿æ»¤éå¤ |
| | | List<string> productVersion = proStockInfoDetails.Select(x => x.ProductVersion).Distinct().ToList(); |
| | | return WebResponseContent.Instance.OK("æå",data: productVersion); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent GetProLotNoByCode(string scrapProCode, int warehouseId) |
| | | { |
| | | try |
| | | { |
| | | //è·åæå®äº§ååºåæ¹æ¬¡ |
| | | List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId) |
| | | .Where((master, detail) => master.WarehouseId == warehouseId && detail.ProductCode == scrapProCode) |
| | | .Select((master, detail) => detail) |
| | | .ToList(); |
| | | //è¿æ»¤éå¤ |
| | | List<string> lotNumber = proStockInfoDetails.Select(x => x.LotNumber).Distinct().ToList(); |
| | | return WebResponseContent.Instance.OK("æå", data: lotNumber); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | } |