浏览代码

卡通箱转移update

Hcsy 8 年之前
父节点
当前提交
2d408f8357

+ 11 - 11
UAS-MES/FunctionCode/Packing/Packing_CartonTransfer.Designer.cs

@@ -58,7 +58,7 @@
             this.pr_code_label = new System.Windows.Forms.Label();
             this.pr_outboxinnerqty_label = new System.Windows.Forms.Label();
             this.pa_code_label = new System.Windows.Forms.Label();
-            this.button1 = new System.Windows.Forms.Button();
+            this.清除 = new System.Windows.Forms.Button();
             this.groupBoxWithBorder2.SuspendLayout();
             this.groupBoxWithBorder1.SuspendLayout();
             this.SuspendLayout();
@@ -420,22 +420,22 @@
             this.pa_code_label.TabIndex = 113;
             this.pa_code_label.Text = "原箱号";
             // 
-            // button1
+            // 清除
             // 
-            this.button1.Location = new System.Drawing.Point(608, 477);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(75, 23);
-            this.button1.TabIndex = 178;
-            this.button1.Text = "button1";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
+            this.清除.Location = new System.Drawing.Point(608, 477);
+            this.清除.Name = "清除";
+            this.清除.Size = new System.Drawing.Size(75, 23);
+            this.清除.TabIndex = 178;
+            this.清除.Text = "清除";
+            this.清除.UseVisualStyleBackColor = true;
+            this.清除.Click += new System.EventHandler(this.button1_Click);
             // 
             // Packing_CartonTransfer
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(910, 527);
-            this.Controls.Add(this.button1);
+            this.Controls.Add(this.清除);
             this.Controls.Add(this.sn_code);
             this.Controls.Add(this.sn_code_label);
             this.Controls.Add(this.OperateResult);
@@ -489,6 +489,6 @@
         private CustomControl.ValueLabel.ValueLabel pa_custcode;
         private CustomControl.ValueLabel.ValueLabel pa_type;
         private CustomControl.ValueLabel.ValueLabel pa_packtype;
-        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Button 清除;
     }
 }

+ 150 - 50
UAS-MES/FunctionCode/Packing/Packing_CartonTransfer.cs

@@ -28,6 +28,17 @@ namespace UAS_MES.Packing
 
         DataHelper dh;
 
+        //目标箱号相关变量
+
+        string new_pa_downstatus;
+        string new_pa_currentqty;
+        string new_pa_standardqty;
+        string new_pa_packtype;
+        string new_pa_prodcode;
+        string new_pa_salecode;
+        string new_pa_checkno;
+        string new_ob_result;
+
         public Packing_CartonTransfer()
         {
             InitializeComponent();
@@ -79,47 +90,12 @@ namespace UAS_MES.Packing
                 }
                 else if (movepack.Checked)
                 {
-                    CheckBoxCode();       
+                    CheckBoxCode();
                 }
             }
         }
 
