예제 #1
0
 protected virtual void OnBarcodeRead(BarcodeReadEventArgs e)
 {
     if (BarcodeRead != null)
     {
         BarcodeRead(this, e);
     }
 }
예제 #2
0
파일: FMain_base.cs 프로젝트: sanekkop/WPM
        private void ReactionBarcode(object sender, BarcodeReadEventArgs e)
        {
            string strBarcode = e.Barcode;

            //Особые режимы у которых все просто
            if (SS.NewStructModes.Contains(SS.CurrentMode))
            {
                SS.BarcodeReaction(strBarcode);
                return;
            }
            Dictionary<string, string> dicBarcode = Helper.DisassembleBarcode(strBarcode);
            if ((SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.SampleSet) && Screan != 0)
            {
                lblAction.Text = "ШК не работают на данном экране!";
                return;
            }
            if (SS.CurrentMode == Mode.SetInicialization || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Loading || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
            {
                lblAction.ForeColor = Color.Blue;
            }
            lblAction.Text = "ШК принят, обработка...";
            Refresh();

            bool IsObject = true;
            if (strBarcode.Substring(0, 2) == "25" && dicBarcode["Type"] == "113")
            {
                #region EAN 13 Reference 25 type 113
                if (!SS.IsSC(dicBarcode["IDD"], "Сотрудники"))
                {
                    if (!SS.IsSC(dicBarcode["IDD"], "Секции"))
                    {
                        if (!SS.IsSC(dicBarcode["IDD"], "Принтеры"))
                        {
                            IsObject = false;
                        }
                    }
                }

                if (IsObject)
                {
                    if (SS.CurrentMode == Mode.AcceptedItem)
                    {
                        //Не спрашивайте меня зачем это здесь...
                        DynamicLostFocus(pnlCurrent.GetFocused(), null);
                    }
                    if (SS.ReactionSC(dicBarcode["IDD"]))
                    {
                        View();
                        if (SS.CurrentMode == Mode.SampleSet && SS.ExcStr != null)
                        {
                            lblAction.Text = SS.ExcStr;
                        }
                        else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                        {
                            GoodDone();
                            return;
                        }
                        else if (SS.CurrentMode == Mode.AcceptanceCross && SS.ExcStr != null && (dicBarcode["Type"] == "pallete" || SS.IsSC(dicBarcode["IDD"], "Секции")))
                        {
                            lblAction.Text = SS.ExcStr;
                        }
                        else if (SS.CurrentMode != Mode.DownComplete)
                        {
                            lblAction.Text = "Ожидание команды";
                        }
                    }
                    else
                    {
                        if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                        {
                            BadDone();
                            return;
                        }
                        else
                        {
                            lblAction.Text = SS.ExcStr;
                        }
                    }
                    return;
                }
                #endregion
            }
            else if (strBarcode.Substring(0, 2) == "26" && dicBarcode["Type"] == "113")
            {
                #region EAN 13 Reference 26 type 113
                string tmpIDDoc;
                string tmpDocType;
                IsObject = SS.GetDoc(dicBarcode["IDD"], out tmpIDDoc, out tmpDocType);
                if (IsObject)
                {
                    if (SS.ReactionDoc(dicBarcode["IDD"]))
                    {
                        View();
                        lblAction.Text = SS.ExcStr;
                    }
                    else
                    {
                        if (SS.CurrentMode == Mode.SetInicialization || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                        {
                            BadDone();
                            return;
                        }
                        else
                        {
                            lblAction.Text = SS.ExcStr;
                        }
                    }
                    return;
                }
                #endregion
            }
            else if (dicBarcode["Type"] == "part" && (SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.SampleSet))
            {
                //отcканировали количество деталей
                //Количество деталей
                if (SS.ScanPartBarcode(Convert.ToInt32(dicBarcode["count"])))
                {
                    GoodDone();
                }
                else
                {
                    BadDone();
                }
                return;
            }
            else if (dicBarcode["Type"] == "pallete")
            {
                //отсканированна паллета
                if (SS.CurrentMode == Mode.Acceptance)
                {
                    //отcканировали паллету надо запомнить ее ID
                    if (SS.ScanPalletBarcode(strBarcode))
                    {
                        GoodDone();
                    }
                    else
                    {
                        BadDone();
                    }
                    return;
                }
                else if (SS.CurrentMode == Mode.AcceptedItem && SS.AcceptedItem.ToMode == Mode.AcceptanceCross)
                {
                    //если это кроссдокинг, надо проверить а нет ли текущих заказов на этой паллете
                    if (SS.EnterPalletAcceptanceCross(strBarcode))
                    {
                        lblAction.Text = SS.ExcStr;
                        GoodDone();
                    }
                    else
                    {
                        lblAction.Text = SS.ExcStr;
                        BadDone();
                    }
                    return;
                }
                else if (SS.CurrentMode == Mode.AcceptanceCross)
                {
                    //запишем данные в нее
                    string TextQuery =
                            "SELECT " +
                                "Pallets.ID as ID " +
                            "FROM " +
                                "$Спр.ПеремещенияПаллет as Pallets (nolock) " +
                            "WHERE " +
                                "Pallets.$Спр.ПеремещенияПаллет.ШКПаллеты = :Pallet ";
                    //            "AND Pallets.$Спр.ПеремещенияПаллет.ФлагОперации = 1 " +
                    //            "AND Pallets.$Спр.ПеремещенияПаллет.Адрес0 = :EmptyID ";
                    SQL1S.QuerySetParam(ref TextQuery, "EmptyDate", SQL1S.GetVoidID());
                    SQL1S.QuerySetParam(ref TextQuery, "Pallet", strBarcode);
                    DataTable DT;
                    SS.ExecuteWithRead(TextQuery, out DT);
                    if (DT.Rows.Count == 0)
                    {
                        lblAction.Text = "Паллета не найдена!";
                        BadDone();
                        return;
                    }
                    DataGrid currDG = pnlCurrent.GetDataGridByName("dgAcceptedItems");
                    currDG.CurrentRowIndex = 0;
                    bool findePallet = false;                            
                    foreach (DataRow DTdr in DT.Rows)
                    {
                        SS.FPalletID = DTdr["id"].ToString();
                        SS.FBarcodePallet = strBarcode;
                        SS.PalletAcceptedItem = new RefPalleteMove(SS);
                        SS.PalletAcceptedItem.FoundID(SS.FPalletID);
                        int num = 0;
                        foreach (DataRow dr in SS.AcceptedItems.Rows)
                        {
                            if (dr["PalletID"].ToString() == SS.FPalletID.ToString())
                            {
                                currDG.CurrentRowIndex = num;
                                findePallet = true;
                                break;
                            }
                            num++;
                        }
                        if (findePallet)
                        {
                            break;
                        }
                    }
                    currDG.Focus();
                    if (!findePallet)
                    {
                        //не нашли паллету в табличке
                        lblAction.Text = "Нет такой паллеты в принятых товарах!";
                        SS.FPalletID = "";
                        SS.FBarcodePallet = "";
                        SS.PalletAcceptedItem = null;
                        BadDone();
                        return;
                    }
                    lblAction.Text = "Отсканируйте адресс паллеты!";
                    GoodDone();
                    return;
                }
                else if (SS.CurrentMode == Mode.Transfer)
                {
                    //отcканировали паллету надо запомнить ее ШК дальше он нам пригодится
                    SS.FBarcodePallet = strBarcode;

                }
            }

            Mode tmpMode = SS.CurrentMode;
            if (SS.CurrentMode == Mode.Transfer && Screan == 1)
            {
                //Не доспускаем сканирование в экране разнесенных товаров
                lblAction.Text = "Нет действий с этим штирхкодом в данном экране! Переместитесь в экран ТЕЛЕЖКА!";
                return;
            }
            if (SS.ReactionBarcode(strBarcode, Screan))
            {
                #region reaction any barcode
                if (SS.CurrentMode == Mode.AcceptedItem && tmpMode == Mode.AcceptedItem)
                {
                    if (SS.AcceptedItem.ToMode == Mode.Transfer || SS.AcceptedItem.ToMode == Mode.NewInventory || SS.AcceptedItem.ToMode == Mode.Harmonization || SS.AcceptedItem.ToMode == Mode.HarmonizationPut)
                    {
                        lblAction.Text = "В данном режиме нельзя менять ШК!";
                        return;
                    }
                    else
                    {
                        if (!SS.ChangeUnitBarcode((int)ViewUnits.Rows[CurrentRowItem]["Coef"], strBarcode,
                                ViewUnits.Rows[CurrentRowItem]["OKEI"].ToString()))
                        {
                            lblAction.Text = SS.ExcStr;
                            return;
                        }
                    }
                }
                if (SS.CurrentMode == Mode.SampleSet || SS.CurrentMode == Mode.SamplePut)
                {
                    lblAction.Text = SS.ExcStr;
                }
                View();
                if (SS.CurrentMode == Mode.AcceptedItem)
                {
                    lblAction.Text = SS.ExcStr;
                }
                else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete || SS.CurrentMode == Mode.SampleSet)
                {
                    GoodDone();
                    return;
                }
                else
                {
                    lblAction.Text = "Ожидание команды";
                }
                #endregion
            }
            else
            {
                if (dicBarcode["Type"] == "5")
                {
                    if (SS.CurrentMode == Mode.Transfer || SS.CurrentMode == Mode.NewInventory || SS.CurrentMode == Mode.Acceptance)
                    {
                        if (SS.AddPartyParty(dicBarcode["IDD"], Convert.ToInt32(dicBarcode["LineNo"])))
                        {
                            View();
                        }
                    }
                }
                else if (dicBarcode["Type"] == "6" && (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.Loading || SS.CurrentMode == Mode.SampleSet || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete))
                {
                    if (SS.ReactionSC(dicBarcode["ID"], true))
                    {
                        if (SS.CurrentMode == Mode.Loading)
                        {
                            if (SS.colorSwitcher)
                            {
                                lblAction.ForeColor = Color.DarkGreen;
                            }
                            else
                            {
                                lblAction.ForeColor = Color.Blue;
                            }
                            GoodVoice();
                            ViewProposal = null;
                            ReView();
                            Refresh();
                        }
                        else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                        {
                            GoodDone();
                            return;
                        }
                        else
                        {
                            View();
                        }
                    }
                    else
                    {
                        if (SS.CurrentMode == Mode.Loading)
                        {
                            BadVoice();
                            lblAction.ForeColor = Color.Red;
                        }
                        else if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                        {
                            BadDone();
                            return;
                        }
                    }
                }
                if (SS.ExcStr == null)
                {
                    lblAction.Text = "Ожидание команды";
                }
                else
                {
                    if (SS.CurrentMode == Mode.SetSelfContorl || SS.CurrentMode == Mode.Set || SS.CurrentMode == Mode.Down || SS.CurrentMode == Mode.FreeDownComplete || SS.CurrentMode == Mode.NewComplectation || SS.CurrentMode == Mode.NewComplectationComplete)
                    {
                        BadDone();
                        return;
                    }
                    lblAction.Text = SS.ExcStr;
                }
            }
        } // ReactionBarcode