From bafdbac9abdfc9de05b211cf7f54a3f792cb8a74 Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期三, 08 一月 2025 17:48:14 +0800
Subject: [PATCH] 单品过站增加班次,修复班次开班单的制单人字段保存错

---
 WarM/条码打印/Gy_PackBarCodeBill_automaticallyByPLC.cs |  301 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 232 insertions(+), 69 deletions(-)

diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_PackBarCodeBill_automaticallyByPLC.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_PackBarCodeBill_automaticallyByPLC.cs"
index 578ef1d..b7698c4 100644
--- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_PackBarCodeBill_automaticallyByPLC.cs"
+++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_PackBarCodeBill_automaticallyByPLC.cs"
@@ -10,6 +10,7 @@
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;
+using Microsoft.VisualBasic;
 
 namespace WarM.鏉$爜鎵撳嵃
 {
@@ -71,6 +72,10 @@
         public bool BillChange;   //
         public bool grdStatus;
         public int selectRow = 0;
+
+        //璁板綍褰撳墠缁勬墭鐨勬潯鐮佺殑婧愬崟ID銆佸瓙ID锛岀敤浜庝繚璇佸綋鍓嶆墭涓墍鏈夊瓙鏉$爜涓哄悓涓�涓伐鍗曠敓鎴�
+        public int HSourceInterID_ICMO = 0;
+        public int HSourceEntryID_ICMO = 0;
 
         private void Gy_PackBarCodeBill_automaticallyByPLC_Load(object sender, EventArgs e)
         {
@@ -181,6 +186,11 @@
             DBUtility.Xt_BaseBillFun.initGridList(grdSub, this.Name + "grdSub");
 
             getDisplay_GrdMain();
+
+            if (grdMain.Rows.Count > 0 && grdMain.Rows[0].Cells[4].Value!=null)
+            {
+                getPackQty(grdMain.Rows[0].Cells[4].Value.ToString());
+            }
         }
 
 
@@ -347,22 +357,32 @@
         //鏈弧鎵樼敓鎴� 鎸夐挳 鐐瑰嚮浜嬩欢
         private void button_produceByHand_Click(object sender, EventArgs e)
         {
-            if (HQty == 0)
+            try
             {
-                MessageBox.Show("璇锋壂鐮佸瓙鏉$爜!");
-                return;
+                if (HQty == 0)
+                {
+                    MessageBox.Show("璇锋壂鐮佸瓙鏉$爜!");
+                    return;
+                }
+                this.Sub_SaveBill();
+
+                //缁勬墭鎴愬姛鍚庯紝娓呯┖缁勬墭鏁伴噺涓庢簮鍗曚俊鎭�
+                set_clearPackQtyAndSourceInfo();
             }
-            this.Sub_SaveBill();
+            catch(Exception ex)
+            {
+                MessageBox.Show(ex.Message);
+            }
         }
 
         //鑷姩缁勬墭 
         private void button_startListen_Click(object sender, EventArgs e)
         {
-            if (DBUtility.ClsPub.isLong(textBox_PackQty.Text) == 0)
-            {
-                MessageBox.Show("璇疯缃墭鏉$爜鐨勬渶灏忓寘瑁呮暟锛�");
-                return;
-            }
+            //if (DBUtility.ClsPub.isLong(textBox_PackQty.Text) == 0)
+            //{
+            //    MessageBox.Show("璇疯缃墭鏉$爜鐨勬渶灏忓寘瑁呮暟锛�");
+            //    return;
+            //}
 
             isStartListen = 1;
 
@@ -408,22 +428,31 @@
         {
             if(isStartListen == 1)
             {
-                if(HQty == DBUtility.ClsPub.isDoule(textBox_PackQty.Text))
+                try
                 {
-                    this.Sub_SaveBill();
-
-                    //璁剧疆鎵撳嵃妯℃澘锛屾墦鍗�
-                    grdSub.Rows[0].Cells[0].Value = "*";
-                    Report = new GridppReport();
-                    Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + textBox_PrintModelParams.Text + ".grf");  //here .
-                    Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
-                    Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
-                    Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
-                    if (comboBox_PrinterParams.Text != "")
+                    if (HQty == DBUtility.ClsPub.isDoule(textBox_PackQty.Text))
                     {
-                        Report.Printer.PrinterName = comboBox_PrinterParams.Text.Replace("(榛樿)", "");
+                        this.Sub_SaveBill();
+
+                        //璁剧疆鎵撳嵃妯℃澘锛屾墦鍗�
+                        grdSub.Rows[0].Cells[0].Value = "*";
+                        Report = new GridppReport();
+                        Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + textBox_PrintModelParams.Text + ".grf");  //here .
+                        Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
+                        Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
+                        Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
+                        if (comboBox_PrinterParams.Text != "")
+                        {
+                            Report.Printer.PrinterName = comboBox_PrinterParams.Text.Replace("(榛樿)", "");
+                        }
+                        Report.Print(false);
+
+                        //缁勬墭鎴愬姛鍚庯紝娓呯┖缁勬墭鏁伴噺涓庢簮鍗曚俊鎭�
+                        set_clearPackQtyAndSourceInfo();
                     }
-                    Report.Print(false);
+                }catch(Exception ex)
+                {
+                    MessageBox.Show(ex.Message);
                 }
             }
         }