-        private Boolean CheckBoxCode()
-        {
-            sql.Clear();
-            sql.Append("select pa_id,pa_outboxcode,pa_standardqty,nvl(pa_currentqty,0) pa_currentqty,pa_prodcode,nvl(pa_downstatus,0) pa_downstatus from package where pa_outboxcode='" + pa_outboxcode.Text + "'");
-            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
-            if (dt.Rows.Count > 0)
-            {
-                string pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
-                string pa_currentqty = dt.Rows[0]["pa_currentqty"].ToString();
-                string pa_standardqty = dt.Rows[0]["pa_standardqty"].ToString();
-                if (pa_downstatus != "0")
-                {
-                    OperateResult.AppendText(">>该箱号" + pa_outboxcode.Text + "处于下地状态,不允许操作\n", Color.Red, pa_outboxcode);
-                    OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
-                    pa_outboxcode.Focus();
-                    return false;
 
-                }
-                else if (pa_currentqty == pa_standardqty)
-                {
-                    OperateResult.AppendText(">>目标箱号" + pa_outboxcode.Text + "已装满\n", Color.Red, pa_outboxcode);
-                    OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
-                    pa_outboxcode.Focus();
-                    return false;
-                }
-                BaseUtil.SetFormValue(this.Controls, dt);
-                return true;
-            }
-            else
-            {
-                OperateResult.AppendText(">>该箱号" + pa_outboxcode.Text + "不存在\n", Color.Red, pa_outboxcode);
-                OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
-                pa_outboxcode.Focus();
-                return false;
-            }
-        }
 
         private void sn_code_KeyDown(object sender, KeyEventArgs e)
         {
@@ -135,6 +111,8 @@ namespace UAS_MES.Packing
                     sql.Append("ms_checkno from makeserial where ms_id='" + ms_id + "'");
                     dt1 = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                     string ms_outboxcode = dt1.Rows[0]["ms_outboxcode"].ToString();
+                    string msprodcode = dt1.Rows[0]["ms_prodcode"].ToString();
+                    string ms_makecode = dt1.Rows[0]["ms_msmakecode"].ToString();
                     if (ms_outboxcode != "")
                     {
                         sql.Clear();
@@ -142,13 +120,24 @@ namespace UAS_MES.Packing
                         dtbar = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
                         if (dtbar.Rows.Count > 0)
                         {
+                            string PA_PACKTYPE = dtbar.Rows[0]["PA_PACKTYPE"].ToString();
                             string pa_checkno = dtbar.Rows[0]["pa_checkno"].ToString();
                             string PA_DOWNSTATUS = dtbar.Rows[0]["PA_DOWNSTATUS"].ToString();
-                            string ob_result = dh.getFieldDataByCondition("oqcbatch","ob_result","ob_checkno = '"+ pa_checkno + "'").ToString();
+                            string old_pa_id = dtbar.Rows[0]["pa_id"].ToString();
+                            string ob_result = dh.getFieldDataByCondition("oqcbatch", "ob_result", "ob_checkno = '" + pa_checkno + "'").ToString();
                             if (PA_DOWNSTATUS == "0")
                             {
                                 BaseUtil.SetFormValue(this.Controls, dtbar);
                                 BaseUtil.SetFormValue(this.Controls, dt1);
+                                if (PA_PACKTYPE == "MIX")
+                                {
+                                    ms_prodcode.Text = "混包";
+                                }
+                                else if (PA_PACKTYPE == "SALE")
+                                {
+                                    ms_msmakecode.Text = pa_salecode.Text;
+                                }
+
                                 if (newpack.Checked)
                                 {
                                     if (ob_result == "")
@@ -163,52 +152,120 @@ namespace UAS_MES.Packing
                                                     pa_outboxcode.Focus();
                                                     return;
                                                 }
-                                                else {
+                                                else
+                                                {
                                                     string pa_id = dh.GetSEQ("package_seq");
                                                     //新增箱
                                                     sql.Clear();
                                                     sql.Append("insert into package (PA_ID, PA_OUTBOXCODE,PA_PRODCODE, PA_PACKDATE,");
                                                     sql.Append("PA_LEVEL,PA_PACKAGEQTY,PA_TOTALQTY,PA_MAKECODE,PA_STATUS,PA_INDATE,");
                                                     sql.Append("PA_SALECODE,PA_CUSTCODE,PA_TYPE,PA_CURRENTQTY,PA_PACKTYPE,PA_STANDARDQTY)");
-                                                    sql.Append("values ('"+pa_id+"','" + pa_outboxcode.Text+"','"+ ms_prodcode.Text + "',sysdate,'"+pa_level.Text+"','0','0'");
-                                                    sql.Append(",'"+ ms_msmakecode.Text + "','0',sysdate,'"+pa_salecode.Text+"','"+pa_custcode.Text+"','"+pa_type.Text+"','0','"+ pa_packtype.Text + "','"+pa_standardqty.Text+"')");
+                                                    sql.Append("values ('" + pa_id + "','" + pa_outboxcode.Text + "','" + msprodcode + "',sysdate,'" + pa_level.Text + "','0','0'");
+                                                    sql.Append(",'" + ms_makecode + "','0',sysdate,'" + pa_salecode.Text + "','" + pa_custcode.Text + "','" + pa_type.Text + "','0','" + pa_packtype.Text + "','" + pa_standardqty.Text + "')");
                                                     dh.ExecuteSql(sql.GetString(), "insert");
+
                                                     sql.Clear();
                                                     sql.Append("insert into packagedetail (PD_ID,PD_PAID,PD_OUTBOXCODE,PD_BARCODE,PD_INNERQTY,PD_PRODCODE,PD_MAKECODE,PD_BUILDDATE,PD_YMD)");
-                                                    sql.Append("values (packagedetail_seq.nextval,'"+pa_id+"','"+ pa_outboxcode.Text + "','"+sn_code.Text+"','1','"+ ms_prodcode.Text + "','"+ ms_msmakecode.Text + "',sysdate,to_char(sysdate,'yymmdd'))");
+                                                    sql.Append("values (packagedetail_seq.nextval,'" + pa_id + "','" + pa_outboxcode.Text + "','" + sn_code.Text + "','1','" + msprodcode + "','" + ms_makecode + "',sysdate,to_char(sysdate,'yymmdd'))");
                                                     dh.ExecuteSql(sql.GetString(), "insert");
 
                                                     //更新原箱数量
                                                     dh.UpdateByCondition("package", "pa_currentqty=pa_currentqty-1", "pa_outboxcode = '" + ms_outboxcode + "'");
                                                     //更新目标箱数量
                                                     dh.UpdateByCondition("package", "pa_currentqty=1, pa_totalqty=1,pa_packageqty=1", "pa_outboxcode = '" + pa_outboxcode.Text + "'");
-                                                    dh.UpdateByCondition("makeserial", "ms_outboxcode = '" + pa_outboxcode.Text + "'","ms_id = '"+ ms_id + "'");
-                                                    LogicHandler.DoCommandLog(Tag.ToString(),User.UserCode,ms_msmakecode.Text,User.UserLineCode,User.UserSourceCode,"卡通箱转移", "卡通箱转移,生成目标箱号"+pa_outboxcode.Text+"",sn_code.Text,"");
-                                                    LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_msmakecode.Text, User.UserLineCode, User.UserSourceCode, "卡通箱转移", "序列号:"+sn_code.Text+",从原箱号:"+ms_outboxcode+"转移至目标箱号:"+pa_outboxcode.Text+"", sn_code.Text, "");
-                                                    OperateResult.AppendText(">>序列号:" + sn_code.Text + ",从原箱号:" + ms_outboxcode + "转移至目标箱号:" + pa_outboxcode.Text + "\n",Color.Green);
+                                                    dh.UpdateByCondition("makeserial", "ms_outboxcode = '" + pa_outboxcode.Text + "'", "ms_id = '" + ms_id + "'");
+                                                    LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "卡通箱转移", "卡通箱转移,生成目标箱号" + pa_outboxcode.Text + "", sn_code.Text, "");
+                                                    LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "卡通箱转移", "序列号:" + sn_code.Text + ",从原箱号:" + ms_outboxcode + "转移至目标箱号:" + pa_outboxcode.Text + "", sn_code.Text, "");
+                                                    OperateResult.AppendText(">>序列号:" + sn_code.Text + ",从原箱号:" + ms_outboxcode + "转移至目标箱号:" + pa_outboxcode.Text + "\n", Color.Green);
                                                     movepack.Focus();
-                                                    pa_outboxcode_KeyDown(sender,e);
+                                                    pa_outboxcode_KeyDown(sender, e);
                                                 }
                                             }
-                                            else {
+                                            else
+                                            {
                                                 OperateResult.AppendText(">>必须填写新增目标箱号\n", Color.Red);
                                                 return;
                                             }
                                         }
-                                        else {
+                                        else
+                                        {
                                             OperateResult.AppendText(">>新增目标箱号必须填写标准容量\n", Color.Red);
                                             return;
                                         }
                                     }
-                                    else {
+                                    else
+                                    {
                                         OperateResult.AppendText(">>原箱" + ms_outboxcode + "处于送检状态,不允许转移\n", Color.Red, sn_code);
                                         return;
                                     }
                                 }
                                 else if (movepack.Checked)
                                 {
-                                    if (CheckBoxCode()) {
+                                    if (CheckBoxCode())
+                                    {
+                                        if (PA_PACKTYPE != new_pa_packtype)
+                                        {
+                                            OperateResult.AppendText(">>原箱" + ms_outboxcode + "和目标箱号" + pa_outboxcode.Text + "的包装方式不一致,不允许转移\n", Color.Red, sn_code);
+                                            return;
+                                        }
+                                        if (PA_PACKTYPE != "MIX")
+                                        {
+                                            if (ms_prodcode.Text != new_pa_prodcode)
+                                            {
+                                                OperateResult.AppendText(">>原箱号和目标箱号(目标箱产品编号" + new_pa_prodcode + ")的产品编号不一致,不允许转移\n", Color.Red, sn_code);
+                                                return;
+                                            }
+                                            if (PA_PACKTYPE != "SALE")
+                                            {
+                                                if (pa_salecode.Text != new_pa_salecode)
+                                                {
+                                                    OperateResult.AppendText(">>原箱号和目标箱号的合同号不一致,不允许转移\n", Color.Red, sn_code);
+                                                    return;
+                                                }
+                                            }
+                                        }
+                                        if (pa_checkno != new_pa_checkno) {
+                                            if ((pa_checkno == "" && new_pa_checkno != "")||(pa_checkno != "" && new_pa_checkno == ""))
+                                            {
+                                                if (pa_checkno != "" && ob_result == "") {
+                                                    OperateResult.AppendText(">>原箱号处于送检状态,不允许转移\n", Color.Red, sn_code);
+                                                    return;
+                                                }
+                                                if (new_pa_checkno != "" && new_pa_checkno == "") {
+                                                    OperateResult.AppendText(">>目标箱号处于送检状态,不允许转移\n", Color.Red, sn_code);
+                                                    return;
+                                                }
+                                            }
+                                            if (pa_checkno != "" && new_pa_checkno != "") {
+                                                string a_ob_result = dh.getFieldDataByCondition("oqcbatch", "ob_status", "ob_checkno = '" + pa_checkno + "'").ToString();
+                                                string b_ob_result = dh.getFieldDataByCondition("oqcbatch", "ob_status", "ob_checkno = '" + new_pa_checkno + "'").ToString();
+                                                if (!((a_ob_result == b_ob_result) && (b_ob_result == "OK" || b_ob_result == "NG"))) {
+                                                    OperateResult.AppendText(">>原箱号和目标箱号必须抽检完成,并且结果一致才可以转移\n", Color.Red, sn_code);
+                                                    return;
+                                                }
+                                            }
+                                        }
+                                        string new_laststepcode = dh.getFieldDataByCondition("packagedetail inner join makeserial on ms_outboxcode=pd_outboxcode and ms_sncode=pd_barcode and ms_prodcode = pd_prodcode", "max(nvl(ms_currentstepcode,ms_stepcode))", "pd_outboxcode='"+ pa_outboxcode.Text + "'").ToString();
+                                        if (new_laststepcode != laststepcode.Text) {
+                                            OperateResult.AppendText(">>目标箱号中的序列号最后所在工序与所录入序列号最后所在工序不一致\n", Color.Red, sn_code);
+                                            return;
+                                        }
+
+                                        //更新操作
+                                        sql.Clear();
+                                        sql.Append("insert into packagedetail (PD_ID,PD_PAID,PD_OUTBOXCODE,PD_BARCODE,PD_INNERQTY,PD_PRODCODE,PD_MAKECODE,PD_BUILDDATE,PD_YMD)");
+                                        sql.Append("values (packagedetail_seq.nextval,'" + old_pa_id + "','" + pa_outboxcode.Text + "','" + sn_code.Text + "','1','" + msprodcode + "','" + ms_makecode + "',sysdate,to_char(sysdate,'yymmdd'))");
+                                        dh.ExecuteSql(sql.GetString(), "insert");
 
+                                        //更新原箱数量
+                                        dh.UpdateByCondition("package", "pa_currentqty=pa_currentqty-1", "pa_outboxcode = '" + ms_outboxcode + "'");
+                                        //更新目标箱数量
+                                        dh.UpdateByCondition("package", "pa_currentqty=nvl(pa_currentqty,0)+ 1,pa_totalqty=nvl(pa_totalqty,0)+1,pa_packageqty=nvl(pa_packageqty ,0)+1", "pa_outboxcode = '" + pa_outboxcode.Text + "'");
+                                        dh.UpdateByCondition("makeserial", "ms_outboxcode = '" + pa_outboxcode.Text + "'", "ms_id = '" + ms_id + "'");
+                                        LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "卡通箱转移", "序列号:" + sn_code.Text + ",从原箱号:" + ms_outboxcode + "转移至目标箱号:" + pa_outboxcode.Text + "", sn_code.Text, "");
+                                        OperateResult.AppendText(">>序列号:" + sn_code.Text + ",从原箱号:" + ms_outboxcode + "转移至目标箱号:" + pa_outboxcode.Text + "\n", Color.Green);
+                                        movepack.Focus();
+                                        pa_outboxcode_KeyDown(sender, e);
                                     }
                                 }
                             }
