diff --git a/TradeManageNew/OuterService/ShageService.ashx.cs b/TradeManageNew/OuterService/ShageService.ashx.cs index 9e7db21..02968d4 100644 --- a/TradeManageNew/OuterService/ShageService.ashx.cs +++ b/TradeManageNew/OuterService/ShageService.ashx.cs @@ -1375,27 +1375,37 @@ namespace TradeManageNew.OuterService { var input = JsonConvert.DeserializeObject(ResponseContent); var validatedSuccess = true; - if (string.IsNullOrEmpty(input.OrderCode)) + if (string.IsNullOrWhiteSpace(input.OrderCode)) { md.Code = "400"; md.Result = "Please enter order code"; md.Data = null; validatedSuccess = false; } - if (string.IsNullOrEmpty(input.GoodsCode)) + if (string.IsNullOrWhiteSpace(input.GoodsCode)) { md.Code = "400"; md.Result = "Please enter sku code"; md.Data = null; validatedSuccess = false; } - if (string.IsNullOrEmpty(input.TrackingCode)) + else + { + input.GoodsCode = input.GoodsCode.Trim(); + } + + if (string.IsNullOrWhiteSpace(input.TrackingCode)) { md.Code = "400"; md.Result = "Please enter tracking code"; md.Data = null; validatedSuccess = false; } + else + { + input.TrackingCode = input.TrackingCode.Trim(); + } + if (input.Quantity<=0) { md.Code = "400"; @@ -1432,9 +1442,17 @@ namespace TradeManageNew.OuterService $"There is no product information with ID {orderItem.DetailId}"); } - //检查是否存在相同跟踪号不同情况的订单 + //检查是否存在相同跟踪号不同订单号的订单 + var repeatTrackingCodeOrderIds = db.DT_OrderUsedSaleEntry + .Where(x => x.TrackingCode == input.TrackingCode) + .Select(x => x.OrderId) + .Distinct(); + if (repeatTrackingCodeOrderIds.Any() && !repeatTrackingCodeOrderIds.Contains(order.OrderId)) + { + throw new Exception( + $"The tracking number has already been linked to an order"); + } - var newOrderUsedSaleEntry = new TradeUsedSale.Repositories.Models.DT_OrderUsedSaleEntry { @@ -1461,7 +1479,7 @@ namespace TradeManageNew.OuterService if (Method == "GetOrderUsedSale") { var input = JsonConvert.DeserializeObject(ResponseContent); - if (string.IsNullOrEmpty(input.TrackingCode)) + if (string.IsNullOrWhiteSpace(input.TrackingCode)) { md.Code = "400"; md.Result = "Please enter tracking code"; @@ -1469,9 +1487,19 @@ namespace TradeManageNew.OuterService } else { + input.TrackingCode = input.TrackingCode.Trim(); using (var db = new ErpDbContext()) { - //var orderUsedSaleEntry + var orderUsedSaleEntryList = db.DT_OrderUsedSaleEntry + .Where(x => x.TrackingCode == input.TrackingCode) + .ToList(); + + var groupOrderUsedSaleEntry = orderUsedSaleEntryList.GroupBy(x => x.GoodsId) + .Select(o => new + { + o.Key, + Quantity = o.Sum(x => x.Quantity) + }).ToList(); } }