From d8c0f4088dd1619279f6f894766a28bb0ecfe0a4 Mon Sep 17 00:00:00 2001
From: pengmn <pmn@HanInfo>
Date: 星期五, 04 七月 2025 17:21:12 +0800
Subject: [PATCH] 1

---
 HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs |  136 +++++++++++++++++++++++++++++++++------------
 1 files changed, 100 insertions(+), 36 deletions(-)

diff --git a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
index e5816b5..ee5453d 100644
--- a/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3.HangYang/wms/WMSHelper.cs
@@ -560,7 +560,7 @@
                     var _Material = db.Queryable<TN_Material>().Where(c => c.S_ITEM_CODE == material.S_ITEM_CODE).First();
                     if (_Material != null)
                     {
-                        db.Updateable<TN_Material>(material).UpdateColumns(a => new { a.S_ITEM_NAME, a.S_ITEM_TYPE, a.S_ITEM_SPEC, a.S_MATERIAL, a.S_UOM, a.C_CLEAN, a.T_MODIFY }).ExecuteCommand();
+                        db.Updateable<TN_Material>(material).UpdateColumns(a => new { a.S_ITEM_NAME, a.S_AREA_CODE, a.S_ITEM_SPEC, a.S_MATERIAL, a.S_UOM, a.C_CLEAN, a.T_MODIFY }).ExecuteCommand();
                     }
                     else
                     {
@@ -601,15 +601,22 @@
                 db.BeginTran();
                 foreach (var orderItem in order)
                 {
-                    var _order = db.Queryable<InOrder>().Where(c => c.S_NO == orderItem.S_NO).First();
-                    if (_order != null)
+                    var _inOrder = db.Queryable<InOrder>().Where(c => c.S_NO == orderItem.S_NO).First();
+                    if (_inOrder != null)
                     {
-                        if (_order.N_B_STATE == 0)
+                        foreach (var item in orderItem.InOrderDetail)
                         {
-                            db.Updateable<InOrder>(orderItem).UpdateColumns(a => new { a.S_OP_TYPE, a.S_BS_TYPE, a.S_NOTE, a.T_MODIFY }).ExecuteCommand();
-                            foreach (var item in orderItem.InOrderDetail)
+                            var _orderDetail = db.Queryable<InOrderDetail>().Where(c => c.S_BS_NO == orderItem.S_BS_NO && c.S_ITEM_CODE == item.S_ITEM_CODE).First();
+                            if (_orderDetail != null)
                             {
-                                db.Updateable<InOrderDetail>(item).UpdateColumns(a => new { a.S_ITEM_CODE, a.S_ITEM_NAME, a.F_QTY }).ExecuteCommand();
+                                var _order = db.Queryable<InOrder>().Where(c => c.S_NO == _orderDetail.S_IO_NO).First();
+                                if (_order.N_B_STATE == 0)
+                                {
+                                    _orderDetail.S_ITEM_NAME = item.S_ITEM_NAME;
+                                    _orderDetail.F_QTY = item.F_QTY;
+                                    _orderDetail.T_MODIFY = DateTime.Now;
+                                    db.Updateable<InOrderDetail>(_orderDetail).UpdateColumns(a => new { a.S_ITEM_NAME, a.F_QTY ,a.T_MODIFY}).ExecuteCommand();
+                                }
                             }
                         }
                     }
@@ -618,6 +625,26 @@
                         db.Insertable(orderItem).ExecuteCommand();
                         db.Insertable(orderItem.InOrderDetail).ExecuteCommand();
                     }
+
+
+
+
+
+
+
+                    //if (_order != null)
+                    //{
+                    //    if (_order.N_B_STATE == 0)
+                    //    {
+                    //        foreach (var item in orderItem.InOrderDetail)
+                    //        {
+                    //        }
+                    //    }
+                    //}
+                    //else
+                    //{
+
+                    //}
 
                 }
                 db.CommitTran();
