出库修改箱
This commit is contained in:
@@ -427,5 +427,47 @@ namespace WMS.Web.Domain.Services
|
||||
|
||||
return await ChangeBoxSave(dtoList, loginInfo, isTransaction, false);
|
||||
}
|
||||
/// <summary>
|
||||
/// 出库
|
||||
/// </summary>
|
||||
/// <param name="outStock"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> ChangeBox_OutStock(OutStock outStock, bool isTransaction = true)
|
||||
{
|
||||
if (outStock.Method == InventoryInOutMethod.Box) return Result.ReSuccess();
|
||||
List<SaveChangeBoxRecordRequest> dtoList = new List<SaveChangeBoxRecordRequest>();
|
||||
var boxDetails = outStock.Details.SelectMany(s => s.BoxsDetails);
|
||||
var boxIds = boxDetails.Select(s => s.BoxId).Distinct().ToList();
|
||||
var boxs = await _boxRepositories.GetEntityList(boxIds);
|
||||
foreach (var d in outStock.Details)
|
||||
{
|
||||
foreach (var db in d.BoxsDetails)
|
||||
{
|
||||
var box = boxs.FirstOrDefault(f => f.Id == db.BoxId);
|
||||
if (box == null) continue;
|
||||
box.OutStock(d.MaterialId, db.Qty);
|
||||
}
|
||||
}
|
||||
IDbContextTransaction _transaction = null;
|
||||
if (isTransaction)
|
||||
_transaction = _basbicsRepositories.GetTransaction();
|
||||
Result res_Rollback = Result.ReSuccess();
|
||||
bool isSuccess = true;
|
||||
if (res_Rollback.IsSuccess)
|
||||
{
|
||||
isSuccess = await _boxRepositories.EditEntityList(boxs, false);
|
||||
if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
//提交事务
|
||||
if (isTransaction)
|
||||
{
|
||||
isSuccess = _basbicsRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
|
||||
if (!res_Rollback.IsSuccess) return res_Rollback;
|
||||
if (!isSuccess)
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user