| | |
| | | } |
| | | if (notice.Status != "0" && notice.Status != "1") |
| | | { |
| | | throw new Exception("参数异常,请检查状态是否为等待执行或部分分配或来源是否是WMS"); |
| | | throw new Exception("参数异常,请检查状态是否为等待执行或部分分配;"); |
| | | } |
| | | //出库单明细 |
| | | var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == soNo && (m.AllotQty - m.Qty) <= 0).ToList(); |
| | |
| | | //判断单号是否指定批次 |
| | | if (!string.IsNullOrWhiteSpace(detail.LotNo)) |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && m.IsDel == "0").ToList(); |
| | | if (detail.LotNo.Contains(";")) |
| | | { |
| | | var lotNoList = detail.LotNo.Split(";"); |
| | | var lotNoList2 = new List<string>(); |
| | | |
| | | foreach (var lotNoItem in lotNoList) |
| | | { |
| | | lotNoList2.Add(lotNoItem); |
| | | } |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && lotNoList2.Contains(m.LotNo) && m.IsDel == "0").ToList(); |
| | | } |
| | | else |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && m.IsDel == "0").ToList(); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && string.IsNullOrWhiteSpace(m.LotNo) && m.IsDel == "0").ToList(); |
| | | stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo) |
| | | } |
| | | |
| | | if (stockDetail.Count < 1) |
| | | { |
| | | throw new Exception("库存不足,无可出库库存"); |
| | | } |
| | | |
| | | //if (notice.Type == "0" || notice.Type == "1")//成品、原辅料出库 |
| | | //{ |
| | | stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList(); |
| | | //} |
| | | //else if (notice.Type == "2" || notice.Type == "3")//成品、原辅料出库(不合格) |
| | | //{ |
| | | // stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList(); |
| | | //} |
| | | //else if (notice.Type == "4")//取样出库 |
| | | //{ |
| | | // stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList(); |
| | | //} |
| | | //将库存明细按深度进行排序 深度1在前 深度2在后 |
| | | //stockDetail = stockDetail.OrderBy(d => int.Parse(d.LocatNo.Substring(6, 2))).ToList(); |
| | | //0:成品出库、1:领料出库、2:抽检出库、3:物料取样出库、4:不合格品出库、5:中间品出库、6:代储出库、7:其他出库、8:寄存出库 |
| | | if (notice.Type == "0" || notice.Type == "1" || notice.Type == "2" || notice.Type == "5")//成品、原辅料出库 |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList(); |
| | | } |
| | | else if (notice.Type == "3" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//取样出库 |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList(); |
| | | } |
| | | else if (notice.Type == "4")//不合格出库 |
| | | { |
| | | stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList(); |
| | | } |
| | | |
| | | #region 包装信息 |
| | | |
| | | var pack = packList.FirstOrDefault(p => p.PackagNo == detail.PackagNo); |
| | |
| | | } |
| | | |
| | | var sd = Db.Updateable(s).UpdateColumns(it => new { it.LockQty, it.Status }).ExecuteCommand(); |
| | | if (notice.Type == "1" || notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//1:领料出库、 |
| | | { |
| | | if (string.IsNullOrWhiteSpace(detail.LotNo)) |
| | | { |
| | | detail.LotNo = s.LotNo; |
| | | |
| | | } |
| | | else |
| | | { |
| | | if (!detail.LotNo.Contains(s.LotNo)) |
| | | { |
| | | detail.LotNo += ";" + s.LotNo; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | detail.AllotQty += qty; |
| | | detail.UpdateUser = userId; |
| | |
| | | { |
| | | detail.Status = "1"; |
| | | } |
| | | |
| | | |
| | | //库存总表 |
| | | //var stock = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo); |
| | | //stock.LockQty += qty; |