/// <summary>
        ///
        /// </summary>
        /// <param name=></param>
        /// <returns></returns>
        public List <MODEL.doc_PackListShipScan> GetPackListShipScanBatch(string scanbatch, string scanbatch1)
        {
            string sql = @"  
 Select BOXNO,CartonBarcode,OrderDate,CustomStyleCode,ScanTime,QA,ScanOut,WH,ScanBatch,Part
FROM doc_PackListShipScan
 WHERE ScanBatch >= @ScanBatch and ScanBatch < @ScanBatch1
 order by ScanBatch,Scantime

                            ";

            SqlParameter[] ps =
            {
                new SqlParameter("@ScanBatch",  scanbatch),
                new SqlParameter("@ScanBatch1", scanbatch1),
            };
            DataTable dt = SqlHelper.ExcuteTable(sql, ps);
            List <MODEL.doc_PackListShipScan> lists = null;

            if (dt.Rows.Count > 0)
            {
                lists = new List <MODEL.doc_PackListShipScan>();
                foreach (DataRow row in dt.Rows)
                {
                    MODEL.doc_PackListShipScan c = new MODEL.doc_PackListShipScan();
                    LoadDataToList1(row, c);
                    lists.Add(c);
                }
            }
            return(lists);
        }
        /// </summary>
        /// <param>""></param>
        /// <returns></returns>
        public int AddPackListShipScan(MODEL.doc_PackListShipScan packlist)
        {
            string sql = @"
            insert into doc_PackListShipScan(Guid,CartonBarcode,BOXNO,OrderDate,CustomStyleCode,ScanCount,Part,QA,WH,ScanTime,ScanBatch,ScanOut)
            values(@Guid,@CartonBarcode,@BOXNO,@OrderDate,@CustomStyleCode,@ScanCount,@Part,@QA,@WH,@ScanTime,@ScanBatch,@ScanOut)
            ";

            SqlParameter[] ps =
            {
                new SqlParameter("@Guid", SqlDbType.UniqueIdentifier)
                {
                    Value = SqlHelper.ToDbValue(packlist.Guid)
                },
                new SqlParameter("@CartonBarcode", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.CartonBarcode)
                },
                new SqlParameter("@BOXNO", SqlDbType.Int)
                {
                    Value = SqlHelper.ToDbValue(packlist.BOXNO)
                },
                new SqlParameter("@OrderDate", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.OrderDate)
                },
                new SqlParameter("@CustomStyleCode", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.CustomStyleCode)
                },
                new SqlParameter("@ScanCount", SqlDbType.Int)
                {
                    Value = SqlHelper.ToDbValue(packlist.ScanCount)
                },
                new SqlParameter("@Part", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.Part)
                },
                new SqlParameter("@QA", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.QA)
                },
                new SqlParameter("@WH", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.WH)
                },
                new SqlParameter("@ScanTime", SqlDbType.DateTime)
                {
                    Value = SqlHelper.ToDbValue(packlist.ScanTime)
                },
                new SqlParameter("@ScanBatch", SqlDbType.NVarChar)
                {
                    Value = SqlHelper.ToDbValue(packlist.ScanBatch)
                },
                new SqlParameter("@ScanOut", SqlDbType.Int)
                {
                    Value = SqlHelper.ToDbValue(packlist.ScanOut)
                }
            };
            return(SqlHelper.ExecuteNonQuery(sql, ps));
        }
        /// <summary>
        /// 获取訂單已入庫外箱號訊息
        /// </summary>
        /// <param name=></param>
        /// <returns></returns>
        public List <MODEL.doc_PackListShipScan> GetPacklistShipNoYesScanIn(string customstylecode, string mno)
        {
            //       string mscanin = (int.Parse(mno) + 1).ToString();
            string sql = @"

  select a.BOXNO BOXNO,a.CartonBarcode CartonBarcode,OrderDate,a.CustomStyleCode CustomStyleCode,ScanTime,QA,a.ScanOut ScanOut, a.Part Part, WH,ScanBatch,ScanIn from doc_PackListShipScan  a		
  left join ( select ScanIn,ScanOut,BOXNO,CustomStyleCode from doc_PackListShip) b
  on b.BOXNO=a.BOXNO and b.CustomStyleCode=a.CustomStyleCode
  where a.CustomStyleCode=@CustomStyleCode  and a.ScanOut<=@ScanOut
  order by BOXNO,ScanOut,Part
";

            SqlParameter[] ps =
            {
                new SqlParameter("@CustomStyleCode", customstylecode),
                new SqlParameter("@ScanOut",         mno)
                //        new SqlParameter("@ScanIn",mno)
            };
            DataTable dt = SqlHelper.ExcuteTable(sql, ps);
            List <MODEL.doc_PackListShipScan> lists = null;

            if (dt.Rows.Count > 0)
            {
                lists = new List <MODEL.doc_PackListShipScan>();
                foreach (DataRow row in dt.Rows)
                {
                    MODEL.doc_PackListShipScan c = new MODEL.doc_PackListShipScan();
                    LoadDataToList4(row, c);
                    lists.Add(c);
                }
            }
            return(lists);
        }
 /// <summary>
 /// 加载行数据到对象--集合
 /// </summary>
 /// <param name="dr"></param>
 /// <param name="classes"></param>
 public void LoadDataToList1(DataRow dr, MODEL.doc_PackListShipScan docpacklist)
 {
     docpacklist.BOXNO           = (int)SqlHelper.FromDbValue(dr["BOXNO"]);              //
     docpacklist.CartonBarcode   = (string)SqlHelper.FromDbValue(dr["CartonBarcode"]);   //
     docpacklist.OrderDate       = (string)SqlHelper.FromDbValue(dr["OrderDate"]);       //
     docpacklist.CustomStyleCode = (string)SqlHelper.FromDbValue(dr["CustomStyleCode"]); //   訂單號
     docpacklist.ScanTime        = (DateTime)SqlHelper.FromDbValue(dr["ScanTime"]);      //
     docpacklist.QA        = (string)SqlHelper.FromDbValue(dr["QA"]);                    //
     docpacklist.Part      = (string)SqlHelper.FromDbValue(dr["Part"]);                  //
     docpacklist.ScanOut   = (int)SqlHelper.FromDbValue(dr["ScanOut"]);                  //
     docpacklist.WH        = (string)SqlHelper.FromDbValue(dr["WH"]);                    //
     docpacklist.ScanBatch = (string)SqlHelper.FromDbValue(dr["ScanBatch"]);             //
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name=></param>
        /// <returns></returns>
        public List <MODEL.doc_PackListShipScan> GetScanBatch(string scanbatch, string scanbatch1)
        {
            // select ScanBatch from doc_PackListShipScan
            // WHERE ScanBatch >= @ScanBatch and ScanBatch < @ScanBatch1
//group by ScanBatch

            string sql = @"  
  select  a.ScanBatch,b.ScanCount from doc_PackListShipScan a
  left join (
 SELECT count(*) ScanCount,ScanBatch from doc_PackListShipScan group by ScanBatch) b on a.ScanBatch=b.ScanBatch  
   WHERE a.ScanBatch >= @ScanBatch  and a.ScanBatch < @ScanBatch1
  group by a.ScanBatch,b.ScanCount
  order by a.ScanBatch

                            ";

            SqlParameter[] ps =
            {
                new SqlParameter("@ScanBatch",  scanbatch),
                new SqlParameter("@ScanBatch1", scanbatch1),
            };
            DataTable dt = SqlHelper.ExcuteTable(sql, ps);
            List <MODEL.doc_PackListShipScan> lists = null;

            if (dt.Rows.Count > 0)
            {
                lists = new List <MODEL.doc_PackListShipScan>();
                foreach (DataRow row in dt.Rows)
                {
                    MODEL.doc_PackListShipScan c = new MODEL.doc_PackListShipScan();
                    LoadDataToList(row, c);
                    lists.Add(c);
                }
            }
            return(lists);
        }
 /// </summary>
 /// <param>""></param>
 /// <returns></returns>
 public int AddPackListShipScan(MODEL.doc_PackListShipScan packlist)
 {
     return(plsss.AddPackListShipScan(packlist));
 }
 /// <summary>
 /// 加载行数据到对象--集合
 /// </summary>
 /// <param name="dr"></param>
 /// <param name="classes"></param>
 public void LoadDataToList(DataRow dr, MODEL.doc_PackListShipScan docpacklist)
 {
     docpacklist.ScanBatch = (string)SqlHelper.FromDbValue(dr["ScanBatch"]); //
     docpacklist.ScanCount = (int)SqlHelper.FromDbValue(dr["ScanCount"]);    //
 }
Exemple #8
0
        private void scancheck(string mcanno)
        {
            if (mcanno.Length <= 2)
            {
                return;
            }
            string part = mcanno.Substring(0, 2);

            ///重新開始掃描,清空datagridview資料
            if (lblCheck.Text == "OK")
            {
                if (part == "QA")
                {
                    lblCheck.Text = "SCAN";
                    //            cboInOut.Enabled = false;
                    lblQA.Text = mcanno;
                    this.dgvScan.DataSource = "";
                    this.dgvScan.DataSource = pscanm.GetPackListShipScan("ERIC");
                    lblCheck.BackColor      = Color.Gray;
                    lblNO.Text = "0";
                    msgDiv.MsgDivShow(" ", 60);
                    txtPwd.Focus();
                    return;
                }
            }
            // 暂停扫描下,恢复扫描 只有QA人员才可以恢复,不限定那位QA
            if (lblCheck.Text == "STOP")
            {
                if (part == "QA")
                {
                    //checkScanIn  以前寫在一起, 基本上現在沒有用到
                    checkScanIn        = "inSCAN";
                    lblCheck.Text      = "SCAN";
                    lblCheck.BackColor = Color.Gray;
                    //msgDiv.Visible = false;
                    msgDiv.MsgDivShow("开始扫描 ", 0);
                    lblQA.Text          = mcanno;
                    lblRepeat.Text      = "";
                    lblRepeat.BackColor = Color.Gray;
                    txtPwd.Focus();
                    return;
                }
                else
                {
                    msgDiv.MsgDivShow(" 请用QA条码开启扫描", 60);
                    txtPwd.Focus();
                    return;
                }
            }


            if (lblCheck.Text == "SCAN")
            {
                //如果在此情况下刷QA,表示斩停扫描
                if (part == "QA")
                {
                    cboInOut.Enabled   = false;
                    lblCheck.Text      = "STOP";
                    lblCheck.BackColor = Color.DarkOrange;
                    lblQA.Text         = mcanno;
                    msgDiv.MsgDivShow("暂停扫描", 60);
                    lblRepeat.Text      = "";
                    lblRepeat.BackColor = Color.Gray;
                    txtPwd.Focus();
                    return;
                }
                //更新doc_PackListShipScan 入库记录
                else if (part == "WH")
                {
                    cboInOut.Enabled = true;
                    checkScanIn      = "OK";
                    msgDiv.MsgDivShow(" 仓库确认扫描", 60);
                    lblCheck.Text = "OK";
                    //更新WH
                    lblCheck.BackColor  = Color.Green;
                    lblQA.Text          = mcanno;
                    lblRepeat.Text      = "";
                    lblRepeat.BackColor = Color.Gray;
                    MODEL.doc_PackListShipScan plss = new MODEL.doc_PackListShipScan();
                    string mtime = lblQA.Text.Substring(0, 3) + string.Format("{0:yyMMddHHmmss}", DateTime.Now);
                    for (int i = 0; i < int.Parse(lblNO.Text); i++)
                    {
                        plss.Guid            = Guid.NewGuid();
                        plss.BOXNO           = int.Parse(this.dgvScan.Rows[i].Cells["BOXNO2"].Value.ToString());
                        plss.CartonBarcode   = this.dgvScan.Rows[i].Cells["CartonBarcode2"].Value.ToString();
                        plss.OrderDate       = this.dgvScan.Rows[i].Cells["OrderDate2"].Value.ToString();
                        plss.CustomStyleCode = this.dgvScan.Rows[i].Cells["CustomStyleCode2"].Value.ToString();
                        plss.ScanTime        = Convert.ToDateTime(this.dgvScan.Rows[i].Cells["ScanTime2"].Value);
                        plss.QA = this.dgvScan.Rows[i].Cells["QA2"].Value.ToString();
                        this.dgvScan.Rows[i].Cells["WH2"].Value        = lblQA.Text;
                        this.dgvScan.Rows[i].Cells["ScanBatch2"].Value = mtime;
                        plss.ScanBatch = mtime;
                        plss.ScanCount = 1;
                        if (cboInOut.SelectedIndex == 0)
                        {
                            plss.Part = "WHIN";
                        }
                        else
                        {
                            plss.Part = "WHOUT";
                        }
                        ///加入ScanOut
                        plslist      = plsm.GetPacklistShipByCartonBarcode(plss.CartonBarcode);
                        plss.ScanOut = plslist[0].ScanOut.Value;
                        plss.WH      = lblQA.Text;
                        pscanm.AddPackListShipScan(plss);
                        //仓库扫描入库确认 ,增加仓库库别
                        string wh = lblQA.Text.Trim();
                        wh = wh.Substring(0, 3);
                        plsm.updatePackListShipwh(wh, plslist[0].CartonBarcode.ToString(), plslist[0].CustomStyleCode.ToString());
                    }
                }
                /// 掃描紀錄 ScanIn ,這樣才能檢查 有沒有重複刷
                else
                {
                    checkScanIn = "inSCAN";
                    int mno = int.Parse(lblNO.Text);
                    lblCheck.BackColor = Color.Gray;
                    plslist            = plsm.GetPacklistShipByCartonBarcode(mcanno);
                    if (plslist == null)
                    {
                        msgDiv.MsgDivShow(" 非外箱條碼", 60);
                        txtPwd.Focus();
                        return;
                    }
                    //if (plslist[0].CustomBuyName == "DCS")
                    //{       ///DCS有蛋裝不判斷

                    //}
                    //else
                    //{
                    #region 入库扫描
                    if (cboInOut.SelectedIndex == 0)
                    {
                        //第四次已掃瞄
                        if (plslist[0].ScanIn.Value >= 4 && plslist[0].QAOut.Value == 4)
                        {
                            msgDiv.MsgDivShow("第5次QA未扫描", 60);
                            MessageBox.Show("此條碼第4次入庫已經掃描\r\n第5次QA未扫描", "前一工序未完成", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        //第三次掃瞄
                        if (plslist[0].ScanIn.Value >= 3 && plslist[0].QAOut.Value == 3)
                        {
                            msgDiv.MsgDivShow("第4次QA未扫描", 60);
                            MessageBox.Show("此條碼第3次入庫已經掃描\r\n第4次QA未扫描", "前一工序未完成", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        //第二次掃瞄
                        if (plslist[0].ScanIn.Value >= 2 && plslist[0].QAOut.Value == 2)
                        {
                            msgDiv.MsgDivShow("第3次QA未扫描", 60);
                            MessageBox.Show("此條碼第2次入庫已經掃描\r\n第3次QA未扫描", "前一工序未完成", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        //第一次掃瞄
                        if (plslist[0].ScanIn.Value >= 1 && plslist[0].QAOut.Value == 1)
                        {
                            msgDiv.MsgDivShow("第2次QA未扫描", 60);
                            MessageBox.Show("此條碼第1次入庫已經掃描\r\n第2次QA未扫描", "前一工序未完成", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }

                        //第一次掃瞄入庫,QA沒有掃描
                        if (plslist[0].QAOut.Value <= 0)
                        {
                            gbError.Visible         = true;
                            gbError.BackColor       = Color.OrangeRed;
                            btnCartonBarcode.Text   = plslist[0].CartonBarcode;
                            btnBOXNO.Text           = plslist[0].BOXNO.ToString();
                            btnScanIn.Text          = plslist[0].ScanIn.ToString();
                            btnScanOut.Text         = plslist[0].ScanOut.ToString();
                            btnQaout.Text           = plslist[0].QAOut.ToString();
                            btnCustomStyleCode.Text = plslist[0].CustomStyleCode;
                            lbl1.Text      = " QA扫描未完成";
                            lbl1.BackColor = Color.Gold;
                            btnOK.Visible  = false;
                            txt1.Focus();
                            return;
                        }

                        //第二次掃瞄入庫,QA沒有掃描
                        if (plslist[0].ScanIn.Value == 1 && plslist[0].QAOut.Value <= 1)
                        {
                            gbError.Visible         = true;
                            gbError.BackColor       = Color.OrangeRed;
                            btnCartonBarcode.Text   = plslist[0].CartonBarcode;
                            btnBOXNO.Text           = plslist[0].BOXNO.ToString();
                            btnScanIn.Text          = plslist[0].ScanIn.ToString();
                            btnScanOut.Text         = plslist[0].ScanOut.ToString();
                            btnQaout.Text           = plslist[0].QAOut.ToString();
                            btnCustomStyleCode.Text = plslist[0].CustomStyleCode;
                            lbl1.Text      = " 第二次QA入库扫描未完成";
                            lbl1.BackColor = Color.Gold;
                            btnOK.Visible  = false;
                            txt1.Focus();
                            return;
                        }

                        //第三次掃瞄入庫,QA沒有掃描
                        if (plslist[0].ScanIn.Value == 2 && plslist[0].QAOut.Value <= 2)
                        {
                            gbError.Visible         = true;
                            gbError.BackColor       = Color.OrangeRed;
                            btnCartonBarcode.Text   = plslist[0].CartonBarcode;
                            btnBOXNO.Text           = plslist[0].BOXNO.ToString();
                            btnScanIn.Text          = plslist[0].ScanIn.ToString();
                            btnScanOut.Text         = plslist[0].ScanOut.ToString();
                            btnQaout.Text           = plslist[0].QAOut.ToString();
                            btnCustomStyleCode.Text = plslist[0].CustomStyleCode;
                            lbl1.Text      = " 第三次QA入库扫描未完成";
                            lbl1.BackColor = Color.Gold;
                            btnOK.Visible  = false;
                            txt1.Focus();
                            return;
                        }

                        //第四次掃瞄入庫,QA沒有掃描
                        if (plslist[0].ScanIn.Value == 3 && plslist[0].QAOut.Value <= 3)
                        {
                            gbError.Visible         = true;
                            gbError.BackColor       = Color.OrangeRed;
                            btnCartonBarcode.Text   = plslist[0].CartonBarcode;
                            btnBOXNO.Text           = plslist[0].BOXNO.ToString();
                            btnScanIn.Text          = plslist[0].ScanIn.ToString();
                            btnScanOut.Text         = plslist[0].ScanOut.ToString();
                            btnQaout.Text           = plslist[0].QAOut.ToString();
                            btnCustomStyleCode.Text = plslist[0].CustomStyleCode;
                            lbl1.Text      = " 前一工序沒有掃描完成,請把該箱找出重新掃描";
                            lbl1.BackColor = Color.Gold;
                            btnOK.Visible  = false;
                            txt1.Focus();
                            return;
                        }
                        if (plslist[0].QAOut.Value > 3)
                        {
                            MessageBox.Show("服务器数库数据有问题,请报指令号,箱号 找IT修正");
                            return;
                        }

                        plsm.updatePackListShipScanIn(mcanno, plslist[0].CustomStyleCode.ToString());
                    }
                    #endregion
                    #region 出库扫描
                    else if (cboInOut.SelectedIndex == 1)
                    {
                        if (plslist[0].ScanIn.Value == 0)
                        {
                            msgDiv.MsgDivShow(" 第一次沒有入庫", 60);
                            lblRepeat.Text      = mcanno + "未入庫";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        if (plslist[0].ScanIn.Value == 1 && plslist[0].ScanOut.Value == 1)
                        {
                            msgDiv.MsgDivShow(" 第一次出庫已掃描", 60);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        if (plslist[0].ScanIn.Value == 2 && plslist[0].ScanOut.Value == 2)
                        {
                            msgDiv.MsgDivShow(" 第二次出庫已掃描", 60);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        if (plslist[0].ScanIn.Value == 3 && plslist[0].ScanOut.Value == 3)
                        {
                            msgDiv.MsgDivShow(" 第三次出庫已掃描", 60);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        if (plslist[0].ScanIn.Value == 4 && plslist[0].ScanOut.Value == 4)
                        {
                            msgDiv.MsgDivShow(" 第四次出庫已掃描", 60);
                            lblRepeat.Text      = mcanno + "已掃描";
                            lblRepeat.BackColor = Color.Red;
                            txtPwd.Focus();
                            return;
                        }
                        plsm.updatePackListShipScanOut(mcanno, plslist[0].CustomStyleCode.ToString());
                    }
                    #endregion
                    //}
                    cboInOut.Enabled    = false;
                    lblRepeat.Text      = "";
                    lblRepeat.BackColor = Color.Gray;
                    // 完成顯示
                    MODEL.doc_PackListShipScan plsc = new MODEL.doc_PackListShipScan();
                    this.dgvScan.Rows.Add();
                    this.dgvScan.Rows[mno].Cells["BOXNO2"].Value           = plslist[0].BOXNO;
                    this.dgvScan.Rows[mno].Cells["CartonBarcode2"].Value   = plslist[0].CartonBarcode;
                    this.dgvScan.Rows[mno].Cells["Orderdate2"].Value       = plslist[0].OrderDate;
                    this.dgvScan.Rows[mno].Cells["CustomStyleCode2"].Value = plslist[0].CustomStyleCode;
                    this.dgvScan.Rows[mno].Cells["ScanTime2"].Value        = DateTime.Now;
                    this.dgvScan.Rows[mno].Cells["QA2"].Value = lblQA.Text;

                    this.dgvScan.Rows[mno].Cells["ScanOut2"].Value = plslist[0].ScanOut + 1;
                    mno        = mno + 1;
                    lblNO.Text = mno.ToString();
                    msgDiv.MsgDivShow("正確", 0);
                    txtPwd.Focus();
                }
            }
        }     //Scan狀態結束括號