@@ -432,25 +461,31 @@
         //鐢熸垚鎵樼洏鏉$爜
         private bool Sub_SaveBill()
         {
-            //鑾峰彇缁勭粐淇℃伅
-            HOrgID = get_ORGANIZATIONSIDByName(cmbHOrgID.Text);
-            HOrgNumber = get_ORGANIZATIONSNOByName(cmbHOrgID.Text);
-
-            if (HOrgID == -1)
+            try
             {
-                MessageBox.Show("閫夋嫨缁勭粐鏈夐敊璇紒");
-                return false;
-            }
+                //鑾峰彇缁勭粐淇℃伅
+                HOrgID = get_ORGANIZATIONSIDByName(cmbHOrgID.Text);
+                HOrgNumber = get_ORGANIZATIONSNOByName(cmbHOrgID.Text);
 
+                if (HOrgID == -1)
+                {
+                    throw new Exception("閫夋嫨缁勭粐鏈夐敊璇紒");
+                }
 
-            if (!Sub_AllowSave())//鍗曟嵁瀹屾暣鎬у垽鏂�
+                if (!Sub_AllowSave())//鍗曟嵁瀹屾暣鎬у垽鏂�
+                {
+                    throw new Exception("鍗曟嵁瀹屾暣鎬у垽鏂け璐ワ紒");
+                }
+
+                SaveBarCode();
+                return true;
+            }catch(Exception ex)
             {
-                return false;
+                string sql = "exec h_p_WMS_PackBarCodeBill_dealDataWhenError '" + textBox_HPackBarCode + "'";
+                oCn.RunProc(sql);
+                throw new Exception(ex.Message);
             }
-
-
-            SaveBarCode();
-            return true;
+            
         }
 
         //鍗曟嵁瀹屾暣鎬у垽鏂�          鏈畬鎴�
@@ -508,6 +543,15 @@
 
                 sSQLMul[1] = " exec h_p_WMS_SetMaxNo_QTY '" + sTMNumber + "'," + HQty.ToString() + " ";
 
+                //鍒ゆ柇褰撳墠鎵樼洏鏉$爜鏄惁宸茬粡閫氳繃涓存椂缁勬墭鍦ㄦ潯鐮佹。妗堜腑鐢熸垚浜嗭紝鑻ュ凡缁忕敓鎴愪簡鍒欎笉闇�瑕佸湪鎻掑叆
+                ds = oCn.RunProcReturn("select * from Gy_BarCodeBill where HBarCode = '" + textBox_HPackBarCode.Text + "' and HSTOCKORGID = " + HOrgID, "Gy_BarCodeBill");
+                if (ds != null && ds.Tables[0].Rows.Count > 0)
+                {
+                    sSQLMul[0] = "";                
+                }
+
+                oCn.BeginTran();
+
                 if (getRunProcByMul_Back(sSQLMul, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
                     //MessageBox.Show("鏉$爜鐢熸垚瀹屾瘯锛�");
@@ -519,15 +563,21 @@
                     setPackBarCodeBillData();
 
                     getDisplay_GrdMain();
+
+                    oCn.Commit();
                 }
                 else
                 {
                     //MessageBox.Show("鏉$爜鐢熸垚澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo);
+                    oCn.RollBack();
                 }
+
+                //oCn.Commit();
             }
             catch (Exception e)
             {
-                //MessageBox.Show("鏉$爜鐢熸垚澶辫触锛�" + e.Message);
+                oCn.RollBack();
+                throw new Exception(e.Message);
             }
         }
 
