| | |
| | | { |
| | | public partial class StockQuantityChangeRecordService : ServiceBase<Dt_StockQuantityChangeRecord, IStockQuantityChangeRecordRepository>, IStockQuantityChangeRecordService |
| | | { |
| | | public void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> stockInfoDetails, float beforeQuantity, float totalQuantity, StockChangeTypeEnum changeType, int? taskNum = null) |
| | | /// <summary> |
| | | /// å·æåå¨åºåè®°å½ |
| | | /// </summary> |
| | | /// <param name="stockInfo">åºå</param> |
| | | /// <param name="beforeQuantity">åå¨ååºå</param> |
| | | /// <param name="changeQuantity">åå¨åºå</param> |
| | | /// <param name="changeType">åå¨ç±»å</param> |
| | | /// <param name="taskNum">ä»»å¡å·</param> |
| | | /// <param name="orderNo">åæ®ç¼å·</param> |
| | | /// <exception cref="Exception"></exception> |
| | | public void AddStockChangeRecord(Dt_StockInfo stockInfo, decimal beforeQuantity, decimal changeQuantity, StockChangeTypeEnum changeType, int? taskNum = 0,string orderNo="") |
| | | { |
| | | try |
| | | { |
| | | List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>(); |
| | | stockQuantityChangeRecords = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(stockInfoDetails); |
| | | int index = 0; |
| | | float currentQuantity = 0; |
| | | stockQuantityChangeRecords.ForEach(x => |
| | | Dt_StockQuantityChangeRecord stockQuantityChangeRecord = new Dt_StockQuantityChangeRecord() |
| | | { |
| | | x.PalleCode = stockInfo.PalletCode; |
| | | x.BeforeQuantity = beforeQuantity; |
| | | if (totalQuantity >= beforeQuantity) |
| | | { |
| | | x.ChangeQuantity = stockInfoDetails[index].StockQuantity; |
| | | currentQuantity += stockInfoDetails[index].StockQuantity; |
| | | x.AfterQuantity = stockInfoDetails[index].StockQuantity + beforeQuantity; |
| | | } |
| | | else |
| | | { |
| | | x.ChangeQuantity = -stockInfoDetails[index].StockQuantity; |
| | | currentQuantity -= stockInfoDetails[index].StockQuantity; |
| | | x.AfterQuantity = beforeQuantity - stockInfoDetails[index].StockQuantity; |
| | | } |
| | | |
| | | x.ChangeType = changeType.ObjToInt(); |
| | | beforeQuantity += x.ChangeQuantity; |
| | | x.TaskNum = taskNum; |
| | | index++; |
| | | }); |
| | | BaseDal.AddData(stockQuantityChangeRecords); |
| | | StockId = stockInfo.Id, |
| | | PalleCode = stockInfo.PalletCode, |
| | | MaterielCode=stockInfo.MaterielCode, |
| | | MaterielName=stockInfo.MaterielName, |
| | | BatchNo = "", |
| | | SerilNumber=$"{stockInfo.Id}", |
| | | OrderNo = orderNo, |
| | | TaskNum= taskNum, |
| | | ChangeType=changeType.ObjToInt(), |
| | | ChangeQuantity=changeQuantity, |
| | | BeforeQuantity=beforeQuantity, |
| | | AfterQuantity=beforeQuantity+changeQuantity, |
| | | Creater="System" |
| | | }; |
| | | BaseDal.AddData(stockQuantityChangeRecord); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public void AddStockChangeRecord(Dt_StockInfo stockInfo, List<Dt_StockInfoDetail> residueDetailList, List<Dt_StockInfoDetail> updateDetails, List<Dt_StockInfoDetail> deleteDetails, StockChangeTypeEnum changeType, int? taskNum = null) |
| | | /// <summary> |
| | | /// æåè¾
æåºåè®°å½ |
| | | /// </summary> |
| | | /// <param name="proStockInfo">åºå</param> |
| | | /// <param name="beforeQuantity">åå¨ååºå</param> |
| | | /// <param name="changeQuantity">åå¨åºå</param> |
| | | /// <param name="changeType">åå¨ç±»å</param> |
| | | /// <param name="taskNum">ä»»å¡å·</param> |
| | | /// <param name="orderNo"></param> |
| | | /// <exception cref="Exception"></exception> |
| | | public void AddStockChangeRecord(Dt_ProStockInfo proStockInfo, decimal beforeQuantity, decimal changeQuantity, StockChangeTypeEnum changeType, int? taskNum = null, string orderNo = "") |
| | | { |
| | | try |
| | | { |
| | | List<Dt_StockQuantityChangeRecord> stockQuantityChangeRecords = new List<Dt_StockQuantityChangeRecord>(); |
| | | |
| | | int index1 = 0; |
| | | List<Dt_StockQuantityChangeRecord> records1 = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(updateDetails); |
| | | float beforeQuantity = updateDetails.Sum(x => x.OutboundQuantity + x.StockQuantity) + deleteDetails.Sum(x => x.StockQuantity) + residueDetailList.Sum(x => x.StockQuantity); |
| | | |
| | | records1.ForEach(x => |
| | | Dt_StockQuantityChangeRecord stockQuantityChangeRecord = new Dt_StockQuantityChangeRecord() |
| | | { |
| | | x.PalleCode = stockInfo.PalletCode; |
| | | x.BeforeQuantity = beforeQuantity; |
| | | x.ChangeQuantity = -updateDetails[index1].OutboundQuantity; |
| | | x.AfterQuantity = beforeQuantity + x.ChangeQuantity; |
| | | beforeQuantity -= updateDetails[index1].OutboundQuantity; |
| | | index1++; |
| | | }); |
| | | stockQuantityChangeRecords.AddRange(records1); |
| | | int index2 = 0; |
| | | List<Dt_StockQuantityChangeRecord> records2 = _mapper.Map<List<Dt_StockQuantityChangeRecord>>(deleteDetails); |
| | | records2.ForEach(x => |
| | | { |
| | | x.PalleCode = stockInfo.PalletCode; |
| | | x.BeforeQuantity = beforeQuantity; |
| | | x.ChangeQuantity = -deleteDetails[index2].StockQuantity; |
| | | x.AfterQuantity = beforeQuantity + x.ChangeQuantity; |
| | | beforeQuantity -= deleteDetails[index2].StockQuantity; |
| | | index2++; |
| | | }); |
| | | stockQuantityChangeRecords.AddRange(records2); |
| | | |
| | | BaseDal.AddData(stockQuantityChangeRecords); |
| | | StockId = proStockInfo.Id, |
| | | PalleCode = proStockInfo.PalletCode, |
| | | MaterielCode = proStockInfo.proStockInfoDetails?.FirstOrDefault()?.ProductCode ?? "", |
| | | MaterielName = proStockInfo.proStockInfoDetails?.FirstOrDefault()?.ProductName ?? "", |
| | | BatchNo = "", |
| | | SerilNumber = $"{proStockInfo.Id}", |
| | | OrderNo = orderNo, |
| | | TaskNum = taskNum, |
| | | ChangeType = changeType.ObjToInt(), |
| | | ChangeQuantity = changeQuantity, |
| | | BeforeQuantity = beforeQuantity, |
| | | AfterQuantity = beforeQuantity + changeQuantity, |
| | | Creater = "System" |
| | | }; |
| | | BaseDal.AddData(stockQuantityChangeRecord); |
| | | } |
| | | catch (Exception ex) |
| | | { |