@@ -655,15 +682,22 @@
                 foreach (var orderItem in order)
                 {
 
-                    var _order = db.Queryable<OutOrder>().Where(c => c.S_NO == orderItem.S_NO).First();
-                    if (_order != null)
+                    var _outOrder = db.Queryable<OutOrder>().Where(c => c.S_NO == orderItem.S_NO).First();
+                    if (_outOrder != null)
                     {
-                        if (_order.N_B_STATE == 0)
+                        foreach (var item in orderItem.OutOrderDetail)
                         {
-                            db.Updateable<OutOrder>(orderItem).UpdateColumns(a => new { a.S_OP_TYPE, a.S_BS_TYPE, a.S_NOTE, a.T_MODIFY }).ExecuteCommand();
-                            foreach (var item in orderItem.OutOrderDetail)
+                            var _orderDetail = db.Queryable<OutOrderDetail>().Where(c => c.S_BS_NO == orderItem.S_BS_NO && c.S_ITEM_CODE == item.S_ITEM_CODE).First();
+                            if (_orderDetail != null)
                             {
-                                db.Updateable<InOrderDetail>(item).UpdateColumns(a => new { a.S_ITEM_CODE, a.S_ITEM_NAME, a.F_QTY }).ExecuteCommand();
+                                var _order = db.Queryable<OutOrder>().Where(c => c.S_NO == _orderDetail.S_OO_NO).First();
+                                if (_order.N_B_STATE == 0)
+                                {
+                                    _orderDetail.S_ITEM_NAME = item.S_ITEM_NAME;
+                                    _orderDetail.F_QTY = item.F_QTY;
+                                    _orderDetail.T_MODIFY = DateTime.Now;
+                                    db.Updateable<OutOrderDetail>(_orderDetail).UpdateColumns(a => new { a.S_ITEM_NAME, a.F_QTY,a.T_MODIFY }).ExecuteCommand();
+                                }
                             }
                         }
                     }
@@ -672,6 +706,24 @@
                         db.Insertable(orderItem).ExecuteCommand();
                         db.Insertable(orderItem.OutOrderDetail).ExecuteCommand();
                     }
+
+                    //var _order = db.Queryable<OutOrder>().Where(c => c.S_NO == orderItem.S_NO).First();
+                    //if (_order != null)
+                    //{
+                    //    if (_order.N_B_STATE == 0)
+                    //    {
+                    //        db.Updateable<OutOrder>(orderItem).UpdateColumns(a => new { a.S_OP_TYPE, a.S_BS_TYPE, a.S_NOTE, a.T_MODIFY }).ExecuteCommand();
+                    //        foreach (var item in orderItem.OutOrderDetail)
+                    //        {
+                    //            db.Updateable<InOrderDetail>(item).UpdateColumns(a => new { a.S_ITEM_CODE, a.S_ITEM_NAME, a.F_QTY }).ExecuteCommand();
+                    //        }
+                    //    }
+                    //}
+                    //else
+                    //{
+                    //    db.Insertable(orderItem).ExecuteCommand();
+                    //    db.Insertable(orderItem.OutOrderDetail).ExecuteCommand();
+                    //}
 
 
                 }
@@ -692,7 +744,7 @@
         /// </summary>
         /// <param name="order"></param>
         /// <returns></returns>
