Exemplo n.º 1
0
        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
Exemplo n.º 2
0
        } // InitSS
        /// <summary>
        /// Здесь будем все инициализировать (форма уже отстроена, только не видно ее)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FMainOnLoad(object sender, EventArgs e)
        {
            //Text = "zhopa";
            //return;
            InicializeFont();
            CurrWidth = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
            //СОЗДАЕМ ПАНЕЛИ
            pnlCurrent = new ExPanel();
            //pnlCurrent.BackColor = SystemColors.ActiveBorder;
            pnlCurrent.BackColor = Color.White;
            pnlCurrent.Location = new Point(0, 16);
            pnlCurrent.Name = "pnlCurrent";
            pnlCurrent.Size = new Size(CurrWidth - 2, 185);
            this.Controls.Add(pnlCurrent);
            pnlCurrent.BringToFront();
            //pnlSections.BackColor = System.Drawing.SystemColors.ActiveBorder;

            //ИНИЦИАЛИЗАЦИЮ РАЗМЕСТИМ ЗДЕСЬ
            DGCellChange = false;
            Text = "WPM " + Vers;
            WindowState = FormWindowState.Maximized;
            ViewMode = Mode.None;
            Screan = 0;
            Br = new Barcode(this, 200);
            Br.BarcodeRead += ReactionBarcode;
            Br.HotKeyEvent += HotKeyEvent;

            //MessageBox.Show();
            //string[] names = Assembly.GetExecutingAssembly().GetModules

            //MessageBox.Show(Assembly.GetExecutingAssembly().Location);
            //MessageBox.Show(Path.GetFullPath(FileName));
            //return;
            //MessageBox.Show("Hyper");
            int CountServers = 2;
            string[] NamesOfServers;
            NamesOfServers = new string[CountServers];
            NamesOfServers[0] = @"192.168.8.4,57068";
            NamesOfServers[1] = @"192.168.8.5,57068";
            //NamesOfServers[0] = @"192.168.8.11\sqlcl1";
            //NamesOfServers[1] = @"192.168.8.12\sqlcl1";
            //DO NOT FORGOT CHANGE PARAMETR: CountServers!!!

            if (false)
            {
                //ТЕСТ ЭКРАНА
                pnlCurrent.Controls.Clear();
                ABaseMode Obj = new Waiting(SS, null);
                //RefillSet_view();
                RefillLayout_view();
                foreach (Control Ctrl in pnlCurrent.Controls)
                {
                    if (Ctrl.GetType().Equals(typeof(Label)))
                    {
                        (Ctrl as Label).Text = "00000000000000000000000000000000000000";
                    }
                    else if (Ctrl.GetType().Equals(typeof(DataGrid)))
                    {
                        (Ctrl as DataGrid).Visible = false;
                    }
                }
                return;
            }



            string FirstServName = GetServName(NamesOfServers[0]);
            InitSS(FirstServName);

            if (!SS.Initialize())
            {
                for (int i = 0; i < CountServers; ++i)
                {
                    if (FirstServName == NamesOfServers[i])
                    {
                        continue;
                    }

                    InitSS(NamesOfServers[i]);
                    if (SS.Initialize())
                    {
                        SaveServName(NamesOfServers[i]);
                        break;
                    }
                }
            }
            if (!SS.Connect)
            {
                MessageBox.Show("Не удалось синхронизовать (версия: " + Vers + ")! ОШИБКА: " + SS.ExcStr);
                Close();
                return;
            }
            View();
            if (SS.DeviceName == null || SS.DeviceName.Trim() == "")
            {
                lblName.Text = Helper.SuckDigits(DeviceID.GetDeviceName());
            }
            else
            {
                lblName.Text = Helper.SuckDigits(SS.DeviceName);
            }
            pnlCurrent.GetLabelByName("lblResult").Text = "";
            lblAction.Width = CurrWidth - 2;
            //lblAction.Font = new Font("Tahoma", CurrWidth < 320 ? 11 : 14, FontStyle.Bold);
            lblName.Location = new Point(CurrWidth - 24, 0);
            lblState.Width = CurrWidth - 2;
            lblState.Font = CurrWidth < 320 ? FontTahoma8Bold : FontTahoma10Bold;
        }