Ejemplo n.º 1
0
        public void _Назад()
        {
            // проверим, что список мест пустой
            // если не пустой, то запросим подтверждение

            if (СписокГрузовыхМест.Items.Count > 0)
            {
                // запросить подтверждение

                string message = "Внимание! Остались необработанные места. Сохранить данные для восстановления при следующем открытии?";
                string caption = "Подтверждение";

                // отобразить MessageBox.

                DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

                if (result != System.Windows.Forms.DialogResult.Yes)
                {
                    Данные.УдалитьФайл();
                }
            }
            else
            {
                Данные.УдалитьФайл();
            }

            this.Close();

            ОбщиеФункции.УдалитьТекущуюОперацию();
        }
Ejemplo n.º 2
0
        private void ЗаполнитьСписокСотрудников()
        {
            // сбросим список сотрудников

            Сотрудники.Список.Clear();

            // получим данные сервера

            Cursor.Current = Cursors.WaitCursor;
            ОтветСервера   = Обмен.ПослатьСтроку("ОбработкаТТН_ПолучитьСотрудников", ТТНСсылка);
            Cursor.Current = Cursors.Default;

            if (ОтветСервера == null)
            {
                return;
            }

            // заполним список сотрудников

            try
            {
                foreach (string[] str in ОтветСервера)
                {
                    Сотрудники.Добавить(str[0], str[1], str[2]);
                }

                ОбщиеФункции.ДобавитьТекущуюОперацию("ВыгрузкаМашины", Сотрудники);
            }
            catch
            {
                //...
            }
        }
Ejemplo n.º 3
0
        private void ОбработкаГрузовыхМест_Load(object sender, EventArgs e)
        {
            if (Данные.ВосстановитьИзФайла())
            {
                foreach (var str in Данные.СписокГрузовыхМест)
                {
                    string[] row = { str.МестоНомер, str.МестоАналог };

                    var НоваяСтрока = СписокГрузовыхМест.Items.Add(new ListViewItem(row));
                }

                СписокГрузовыхМест.Focus();
            }
            else
            {
                // получим текущего пользователя
                ОтветСервера = Обмен.ПослатьСтроку("ОбработкаГрузовыхМест_ПолучитьТекущегоПользователя");

                if (ОтветСервера != null && ОтветСервера[0][0] == "ДобавитьСотрудника")
                {
                    Данные.Сотрудники.Добавить(ОтветСервера[0][1], ОтветСервера[0][2], ОтветСервера[0][3]);

                    ОбщиеФункции.ДобавитьТекущуюОперацию("ОбработкаГрузовыхМест", Данные.Сотрудники);
                }
            }

            УстановитьДоступностьЭлементовФормы();
            УстановитьТекстПодсказки();
        }
Ejemplo n.º 4
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;
            СтрокаТаблицы.СекундПодбора     += ВзятьВремя();
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
Ejemplo n.º 5
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;
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
Ejemplo n.º 6
0
        // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ

        public virtual void _Назад()
        {
            // удалим текущую операцию

            ОбщиеФункции.УдалитьТекущуюОперацию();

            // перейдем к выбору ТТН

            Form Окно = new  азгрузка_ВыборТТН();

            Окно.Show();

            this.Close();
        }
        public virtual void _Назад()
        {
            // удалим текущую операцию

            ОбщиеФункции.УдалитьТекущуюОперацию();

            // переходим в форму выбора ТТН

            Form Окно = new ФормаВыборТТН();

            Окно.Show();

            this.Close();

            return;
        }
Ejemplo n.º 8
0
        private void СотрудникиРедактироватьСписок()
        {
            ФормаВыбораСотрудников фСотрудники = new ФормаВыбораСотрудников(Сотрудники);

            DialogResult d = фСотрудники.ShowDialog();

            if (d == DialogResult.OK)
            {
                Сотрудники = фСотрудники.Список;

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

                // необходимо передать список на сервер для отображения текущий операции

                ОбщиеФункции.ДобавитьТекущуюОперацию("ПогрузкаМашины", Сотрудники);
            }
        }
