From f3b38d5bd9f65c84eaa56bdf0e159b2fca403fce Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Fri, 22 Mar 2024 15:29:04 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Domain/Entitys/InstockTask.cs | 50 +++++++++++++----------
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/src/WMS.Web.Domain/Entitys/InstockTask.cs b/src/WMS.Web.Domain/Entitys/InstockTask.cs
index 2cf3bcfe..6f7f0071 100644
--- a/src/WMS.Web.Domain/Entitys/InstockTask.cs
+++ b/src/WMS.Web.Domain/Entitys/InstockTask.cs
@@ -103,6 +103,9 @@ namespace WMS.Web.Domain.Entitys
//如果明细全部作废,则单据状态作废
if (this.Details.All(x => x.IsRepeal == true))
this.Status = InstockStatus.Repeal;
+ else
+ this.ChangeInstockStatus();//重新计算单据的状态
+
}
@@ -142,23 +145,36 @@ namespace WMS.Web.Domain.Entitys
this.ReceiveTime = DateTime.Now;
}
+ //改变状态
+ public void ChangeInstockStatus()
+ {
+ //明细中:所有的应入数量之和
+ var totalAccruedQty = this.Details.Where(x => x.IsRepeal != true).Sum(x => x.AccruedQty);
+
+ //明细中:所有的入库数量之和
+ var totalRealityQty = this.Details.Where(x => x.IsRepeal != true && x.AccruedQty > 0).Sum(x => x.RealityQty);
+
+ //明细中:所有的收货数量之和
+ var totalReceiveQty = this.Details.Where(x => x.IsRepeal != true && x.AccruedQty > 0).Sum(x => x.ReceiveQty);
+
+ if (totalAccruedQty <= totalRealityQty)
+ this.Status = InstockStatus.Already;
+ else if(totalReceiveQty<=0)
+ this.Status = InstockStatus.Wait;
+ else if(totalRealityQty<=0)
+ this.Status = InstockStatus.WaitInStock;
+ else
+ this.Status = InstockStatus.Part;
+
+ }
+
///
/// 上架
///
///
public void Shelf(int creatorId)
{
- //明细中:所有的应入数量之和
- var totalAccruedQty= this.Details.Sum(x => x.AccruedQty);
- ////明细中:所有的收货数量之和
- //var totalReceiveQty = this.Details.Sum(x => x.ReceiveQty);
- //明细中:所有的入库数量之和
- var totalRealityQty = this.Details.Where(x=>x.AccruedQty>0).Sum(x => x.RealityQty);
-
- if (totalAccruedQty <= totalRealityQty)
- this.Status = InstockStatus.Already;
- else
- this.Status = InstockStatus.Part;
+ this.ChangeInstockStatus();
this.ShelferId = creatorId;
this.ShelfTime = DateTime.Now;
}
@@ -169,17 +185,7 @@ namespace WMS.Web.Domain.Entitys
///
public void NoPurchaseShelf(int creatorId)
{
- //明细中:所有的应入数量之和
- var totalAccruedQty = this.Details.Sum(x => x.AccruedQty);
- ////明细中:所有的收货数量之和
- //var totalReceiveQty = this.Details.Sum(x => x.ReceiveQty);
- //明细中:所有的入库数量之和
- var totalRealityQty = this.Details.Where(x => x.AccruedQty > 0).Sum(x => x.RealityQty);
-
- if (totalAccruedQty <= totalRealityQty)
- this.Status = InstockStatus.Already;
- else
- this.Status = InstockStatus.Part;
+ this.ChangeInstockStatus();
this.ReceiverId = creatorId;
this.ReceiveTime = DateTime.Now;
this.ShelferId = creatorId;