@@ -542,27 +592,30 @@
                 {
                     for (int i = 0; i < 1; i++)
                     {
-                        oCn.RunProc(sSQL[i]);
+                        if (sSQL[i].Length > 0)
+                        {
+                            oCn.RunProc(sSQL[i]);
+                        }
                     }
 
-                    
-
+                    //涓婁紶缁勬墭淇℃伅鍒版湇鍔″櫒
                     send();
+                    oCn.Commit();
                 }
                 else
                 {
-                    sErrMsg = "娌℃湁鏁版嵁锛�";
                     oCn.Commit();
-                    return false;
+                    sErrMsg = "娌℃湁鏁版嵁锛�";
+                    throw new Exception(sErrMsg);
                 }
-                oCn.Commit();
+                //oCn.Commit();
                 return true;
             }
             catch (Exception e)
             {
-                sErrMsg = e.Message;
                 oCn.RollBack();
-                return false;
+                sErrMsg = e.Message;
+                throw new Exception(sErrMsg);
             }
         }
         #endregion
@@ -581,7 +634,13 @@
             //{
             //    return;
             //}
-            LoadData();
+            try
+            {
+                LoadData();
+            }catch(Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
         }
 
         //鍒ゆ柇鐢ㄦ埛鏉冮檺
@@ -610,7 +669,7 @@
             //鍒ゆ柇鏄惁鏁版嵁瀹屾暣 
             if (AllowLoadData() == false)
             {
-                return;
+                throw new Exception("鏁版嵁瀹屾暣鎬у垽鏂け璐ワ紒");
             }
             try
             {
@@ -628,14 +687,14 @@
                 }
                 else
                 {
-                    MessageBox.Show("鐢熸垚澶辫触锛佸師鍥�:" + err);
-                    return;
+                    string error = "鐢熸垚澶辫触锛佸師鍥�:" + err;
+                    throw new Exception(error);
                 }
             }
             catch (Exception e)
             {
-                MessageBox.Show("鍗曟嵁鍙凤細" + textBox_sBillID.Text + "锛屽崟鎹甀D锛�" + textBox_sBillID.Text + "锛涗笂浼犲け璐ワ紒" + e.Message);
-                return;
+                string error = "鍗曟嵁鍙凤細" + textBox_sBillID.Text + "锛屽崟鎹甀D锛�" + textBox_sBillID.Text + "锛涗笂浼犲け璐ワ紒" + e.Message;
+                throw new Exception(error);
             }
         }
 
@@ -659,37 +718,37 @@
         public bool set_SavePackUnionBill_Add(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg)
         {
             SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+            oCn.BeginTran();
             try
             {
-                oCn.BeginTran();
                 DataSet ds = oCn.RunProcReturn("exec h_p_Sc_PackUnionBill_Insert_New " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Sc_PackUnionBill_Insert_New");
                 if (ds == null || ds.Tables[0].Rows.Count == 0)
                 {
-                    sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛屽崟鎹甀D锛�" + HInterID + "锛涗笂浼犲け璐ワ紒";
                     oCn.RollBack();
-                    return false;
+                    sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛屽崟鎹甀D锛�" + HInterID + "锛涗笂浼犲け璐ワ紒";
+                    throw new Exception(sErrMsg);
                 }
                 else
                 {
                     if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1)
                     {
-                        sErrMsg = "涓婁紶澶辫触锛屽崟鎹彿锛�" + HBillNo + "锛屽崟鎹甀D锛�" + HInterID + "锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                         oCn.RollBack();
-                        return false;
+                        sErrMsg = "涓婁紶澶辫触锛屽崟鎹彿锛�" + HBillNo + "锛屽崟鎹甀D锛�" + HInterID + "锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
+                        throw new Exception(sErrMsg);
                     }
                     else
                     {
-                        //sErrMsg = "鐢熸垚鐢熶骇缁勬墭鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + HBillNo;
                         oCn.Commit();
+                        //sErrMsg = "鐢熸垚鐢熶骇缁勬墭鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + HBillNo;
                         return true;
                     }
                 }
             }
             catch (Exception e)
             {
-                sErrMsg = "鐢熸垚鐢熶骇缁勬墭鍗曞け璐ワ紒" + e.Message;
                 oCn.RollBack();
-                return false;
+                sErrMsg = "鐢熸垚鐢熶骇缁勬墭鍗曞け璐ワ紒" + e.Message;
+                throw new Exception(sErrMsg);
             }
         }
 