Ejemplo n.º 9
0
        private void СотрудникиРедактироватьСписок()
        {
            ФормаВыбораСотрудников фСотрудники = new ФормаВыбораСотрудников(Данные.Сотрудники);

            DialogResult d = фСотрудники.ShowDialog();

            if (d == DialogResult.OK)
            {
                Данные.Сотрудники = фСотрудники.Список;

                Данные.СохранитьВФайл();

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

                // необходимо передать список на сервер для отображения текущий операции

                ОбщиеФункции.ДобавитьТекущуюОперацию("ОбработкаГрузовыхМест", Данные.Сотрудники);
            }
        }
        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;
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
Ejemplo n.º 11
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;
            ОбработатьКоличествоСтроки(СтрокаТаблицы);
        }
Ejemplo n.º 12
0
            public bool ВосстановитьИзФайла()
            {
                try
                {
                    if (!File.Exists(ПолноеИмяФайла))
                    {
                        return(false);
                    }

                    // запросим подтверждение восстановления данных

                    string message = "Восстановить данные предыдущего сеанса работы?";
                    string caption = "Подтверждение";

                    // отобразить MessageBox.

                    DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

                    if (result != System.Windows.Forms.DialogResult.Yes)
                    {
                        return(false);
                    }

                    // заполним список грузовых мест

                    XmlSerializer reader = new XmlSerializer(typeof(ДанныеФормы));
                    StreamReader  file   = new StreamReader(ПолноеИмяФайла);

                    ДанныеФормы tmp = (ДанныеФормы)reader.Deserialize(file);

                    this.СписокГрузовыхМест.Clear();

                    foreach (var str in tmp.СписокГрузовыхМест)
                    {
                        this.СписокГрузовыхМест.Add(str);
                    }

                    // заполним список сотрудников

                    this.Сотрудники.Список.Clear();

                    if (tmp.Сотрудники.Список.Count > 0)
                    {
                        foreach (var str in tmp.Сотрудники.Список)
                        {
                            this.Сотрудники.Добавить(str);
                        }

                        ОбщиеФункции.ДобавитьТекущуюОперацию("ОбработкаГрузовыхМест", this.Сотрудники);
                    }

                    // заполним время начала

                    this.ВремяНачала = tmp.ВремяНачала;

                    file.Close();
                    return(true);
                }
                catch
                {
                    this.СписокГрузовыхМест.Clear();
                    return(false);
                }
            }
        private void ФормаВыборФилиала_Load(object sender, EventArgs e)
        {
            // заполним подсказку пользователю

            ПодсказкаПользователю.Text = НомерТС + "\nВЫБЕРИТЕ ФИЛИАЛ ПОГРУЗКИ";

            // получить список филиалов по ТТН

            Cursor.Current = Cursors.WaitCursor;
            ОтветСервера   = Обмен.ПослатьСтроку("ВыборФилиалаПолучитьСписокФилиалов", ТТНСсылка);
            Cursor.Current = Cursors.Default;

            if (ОтветСервера == null)
            {
                return;
            }

            // заполним список Филиалов

            try
            {
                foreach (string[] str in ОтветСервера)
                {
                    string[]     row         = { str[0], str[1], str[2] };
                    ListViewItem НоваяСтрока = СписокФилиалов.Items.Add(new ListViewItem(row));

                    if (Convert.ToInt32(НоваяСтрока.SubItems[2].Text) > 0)
                    {
                        НоваяСтрока.BackColor = Color.LightGreen;
                    }
                }
            }
            catch
            {
                Инфо.Ошибка("Нет филиалов на погрузку.");
                this.Close();
                return;
            }

            // установим курсор в первую строку

            if (СписокФилиалов.Items.Count > 0)
            {
                СписокФилиалов.Focus();

                СписокФилиалов.Items[0].Focused = true;
            }

            // заполним список сотрудников

            if (Сотрудники.Список.Count == 0)
            {
                // если список пустой, то попытаемся получить данные сервера

                Cursor.Current = Cursors.WaitCursor;
                ОтветСервера   = Обмен.ПослатьСтроку("ВыборФилиалаПолучитьСписокСотрудников", ТТНСсылка);
                Cursor.Current = Cursors.Default;

                if (ОтветСервера == null)
                {
                    return;
                }

                // заполним список сотрудников

                try
                {
                    foreach (string[] str in ОтветСервера)
                    {
                        Сотрудники.Добавить(str[0], str[1], str[2]);
                    }

                    if (Сотрудники.Список.Count > 0)
                    {
                        ОбщиеФункции.ДобавитьТекущуюОперацию("ПогрузкаМашины", Сотрудники);
                    }
                }
                catch
                { }
            }
        }