Ejemplo n.º 1
0
        /// <summary>
        /// 扫描响应事件
        /// </summary>
        /// <param name="DecodeText">扫描到的条码内容</param>
        private void scan_OnDecodeEvent(string DecodeText)
        {
            var cBarCode = DecodeText;


            if (string.IsNullOrEmpty(lblStockPlaceID.Text))
            {
                var cmd = new SqlCommand("select * from t_StockPlace where FNumber=@FNumber");
                cmd.Parameters.AddWithValue("@FNumber", cBarCode);

                if (PDAFunction.ExistSqlKis(cmd))
                {
                    lblStockPlaceID.Text = cBarCode;
                }
                else
                {
                    MessageBox.Show("请先扫描库位", "Error");
                }
                return;
            }


            if (!cBarCode.StartsWith("R*") || !cBarCode.Contains("*L*") || !cBarCode.Contains("*S*"))
            {
                MessageBox.Show("无效条码", "Error");
                return;
            }
            //物料编码
            var FItemID = cBarCode.Substring(2, cBarCode.IndexOf("*L*") - 2);
            //产品序列号
            var cLotNo = cBarCode.Substring(cBarCode.IndexOf("*L*") + 3, cBarCode.IndexOf("*S*") - cBarCode.IndexOf("*L*") - 3);

            //产品批号
            var cSerialNumber = cBarCode.Substring(cBarCode.IndexOf("*S*") + 3, cBarCode.Length - cBarCode.IndexOf("*S*") - 3);

            ////判断该产品序列号是否已经被扫描
            //if (!JudgeBarCode(cSerialNumber))
            //    return;

            //判断波次订单中是否存在此出库要求产品
            if (!JudgeInvCode(FItemID))
            {
                return;
            }

            //判断要拣货的产品是否已经全部拣完
            if (!OutAll(FItemID))
            {
                return;
            }

            using (var pgq = new PdaGetQuantity(_cInvCode, cInvName, cLotNo))
            {
                if (pgq.ShowDialog() != DialogResult.Yes)
                {
                    return;
                }
                //通过校验后进
                SaveOutWareHouse(cSerialNumber, _cInvCode, cInvName, pgq.IQuantity, cLotNo, FItemID);
            }
            lblStockPlaceID.Text = "";
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 扫描响应事件
        /// </summary>
        /// <param name="DecodeText">扫描到的条码内容</param>
        private void scan_OnDecodeEvent(string DecodeText)
        {
            var cBarCode = DecodeText;

            if (string.IsNullOrEmpty(lblStockPlaceID.Text))
            {
                var cmd = new SqlCommand("select * from t_StockPlace where FNumber=@FNumber");
                cmd.Parameters.AddWithValue("@FNumber", cBarCode);

                if (PDAFunction.ExistSqlKis(cmd))
                {
                    lblStockPlaceID.Text = cBarCode;
                }
                else
                {
                    MessageBox.Show("请先扫描库位", "Error");
                }
                return;
            }

            if ((!cBarCode.StartsWith("P*") || !cBarCode.Contains("*L*") || !cBarCode.Contains("*S*")))
            {
                MessageBox.Show("无效条码", "Error");
                return;
            }

            cBarCode = cBarCode.Substring(cBarCode.IndexOf("*S*") + 3, 16);


            if (!JudgeBarCode(cBarCode))
            {
                return;
            }


            //if (!cBarCode.StartsWith("R*") || !cBarCode.Contains("*L*") || !cBarCode.Contains("*S*"))
            //{
            //    MessageBox.Show("无效条码", "Error");
            //    return;
            //}
            ////物料编码
            //var FitemID = cBarCode.Substring(2, cBarCode.IndexOf("*L*") - 2);
            ////产品序列号
            //var cLotNo = cBarCode.Substring(cBarCode.IndexOf("*L*") + 3, cBarCode.IndexOf("*S*") - cBarCode.IndexOf("*L*") - 3);

            ////产品批号
            //var cSerialNumber = cBarCode.Substring(cBarCode.IndexOf("*S*") + 3, cBarCode.Length - cBarCode.IndexOf("*S*") - 3);


            var cmdGetQuantity = new SqlCommand("select * from View_ProductLabel where cBarCode=@cBarCode");

            cmdGetQuantity.Parameters.AddWithValue("@cBarCode", cBarCode);

            decimal iQuantity = 0;
            string  cLotNo    = "";
            int     FitemID   = 1;
            var     dtTemp    = PDAFunction.GetSqlTable(cmdGetQuantity);

            if (dtTemp == null || dtTemp.Rows.Count < 1)
            {
                MessageBox.Show("无效条码,无打印记录", "Error");
                return;
            }
            try
            {
                iQuantity = decimal.Parse(dtTemp.Rows[0]["iQuantity"].ToString());
                cLotNo    = dtTemp.Rows[0]["FBatchNo"].ToString();
                FitemID   = int.Parse(dtTemp.Rows[0]["cFitemID"].ToString());
                _cInvCode = dtTemp.Rows[0]["cInvCode"].ToString();
                cInvName  = dtTemp.Rows[0]["cInvName"].ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show("数据异常," + ex.Message, "Error");
                return;
            }

            SaveOutWareHouse(cBarCode, _cInvCode, cInvName, iQuantity, cLotNo, FitemID);


            lblStockPlaceID.Text = "";
        }