private void ДобавитьСтрокуВТаблицы(string[] Строка) { int КоличествоПараметров = Строка.Count(); // Заполняем таблицу ЕАН if (КоличествоПараметров == 4) { СтрокаТаблицыЕАН СтрокаТаблицы = new СтрокаТаблицыЕАН(); СтрокаТаблицы.Товар = Строка[0]; СтрокаТаблицы.Код = Строка[1]; СтрокаТаблицы.Гуид = Строка[2]; СтрокаТаблицы.ЕАН = Строка[3]; ТаблицаЕАН.Add(СтрокаТаблицы); } else // Заполняем таблицу инвентаризации { СтрокаТаблицыИнвентаризации СтрокаТаблицы = new СтрокаТаблицыИнвентаризации(); СтрокаТаблицы.Товар = Строка[0]; СтрокаТаблицы.Код = Строка[1]; СтрокаТаблицы.Гуид = Строка[2]; СтрокаТаблицы.Остаток = int.Parse(Строка[3]); СтрокаТаблицы.Количество = int.Parse(Строка[4]); ТаблицаИнвентаризации.Add(СтрокаТаблицы); } }
private void ДобавитьСтрокуНаЭкран(СтрокаТаблицыИнвентаризации Строка) { ListViewItem НоваяСтрока = new ListViewItem(); НоваяСтрока.Text = Строка.Товар; НоваяСтрока.SubItems.Add(Строка.Код); НоваяСтрока.SubItems.Add(Строка.Гуид); НоваяСтрока.SubItems.Add(Строка.Количество.ToString() + " / " + Строка.Остаток.ToString()); СписокИнвентаризации.Items.Add(НоваяСтрока); Строка.СтрокаСписка = НоваяСтрока; }
private void ОбработатьКоличествоСтроки(СтрокаТаблицыИнвентаризации Строка) { // Если строки на экране нет, добавляем ее if (Строка.СтрокаСписка == null) { ДобавитьСтрокуНаЭкран(Строка); } var СтрокаНаЭкране = Строка.СтрокаСписка; СтрокаНаЭкране.SubItems[3].Text = Строка.Количество.ToString() + " / " + Строка.Остаток.ToString(); СписокИнвентаризации.EnsureVisible(СтрокаНаЭкране.Index); foreach (int index in СписокИнвентаризации.SelectedIndices) { СписокИнвентаризации.Items[index].Selected = false; } СтрокаНаЭкране.Selected = true; СтрокаНаЭкране.Focused = true; ПоказатьДопИнфоТовара(); }
// ------------------------------------------------------------------------------------------------------------------------------------------------------ // Сканирование ----------------------------------------------------------------------------------------------------------------------------------------- private void ОбработатьСканТовара(string СтрокаСкан) { string Код = ""; // Проверка на ЕАН8 и преобразование к коду по базе if (СтрокаСкан.Length == 8) { var ЕАН8 = ОбщиеФункции.ПроверитьЕАН8(СтрокаСкан); if (ЕАН8) // Если символ контрольной суммы верный, преобразуем ЕАН8 к семизначному коду по базе { Код = СтрокаСкан.Substring(0, 7); } } var МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код); if (МассивТоваров.Count() == 0) { var ДанныеПолучены = ЗаполнитьТаблицыПоТовару(СтрокаСкан, Код); if (!ДанныеПолучены) { return; } // Подтверждаем успешное добавление звуком аботаСоСканером.Звук.Ок(); МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код); } string ВыбранныйТовар = null; if (МассивТоваров.Count() == 1) { ВыбранныйТовар = МассивТоваров.FirstOrDefault()[2]; } if (МассивТоваров.Count() > 1) { ВыбранныйТовар = ВыборТовараИзМножества.ВыбратьТоварИзМножества(МассивТоваров); } if (ВыбранныйТовар == null) { Инфо.Ошибка("Выбранный товар не найден!"); return; } var СтрокаТаблицы = НайтиСтрокуТаблицыИнвентаризацииПоГуиду(ВыбранныйТовар); // Гуид if (СтрокаТаблицы == null) { // Если товара нет в таблице инвентаризации, добавляем строку из данных таблицы ЕАН foreach (var Строка in МассивТоваров) { if (Строка[2] == ВыбранныйТовар) { СтрокаТаблицыИнвентаризации НоваяСтрокаТаблицы = new СтрокаТаблицыИнвентаризации(); НоваяСтрокаТаблицы.Код = Строка[0]; НоваяСтрокаТаблицы.Товар = Строка[1]; НоваяСтрокаТаблицы.Гуид = Строка[2]; НоваяСтрокаТаблицы.Количество = 1; ТаблицаИнвентаризации.Add(НоваяСтрокаТаблицы); ОбработатьКоличествоСтроки(НоваяСтрокаТаблицы); return; } } } СтрокаТаблицы.Количество += 1; ОбработатьКоличествоСтроки(СтрокаТаблицы); }