From b2d25faa69ee7e9f24b6ac98d3b4dcbddada70bc Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期四, 14 三月 2024 13:37:15 +0800
Subject: [PATCH] 修改pda托盘绑定同一物料多批次 无法具体选中批次问题。
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 173 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 119 insertions(+), 54 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 211d77a..785537c 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1388,39 +1388,17 @@
}
- //鍑哄簱鍗�
- var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
- BllExportNoticeDetail noticeDetail2;
- if (notice != null && notice.Status != "6")
- {
-
- }
- else
- {
- //鍒涘缓鍑哄簱鍗曞強鏄庣粏
-
- }
-
- //鍑哄簱鍗曟槑缁�
- var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
- .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
- if (noticeDetail == null)
- {
- throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
- }
- //鍑哄簱鍒嗛厤淇℃伅
- var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
- if (allot2 == null)
- {
- throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
- }
-
-
//搴撳瓨鏄庣粏
- var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo);
if (stockDetail == null)
{
- throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+
+ var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅");
}
//搴撳瓨鎬昏〃
var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
@@ -1429,11 +1407,111 @@
throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
}
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
+ //鍒涘缓鍑哄簱鍗�
+ if (notice == null || (notice != null && notice.Status != "6"))
+ {
+ var billNo = "";
+ var bl = true;
+ do
+ {
+ //鑾峰彇鑷鍗曟嵁鍙�
+ billNo = new Common().GetMaxNo("SO");
+ var no = billNo;
+ bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no);
+ } while (bl);
+
+
+ var addNotice = new BllExportNotice()
+ {
+ SONo = billNo,
+ Type = "3",
+ Status = "4",
+ Origin = "WMS",
+
+ IsWave = "0",
+ WaveNo = "",
+ IsDespatch = "0",
+ CompleteTime = DateTime.Now,
+ CreateUser = 0,
+ };
+
+ var n = Db.Insertable(addNotice).ExecuteCommand();
+ notice = addNotice;
+ }
+
+ //鍒涘缓鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo));
+ if (noticeDetail == null)
+ {
+ var addNoticeDetail = new BllExportNoticeDetail()
+ {
+ SONo = notice.SONo,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ LotNo = stockDetail.LotNo,
+ LotText = "",
+ Qty = 0,
+ AllotQty = 0,
+ FactQty = 0,
+ CompleteQty = 0,
+ PackagNo = sku.PackagNo,
+ Price = sku.Price,
+ //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * pickQty,
+ IsBale = "",
+ IsBelt = "",
+ SupplierLot = stock.SupplierLot,
+ IsWave = "0",
+ WaveNo = "",
+ IsIssueLotNo = "0",
+ Status = "3",
+ CreateUser = 0,
+ };
+ var m = Db.Insertable(addNoticeDetail).ExecuteCommand();
+ noticeDetail = addNoticeDetail;
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo);
+ if (allot2 == null)
+ {
+ //娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ var addAllot = new BllExportAllot
+ {
+ SONo = notice.SONo,
+ WaveNo = "",
+ SODetailNo = noticeDetail.Id,
+ StockId = stockDetail.Id,
+ LotNo = stockDetail.LotNo,
+ LotText = stockDetail.LotText,
+ SupplierLot = stockDetail.SupplierLot,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ PalletNo = palletNo,
+ IsBale = "0" , //鏄惁瑁瑰寘
+ IsBelt = "0" , //鏄惁鎵撳甫
+
+ Qty = 0,
+ CompleteQty = 0,
+
+ Status = "5",
+ LogisticsId = notice.LogisticsId,
+ IsAdvance = "0",
+ OutMode = "",//鍑哄簱鍙�
+
+ CreateUser = userId,
+ CreateTime = DateTime.Now
+ };
+
+ var fp = Db.Insertable(addAllot).ExecuteCommand();
+ allot2 = addAllot;
+ }
+
+
#endregion
-
-
-
//鍒ゆ柇鏄暎鏀嫞璐ц繕鏄暟閲忔嫞璐�
var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
@@ -1547,6 +1625,8 @@
}
pickQty += item.Qty;
}
+
+
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
if (biaoShi == "1")
{
@@ -1561,31 +1641,14 @@
Db.Insertable(comList).ExecuteCommand();
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot.CompleteQty += pickQty;
- allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
- if (allot.Status == "5")
- {
- //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴�
- }
+ allot2.Qty += pickQty;
+ allot2.CompleteQty += pickQty;
Db.Updateable(allot).ExecuteCommand();
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
stockDetail.Qty -= pickQty;
- stockDetail.LockQty -= pickQty;
- if (stockDetail.Qty == stockDetail.LockQty)
- {
- stockDetail.Status = "2";
- }
- else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
- {
- stockDetail.Status = "1";
- }
- else
- {
- stockDetail.Status = "0";
- }
-
+
if (stockDetail.Qty <= 0)
{
Db.Deleteable(stockDetail).ExecuteCommand();
@@ -1595,7 +1658,6 @@
Db.Updateable(stockDetail).ExecuteCommand();
}
stock.Qty -= pickQty;
- stock.LockQty -= pickQty;
if (stock.Qty <= 0)
{
Db.Deleteable(stock).ExecuteCommand();
@@ -1617,6 +1679,9 @@
Db.Updateable(pallet).ExecuteCommand();
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.Qty += pickQty;
+ noticeDetail.AllotQty += pickQty;
+ noticeDetail.FactQty += pickQty;
noticeDetail.CompleteQty += pickQty;
Db.Updateable(noticeDetail).ExecuteCommand();
--
Gitblit v1.8.0