修复出库任务单同物料多条数据影响出库的bug
This commit is contained in:
@@ -115,7 +115,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
if (this.Status == OutStockStatus.Repeal)
|
if (this.Status == OutStockStatus.Repeal)
|
||||||
return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OutStockTaskRepeal);
|
return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OutStockTaskRepeal);
|
||||||
|
|
||||||
var detail = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
|
var detail = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber && f.IsRepeal != true);
|
||||||
if (detail == null) return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OrderNoData);
|
if (detail == null) return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OrderNoData);
|
||||||
if ((detail.AccruedQty - detail.RealityQty) < qty)
|
if ((detail.AccruedQty - detail.RealityQty) < qty)
|
||||||
return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OutStockQtyError);
|
return Result<List<(int erpDetailId, decimal qty)>>.ReFailure(ResultCodes.OutStockQtyError);
|
||||||
@@ -255,7 +255,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
if (list.GroupBy(g => g.DeliveryOrgId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
if (list.GroupBy(g => g.DeliveryOrgId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
||||||
if (list.GroupBy(g => g.ReceiptCustomerId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
if (list.GroupBy(g => g.ReceiptCustomerId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
||||||
if (list.GroupBy(g => g.OrgCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
if (list.GroupBy(g => g.OrgCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
||||||
var details = list.SelectMany(s => s.Details).ToList().Clone();
|
var details = list.SelectMany(s => s.Details).Where(w => w.IsRepeal != true).ToList().Clone();
|
||||||
if (list.GroupBy(g => g.StockCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
if (list.GroupBy(g => g.StockCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
|
||||||
List<OutStockTaskDetails> details_new = new List<OutStockTaskDetails>();
|
List<OutStockTaskDetails> details_new = new List<OutStockTaskDetails>();
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
{
|
{
|
||||||
d.Id = 0;
|
d.Id = 0;
|
||||||
d.Fid = 0;
|
d.Fid = 0;
|
||||||
var detail_new = details_new.FirstOrDefault(f => f.MaterialNumber == d.MaterialNumber);
|
var detail_new = details_new.FirstOrDefault(f => f.MaterialNumber == d.MaterialNumber && f.IsRepeal != true);
|
||||||
if (detail_new != null)
|
if (detail_new != null)
|
||||||
{
|
{
|
||||||
detail_new.AccruedQty += d.AccruedQty;//应出数量累加
|
detail_new.AccruedQty += d.AccruedQty;//应出数量累加
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
return Result.ReFailure(ResultCodes.BoxOutStockTaskBoxError);
|
return Result.ReFailure(ResultCodes.BoxOutStockTaskBoxError);
|
||||||
}
|
}
|
||||||
//上传的物料在任务单里没有找到不能出库
|
//上传的物料在任务单里没有找到不能出库
|
||||||
var ex = dto.Details.Select(s => s.MaterialNumber).Except(outStockTask.Details.Select(s => s.MaterialNumber)).ToList();
|
var ex = dto.Details.Select(s => s.MaterialNumber).Except(outStockTask.Details.Where(w => w.IsRepeal != true).Select(s => s.MaterialNumber)).ToList();
|
||||||
if (ex.Count() > 0 && dto.Method == 2)
|
if (ex.Count() > 0 && dto.Method == 2)
|
||||||
return Result.ReFailure(ResultCodes.OutStockMaterialError);
|
return Result.ReFailure(ResultCodes.OutStockMaterialError);
|
||||||
var boxIds = dto.Details.Select(s => s.BoxId).ToList();
|
var boxIds = dto.Details.Select(s => s.BoxId).ToList();
|
||||||
@@ -135,7 +135,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
if (b.Qty <= 0) continue;
|
if (b.Qty <= 0) continue;
|
||||||
var num = boxInventoryDetails.Where(w => w.MaterialNumber == b.MaterialNumber).Sum(s => s.Qty);
|
var num = boxInventoryDetails.Where(w => w.MaterialNumber == b.MaterialNumber).Sum(s => s.Qty);
|
||||||
var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialNumber);
|
var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialNumber && f.IsRepeal != true);
|
||||||
if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError);
|
if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError);
|
||||||
//箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库
|
//箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库
|
||||||
if (num > (taskDetail.AccruedQty - taskDetail.RealityQty))
|
if (num > (taskDetail.AccruedQty - taskDetail.RealityQty))
|
||||||
@@ -155,7 +155,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
foreach (var mid in mIds)
|
foreach (var mid in mIds)
|
||||||
{
|
{
|
||||||
//任务单明细
|
//任务单明细
|
||||||
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == mid);
|
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == mid && f.IsRepeal != true);
|
||||||
var dtoDetails = dto.Details.Where(w => w.MaterialNumber == mid);
|
var dtoDetails = dto.Details.Where(w => w.MaterialNumber == mid);
|
||||||
var qty = dtoDetails.Sum(s => s.Qty);
|
var qty = dtoDetails.Sum(s => s.Qty);
|
||||||
|
|
||||||
|
|||||||
@@ -584,7 +584,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
Specifications = m?.Specifications ?? "",
|
Specifications = m?.Specifications ?? "",
|
||||||
BarCode = m?.BarCode ?? "",
|
BarCode = m?.BarCode ?? "",
|
||||||
MaterialName = m?.MaterialName ?? "",
|
MaterialName = m?.MaterialName ?? "",
|
||||||
AccruedQty = entity.Details.FirstOrDefault(f => f.MaterialNumber == detail.MaterialNumber)?.AccruedQty ?? 0
|
AccruedQty = entity.Details.FirstOrDefault(f => f.MaterialNumber == detail.MaterialNumber && f.IsRepeal != true)?.AccruedQty ?? 0
|
||||||
};
|
};
|
||||||
response.Details.Add(infoDetail);
|
response.Details.Add(infoDetail);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user