@@ -706,20 +765,30 @@
             {
                 if (e.KeyChar == (char)Keys.Return)
                 {
+                    //闃查敊鍒ゆ柇
+                    if(!judgeIsSameSourceBill(textBox_HBarCode.Text.Trim()))
+                    {
+                        textBox_HBarCode.Text = "";
+                        return;
+                    }
+
                     SetBarCode_Webs();
                     textBox_HBarCode.Text = "";
                     textBox_HBarCode.Focus();
 
                     autoProducePackBarCode();
+
+                    if (grdMain.Rows.Count ==1 )
+                    {
+                        getPackQty(grdMain.Rows[0].Cells[4].Value.ToString());
+                    }
                 }
             }
             catch (Exception e2)
             {
-                //if (DBUtility.ClsPub.bSound)
-                //{
-                //    DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning);
-                //}
-                MessageBox.Show("鍙戠敓缃戠粶寮傚父锛岃绋嶅悗鍐嶈瘯锛�");
+                textBox_HBarCode.Text = "";
+                textBox_HBarCode.Focus();
+                MessageBox.Show(e2.Message);
             }
         }
         //灏嗘潯鐮佷俊鎭啓鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛�
@@ -743,13 +812,13 @@
                 }
                 else
                 {
-                    MessageBox.Show(err);
-                    return;
+                    throw new Exception(err);
                 }
             }
             catch (Exception e)
             {
-                MessageBox.Show("鎵弿瀛愭潯鐮侊紝鍐欏叆涓存椂琛ㄤ俊鎭け璐ワ紒" + e.Message + err);
+                string sError = "鎵弿瀛愭潯鐮侊紝鍐欏叆涓存椂琛ㄤ俊鎭け璐ワ紒" + e.Message + err;
+                throw new Exception(sError);
             }
         }
 
@@ -1097,6 +1166,11 @@
         private void toolStripButton_Delete_Click(object sender, EventArgs e)
         {
             deleteGrdMainNote();
+
+            if (grdMain.Rows.Count== 0)
+            {
+                set_clearPackQtyAndSourceInfo();
+            }
         }
         #endregion
 
