Beispiel #1
0
        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(СтрокаТаблицы);
            }
        }
Beispiel #2
0
        private void ДобавитьСтрокуНаЭкран(СтрокаТаблицыИнвентаризации Строка)
        {
            ListViewItem НоваяСтрока = new ListViewItem();

            НоваяСтрока.Text = Строка.Товар;
            НоваяСтрока.SubItems.Add(Строка.Код);
            НоваяСтрока.SubItems.Add(Строка.Гуид);
            НоваяСтрока.SubItems.Add(Строка.Количество.ToString() + " / " + Строка.Остаток.ToString());

            СписокИнвентаризации.Items.Add(НоваяСтрока);

            Строка.СтрокаСписка = НоваяСтрока;
        }
Beispiel #3
0
        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;
            ПоказатьДопИнфоТовара();
        }
Beispiel #4
0
        // ------------------------------------------------------------------------------------------------------------------------------------------------------


        // Сканирование -----------------------------------------------------------------------------------------------------------------------------------------
        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;
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }