예제 #1
0
        /// <summary>
        /// 输入数量后清空相应的数据
        /// </summary>
        private void Clear()
        {
            dd = null;
            lblInvName.Text    = "";
            lblInvStd.Text     = "";
            lblProAddress.Text = "";
            lblEnterprise.Text = "";
            lblProDate.Text    = "";
            lblValidDate.Text  = "";
            lblcBatch.Text     = "";
            txtCount.Text      = "";
            txtCount.Enabled   = false;
            txtLable.Text      = "";
            lblScanedNum.Text  = "";
            txtCPosition.Text  = "";
            //判断是否货位管理
            if (Bwhpos)
            {
                txtCPosition.Focus();
            }
            else
            {
                txtLable.Focus();
            }

            //默认为二维码
            IsQR = true;
            //清空批次数据
            cmbCBatch.DataSource = null;
        }
예제 #2
0
 private void btnDelete_Click(object sender, EventArgs e)
 {
     try
     {
         if (ls.OperateDetails.Count < 1)
         {
             MessageBox.Show("没有操作的数据!");
             return;
         }
         if (MessageBox.Show("确定要删除吗?",
                             "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
         {
             int rindex = dataGrid1.CurrentRowIndex;
             //已扫描数量
             decimal sub      = ls.OperateDetails[rindex].inewquantity;
             string  cinvcode = ls.OperateDetails[rindex].cinvcode;
             string  cbatch   = ls.OperateDetails[rindex].cbatch;
             dataGrid1.DataSource = null;
             ls.OperateDetails.RemoveAt(rindex);//删除操作数据
             dataGrid1.DataSource = ls.OperateDetails;
             //查询时同时根据存货编码与批次
             SaleOutRedDetail dd = ls.U8Details.Find((delegate(SaleOutRedDetail tdd) { return(tdd.cinvcode.Equals(cinvcode) && tdd.cbatch.Equals(cbatch)); }));
             dd.inewquantity -= sub;
         }
     }
     catch (Exception er)
     {
         MessageBox.Show(er.Message);
     }
 }
예제 #3
0
        /// <summary>
        /// 若为一维码,批次选择改变事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmbCBatch_SelectedIndexChangeed(object sender, EventArgs e)
        {
            //如果数据源为空直接返回
            if (cmbCBatch.DataSource == null)
            {
                return;
            }
            //获取选择的对象
            dd = cmbCBatch.SelectedItem as SaleOutRedDetail;
            lblInvName.Text    = dd.cinvname;
            lblInvStd.Text     = dd.cinvstd;
            lblProAddress.Text = dd.cdefine22;
            lblEnterprise.Text = dd.cinvdefine1;
            lblScanedNum.Text  = dd.inewquantity.ToString("F2");
            //lblcBatch.Text = dd.cbatch;
            lblProDate.Text   = Convert.ToDateTime(dd.dmadedate).ToString("yyyy-MM-dd");
            lblValidDate.Text = Convert.ToDateTime(dd.dvdate).AddDays(-1).ToString("yyyy-MM-dd");

            txtCount.Enabled = true;
            txtCount.Focus();
        }
예제 #4
0
        private void txtCount_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13 && txtCount.Text.Length > 0)
            {
                if (txtCount.Text.Trim() == "")
                {
                    MessageBox.Show("未输入数量!");
                    txtCount.SelectAll();
                    txtCount.Focus();
                    return;
                }
                if (!isNumeric(txtCount.Text))
                {
                    MessageBox.Show("请输入数字!");
                    txtCount.SelectAll();
                    txtCount.Focus();
                    return;
                }
                if (Convert.ToDecimal(txtCount.Text) <= 0)
                {
                    MessageBox.Show("请输入正确的数量!");
                    txtCount.SelectAll();
                    txtCount.Focus();
                    return;
                }
                //仓库、货位
                string cwhcode   = (cmbWarehouse.SelectedItem as Warehouse).cwhcode;
                string cposition = txtCPosition.Text.Trim().ToUpper();

                SaleOutRedDetail ddtmp = null;
                //首先判断是否有货位管理
                if (Bwhpos)
                {
                    //判断同货位、存货编码、批次的是否存在
                    ddtmp = saleoutredlist.OperateDetails.Find(delegate(SaleOutRedDetail tdd) { return(tdd.cinvcode.Equals(dd.cinvcode) && tdd.cposition.Equals(cposition) && tdd.cbatch.Equals(dd.cbatch)); });
                }
                else
                {
                    //判断存货编码、批次的是否存在
                    ddtmp = saleoutredlist.OperateDetails.Find(delegate(SaleOutRedDetail tdd) { return(tdd.cinvcode.Equals(dd.cinvcode) && tdd.cbatch.Equals(dd.cbatch)); });
                }


                if (ddtmp == null)
                {
                    ddtmp           = dd.CreateAttriveDetail();
                    ddtmp.cposition = cposition;

                    decimal qty = Convert.ToDecimal(txtCount.Text);
                    if (qty <= ddtmp.iquantity && qty <= dd.iquantity - dd.inewquantity)
                    {
                        ddtmp.inewquantity = qty;
                        dd.inewquantity   += qty;//来源单据中的扫描数量

                        saleoutredlist.OperateDetails.Add(ddtmp);
                        btnDone.Enabled   = true;
                        btnSubmit.Enabled = true;

                        Clear();
                        //重新刷新仓库
                        //cmbWarehouse_SelectedIndexChanged(sender, e);
                    }
                    else
                    {
                        MessageBox.Show("输入数量大于单据数量");
                        txtCount.SelectAll();
                        txtCount.Focus();
                    }
                }
                else
                {
                    decimal qty = Convert.ToDecimal(txtCount.Text);
                    if (qty <= ddtmp.iquantity && qty <= dd.iquantity - dd.inewquantity)//分多次扫描
                    {
                        ddtmp.inewquantity += qty;
                        dd.inewquantity    += qty;

                        Clear();
                        //重新刷新仓库
                        //cmbWarehouse_SelectedIndexChanged(sender, e);
                    }
                    else
                    {
                        MessageBox.Show("输入数量大于单据数量");
                        txtCount.SelectAll();
                        txtCount.Focus();
                    }
                }
            }
        }
