| | |
| | | using System.Net.NetworkInformation; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | |
| | | if (materielInfo.Business_qty >= materielInfo.MinQty) return response; |
| | | Dt_Tactics tactics = _tacticsService.Repository.QueryFirst(x => x.TacticeName == "åºåºçç¥"); |
| | | List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>(); |
| | | List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.å
¥åºå®æ.ObjToInt() && x.StockQuantity > x.OutboundQuantity && x.WarehouseCode == WareCode); |
| | | //// æ¥è¯¢å¤§ä»¶åºä¸å¯ç¨çåºå |
| | | List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.å
¥åºå®æ.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode); |
| | | if (dt_InventoryInfos.Count < 1) throw new Exception($"ç©æç¼å·ã{materielInfo.MaterielCode}ãå¤§ä»¶åºæ åºåï¼è¯·åæ¶è¡¥å
åºåï¼"); |
| | | if (tactics.SelectTactice == TacticsEnum.ComeOutonFirstTime.ObjToInt()) |
| | | dt_InventoryInfos = dt_InventoryInfos.OrderBy(x => x.ValidityPeriod).ToList(); |
| | | else |
| | |
| | | foreach (var item in dt_InventoryInfos) |
| | | { |
| | | if (materielInfo.Business_qty >= materielInfo.MinQty) break; |
| | | item.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | //item.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); |
| | | while (item.StockQuantity > item.OutboundQuantity && materielInfo.Business_qty < materielInfo.MinQty) |
| | | { |
| | | Qty += materielInfo.BoxQty; |
| | |
| | | item.AvailableQuantity = item.StockQuantity - item.OutboundQuantity; |
| | | } |
| | | #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_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder() |
| | |
| | | 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)) |
| | | foreach (var item in dt_InventoryInfos.GroupBy(x => x.BatchNo)) //è¿éææ¹æ¬¡åç»äº |
| | | { |
| | | Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail() |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _basicService.MaterielInfoService.Repository.UpdateData(materielInfo); |
| | | //_unitOfWorkManage.BeginTran(); |
| | | _materielInfoService.UpdateData(materielInfo); |
| | | _inventoryInfoService.Repository.UpdateData(dt_InventoryInfos); |
| | | _supplyTaskService.AddData(supplyTasks); |
| | | BaseDal.Db.InsertNav(deliveryOrder).Include(x => x.Details).ExecuteCommand(); |
| | | _cabinOrderServices.Repository.Db.InsertNav(cabinOrder).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | if (deliveryOrder.Details.Count > 1) BaseDal.Db.InsertNav(deliveryOrder).Include(x => x.Details).ExecuteCommand(); |
| | | if (cabinOrder.Details.Count > 1) _cabinOrderServices.Repository.Db.InsertNav(cabinOrder).Include(x => x.Details).ExecuteCommand(); |
| | | //_unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | //_unitOfWorkManage.RollbackTran(); |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.InventoryLowAlarm, "大件åºè¡¥è´§ç«åº", ex.Message); |
| | | response.Error(ex.Message); |
| | | } |
| | | return response; |