| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_IStockRepository; |
| | |
| | | public List<Dt_ProStockInfo> GetProStocks(Dt_ProOutOrderDetail proOutOrderDetail,List<string> locationInfos) |
| | | { |
| | | List<Dt_ProStockInfo>? proStockInfos = null; |
| | | bool isCanLot= !string.IsNullOrEmpty(proOutOrderDetail.PLot); |
| | | bool isCanDate = !string.IsNullOrEmpty(proOutOrderDetail.DateCode); |
| | | proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode)) |
| | | bool isCanLot= string.IsNullOrEmpty(proOutOrderDetail.PLot); |
| | | bool isCanDate = string.IsNullOrEmpty(proOutOrderDetail.DateCode); |
| | | bool isCanVer = string.IsNullOrEmpty(proOutOrderDetail.OutSpecifyVer); |
| | | proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute == ProStockAttributeEnum.æå.ObjToInt()) |
| | | .Includes(x => x.proStockInfoDetails) |
| | | .Where(x => x.proStockInfoDetails |
| | | .Any(v => v.SaleOrder==proOutOrderDetail.SaleOrder |
| | | && v.ProductCode==proOutOrderDetail.PCode |
| | | && v.ProductVersion==proOutOrderDetail.PVer |
| | | && (isCanLot? v.LotNumber== proOutOrderDetail.PLot:true) |
| | | && (isCanDate ? v.DateCode == proOutOrderDetail.DateCode : true) |
| | | .Any(v => v.SaleOrder == proOutOrderDetail.SaleOrder |
| | | && v.ProductCode == proOutOrderDetail.PCode |
| | | && v.ProductVersion == proOutOrderDetail.PVer |
| | | && (isCanLot ? isCanLot : v.LotNumber == proOutOrderDetail.PLot) |
| | | && (isCanDate ? isCanDate : v.DateCode == proOutOrderDetail.DateCode) |
| | | )) |
| | | .ToList(); |
| | | |
| | |
| | | return proStockInfos; |
| | | } |
| | | /// <summary> |
| | | /// è·åMESæåºåºå |
| | | /// è·åMESæåºåºå(å°¾æ°ä») |
| | | /// </summary> |
| | | /// <param name="mesRworkOutboundOrder"></param> |
| | | /// <param name="locationInfos"></param> |
| | |
| | | public List<Dt_ProStockInfo> GetProStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder, List<string> locationInfos) |
| | | { |
| | | List<Dt_ProStockInfo>? proStockInfos = null; |
| | | bool isCanDate = !string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode); |
| | | proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode)) |
| | | bool isCanDate = string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode); |
| | | proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute==ProStockAttributeEnum.å°¾æ°.ObjToInt()) |
| | | .Includes(x => x.proStockInfoDetails) |
| | | .Where(x => x.proStockInfoDetails |
| | | .Any(v => v.SaleOrder == mesRworkOutboundOrder.SaleOrder |
| | | && v.ProductCode == mesRworkOutboundOrder.ProductCode |
| | | && v.ProductVersion == mesRworkOutboundOrder.ProductVersion |
| | | && (isCanDate ? v.DateCode == mesRworkOutboundOrder.DateCode : true) |
| | | && (isCanDate ? isCanDate : v.DateCode == mesRworkOutboundOrder.DateCode) |
| | | )) |
| | | .ToList(); |
| | | proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x => x.proStockInfoDetails.Sum(x => x.StockPcsQty)).ToList(); |