-        internal static bool CancelOrderIn(InOrder order)
+        internal static bool CancelOrderIn(InOrderCancel order)
         {
             try
             {
@@ -700,22 +752,29 @@
                 var db = new SqlHelper<object>().GetInstance();
                 db.BeginTran();
 
-                var _order = db.Queryable<InOrder>().Where(c => c.S_NO == order.S_NO).First();
-                if (_order != null)
+                foreach (var item in order.OrderDetail)
                 {
-                    if (_order.N_B_STATE == 0)
+                    var _orderDetail = db.Queryable<InOrderDetail>().Where(c => c.S_BS_NO == order.S_BS_NO).ToList();
+                    if (_orderDetail.Any())
                     {
-                        foreach (var item in order.InOrderDetail)
+                        var orderItem = _orderDetail.FirstOrDefault(a => a.S_ITEM_CODE.Trim() == item.S_ITEM_CODE);
+                        if (orderItem != null)
                         {
-                            db.Deleteable<InOrderDetail>().Where(it => it.S_ITEM_CODE.Trim() == item.S_ITEM_CODE && it.S_BS_NO == order.S_BS_NO).ExecuteCommand();
+                            var _order = db.Queryable<InOrder>().Where(c => c.S_NO == orderItem.S_IO_NO).First();
+                            if (_order.N_B_STATE == 0)
+                            {
+                                db.Deleteable<InOrderDetail>().Where(it => it.S_ITEM_CODE.Trim() == item.S_ITEM_CODE && it.S_IO_NO == orderItem.S_IO_NO).ExecuteCommand();
+                                _orderDetail.RemoveAll(s => s.S_ITEM_CODE == item.S_ITEM_CODE);
+                                if (!_orderDetail.Any())
+                                {
+                                    db.Deleteable<InOrder>().Where(it => it.S_NO == orderItem.S_IO_NO).ExecuteCommand();
+                                }
+
+                            }
                         }
                     }
                 }
-                var _orderItem = db.Queryable<InOrderDetail>().Where(c => c.S_BS_NO == order.S_BS_NO).First();
-                if (_orderItem == null)
-                {
-                    db.Deleteable<InOrder>().Where(it => it.S_BS_NO == order.S_BS_NO).ExecuteCommand();
-                }
+
                 db.CommitTran();
                 res = true;
                 return res;
@@ -741,30 +800,35 @@
         /// </summary>
         /// <param name="order"></param>
         /// <returns></returns>
-        internal static bool CancelOrderOut(OutOrder order)
+        internal static bool CancelOrderOut(OutOrderCancel order)
         {
             try
             {
                 bool res = false;
                 var db = new SqlHelper<object>().GetInstance();
                 db.BeginTran();
-
-                var _order = db.Queryable<OutOrder>().Where(c => c.S_NO == order.S_NO).First();
-                if (_order != null)
+                foreach (var item in order.OrderDetail)
                 {
-                    if (_order.N_B_STATE == 0)
+                    var _orderDetail = db.Queryable<OutOrderDetail>().Where(c => c.S_BS_NO == order.S_BS_NO).ToList();
+                    if (_orderDetail.Any())
                     {
-                        foreach (var item in order.OutOrderDetail)
+                        var orderItem = _orderDetail.FirstOrDefault(a => a.S_ITEM_CODE.Trim() == item.S_ITEM_CODE);
+                        if (orderItem != null)
                         {
-                            db.Deleteable<OutOrderDetail>().Where(it => it.S_ITEM_CODE.Trim() == item.S_ITEM_CODE && it.S_BS_NO == order.S_BS_NO).ExecuteCommand();
+                            var _order = db.Queryable<OutOrder>().Where(c => c.S_NO == orderItem.S_OO_NO).First();
+                            if (_order.N_B_STATE == 0)
+                            {
+                                db.Deleteable<OutOrderDetail>().Where(it => it.S_ITEM_CODE.Trim() == item.S_ITEM_CODE && it.S_OO_NO == orderItem.S_OO_NO).ExecuteCommand();
+                                _orderDetail.RemoveAll(s => s.S_ITEM_CODE == item.S_ITEM_CODE);
+                                if (!_orderDetail.Any())
+                                {
+                                    db.Deleteable<OutOrder>().Where(it => it.S_NO == orderItem.S_OO_NO).ExecuteCommand();
+                                }
+                            }
                         }
                     }
                 }
-                var _orderItem = db.Queryable<OutOrderDetail>().Where(c => c.S_BS_NO == order.S_BS_NO).First();
-                if (_orderItem == null)
-                {
-                    db.Deleteable<OutOrder>().Where(it => it.S_BS_NO == order.S_BS_NO).ExecuteCommand();
-                }
+
                 db.CommitTran();
                 res = true;
                 return res;

--
Gitblit v1.9.1