@@ -239,6 +296,49 @@ namespace UAS_MES.Packing
 
         }
 
+
+        private Boolean CheckBoxCode()
+        {
+            sql.Clear();
+            sql.Append("select pa_id,pa_outboxcode,pa_checkno,pa_standardqty,nvl(pa_currentqty,0) pa_currentqty,pa_packtype,pa_prodcode,nvl(pa_downstatus,0) pa_downstatus,pa_salecode from package where pa_outboxcode='" + pa_outboxcode.Text + "'");
+            dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
+            if (dt.Rows.Count > 0)
+            {
+                new_pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
+                new_pa_currentqty = dt.Rows[0]["pa_currentqty"].ToString();
+                new_pa_standardqty = dt.Rows[0]["pa_standardqty"].ToString();
+                new_pa_packtype = dt.Rows[0]["pa_packtype"].ToString();
+                new_pa_prodcode = dt.Rows[0]["pa_prodcode"].ToString();
+                new_pa_salecode = dt.Rows[0]["pa_salecode"].ToString();
+                new_pa_checkno = dt.Rows[0]["pa_checkno"].ToString();
+                new_ob_result = dh.getFieldDataByCondition("oqcbatch", "ob_result", "ob_checkno = '" + new_pa_checkno + "'").ToString();
+                if (new_pa_downstatus != "0")
+                {
+                    OperateResult.AppendText(">>该目标箱号" + pa_outboxcode.Text + "处于下地状态,不允许操作\n", Color.Red, pa_outboxcode);
+                    OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
+                    pa_outboxcode.Focus();
+                    return false;
+
+                }
+                else if (new_pa_currentqty == new_pa_standardqty)
+                {
+                    OperateResult.AppendText(">>目标箱号" + pa_outboxcode.Text + "已装满\n", Color.Red, pa_outboxcode);
+                    OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
+                    pa_outboxcode.Focus();
+                    return false;
+                }
+                BaseUtil.SetFormValue(this.Controls, dt);
+                return true;
+            }
+            else
+            {
+                OperateResult.AppendText(">>该目标箱号" + pa_outboxcode.Text + "不存在\n", Color.Red, pa_outboxcode);
+                OperateResult.AppendText(">>请输入目标箱号\n", Color.Black);
+                pa_outboxcode.Focus();
+                return false;
+            }
+        }
+
         private void button1_Click(object sender, EventArgs e)
         {
             BaseUtil.CleanControls(this.Controls);