From 86985a3e211ab4cc1e94a696c15a6f77d21c462a Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期二, 15 十月 2024 18:36:51 +0800
Subject: [PATCH] 修改出库单据问题

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |   80 +++++++++++++++++++++++----------------
 1 files changed, 47 insertions(+), 33 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index b50ab13..19e38e9 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -433,12 +433,12 @@
                         inspectStatus = "0";
                         break;
                     case "4"://涓嶅悎鏍煎搧鍑哄簱
-                        skuType = "(0,1,2,3)";
+                        skuType = "(0,1,2,3,4)";
                         inspectStatus = "2";
                         break;
                     case "5"://涓棿鍝佸嚭搴�
                         skuType = "(4)";
-                        inspectStatus = "0,1";
+                        inspectStatus = "1";
                         break;
                     case "6"://浠e偍鍑哄簱
                         skuType = "(0,1,2,3,4)";
@@ -3217,23 +3217,29 @@
                 {
                     throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
                 }
-                if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
-                {
-                    throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
-                }
-                if (detail.AllotQty >= detail.Qty)
-                {
-                    throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
-                }
+
                 var notice = Db.Queryable<BllExportNotice>().First(a => a.SONo == detail.SONo);
                 if (notice == null)
                 {
                     throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗�!");
                 }
-                if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+                if (notice.Type != "1" && notice.Type != "2" && notice.Type != "3")
                 {
-                    throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+                    if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
+                    {
+                        throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
+                    }
+                    if (detail.AllotQty >= detail.Qty)
+                    {
+                        throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
+                    }
+
+                    if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+                    {
+                        throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+                    }
                 }
+                   
                 #endregion
 
                 Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
@@ -3284,29 +3290,36 @@
                 {
                     throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曡鎯咃紒");
                 }
-                if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
-                {
-                    throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
-                }
                 var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == detail.SONo);
                 if (notice == null)
                 {
                     throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
                 }
-                if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+                if (notice.Type != "1" && notice.Type != "2" && notice.Type !="3")
                 {
-                    throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+                    if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
+                    {
+                        throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+                    }
+
+                    if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+                    {
+                        throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+                    }
+
+                    //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
+                    var needQty = detail.Qty - detail.AllotQty;
+                    //鍒嗛厤鐨勫嚭搴撴暟閲�
+                    var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
+                    if (outQty != needQty)
+                    {
+                        throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
+                    }
                 }
+                
                 #endregion
 
-                //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
-                var needQty = detail.Qty - detail.AllotQty;
-                //鍒嗛厤鐨勫嚭搴撴暟閲�
-                var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
-                if (outQty != needQty)
-                {
-                    throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
-                }
+                
                 var stockIds = model.StockList.Select(a => a.StockId).ToList();
                 //搴撳瓨鏄庣粏
                 var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList();
@@ -3315,7 +3328,7 @@
                 var allots = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == detail.Id && m.Status == "0").ToList();
 
                 //搴撳瓨鎬昏〃
-                //var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
+                var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
 
                 var allotList = new List<BllExportAllot>();
                 decimal outQtys = 0;
@@ -3352,7 +3365,7 @@
                             IsBelt = stock.IsBelt,
                             Qty = st.Qty,
                             CompleteQty = 0,
-                            Status = "0",
+                            Status = notice.Status == "4"? "2":"0",
                             LogisticsId = notice.LogisticsId,
                             IsAdvance = "0",
                             OutMode = "",//鍑哄簱鍙�
@@ -3371,11 +3384,12 @@
                     //搴撳瓨鏄庣粏
                     stock.LockQty += st.Qty;
                     stock.Status = stock.LockQty == stock.Qty ? "2" : "1";
-
-                    //搴撳瓨鎬昏〃
-                    //stockz.LockQty += st.Qty;
-                    //Db.Updateable(stockz).ExecuteCommand();
-
+                    if (detail.AllotQty+ st.Qty > detail.Qty)
+                    {
+                        //搴撳瓨鎬昏〃
+                        stockz.LockQty += (decimal)detail.AllotQty + st.Qty - detail.Qty;
+                        Db.Updateable(stockz).ExecuteCommand();
+                    }
 
                     Db.Updateable(stock).UpdateColumns(it => new { it.LockQty, it.Status }).ExecuteCommand();
                     outQtys += st.Qty;

--
Gitblit v1.8.0