|
@ -27,7 +27,7 @@ public class MaterialRequestManager |
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
public virtual async Task<MaterialRequest> CreateBynNumberAsync(MaterialRequest entity) |
|
|
public virtual async Task<MaterialRequest> CreateBynNumberAsync(MaterialRequest entity) |
|
|
{ |
|
|
{ |
|
|
var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(typeof(MaterialRequest).Name, entity.ActiveDate).ConfigureAwait(false) : entity.Number; |
|
|
var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(MaterialRequest), entity.ActiveDate).ConfigureAwait(false) : entity.Number; |
|
|
entity.SetIdAndNumberWithDetails(GuidGenerator, number); |
|
|
entity.SetIdAndNumberWithDetails(GuidGenerator, number); |
|
|
entity.Submit(); |
|
|
entity.Submit(); |
|
|
entity.Agree(); |
|
|
entity.Agree(); |
|
@ -128,16 +128,35 @@ public class MaterialRequestManager |
|
|
oldEntity.ReplaceDetail(newDetail.Id, newDetail); |
|
|
oldEntity.ReplaceDetail(newDetail.Id, newDetail); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var flag=oldEntity.Details.Any(p => p.ReceivedQty < p.Qty);//还有补料完 没收到的货
|
|
|
foreach (var detail in oldEntity.Details) |
|
|
|
|
|
|
|
|
if (!flag) |
|
|
|
|
|
{ |
|
|
{ |
|
|
oldEntity.Complete(); |
|
|
SetMaterialRequestDetailStatus(detail); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//SetMaterialRequestStatus(oldEntity);
|
|
|
|
|
|
|
|
|
await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); |
|
|
await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void SetMaterialRequestDetailStatus(MaterialRequestDetail detail) |
|
|
|
|
|
{ |
|
|
|
|
|
if (detail.Qty > detail.IssuedQty)//要100 实际只有50
|
|
|
|
|
|
{ |
|
|
|
|
|
if (detail.ReceivedQty >= detail.Qty)//执行的时候发的比100还多 就完成
|
|
|
|
|
|
{ |
|
|
|
|
|
detail.Status = EnumStatus.Close; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
detail.Status=EnumStatus.Open; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else//要100 实际够100
|
|
|
|
|
|
{ |
|
|
|
|
|
detail.Status = EnumStatus.Close; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public virtual async Task CompleteAsync(string number) |
|
|
public virtual async Task CompleteAsync(string number) |
|
|
{ |
|
|
{ |
|
|
var entity = await GetByNumberAsync(number).ConfigureAwait(false); |
|
|
var entity = await GetByNumberAsync(number).ConfigureAwait(false); |
|
|