예제 #5
0
        /// <summary>
        /// 扫描成品标签
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtLable_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13 && txtLable.Text.Length > 0)
            {
                try
                {
                    //首先判断扫描的是一维条码还是二维条码,条件是否包含@
                    string   strBarcode = txtLable.Text.Trim();
                    string[] barcode    = new string[7] {
                        "", "", "", "", "", "", ""
                    };
                    if (strBarcode.IndexOf('@') == -1)//没有找到@,说明该条码是一维条码
                    {
                        string errMsg   = string.Empty;
                        string cInvCode = string.Empty;//存货编码
                        //根据一维条码查询存货编码
                        bool flag = Common.GetCInvCode(strBarcode, out cInvCode, out errMsg);
                        if (!flag)
                        {
                            MessageBox.Show("没有找到对应的存货编码!" + errMsg);
                            return;
                        }
                        barcode[2] = cInvCode;

                        IsQR = false;
                    }
                    else //二维码
                    {
                        barcode = strBarcode.Split('@');
                        ///根据20121109日讨论结果:以69码为主,根据69码查询对应的存货编码
                        string errMsg   = string.Empty;
                        string cInvCode = string.Empty;//存货编码
                        //根据一维条码查询存货编码
                        bool flag = Common.GetCInvCode(barcode[0], out cInvCode, out errMsg);
                        if (!flag)
                        {
                            MessageBox.Show("没有找到对应的存货编码!" + errMsg);
                            return;
                        }
                        barcode[2] = cInvCode;
                        IsQR       = true;
                    }

                    //dd = saleoutredlist.U8Details.Find(delegate(SaleOutRedDetail tdd) { return tdd.cinvcode.Equals(barcode[2]); });
                    //if (dd == null)
                    //{
                    //    MessageBox.Show("条码错误:存货编码不在订单中");
                    //    txtLable.SelectAll();
                    //    txtLable.Focus();
                    //    txtCount.Enabled = false;
                    //    return;
                    //}
                    ///如果是二维码
                    if (IsQR)
                    {
                        //按存货编码和批次查询
                        dd = saleoutredlist.U8Details.Find(delegate(SaleOutRedDetail tdd) { return(tdd.cinvcode.Equals(barcode[2]) && tdd.cbatch.Equals(barcode[3])); });

                        if (dd == null)
                        {
                            MessageBox.Show("条码错误:存货编码不在订单中");
                            return;
                        }

                        lblInvName.Text    = dd.cinvname;
                        lblInvStd.Text     = dd.cinvstd;
                        lblProAddress.Text = dd.cdefine22;
                        lblEnterprise.Text = dd.cinvdefine1;
                        lblcBatch.Text     = dd.cbatch;
                        lblScanedNum.Text  = dd.inewquantity.ToString("F2");
                        lblProDate.Text    = Convert.ToDateTime(dd.dmadedate).ToString("yyyy-MM-dd");          //dd.dmadedate.Substring(0, 10);
                        lblValidDate.Text  = Convert.ToDateTime(dd.dvdate).AddDays(-1).ToString("yyyy-MM-dd"); // dd.dvdate.Substring(0, 10);
                        txtCount.Text      = dd.iquantity.ToString("F3");
                        txtCount.Enabled   = true;
                        txtCount.Focus();
                    }
                    //如果是一维码
                    else
                    {
                        //只按存货编码查询
                        dd = saleoutredlist.U8Details.Find(delegate(SaleOutRedDetail tdd) { return(tdd.cinvcode.Equals(barcode[2])); });
                        if (dd == null)
                        {
                            MessageBox.Show("条码错误:存货编码不在订单中");
                            return;
                        }

                        //然后查询该存货编码的所有批次绑定到cmbCbatch中
                        var v = from t in saleoutredlist.U8Details where t.cinvcode == dd.cinvcode select t;
                        cmbCBatch.DataSource    = new BindingSource(v, null);
                        cmbCBatch.DisplayMember = "cbatch";
                        cmbCBatch.ValueMember   = "cbatch";
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
예제 #6
0
        public static bool VerifyGSPBack(string cchkcode, out SaleOutRedList redlist, out string errMsg)
        {
            redlist = null;
            errMsg  = "";
            try
            {
                Common co = Common.GetInstance();
                U8Business.Service.SaleOutRedList list = null;
                int rt = co.Service.VerifyGSPBack(cchkcode, Common.CurrentUser.ConnectionString, out list, out errMsg);
                if (errMsg != "" || rt != 0)
                {
                    return(false);
                }
                else
                {
                    //表头
                    redlist             = new SaleOutRedList();
                    redlist.cbustype    = list.cbustype;
                    redlist.cbuscode    = list.cbuscode;
                    redlist.cdepcode    = list.cdepcode;
                    redlist.cpersoncode = list.cpersoncode;
                    redlist.cstcode     = list.cstcode;
                    redlist.ccuscode    = list.ccuscode;
                    redlist.cdlid       = list.cdlid;
                    redlist.cchkcode    = list.cchkcode;
                    redlist.cchkperson  = list.cchkperson;
                    redlist.dchkdate    = list.dchkdate;
                    redlist.cmemo       = list.cmemo;
                    redlist.ccusname    = list.ccusname;
                    //表体
                    redlist.U8Details      = new List <SaleOutRedDetail>();
                    redlist.OperateDetails = new List <SaleOutRedDetail>();
                    for (int i = 0; i < list.U8Details.Length; i++)
                    {
                        SaleOutRedDetail detail = new SaleOutRedDetail();
                        detail.cinvcode        = list.U8Details[i].cinvcode;
                        detail.cinvname        = list.U8Details[i].cinvname;
                        detail.cwhcode         = list.U8Details[i].cwhcode;
                        detail.cinvstd         = list.U8Details[i].cinvstd;
                        detail.cbatch          = list.U8Details[i].cbatch;
                        detail.dvdate          = list.U8Details[i].dvdate;
                        detail.dmadedate       = list.U8Details[i].dmadedate;
                        detail.cExpirationdate = list.U8Details[i].cExpirationdate;
                        detail.imassdate       = list.U8Details[i].imassdate;
                        detail.iunitcost       = list.U8Details[i].iunitcost;
                        detail.iprice          = list.U8Details[i].iprice;
                        detail.iquantity       = list.U8Details[i].iquantity;
                        detail.cdefine22       = list.U8Details[i].cdefine22;
                        detail.icheckids       = list.U8Details[i].icheckids;
                        detail.idlsid          = list.U8Details[i].idlsid;
                        detail.cinvdefine1     = list.U8Details[i].cinvdefine1;
                        detail.cinvm_unit      = list.U8Details[i].cinvm_unit;
                        detail.ccusname        = list.U8Details[i].ccusname;

                        redlist.U8Details.Add(detail);
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }