From 080741e0b917dc382ecba31c4b19fca1aa772bfd Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期二, 15 四月 2025 17:43:13 +0800
Subject: [PATCH] 增加上架单据信息

---
 Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs |   71 ++++++++++++++++++++++++++++++++++-
 1 files changed, 68 insertions(+), 3 deletions(-)

diff --git a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
index 609996a..03fb3e0 100644
--- a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
+++ b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -21,6 +21,7 @@
     /// </summary>
     public class In_BIZ_U9_RECEIPT : WmsTask, IIn_BIZ_U9_RECEIPT
     {
+
         public IIn_BIZ_U9_RECEIPT Init(string id, string userCode, string apiHost, string orgCode)
         {
             base.Init(id, userCode, apiHost, orgCode);
@@ -29,7 +30,7 @@
         }
 
         #region Propertys & Variables
-        
+        public string CurOrderNo { get; set; }
         #endregion
 
         #region Functions
@@ -106,6 +107,14 @@
                         action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ItemCodeNotExistsOrNotActive", inv.ItemInfo.ITEM_CODE.IsNullOrEmpty(inv.Barcode.ItemCode));
                         return SetOutPutMqttMsg(action, input.Locale);
                     }
+                    //榛樿鍌ㄤ綅楠岃瘉
+                    if (!inv.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty() && inv.ItemInfo.DEFAULT_LOCATION != CurScanShelf.LocationCode)
+                    {
+	                    action.IsSuccessed = false;
+	                    //action.LocaleMsg = Biz.L("鐗╂枡[{0}]鍙厑璁镐笂鏋跺埌鍌ㄤ綅[{0}]锛岃閲嶆柊鎵弿鍌ㄤ綅");
+	                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.DefaultLocationError", inv.ItemInfo.ITEM_CODE, inv.ItemInfo.DEFAULT_LOCATION);
+	                    return SetOutPutMqttMsg(action, input.Locale);
+                    }
                     CurInvItem = inv;
                 }
 
@@ -135,11 +144,21 @@
                 }
                 //浠嶶9鑾峰彇鏀惰揣鍗曡淇℃伅
                 var u9Dtl = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == receipt.ID.ToDouble() && x.DocLineNo == receiptDtl.LINE_NO.ToDouble() && x.SplitFlag != 1).First();
+                //鏀惰揣鍗曠殑鐘舵�佸垽鏂槸鍚﹀凡鎻愪氦IQC瀹℃牳锛屾湭閫氳繃IQC涓嶈兘涓婃灦
+                if (!u9Dtl.IsNullOrEmpty() && u9Dtl.Status != 3)
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = Biz.L("鏀惰揣鍗曡鐘舵�乕{0}]寮傚父锛岃鍏堟彁浜QC妫�楠岀粨鏋�");
+                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.U9StatusException", u9Dtl.StatusName);
+                    return SetOutPutMqttMsg(action, input.Locale);
+                }
                 if (!u9Dtl.IsNullOrEmpty() && u9Dtl.RcvQtyTU != receiptDtl.QTY_OK)
                 {
                     receiptDtl.ID = u9Dtl.RcvLineId.ToString();
                     receiptDtl.QTY_OK = u9Dtl.RcvQtyTU;
                     receiptDtl.QTY_NG = receiptDtl.QTY - receiptDtl.QTY_OK;
+                    receiptDtl.ERP_STATUS_CODE = u9Dtl.Status.ToString();
+                    receiptDtl.ERP_STATUS_NAME = u9Dtl.StatusName;
                 }
 
                 var nLocation = new WMS_LOCATION();
@@ -171,6 +190,7 @@
                         action.LocaleMsg = Biz.L($"WMS.Default.ScanShelf.ItemAlreadyExistsInLocation", nLocation.LOCATION_CODE, locationData.SN);
                         return SetOutPutMqttMsg(action, input.Locale);
                     }
+                    CurScanShelf.Location = nLocation;
                     CurScanShelf.LocationCode = nLocation.LOCATION_CODE;
                 }
                 else
@@ -195,6 +215,8 @@
                     ResetTrans();
                     return SetOutPutMqttMsg(action, input.Locale);
                 }
+
+                CurOrderNo = receipt.ORDER_NO;
 
                 //鎵ц涓婃灦鏁版嵁澶勭悊
                 foreach (var item in CurInvItem.Items)
@@ -289,12 +311,23 @@
                     var db = GetCommitDB();
                     //鏁版嵁淇濆瓨閫昏緫
                     db.Updateable(receipt, UserCode).UpdateColumns(q => new { q.STATUS, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
-                    db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
+                    db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                     db.Updateable(receiptSn, UserCode).UpdateColumns(q => new { q.STATUS, q.IS_IN, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                 });
 
                 //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁
-                action = DoIfFinish(action, input.Locale);
+                action = DoIfFinish(action, input.Locale, () =>
+                {
+                    //璁剧疆褰撳墠鐗╂枡鐨勯粯璁ゅ偍浣�
+                    if (CurInvItem.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty())
+                    {
+                        SetDefaultLocation(MainDB, CurInvItem.ItemInfo, nLocation);
+                    }
+                });
+                //if (!action.Data.Data.IsNullOrEmpty() && action.Data.Data is DefaultInStoreOutput)
+                //{
+                //    (action.Data.Data as DefaultInStoreOutput).OrderInfo = receipt;
+                //}
             }
             catch (Exception ex)
             {
@@ -435,6 +468,38 @@
             return SetOutPutMqttMsg(action, locale);
         }
 
+        /// <summary>
+        ///  鑾峰彇闇�瑕佷笂鏋剁殑鏀惰揣鍗曞垪琛紙甯﹀垎椤碉級
+        /// </summary>
+        /// <returns></returns>
+        public async Task<ApiAction<PageAble<BIZ_U9_RECEIPT>>> GetOrderList(BaseInputWithPage input)
+        {
+            var action = new ApiAction<PageAble<BIZ_U9_RECEIPT>>();
+            var query = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(q => q.Status == 3)
+                                    .WhereIF(!input.OrderNo.IsNullOrEmpty(), q => q.DocNo.Contains(input.OrderNo))
+                                    .OrderBy(q => q.DocNo).ToPage(input.pageIndex, input.pageSize);
+
+            action.Data = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => query.data.Select(o => o.DocNo).Contains(q.ORDER_NO)).ToPageAsync(input.pageIndex, input.pageSize);
+            foreach (var order in action.Data.data)
+            {
+                order.ERP_STATUS_CODE = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.Status.ToString();
+                order.ERP_STATUS_NAME = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.StatusName;
+            }
+            MainDB.Updateable(action.Data.data, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME }).ExecuteCommand();
+            return action;
+        }
+
+        /// <summary>
+        ///  鑾峰彇褰撳墠鏀惰揣鍗曚俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<ApiAction<BIZ_U9_RECEIPT>> GetCurOrder()
+        {
+            var action = new ApiAction<BIZ_U9_RECEIPT>();
+            action.Data = MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == CurOrderNo).IncludesAllFirstLayer().First();
+            return action;
+        }
+
         #endregion
 
         /// <summary>

--
Gitblit v1.9.3