| | |
| | | _stockRepository = stockRepository; |
| | | _basicRepository = basicRepository; |
| | | } |
| | | /// <summary> |
| | | /// æ ¹æ®å¤å
ä¿¡æ¯è§£ç»å
å
ä¿¡æ¯ |
| | | /// </summary> |
| | | public WebResponseContent UnBindStock(List<Dt_ProStockInfoDetail> proStockInfoDetails) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | //æ ¹æ®å
å
å·è¿è¡åºåæ£é¤ |
| | | try |
| | | { |
| | | //è·ååºå |
| | | List<string> BagNos = proStockInfoDetails.Select(x => x.BagNo).Distinct().ToList(); |
| | | List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>() |
| | | .Where(x => x.StockStatus == StockStatusEmun.åºåºå®æ.ObjToInt()) |
| | | .Includes(x => x.proStockInfoDetails) |
| | | .Where(x => x.proStockInfoDetails.Any(v => BagNos.Contains(v.BagNo))).Distinct().ToList(); |
| | | List<Dt_ProStockInfoDetail> delProStockDetails=new List<Dt_ProStockInfoDetail>(); |
| | | List<Dt_ProStockInfoDetail> upProStockDetails = new List<Dt_ProStockInfoDetail>(); |
| | | List<Dt_ProStockInfo> delProStockInfos = new List<Dt_ProStockInfo>(); |
| | | foreach (var item in proStockInfoDetails) |
| | | { |
| | | Dt_ProStockInfo? proStockInfo = proStockInfos.Where(x => x.proStockInfoDetails.Any(v => v.BagNo == item?.BagNo)).FirstOrDefault(); |
| | | Dt_ProStockInfoDetail? proStockInfoDetail = proStockInfo?.proStockInfoDetails.Where(x => x.BagNo == item?.BagNo).FirstOrDefault(); |
| | | if (proStockInfo==null || proStockInfoDetail == null) |
| | | { |
| | | return content.Error($"æªæ¾å°{item?.BagNo}åºå"); |
| | | } |
| | | |
| | | //夿æç»æ¯å¦å
¨é¨æ«åº |
| | | if (proStockInfoDetail.StockPcsQty==item.StockPcsQty) |
| | | { |
| | | 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); |
| | | } |
| | | |
| | | if (proStockInfo.proStockInfoDetails.Count==0) |
| | | { |
| | | delProStockInfos.Add(proStockInfo); |
| | | } |
| | | } |
| | | if (delProStockInfos.Count>0) |
| | | { |
| | | BaseDal.DeleteAndMoveIntoHty(delProStockInfos, OperateTypeEnum.èªå¨å é¤); |
| | | } |
| | | if (delProStockDetails.Count > 0) |
| | | { |
| | | _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delProStockDetails, OperateTypeEnum.èªå¨å é¤); |
| | | } |
| | | if (upProStockDetails.Count > 0) |
| | | { |
| | | _stockRepository.ProStockInfoDetailRepository.UpdateData(upProStockDetails); |
| | | } |
| | | content.OK("æå", proStockInfoDetails); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |