| | |
| | | IStockQuantityChangeRecordRepository Repository { get; } |
| | | |
| | | void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType,int? taskNum = null); |
| | | |
| | | void NEWAddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType, int? taskNum = null); |
| | | } |
| | | } |
| | |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public void NEWAddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, decimal beforeQuantity, decimal totalQuantity, StockChangeType changeType, int? taskNum = null) |
| | | { |
| | | try |
| | | { |
| | | List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>(); |
| | | stockQuantityChangeRecords = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(stockInfoDetails); |
| | | int index = 0; |
| | | decimal currentQuantity = 0; |
| | | stockQuantityChangeRecords.ForEach(x => |
| | | { |
| | | x.PalleCode = stockInfo.PalletCode; |
| | | x.BeforeQuantity = beforeQuantity; |
| | | if (totalQuantity <= beforeQuantity) |
| | | { |
| | | x.ChangeQuantity = stockInfoDetails[index].OutboundQuantity; |
| | | currentQuantity += stockInfoDetails[index].OutboundQuantity; |
| | | x.AfterQuantity = beforeQuantity - stockInfoDetails[index].OutboundQuantity ; |
| | | } |
| | | x.ChangeType = changeType.ObjToInt(); |
| | | beforeQuantity -= x.ChangeQuantity; |
| | | x.TaskNum = taskNum; |
| | | index++; |
| | | }); |
| | | BaseDal.AddData(stockQuantityChangeRecords); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | { |
| | | Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrderDetail>() |
| | | .Where(x => x.OrderId == inboundOrder.Id && x.BatchNo == detail.BatchNo).First(); |
| | | outboundOrderDetails.Add(outboundOrderDetail); |
| | | if(outboundOrderDetail != null) |
| | | { |
| | | outboundOrderDetails.Add(outboundOrderDetail); |
| | | |
| | | } |
| | | } |
| | | |
| | | for (var i = 0; i < outboundOrderDetails.Count; i++) |
| | |
| | | // 添加状态变更记录 |
| | | AddStatusChangeRecord(task, stockInfo, locationInfo); |
| | | |
| | | |
| | | // 根据订单类型处理不同逻辑 |
| | | |
| | | var outboundOrder = _outboundService.OutboundOrderService.Db.Queryable<Dt_OutboundOrder>() |
| | |
| | | StockChangeType.Outbound.ObjToInt(), |
| | | stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", |
| | | task.TaskNum); |
| | | |
| | | _recordService.StockQuantityChangeRecordService.NEWAddStockChangeRecord( |
| | | stockInfo, stockInfo.Details, |
| | | stockInfo.Details.Sum(x => x.StockQuantity), |
| | | stockInfo.Details.Sum(x => x.OutboundQuantity), |
| | | StockChangeType.Outbound, task.TaskNum); |
| | | } |
| | | |
| | | private void ProcessNormalOutbound(Dt_Task task, Dt_StockInfo stockInfo, |