Beispiel #1
0
        // ------------------------------------------------------------------------------------------------------------------------------------------------------


        // Сканирование товаров ---------------------------------------------------------------------------------------------------------------------------------
        private void ОбработатьСканТовара(string СтрокаСкан)
        {
            string Код = "";

            // Проверка на ЕАН8 и преобразование к коду по базе
            if (СтрокаСкан.Length == 8)
            {
                var ЕАН8 = ОбщиеФункции.ПроверитьЕАН8(СтрокаСкан);

                if (ЕАН8) // Если символ контрольной суммы верный, преобразуем ЕАН8 к семизначному коду по базе
                {
                    Код = СтрокаСкан.Substring(0, 7);
                }
            }

            var МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код);

            if (МассивТоваров.Count() == 0)
            {
                Инфо.Ошибка("Считанного товара нет в заданиях!");
                return;
            }

            string ВыбранныйТовар = null;

            if (МассивТоваров.Count() > 1)
            {
                ВыбранныйТовар = ВыборТовараИзМножества.ВыбратьТоварИзМножества(МассивТоваров);
            }
            else
            {
                ВыбранныйТовар = МассивТоваров.FirstOrDefault()[2];
            }

            if (ВыбранныйТовар == null)
            {
                return;
            }

            var СтрокаТаблицы = НайтиСтрокуТаблицыПодбораПоГуиду(ВыбранныйТовар); // Гуид

            if (СтрокаТаблицы == null)
            {
                Инфо.Ошибка("Считанного товара нет в заданиях!");
                return;
            }

            if (СтрокаТаблицы.КоличествоСобрано == СтрокаТаблицы.КоличествоТребуется || СтрокаТаблицы.КоличествоВычерк > 0)
            {
                Инфо.Ошибка("Необходимо ввести количество не более " + СтрокаТаблицы.КоличествоТребуется.ToString());
                return;
            }

            СтрокаТаблицы.КоличествоСобрано += 1;
            СтрокаТаблицы.СекундПодбора     += ВзятьВремя();
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
Beispiel #2
0
        private void ОбработатьСканТовара(string СтрокаСкан)
        {
            string Код = "";

            // Проверка на ЕАН8 и преобразование к коду по базе
            if (СтрокаСкан.Length == 8)
            {
                var ЕАН8 = ОбщиеФункции.ПроверитьЕАН8(СтрокаСкан);

                if (ЕАН8) // Если символ контрольной суммы верный, преобразуем ЕАН8 к семизначному коду по базе
                {
                    Код = СтрокаСкан.Substring(0, 7);
                }
            }

            var МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код);

            if (МассивТоваров.Count() == 0)
            {
                Инфо.Ошибка("Выбранного товара нет на остатках адреса!");
                return;
            }

            string ВыбранныйТовар = null;

            if (МассивТоваров.Count() > 1)
            {
                ВыбранныйТовар = ВыборТовараИзМножества.ВыбратьТоварИзМножества(МассивТоваров);
            }
            else
            {
                ВыбранныйТовар = МассивТоваров.FirstOrDefault()[2];
            }

            if (ВыбранныйТовар == null)
            {
                return;
            }

            var СтрокаТаблицы = НайтиСтрокуТаблицыПеремещенияПоГуиду(ВыбранныйТовар); // Гуид

            if (СтрокаТаблицы == null)
            {
                Инфо.Ошибка("Выбранного товара нет на остатках адреса!");
                return;
            }

            if (СтрокаТаблицы.Количество == СтрокаТаблицы.КоличествоОстатокАдреса)
            {
                Инфо.Ошибка("Недостаточно товара на полке.");
                return;
            }

            СтрокаТаблицы.Количество += 1;
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
        private void ОбработатьСканТовара(string СтрокаСкан)
        {
            string Код = "";

            // Проверка на ЕАН8 и преобразование к коду по базе
            if (СтрокаСкан.Length == 8)
            {
                var ЕАН8 = ОбщиеФункции.ПроверитьЕАН8(СтрокаСкан);

                if (ЕАН8) // Если символ контрольной суммы верный, преобразуем ЕАН8 к семизначному коду по базе
                {
                    Код = СтрокаСкан.Substring(0, 7);
                }
            }

            var МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код);

            if (МногоТоваров && МассивТоваров.Count() == 0)
            {
                var ДанныеПолучены = ЗаполнитьТаблицыПоТовару(СтрокаСкан, Код);
                if (!ДанныеПолучены)
                {
                    return;
                }

                // Подтверждаем успешное добавление звуком
                аботаСоСканером.Звук.Ок();

                МассивТоваров = НайтиТоварПоЕАН(СтрокаСкан, Код);
            }

            if (МассивТоваров.Count() == 0)
            {
                Инфо.Ошибка("Выбранного товара нет на остатках адреса!");
                return;
            }

            string ВыбранныйТовар = null;

            if (МассивТоваров.Count() > 1)
            {
                ВыбранныйТовар = ВыборТовараИзМножества.ВыбратьТоварИзМножества(МассивТоваров);
            }
            else
            {
                ВыбранныйТовар = МассивТоваров.FirstOrDefault()[2];
            }

            if (ВыбранныйТовар == null)
            {
                return;
            }

            var СтрокаТаблицы = НайтиСтрокуТаблицыПеремещенияПоГуиду(ВыбранныйТовар); // Гуид

            if (СтрокаТаблицы == null)
            {
                Инфо.Ошибка("Выбранного товара нет на остатках адреса!");
                return;
            }

            if (СтрокаТаблицы.Количество == СтрокаТаблицы.Остаток)
            {
                Инфо.Ошибка("Необходимо ввести количество не более " + СтрокаТаблицы.Остаток);
                return;
            }

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