예제 #1
0
        private void ScaningData(string barcode)
        {
            OrderItem item = null;

            try
            {
                //если в сканированых не  нашли тогда ищем в БД
                statusBar1.Text = "Поиск " + barcode + " в БД...";
                statusBar1.Refresh();
                //item = data.GetOrdeItemByBarcode(barcode);
                Ean ean = data.GetEan(barcode);
                if (ean != null)
                {
                    statusBar1.Text = "Найдено: " + ean.ArtCode.ToString();
                    statusBar1.Refresh();
                }
                item = (ean != null) ? data.GetOrderItemByEan(ean) : null;
                // запись не создана тогда создадим её
                if (item == null)
                {
                    //item = data.CreateOrderItemByBarcode(barcode);
                    item = (ean != null) ? data.CreateOrderItem(ean) : null;
                }
                //если ШК не найден то выход
                if (item == null)
                {
                    statusBar1.Text = "ШК " + barcode + " не найден.";
                    MessageBox.Show(statusBar1.Text, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
                    RefreshStatusBar();
                    return;
                }
                try
                {
                    if (GlobalArea.AppOption.FastScan)
                    {
                        item.Qty            += ((GlobalArea.AppOption.MultypleQtyType == MultipleQty.BY_PACKAGE) ? item.Ean.Koef : 1);
                        item.ScanLog.ActType = AType.Update;
                        var t_itm = data.Save(ref item);
                        lastOrderItem = t_itm;
                        if (t_itm == null)
                        {
                            MessageBox.Show("Позиция не добавлена", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
                        }
                    }
                    else //using (EditQty editQty = new EditQty())
                    {
                        editQty.Text  = "Ввод количества | " + barcode;
                        editQty.Ean13 = barcode;
                        var listOrderItem = new List <OrderItem>();

                        listOrderItem.Add(item);
                        editQty.cbArt.DataSource    = listOrderItem;
                        editQty.cbArt.DisplayMember = "Name";
                        editQty.cbArt.ValueMember   = "ArtCode";
                        editQty.cbArt.SelectedIndex = 0;
                        editQty.cbArt.Focus();
                        editQty.lblCnt.Text = editQty.cbArt.Items.Count.ToString();
                        if (editQty.cbArt.Items.Count == 1)
                        {
                            editQty.tbQty.Focus();
                            editQty.tbQty.SelectAll();
                        }
                        editQty.RefreshFont();
                        if ((editQty.ShowDialog() == DialogResult.OK) && (editQty.Qty != 0))
                        {
                            item.Qty            += editQty.Qty;
                            item.ScanLog.ActType = AType.Update;
                            lastOrderItem        = data.Save(ref item);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(statusBar1.Text, "Ошибка записи данных в БД.", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
                }
            }
            finally
            {
                RefreshStatusBar();
            }
        }