@@ -1107,14 +1181,29 @@
         {
             if (grdMain.SelectedRows != null && grdMain.SelectedRows.Count==1)
             {
-                if (MessageBox.Show("纭畾瑕佸垹闄わ紵", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
+                //if (MessageBox.Show("纭畾瑕佸垹闄わ紵", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
+                //{
+                //    return;
+                //}
+                //if (MessageBox.Show("鍒犻櫎鍚庡皢涓嶅彲鎭㈠锛岀‘瀹氳缁х画鎿嶄綔锛�", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
+                //{
+                //    return;
+                //}
+
+                string pwd = Interaction.InputBox("璇疯緭鍏ュ瘑鐮�", "鍒犻櫎纭锛�", "", 100, 100);
+
+                //鐐瑰嚮鍙栨秷
+                if(pwd == "")
                 {
                     return;
                 }
-                if (MessageBox.Show("鍒犻櫎鍚庡皢涓嶅彲鎭㈠锛岀‘瀹氳缁х画鎿嶄綔锛�", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
+
+                if(pwd != "123456")
                 {
+                    MessageBox.Show("瀵嗙爜閿欒锛�");
                     return;
                 }
+
                 Delete();
             }
             else
@@ -1190,6 +1279,9 @@
                 Report.Printer.PrinterName = comboBox_PrinterParams.Text.Replace("(榛樿)", "");
             }
             Report.Print(false);
+
+            //缁勬墭鎴愬姛鍚庯紝娓呯┖缁勬墭鏁伴噺涓庢簮鍗曚俊鎭�
+            set_clearPackQtyAndSourceInfo();
         }
         #endregion
 
@@ -1329,6 +1421,7 @@
 
                 //鑾峰彇缂撳瓨鍒楄〃涓� 鎵樻潯鐮� 瀵瑰簲鐨� 缁勬墭璁板綍
                 sql = "select top(1) a.* from Sc_PackUnionBill_Temp as a inner join Gy_BarCodeBill as b on a.HBarCode = b.HBarCode where a.HBarCode_Pack = '" + HPackBarCode + "' and b.HSourceID = " + HSourceID + " and a.HStockorgID = " + HOrgID;
+                //sql = "select top(1) a.* from Sc_PackUnionBill_Temp as a where a.HBarCode_Pack = '" + HPackBarCode + "' and a.HStockorgID = " + HOrgID;
                 ds = oCn.RunProcReturn(sql, "Sc_PackUnionBill_Temp");
                 if (ds == null || ds.Tables[0].Rows.Count == 0)
                 {
@@ -1346,13 +1439,83 @@
                     textBox_sBillNo.Text = HBillNo;
 
                     getDisplay_GrdMain();
+
+                    if (grdMain.Rows.Count > 0 && grdMain.Rows[0].Cells[4].Value != null)
+                    {
+                        getPackQty(grdMain.Rows[0].Cells[4].Value.ToString());
+                    }
                 }
+
+
             }
         }
         #endregion
         #endregion
 
 
+        #region 鏍规嵁鏉$爜缂栧彿锛岃幏鍙栨潯鐮佷腑鐗╂枡鎵�瀵瑰簲鐨勭粍鎵樻暟閲忥紝鍚屾椂璁板綍婧愬崟涓籌D銆佸瓙ID
+        private void getPackQty(string HBarCode)
+        {
+            string sql = "select * from h_v_IF_BarCodeBillList_getPackQty where 鏉$爜缂栧彿 = '" + HBarCode + "'";
+            DataSet ds_getPackQty = oCn.RunProcReturn(sql, "h_v_IF_BarCodeBillList_getPackQty");
+            if (ds_getPackQty == null || ds_getPackQty.Tables[0].Rows.Count <= 0)
+            {
+                HSourceInterID_ICMO = 0;
+                HSourceEntryID_ICMO = 0;
+
+                textBox_PackQty.Text = "";
+                return;
+            }
+
+            HSourceInterID_ICMO = int.Parse(ds_getPackQty.Tables[0].Rows[0]["HSourceInterID"].ToString());
+            HSourceEntryID_ICMO = int.Parse(ds_getPackQty.Tables[0].Rows[0]["HSourceEntryID"].ToString());
+            textBox_PackQty.Text = Double.Parse(ds_getPackQty.Tables[0].Rows[0]["缁勬墭鏁伴噺"].ToString()).ToString();
+        }
+        #endregion
+
+        #region 鍒ゆ柇褰撳墠鎵弿鐨勬潯鐮佹槸鍚︿笌宸茬粡鎵弿杩囩殑鏉$爜涓哄悓涓�宸ュ崟鐢熸垚鐨�
+        private bool judgeIsSameSourceBill(string HBarCode)
+        {
+            if (grdMain.Rows.Count == 0)
+            {
+                return true;
+            }
+            else
+            {
+                string sql = "select * from h_v_IF_BarCodeBillList_getPackQty where 鏉$爜缂栧彿 = '" + HBarCode + "'";
+                DataSet ds_getPackQty = oCn.RunProcReturn(sql, "h_v_IF_BarCodeBillList_getPackQty");
+                if (ds_getPackQty == null || ds_getPackQty.Tables[0].Rows.Count <= 0)
+                {
+                    MessageBox.Show("褰撳墠鏉$爜涓嶅瓨鍦紒");
+                    return false;
+                }
+                else
+                {
+                    int HSourceInterID_ICMO_Bak = int.Parse(ds_getPackQty.Tables[0].Rows[0]["HSourceInterID"].ToString());
+                    int HSourceEntryID_ICMO_Bak = int.Parse(ds_getPackQty.Tables[0].Rows[0]["HSourceEntryID"].ToString());
+                    if (HSourceInterID_ICMO != HSourceInterID_ICMO_Bak || HSourceEntryID_ICMO != HSourceEntryID_ICMO_Bak)
+                    {
+                        MessageBox.Show("褰撳墠鎵弿鐨勬潯鐮佷笌涔嬪墠鎵�鎵弿鐨勬潯鐮佸伐鍗曚笉涓�鑷达紒");
+                        return false;
+                    }
+                    else
+                    {
+                        return true;
+                    }
+                }
+            }
+        }
+        #endregion
+
+        #region 娓呯┖ 缁勬墭鏁伴噺 涓庤褰曠殑婧愬崟涓籌D銆佸瓙ID
+        private void set_clearPackQtyAndSourceInfo()
+        {
+            textBox_PackQty.Text = "";
+            HSourceInterID_ICMO = 0;
+            HSourceEntryID_ICMO = 0;
+        }
+        #endregion
+
     }
 }
 

--
Gitblit v1.9.1