| | |
| | | { |
| | | return WebResponseContent.Instance.Error("æªæ¾å°æ»¡è¶³åºåºæ¡ä»¶çåºåºå"); |
| | | } |
| | | if (outboundOrder.DepartmentCode == "èæåºå
¥åºéå®") |
| | | { |
| | | return WebResponseContent.Instance.Error("è¯¥åæ®å¦ä¸å°çµèæ£å¨è¿è¡èæåºå
¥åºæä½ï¼è¯·ç¨ååè¯"); |
| | | } |
| | | else |
| | | { |
| | | outboundOrder.DepartmentCode = "èæåºå
¥åºéå®"; |
| | | } |
| | | if(outboundOrder.IsBatch == 0) |
| | | { |
| | | return WebResponseContent.Instance.Error("è¯¥åæ®ä¸å±äºåæ¹åä¼ åæ®ï¼ä¸å
许èæåºå
¥åº"); |
| | |
| | | item.NoStockOutQty = 0; |
| | | item.documentsNO = ""; |
| | | } |
| | | _outboundOrderService.UpdateData(outboundOrder); |
| | | _outboundOrderDetailService.UpdateData(outboundOrder.Details); |
| | | return WebResponseContent.Instance.OK("æå"); |
| | | |
| | | } |
| | | |
| | | public WebResponseContent BarcodeValidate(NoStockOutModel noStockOut) |
| | | public WebResponseContent MovePickingOrders(string outOrder) |
| | | { |
| | | Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == outOrder).First(); |
| | | if (outboundOrder.DepartmentCode == "èæåºå
¥åºéå®") |
| | | { |
| | | outboundOrder.DepartmentCode = ""; |
| | | } |
| | | _outboundOrderService.UpdateData(outboundOrder); |
| | | return WebResponseContent.Instance.OK("æå"); |
| | | |
| | | } |
| | | |
| | | public WebResponseContent BarcodeValidate(NoStockOutModel noStockOut) |
| | | { |
| | | try |
| | | { |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error($"å¨åºåºå䏿ªæ¾å°ç©æ{item.MaterielCode}çå¯åºåºæç»"); |
| | | } |
| | | |
| | | // éåç¬¦åæ¡ä»¶çåºåºæç»ï¼éè¡åé
æ°é |
| | | foreach (var outDetail in eligibleOutDetails) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | Dt_OutboundOrder outboundOrder = _inboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == noStockOutSubmit.OutOderSubmit && x.OrderStatus != OutOrderStatusEnum.åºåºå®æ.ObjToInt()).Includes(x => x.Details).First(); |
| | | if (outboundOrder == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°åºåºåï¼{noStockOutSubmit.OutOderSubmit}"); |
| | | } |
| | | |
| | | |
| | | // 1. çéåºæ¬æ¬¡æäº¤æ¡ç å
³èçåºåºæç» |
| | | List<Dt_OutboundOrderDetail> outboundOrderDetail2 = outboundOrder.Details |
| | | .Where(x => !string.IsNullOrWhiteSpace(x.documentsNO) |
| | | && noStockOutSubmit.BarCodeSubmit.Any(barcode => |
| | | x.documentsNO.IndexOf(barcode, StringComparison.OrdinalIgnoreCase) >= 0)) |
| | | .ToList(); |
| | | |
| | | HashSet<string> existBarcodes = new HashSet<string>(); |
| | | |
| | | foreach (var detail in outboundOrderDetail2) |
| | | { |
| | | try |
| | | { |
| | | // ååºååæç»éçæ¡ç å表 |
| | | var barcodesInDoc = JsonConvert.DeserializeObject<List<Barcodes>>(detail.documentsNO); |
| | | if (barcodesInDoc == null) continue; |
| | | |
| | | // ææ¡ç å å
¥å»ééå |
| | | foreach (var b in barcodesInDoc) |
| | | { |
| | | if (!string.IsNullOrEmpty(b.Barcode)) |
| | | existBarcodes.Add(b.Barcode.Trim()); |
| | | } |
| | | } |
| | | catch { } |
| | | } |
| | | |
| | | // 3. å端æäº¤çæ¡ç â å»é |
| | | HashSet<string> submitBarcodes = new HashSet<string>( |
| | | noStockOutSubmit.BarCodeSubmit |
| | | .Where(b => !string.IsNullOrEmpty(b)) |
| | | .Select(b => b.Trim()) |
| | | ); |
| | | |
| | | // 4. æ¾åºãæäº¤äºï¼ä½ç³»ç»éä¸åå¨ãçæ¡ç |
| | | var missingBarcodes = submitBarcodes.Except(existBarcodes).ToList(); |
| | | |
| | | // 5. 妿æç¼ºå¤± â æ¦æªæ¥é |
| | | if (missingBarcodes.Any()) |
| | | { |
| | | return WebResponseContent.Instance.Error( |
| | | $"æ°æ®å¼å¸¸ï¼ä»¥ä¸æ¡ç å¨åºåºå䏿ªæ¾å°æå·²è¢«æ¸
空ï¼{string.Join(",", missingBarcodes)}" |
| | | ); |
| | | } |
| | | |
| | | List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>(); |
| | | |
| | | Dictionary<int, List<string>> orderIdBarCodeDict = new Dictionary<int, List<string>>(); |