|
|
@ -113,10 +113,12 @@ public class UnplannedIssueJobAppService |
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private async Task<List<BalanceDTO>> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) |
|
|
|
|
|
|
|
private async Task<Tuple<List<BalanceDTO>,List<BalanceDTO>>> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) |
|
|
|
{ |
|
|
|
|
|
|
|
List<BalanceDTO> balanceDTOs = new List<BalanceDTO>(); |
|
|
|
List<BalanceDTO> unbalanceDTOs = new List<BalanceDTO>(); |
|
|
|
decimal totalDeducted = 0; |
|
|
|
|
|
|
|
foreach (var item in inventory) |
|
|
@ -128,16 +130,25 @@ public class UnplannedIssueJobAppService |
|
|
|
{ |
|
|
|
var locationDto = await _locationAppService.GetByCodeAsync(item.LocationCode).ConfigureAwait(false); |
|
|
|
BalanceDTO dto = new BalanceDTO(); |
|
|
|
BalanceDTO undto = new BalanceDTO(); |
|
|
|
dto.InjectFrom(item); |
|
|
|
dto.Qty = availableToDeduct; |
|
|
|
balanceDTOs.Add(dto); |
|
|
|
if (enumLocationType == EnumLocationType.RAW) |
|
|
|
{ |
|
|
|
dto.InjectFrom(item); |
|
|
|
dto.Qty = availableToDeduct; |
|
|
|
balanceDTOs.Add(dto); |
|
|
|
|
|
|
|
undto.InjectFrom(item); |
|
|
|
unbalanceDTOs.Add(dto); |
|
|
|
|
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
dto.InjectFrom(item); |
|
|
|
balanceDTOs.Add(dto); |
|
|
|
|
|
|
|
undto.InjectFrom(item); |
|
|
|
undto.Qty = availableToDeduct; |
|
|
|
unbalanceDTOs.Add(dto); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
@ -147,6 +158,10 @@ public class UnplannedIssueJobAppService |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Tuple<List<BalanceDTO>, List<BalanceDTO>> tuple = new Tuple<List<BalanceDTO>, List<BalanceDTO>>( balanceDTOs,unbalanceDTOs); |
|
|
|
|
|
|
|
|
|
|
|
// 返回实际扣减的库存数量
|
|
|
|
return balanceDTOs; |
|
|
|
} |
|
|
@ -277,8 +292,9 @@ public class UnplannedIssueJobAppService |
|
|
|
//实际要用库存
|
|
|
|
List<BalanceDTO> useBalances = new List<BalanceDTO>(); |
|
|
|
var returnlist=await DeductInventory(usableList, requestDtoDetail.Qty, locationDto.Type).ConfigureAwait(false); |
|
|
|
useBalances.AddRange(returnlist); |
|
|
|
useBalancesOut.AddRange(returnlist); |
|
|
|
|
|
|
|
useBalances.AddRange(returnlist.Item1); |
|
|
|
useBalancesOut.AddRange(returnlist.Item2); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|