| | |
| | | dt_InventoryInfos = dt_InventoryInfos.OrderBy(x => x.ValidityPeriod).ToList(); |
| | | else |
| | | dt_InventoryInfos = dt_InventoryInfos.OrderBy(x => x.InDate).ToList(); |
| | | decimal Qty = 0; |
| | | Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder() |
| | | { |
| | | Out_no = DateTime.Now.ToString("yyMMddHHmmss"), |
| | | Warehouse_no = WareCode, |
| | | Out_type = OutOrderTypeEnum.Allocate.ObjToInt().ToString(), |
| | | OutStatus = "æ°å»º", |
| | | Details = new List<Dt_DeliveryOrderDetail>() |
| | | }; |
| | | foreach (var item in dt_InventoryInfos) |
| | | { |
| | | decimal Qty = 0; |
| | | if (materielInfo.Business_qty >= materielInfo.MinQty) break; |
| | | //item.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | while (item.StockQuantity > item.OutboundQuantity && materielInfo.Business_qty < materielInfo.MinQty) |
| | |
| | | item.OutboundQuantity += materielInfo.BoxQty; |
| | | } |
| | | item.AvailableQuantity = item.StockQuantity - item.OutboundQuantity; |
| | | } |
| | | #region 大件åºè¡¥ç«åºåç«åºä¸å¡åºåæ°è¿æ¯å°äºç«åºæå°åºåæ°ï¼æ·»å æç¤ºä¿¡æ¯ |
| | | //æ·»å æ¥è¦ä¿¡æ¯ |
| | | if (materielInfo.Business_qty < materielInfo.MinQty) |
| | | #region æ·»å è°æ¨åºåºå |
| | | Dt_DeliveryOrderDetail? deliveryOrderDetail = deliveryOrder.Details.FirstOrDefault(x => x.Batch_num == item.BatchNo); |
| | | if (deliveryOrderDetail == null) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, $"ç©æåç§°:{materielInfo.MaterielName}", $"ãç©æç¼ç {materielInfo.MaterielCode}å·²çæè°æ¨åºå
¥åºåï¼è¯·è¿è¡åºå
¥åºæµç¨ã大件åºåºåè¿ä½ï¼è¯·åæ¶è¡¥å
åºåï¼ã"); |
| | | deliveryOrderDetail = new Dt_DeliveryOrderDetail() |
| | | { |
| | | Batch_num = item.BatchNo, |
| | | Order_Outqty = 0, |
| | | Order_qty = Qty, |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName ?? "System", |
| | | Goods_no = item.MaterielCode, |
| | | OotDetailStatus = "æ°å»º", |
| | | Status = 2, |
| | | Reservoirarea = WareCode |
| | | }; |
| | | deliveryOrder.Details.Add(deliveryOrderDetail); |
| | | } |
| | | else |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, $"ç©æåç§°:{materielInfo.MaterielName}", $"ãç©æç¼ç {materielInfo.MaterielCode}å·²çæè°æ¨åºå
¥åºåï¼è¯·è¿è¡åºå
¥åºæµç¨ã"); |
| | | deliveryOrderDetail.Order_qty += Qty; |
| | | } |
| | | #endregion |
| | | #region æ·»å è°æ¨åºåºå |
| | | Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder() |
| | | { |
| | | Out_no = DateTime.Now.ToString("yyMMddHHmmss"), |
| | | Out_type = OutOrderTypeEnum.Allocate.ObjToInt().ToString(), |
| | | OutStatus = "æ°å»º", |
| | | Details = new List<Dt_DeliveryOrderDetail>() |
| | | }; |
| | | dt_InventoryInfos = dt_InventoryInfos.Where(X => X.StockStatus == StockStatusEmun.åºåºéå®.ObjToInt()).ToList(); |
| | | foreach (var item in dt_InventoryInfos.GroupBy(x => x.BatchNo)) //è¿éææ¹æ¬¡åç»äº |
| | | { |
| | | Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail() |
| | | { |
| | | Batch_num = item.Key, |
| | | Order_Outqty = 0, |
| | | Order_qty = item.Select(x => x.OutboundQuantity).Sum(), |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName ?? "System", |
| | | Goods_no = item.First().MaterielCode, |
| | | OotDetailStatus = "æ°å»º", |
| | | Status = 2, |
| | | Reservoirarea = item.First().WarehouseCode |
| | | }; |
| | | deliveryOrder.Warehouse_no = item.First().WarehouseCode; |
| | | deliveryOrder.Details.Add(deliveryOrderDetail); |
| | | } |
| | | #endregion |
| | | |
| | | #region æ·»å è°æ¨åºåºä»»å¡ |
| | | foreach (var item in dt_InventoryInfos) |
| | | { |
| | | Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | | { |
| | | WarehouseCode = item.WarehouseCode, |
| | |
| | | Creater = App.User.UserName ?? "System", |
| | | LocationCode = item.LocationCode, |
| | | OrderNo = deliveryOrder.Out_no, |
| | | StockQuantity = item.OutboundQuantity, |
| | | StockQuantity = Qty, |
| | | SupplyQuantity = 0, |
| | | Remark = "è°æ¨åºåº" |
| | | }; |
| | | supplyTasks.Add(supplyTask); |
| | | #endregion |
| | | } |
| | | #region 大件åºè¡¥ç«åºåç«åºä¸å¡åºåæ°è¿æ¯å°äºç«åºæå°åºåæ°ï¼æ·»å æç¤ºä¿¡æ¯ |
| | | //æ·»å æ¥è¦ä¿¡æ¯ |
| | | if (materielInfo.Business_qty < materielInfo.MinQty) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, $"ç©æåç§°:{materielInfo.MaterielName}", $"ãç©æç¼ç {materielInfo.MaterielCode}å·²çæè°æ¨åºå
¥åºåï¼è¯·è¿è¡åºå
¥åºæµç¨ã大件åºåºåè¿ä½ï¼è¯·åæ¶è¡¥å
åºåï¼ã"); |
| | | } |
| | | else |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, $"ç©æåç§°:{materielInfo.MaterielName}", $"ãç©æç¼ç {materielInfo.MaterielCode}å·²çæè°æ¨åºå
¥åºåï¼è¯·è¿è¡åºå
¥åºæµç¨ã"); |
| | | } |
| | | #endregion |
| | | #region æ·»å è°æ¨åºåºå |
| | | //dt_InventoryInfos = dt_InventoryInfos.Where(X => X.StockStatus == StockStatusEmun.åºåºéå®.ObjToInt()).ToList(); |
| | | //foreach (var item in dt_InventoryInfos.GroupBy(x => x.BatchNo)) //è¿éææ¹æ¬¡åç»äº |
| | | //{ |
| | | // Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail() |
| | | // { |
| | | // Batch_num = item.Key, |
| | | // Order_Outqty = 0, |
| | | // Order_qty = item.Select(x => x.OutboundQuantity).Sum(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName ?? "System", |
| | | // Goods_no = item.First().MaterielCode, |
| | | // OotDetailStatus = "æ°å»º", |
| | | // Status = 2, |
| | | // Reservoirarea = item.First().WarehouseCode |
| | | // }; |
| | | // deliveryOrder.Warehouse_no = item.First().WarehouseCode; |
| | | // deliveryOrder.Details.Add(deliveryOrderDetail); |
| | | //} |
| | | #endregion |
| | | |
| | | #region æ·»å è°æ¨åºåºä»»å¡ |
| | | //foreach (var item in dt_InventoryInfos) |
| | | //{ |
| | | // Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | | // { |
| | | // WarehouseCode = item.WarehouseCode, |
| | | // BatchNo = item.BatchNo, |
| | | // MaterielName = item.MaterielName, |
| | | // MaterielCode = item.MaterielCode, |
| | | // MaterielSpec = item.MaterielSpec, |
| | | // TaskStatus = SupplyStatusEnum.NewOut.ObjToInt(), |
| | | // TaskType = TaskTypeEnum.AllocatOut.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName ?? "System", |
| | | // LocationCode = item.LocationCode, |
| | | // OrderNo = deliveryOrder.Out_no, |
| | | // StockQuantity = item.OutboundQuantity, |
| | | // SupplyQuantity = 0, |
| | | // Remark = "è°æ¨åºåº" |
| | | // }; |
| | | // supplyTasks.Add(supplyTask); |
| | | //} |
| | | #endregion |
| | | |
| | | #region æ·»å è°æ¨å
¥åºå |