protected virtual void OnBarcodeRead(BarcodeReadEventArgs e) { if (BarcodeRead != null) { BarcodeRead(this, e); } }
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