From bdb17191cc1fde34791cd3ff200714020c85f117 Mon Sep 17 00:00:00 2001 From: chengsc <Demo@DESKTOP-CPA90BF> Date: 星期五, 25 十月 2024 18:56:34 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 111 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 57 insertions(+), 54 deletions(-) diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index 4c7aba8..e70f362 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -1243,9 +1243,9 @@ { throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曟嵁淇℃伅"); } - if (notice.Status != "4") + if (notice.Status != "4" && notice.Status != "3") { - throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�"); + throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负姝e湪鎵ц鎴栨墽琛屽畬鎴�"); } //鎬诲簱瀛樹俊鎭� var stockList = Db.Queryable<DataStock>().ToList(); @@ -1266,64 +1266,67 @@ foreach (var d in noticeDetail) { - //鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺 - //var orders = dataContext.WmsExportOrder.Where(o => o.ExportDetailId == d.Id - // && o.ExportExecuteFlag != "4" && o.ExportExecuteFlag == "3" && o.pickingType == 0).ToList(); - //foreach (var o in orders) - //{ - // if (o.ExportQuantity > o.PickedNum) //鍒ゆ柇鎷h揣鏄惁宸叉嫞瀹� - // { - // var pq = dataContext.WmsStockTray.Where(t => t.StockGoodId == o.ExportGoodsCode && t.StockStockCode == o.ExportStockCode); - - // if (string.IsNullOrWhiteSpace(o.ExportLotNo)) - // { - // pq = pq.Where(t => t.StockLotNo == null || t.StockLotNo == ""); - // } - // else - // { - // pq = pq.Where(t => t.StockLotNo == o.ExportLotNo); - // } - // var pallet = pq.FirstOrDefault(); - // //搴撳瓨鎵樼洏淇℃伅閿佸畾鏁伴噺杩樺師涓烘湭閿佸畾 - // if (pq != null) - // { - // pallet.LockQuantity -= o.ExportQuantity.Value - o.PickedNum; - // pallet.StockQuantity += o.ExportQuantity.Value - o.PickedNum; - // } - // } - //} - - if (d.Qty != d.CompleteQty) + if (notice.Type == "0")//鎴愬搧鍑哄簱 { - throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄"); - } - #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡) - /*var sq = stocks.Where(s => s.SkuNo == d.SkuNo); - if (!string.IsNullOrWhiteSpace(d.LotNo)) - { - sq = sq.Where(s => s.LotNo == d.LotNo); - } - else - { - sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo)); - } - var st = sq.FirstOrDefault(); - if (st != null) - { - if (d.CompleteQty <= d.Qty) + if (d.Qty != d.CompleteQty) { - st.Qty += d.Qty - d.CompleteQty.Value; + throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄"); + } + } + if (d.Qty < d.CompleteQty) + { + //鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺 + var allotList = Db.Queryable<BllExportAllot>().Where(o => o.SODetailNo == d.Id && o.Status == "3" && o.IsDel == "0").ToList(); + foreach (var o in allotList) + { + if (o.Qty > o.CompleteQty) //鍒ゆ柇鎷h揣鏄惁宸叉嫞瀹� + { + var pq = Db.Queryable<DataStockDetail>().Where(t => t.IsDel == "0" && t.Id == o.StockId && t.SkuNo == o.SkuNo); + + if (string.IsNullOrWhiteSpace(o.LotNo)) + { + pq = pq.Where(t => string.IsNullOrWhiteSpace(t.LotNo)); + } + else + { + pq = pq.Where(t => t.LotNo == o.LotNo); + } + var pallet = pq.First(); + //搴撳瓨鎵樼洏淇℃伅閿佸畾鏁伴噺杩樺師涓烘湭閿佸畾 + if (pq != null) + { + //pallet.Qty -= o.CompleteQty.Value - o.Qty; + pallet.LockQty -= o.Qty - o.CompleteQty.Value; + Db.Updateable(pallet).UpdateColumns(it => new { it.LockQty }).ExecuteCommand(); + } + } + } + + + #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡) + var sq = stocks.Where(s => s.SkuNo == d.SkuNo); + if (!string.IsNullOrWhiteSpace(d.LotNo)) + { + sq = sq.Where(s => s.LotNo == d.LotNo); } else { - st.Qty -= d.CompleteQty.Value - d.Qty; + sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo)); } - st.LockQty -= d.Qty; - st.Qty -= d.Qty; - //淇敼鎬诲簱瀛樿〃 - Db.Updateable(st).UpdateColumns(it => new { it.Qty, it.LockQty }).ExecuteCommand(); - }*/ - #endregion + if (notice.Type == "6")//浠e偍 + { + sq = sq.Where(s => s.OwnerNo == notice.CustomerNo); + } + var st = sq.FirstOrDefault(); + if (st != null) + { + st.LockQty -= d.Qty - d.CompleteQty.Value; + //淇敼鎬诲簱瀛樿〃 + Db.Updateable(st).UpdateColumns(it => new { it.LockQty }).ExecuteCommand(); + } + #endregion + } + } //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId); -- Gitblit v1.8.0