| | |
| | | var itemOutFrom = oItemOut.from; |
| | | var itemOutLists = oItemOut.items; |
| | | |
| | | // 根据AsnNo和MesNo对明细进行分组 |
| | | var groupedItems = itemOutLists |
| | | .GroupBy(item => new { item.MesNo, item.SqNo }) |
| | | .ToList(); |
| | | |
| | | bool result = true; |
| | | foreach (var group in groupedItems) |
| | | return UseTransaction(db => |
| | | { |
| | | //if (group.Key.AsnNo == null) |
| | | //{ |
| | | // throw new NotImplementedException("AsnNo不能为空"); |
| | | //} |
| | | // 根据AsnNo和MesNo对明细进行分组 |
| | | var groupedItems = itemOutLists |
| | | .GroupBy(item => new { item.MesNo, item.SqNo }) |
| | | .ToList(); |
| | | |
| | | if (group.Key.MesNo == null) |
| | | int result = 1; |
| | | int count = 1; |
| | | foreach (var group in groupedItems) |
| | | { |
| | | throw new NotImplementedException("入库单单号不能为空"); |
| | | } |
| | | //if (group.Key.AsnNo == null) |
| | | //{ |
| | | // throw new NotImplementedException("AsnNo不能为空"); |
| | | //} |
| | | |
| | | if (group.Key.SqNo == null) |
| | | { |
| | | throw new NotImplementedException("退货申请单行号不能为空"); |
| | | } |
| | | |
| | | // 创建一个临时的itemOutFrom对象,使用分组的Key作为主要属性 |
| | | var tempItemOutFrom = new ItemOutFrom |
| | | { |
| | | |
| | | MesNo = group.Key.MesNo, |
| | | SqNo = group.Key.SqNo, |
| | | // 继承原始itemOutFrom的其他属性 |
| | | RtnNo = itemOutFrom.RtnNo, |
| | | Type = itemOutFrom.Type, |
| | | CreateBy = itemOutFrom.CreateBy, |
| | | FMRMODE = itemOutFrom.FMRMODE, |
| | | DepotId = itemOutFrom.DepotId, |
| | | SupperId = itemOutFrom.SupperId |
| | | }; |
| | | |
| | | // 根据Type执行不同的逻辑 |
| | | switch (tempItemOutFrom.Type) |
| | | { |
| | | case "1": |
| | | if (group.Key.MesNo == null) |
| | | { |
| | | var mesInvItemOuts = Db.Queryable<MesInvItemOuts>() |
| | | .Where(s => s.BillTypeId == BILL_TYPE_ID |
| | | && s.TransactionNo == TRANSACTION_NO |
| | | && s.ItemOutNo == tempItemOutFrom.RtnNo |
| | | |
| | | ) |
| | | .Count(); |
| | | |
| | | if (mesInvItemOuts > 0) |
| | | { |
| | | throw new NotImplementedException( |
| | | tempItemOutFrom.RtnNo + |
| | | "的退料申请单已经存在"); |
| | | } |
| | | |
| | | // 为当前分组保存数据 |
| | | var groupResult = Save(tempItemOutFrom, group.ToList()); |
| | | if (!groupResult) |
| | | { |
| | | result = false; |
| | | } |
| | | |
| | | break; |
| | | throw new NotImplementedException("入库单单号不能为空"); |
| | | } |
| | | case "4": |
| | | var removeResult = Remove(tempItemOutFrom); |
| | | if (!removeResult) |
| | | { |
| | | result = false; |
| | | } |
| | | |
| | | break; |
| | | default: |
| | | result = false; |
| | | break; |
| | | if (group.Key.SqNo == null) |
| | | { |
| | | throw new NotImplementedException("退货申请单行号不能为空"); |
| | | } |
| | | |
| | | // 创建一个临时的itemOutFrom对象,使用分组的Key作为主要属性 |
| | | var tempItemOutFrom = new ItemOutFrom |
| | | { |
| | | //AsnNo = group.Key.AsnNo, |
| | | MesNo = group.Key.MesNo, |
| | | SqNo = group.Key.SqNo, |
| | | // 继承原始itemOutFrom的其他属性 |
| | | RtnNo = itemOutFrom.RtnNo+ "-"+count.ToString(), |
| | | Type = itemOutFrom.Type, |
| | | CreateBy = itemOutFrom.CreateBy, |
| | | FMRMODE = itemOutFrom.FMRMODE, |
| | | DepotId = itemOutFrom.DepotId, |
| | | SupperId = itemOutFrom.SupperId |
| | | }; |
| | | count++; |
| | | // 根据Type执行不同的逻辑 |
| | | switch (tempItemOutFrom.Type) |
| | | { |
| | | case "1": |
| | | { |
| | | var mesInvItemOuts = Db.Queryable<MesInvItemOuts>() |
| | | .Where(s => s.BillTypeId == BILL_TYPE_ID |
| | | && s.TransactionNo == TRANSACTION_NO |
| | | && s.ItemOutNo == tempItemOutFrom.RtnNo |
| | | && s.Sapno == tempItemOutFrom.SqNo |
| | | ) |
| | | .Count(); |
| | | |
| | | if (mesInvItemOuts > 0) |
| | | { |
| | | throw new NotImplementedException( |
| | | tempItemOutFrom.RtnNo + |
| | | "的退料申请单已经存在"); |
| | | } |
| | | |
| | | // 为当前分组保存数据 |
| | | var groupResult = Save(tempItemOutFrom, group.ToList()); |
| | | if (!groupResult) |
| | | { |
| | | result = 0; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case "4": |
| | | var removeResult = Remove(tempItemOutFrom); |
| | | if (!removeResult) |
| | | { |
| | | result = 0; |
| | | } |
| | | |
| | | break; |
| | | default: |
| | | result = 0; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | return result; |
| | | }) > 0; |
| | | |
| | | |
| | | } |
| | | |
| | | private bool Save(ItemOutFrom from, List<ItemOutList> items) |
| | |
| | | RkQty = mesInvItemInCItems.Quantity, |
| | | TlQty = 0, |
| | | ItemId = Decimal.Parse(itemIdLinkU9.MesId), // 确保ItemId有值 |
| | | //SqNo = itemOutList.SqNo, // 确保ItemId有值 |
| | | SqNo = itemOutList.SqNo, // 确保ItemId有值 |
| | | //ZzitemId = itemOutList.AsnLineNo, // 确保ItemId有值 |
| | | // Unit = item.Unit, |
| | | }); |