private void ОтправитьТаблицу()
 {
     if (КоллекцияСтрок.Count() == 0)
     {
         Последовательность.ОтветСервера = Обмен.Послать(ТекстДЯ.Text, null);
         return;
     }
     Последовательность.ОтветСервера = Обмен.Послать(ТекстДЯ.Text, КоллекцияСтрок.ToArray());
 }
Пример #2
0
        public static void ДобавитьТекущуюОперацию(string _Операция, СписокСотрудников _Сотрудники)
        {
            try
            {
                Пакеты Обмен = new Пакеты("УчетТекущихОпераций");

                string[][] мПараметры = new string[2][];

                // Операция

                мПараметры[0] = new string[] { "стрОперация", _Операция };

                // Сотрудники

                мПараметры[1] = new string[_Сотрудники.Список.Count + 1];

                мПараметры[1][0] = "мСотрудники";

                string[] мСотрудники = new string[_Сотрудники.Список.Count];

                for (int i = 0; i < _Сотрудники.Список.Count; i++)
                {
                    мПараметры[1][i + 1] = _Сотрудники.Список[i].Ссылка;
                }

                Обмен.Послать("Добавить", мПараметры);
            }
            catch { }
        }
Пример #3
0
        // -----------------------------------------------------------------------------------------------------------------------------------------------------



        // Завершение подбора -----------------------------------------------------------------------------------------------------------------------------------
        private void ЗавершитьЗадания(bool ВыйтиПриЗавершении)
        {
            // Заполняем массив для отправки в 1с
            КоллекцияСтрок.Clear();

            foreach (var Строка in ТаблицаПодбора)
            {
                if (Строка.КоличествоСобрано > 0)
                {
                    ДобавитьСтроку(Строка.Гуид, Строка.КоличествоСобрано.ToString(), "0", Строка.СекундПодбора.ToString());
                }
                if (Строка.КоличествоВычерк > 0)
                {
                    ДобавитьСтроку(Строка.Гуид, Строка.КоличествоВычерк.ToString(), "1", Строка.СекундПодбора.ToString());
                }
            }

            // Если строк для отправки нет, данные на сервер не отсылаем
            var ЕстьСтрокиДляОтправки = КоллекцияСтрок.Count() != 0;

            //if (!ЕстьСтрокиДляОтправки && ВыйтиПриЗавершении)
            if (!ЕстьСтрокиДляОтправки)
            {
                ОтветСервера = Обмен.ПослатьСтроку("Выход");
                this.Close();
                return;
            }

            // Не даем завершить задания, если ДЯ пустая
            if (string.IsNullOrEmpty(ДинамическаяЯчейка))
            {
                Инфо.Ошибка("Не выбрана динамическая ячейка!");
                return;
            }

            Cursor.Current = Cursors.WaitCursor;

            ОтветСервера = Обмен.Послать("ЗавершитьЗадания", КоллекцияСтрок.ToArray());

            Cursor.Current = Cursors.Default;

            //в случае какой либо ошибки при завершении задания показываем кнопку повтора завершения
            if (ОтветСервера == null)
            {
                КнопкаПовторитьЗавершение.Visible = true;
            }
            else
            {
                if (ВыйтиПриЗавершении)
                {
                    this.Close();
                    return;
                }
                else
                {
                    ОбработатьОтветСервераПриЗавершении(ОтветСервера);
                }
            }
        }
        private void ЗавершениеПеремещения()
        {
            // Не даем завершить задания, если адрес получатель не выбран
            if (string.IsNullOrEmpty(АдресПолучатель))
            {
                Инфо.Ошибка("Не выбран адрес получатель!");
                return;
            }

            // Заполняем массив для отправки в 1с
            КоллекцияСтрок.Clear();

            ДобавитьСтроку("АдресОтправитель", АдресОтправитель);
            ДобавитьСтроку("АдресПолучатель", АдресПолучатель);
            ДобавитьСтроку("ЭтоДинамическаяЯчейка", ЭтоДинамическаяЯчейка == true ? "Истина" : "Ложь");

            bool ЕстьСтрокиДляОтправки = false;

            foreach (var Строка in ТаблицаПеремещения)
            {
                if (Строка.Количество > 0)
                {
                    ЕстьСтрокиДляОтправки = true;
                    ДобавитьСтроку(Строка.Гуид, Строка.Количество.ToString());
                }
            }

            // Если строк для отправки нет, данные на сервер не отсылаем
            if (!ЕстьСтрокиДляОтправки)
            {
                Инфо.Ошибка("Не сосканированы товары для перемещения!");
                return;
            }

            Cursor.Current = Cursors.WaitCursor;

            ОтветСервера = Обмен.Послать("ЗавершитьЗадания", КоллекцияСтрок.ToArray());

            Cursor.Current = Cursors.Default;

            //в случае какой либо ошибки при завершении ничего не делаем, даем возможность завершить повторно
            if (ОтветСервера == null)
            {
                return;
            }

            if (ОтветСервера[0][0] == "НетТоваров")
            {
                аботаСоСканером.Звук.Ок();
                this.Close();
                return;
            }

            ОкноПеремещенияТоваров_Load(null, new EventArgs());
        }
Пример #5
0
 private void ВыслатьВсеДерево(Пакеты Обмен, bool ТолькоСобранное)
 {
     СообщениеПодождите.Visible = true;
     Cursor.Current             = Cursors.WaitCursor;
     КоллекцияСтрок.Clear();
     ДобавитьСтрокиПодбора();
     if (!ТолькоСобранное)
     {
         ДобавитьСтрокиВычерка();
     }
     if (КоллекцияСтрок.Count() == 0)
     {
         Последовательность.ОтветСервера = Обмен.Послать(ТекстДЯ.Text, null);
         СообщениеПодождите.Visible      = false;
         return;
     }
     Последовательность.ОтветСервера = Обмен.Послать(ТекстДЯ.Text, КоллекцияСтрок.ToArray());
     Cursor.Current             = Cursors.Default;
     СообщениеПодождите.Visible = false;
 }
Пример #6
0
        private void ЗавершениеИнвентаризации()
        {
            // Заполняем массив для отправки в 1с
            КоллекцияСтрок.Clear();

            bool ЕстьСтрокиДляОтправки = false;

            ДобавитьСтроку("Адрес", Адрес);

            foreach (var Строка in ТаблицаИнвентаризации)
            {
                if (Строка.Количество > 0)
                {
                    ЕстьСтрокиДляОтправки = true;
                    ДобавитьСтроку(Строка.Гуид, Строка.Количество.ToString());
                }
            }

            // Если не сосканили ни одного товара и завершаем, надо задать вопрос
            if (!ЕстьСтрокиДляОтправки)
            {
                аботаСоСканером.Звук.Ошибка();
                var MSGRes = MessageBox.Show("Не сосканирован ни один товар! Вы точно хотите \n завершить \n инвентаризацию ?", "Завершение инвентаризации", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                if (MSGRes != DialogResult.Yes)
                {
                    return;
                }
            }

            Cursor.Current = Cursors.WaitCursor;

            ОтветСервера = Обмен.Послать("ЗавершитьЗадания", КоллекцияСтрок.ToArray());

            Cursor.Current = Cursors.Default;

            //в случае какой либо ошибки при завершении ничего не делаем, даем возможность завершить повторно
            if (ОтветСервера == null)
            {
                return;
            }

            Form Окно = new ОкноВыбораЗаданийНаИнвентаризацию("ИнвентаризацияСканАдреса", Адрес.Substring(0, 1), Адрес.Substring(0, 3), Адрес.Substring(0, 6), Адрес);

            this.Close();
            Окно.Show();
        }
Пример #7
0
        // -----------------------------------------------------------------------------------------------------------------------------------------------------


        // Завершение подбора -----------------------------------------------------------------------------------------------------------------------------------
        private void ЗавершитьЗадания()
        {
            // Заполняем массив для отправки в 1с
            КоллекцияСтрок.Clear();

            foreach (var Строка in ТаблицаПодбора)
            {
                if (Строка.КоличествоСобрано > 0)
                {
                    ДобавитьСтроку(Строка.Гуид, Строка.КоличествоСобрано.ToString(), Строка.СекундПодбора.ToString());
                }
            }

            Cursor.Current = Cursors.WaitCursor;

            ОтветСервера = Обмен.Послать("ЗавершитьЗадания", КоллекцияСтрок.ToArray());

            Cursor.Current = Cursors.Default;

            if (ОтветСервера == null)
            {
                return;                       // в случае ошибки остаться в этом же окне
            }
            if (ОтветСервера[0][0] == "ЗаданияЗавершены")
            {
                Form Окно = new ОкноВыбораЗаказовКлиента();
                this.Close();
                Окно.Show();
                return;
            }
            if (ОтветСервера[0][0] == "ЗаданияЗаписаны")
            {
                Form Окно = new ОкноЗаказовКлиента();
                this.Close();
                Окно.Show();
                return;
            }
            if (ОтветСервера[0][0] == "ЗаданияВПодборе")
            {
                ОкноПодбораЗаданий_Load(null, new EventArgs());
            }
        }
Пример #8
0
        public void _Завершить()
        {
            if (СписокГрузовыхМест.Items.Count == 0)
            {
                return;
            }

            // запросить подтверждение

            string message = "Вы уверены, что хотите завершить прием грузовых мест?";
            string caption = "Подтверждение";

            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            DialogResult      result;

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

            result = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

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

            // получим количество секунд

            TimeSpan азностьДат       = DateTime.Now - Данные.ВремяНачала;
            int      КоличествоСекунд = Convert.ToInt32(азностьДат.TotalSeconds);

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

            string[][] Параметры = new string[3][];

            // грузовые места

            Параметры[0]    = new string[СписокГрузовыхМест.Items.Count + 1];
            Параметры[0][0] = "мГрузовыеМеста"; // зададим наименование массива

            foreach (ListViewItem item in СписокГрузовыхМест.Items)
            {
                Параметры[0][item.Index + 1] = item.Text;
            }

            // сотрудники

            Параметры[1]    = new string[Данные.Сотрудники.Список.Count + 1];
            Параметры[1][0] = "мСотрудники"; // зададим наименование массива

            for (int i = 0; i < Данные.Сотрудники.Список.Count; i++)
            {
                Параметры[1][i + 1] = Данные.Сотрудники.Список[i].Ссылка;
            }

            // количество секунд

            Параметры[2]    = new string[2];
            Параметры[2][0] = "чслКоличествоСекунд";
            Параметры[2][1] = Convert.ToString(КоличествоСекунд);

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

            // сервер возвращает места, которые не удалось принять
            Cursor.Current = Cursors.WaitCursor;
            ОтветСервера   = Обмен.Послать("ЗавершитьПриемГрузовыхМест", Параметры);
            Cursor.Current = Cursors.Default;

            if (ОтветСервера == null) // ничего не делаем
            {
                return;
            }

            if (ОтветСервера[0][0] == "ВыполненоУспешно")
            {
                СписокГрузовыхМест.Items.Clear();

                // предупредить о успешном выполнении
                // ...
            }

            if (ОтветСервера[0][0] == "ВыполненоСОшибками")
            {
                // удалим из списка места, которые приняли

                List <ListViewItem> СписокСтрокДляУдаления = new List <ListViewItem> {
                };

                // надем строки, которые надо удалить
                foreach (ListViewItem item in СписокГрузовыхМест.Items)
                {
                    bool Удалять = true;

                    foreach (string[] str in ОтветСервера)
                    {
                        if (String.Equals(item.SubItems[0].Text, str[0]))
                        {
                            Удалять = false;
                            break;
                        }
                    }

                    if (Удалять)
                    {
                        СписокСтрокДляУдаления.Add(item);
                    }
                }

                // удалим строки
                foreach (ListViewItem item in СписокСтрокДляУдаления)
                {
                    СписокГрузовыхМест.Items.Remove(item);
                    Данные.СписокГрузовыхМестУдалить(item.SubItems[0].Text);
                }

                // оповестим о ошибке

                Инфо.Ошибка(ОтветСервера[0][1]);
            }

            УстановитьДоступностьЭлементовФормы();
            УстановитьТекстПодсказки();

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

            if (СписокГрузовыхМест.Items.Count == 0)
            {
                аботаСоСканером.Звук.Ок();  // успешное завершение
                this.Close();
            }
        }
Пример #9
0
        public virtual void _Далее()
        {
            //////////////////////////////

            // получим количество секунд

            string[][] Параметры = new string[10][];

            // ТТН

            Параметры[0]    = new string[2];
            Параметры[0][0] = "ссТТН";
            Параметры[0][1] = ТТНСсылка;

            // Филиал получатель

            Параметры[1]    = new string[2];
            Параметры[1][0] = "ссФилиалПолучатель";
            Параметры[1][1] = ФилиалСсылка;

            // чслОргтехника

            Параметры[2]    = new string[2];
            Параметры[2][0] = "чслОргтехника";
            Параметры[2][1] = СписокПогрузки.Items[0].SubItems[1].Text;

            // чслНоутбуки

            Параметры[3]    = new string[2];
            Параметры[3][0] = "чслНоутбуки";
            Параметры[3][1] = СписокПогрузки.Items[1].SubItems[1].Text;

            // чслТелевизоры

            Параметры[4]    = new string[2];
            Параметры[4][0] = "чслТелевизоры";
            Параметры[4][1] = СписокПогрузки.Items[2].SubItems[1].Text;

            // чслДорогойТовар

            Параметры[5]    = new string[2];
            Параметры[5][0] = "чслДорогойТовар";
            Параметры[5][1] = СписокПогрузки.Items[3].SubItems[1].Text;

            // чслМешки

            Параметры[6]    = new string[2];
            Параметры[6][0] = "чслМешки";
            Параметры[6][1] = СписокПогрузки.Items[4].SubItems[1].Text;

            // мГрузовыеМеста

            Параметры[7]    = new string[СписокГрузовыхМест.Count + 1];
            Параметры[7][0] = "мГрузовыеМеста";

            for (int i = 0; i < СписокГрузовыхМест.Count; i++)
            {
                Параметры[7][i + 1] = СписокГрузовыхМест[i];
            }

            // мСотрудники

            Параметры[8]    = new string[Сотрудники.Список.Count + 1];
            Параметры[8][0] = "мСотрудники";

            for (int i = 0; i < Сотрудники.Список.Count; i++)
            {
                Параметры[8][i + 1] = Сотрудники.Список[i].Ссылка;
            }

            //

            TimeSpan азностьДат       = DateTime.Now - ВремяНачала;
            int      КоличествоСекунд = Convert.ToInt32(азностьДат.TotalSeconds);

            // чслКоличествоСекунд

            Параметры[9]    = new string[2];
            Параметры[9][0] = "чслКоличествоСекунд";
            Параметры[9][1] = Convert.ToString(КоличествоСекунд);

            // передаем данные на сервер

            Cursor.Current = Cursors.WaitCursor;
            ОтветСервера   = Обмен.Послать("ПогрузкаЗавершить", Параметры);
            Cursor.Current = Cursors.Default;

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

            if (ОтветСервера[0][0] == "ПогрузкаЗавершена")
            {
                // переходим в окно выбора филиала

                Form Окно = new ФормаВыборФилиала(НомерТС, ТТННомер, ТТНСсылка);
                Окно.Show();

                this.Close();

                return;
            }
        }
Пример #10
0
        public virtual void _Далее()
        {
            // запросить подтверждение

            string message = "Вы уверены, что хотите завершить разгрузку?";
            string caption = "Подтверждение";

            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            DialogResult      result;

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

            result = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

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

            // предложим отредактировать список сотрудников

            СотрудникиРедактироватьСписок();

            // получим количество секунд

            TimeSpan азностьДат       = DateTime.Now - ВремяНачала;
            int      КоличествоСекунд = Convert.ToInt32(азностьДат.TotalSeconds);

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

            string[][] Параметры = new string[3][];

            // сотрудники

            Параметры[0]    = new string[Сотрудники.Список.Count + 1];
            Параметры[0][0] = "мСотрудники"; // зададим наименование массива

            for (int i = 0; i < Сотрудники.Список.Count; i++)
            {
                Параметры[0][i + 1] = Сотрудники.Список[i].Ссылка;
            }

            // количество секунд

            Параметры[1]    = new string[2];
            Параметры[1][0] = "чслКоличествоСекунд";
            Параметры[1][1] = Convert.ToString(КоличествоСекунд);

            // ссТТН

            Параметры[2]    = new string[2];
            Параметры[2][0] = "ссТТН";
            Параметры[2][1] = ТТНСсылка;


            // передать данные на сервер

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

            if (ОтветСервера == null) // ничего не делаем
            {
                return;
            }
            ////////////////////////////////////////////////////////////////

            if (ОтветСервера[0][0] == "ВыполненоУспешно")
            {
                аботаСоСканером.Звук.Ок();
                this.Close();
            }
            else
            {
                аботаСоСканером.Звук.Ошибка();
            }
        }
Пример #11
0
        private void ЗавершениеПеремещения()
        {
            // Не даем завершить задания, если адрес получатель не выбран
            if (string.IsNullOrEmpty(АдресПолучатель))
            {
                Инфо.Ошибка("Не выбран адрес получатель!");
                return;
            }

            // Заполняем массив для отправки в 1с
            КоллекцияСтрок.Clear();

            ДобавитьСтроку("АдресОтправитель", АдресОтправитель);
            ДобавитьСтроку("АдресПолучатель", АдресПолучатель);

            bool ЕстьСтрокиДляОтправки = false;

            foreach (var Строка in ТаблицаПеремещения)
            {
                if (Строка.Количество > 0)
                {
                    ЕстьСтрокиДляОтправки = true;
                    ДобавитьСтроку(Строка.Гуид, Строка.Количество.ToString());
                }
            }

            // Если строк для отправки нет, данные на сервер не отсылаем
            if (!ЕстьСтрокиДляОтправки)
            {
                Инфо.Ошибка("Не сосканированы товары для перемещения!");
                return;
            }

            // запросить подтверждение

            //string message = "Вы уверены, что хотите переместить товар?";
            //string caption = "Подтверждение";

            //MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            //DialogResult result;

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

            //result = MessageBox.Show(message, caption, buttons, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

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

            Cursor.Current = Cursors.WaitCursor;

            ОтветСервера = Обмен.Послать("ЗавершитьЗадания", КоллекцияСтрок.ToArray());

            Cursor.Current = Cursors.Default;

            //в случае какой-либо ошибки при завершении ничего не делаем, даем возможность завершить повторно
            if (ОтветСервера == null)
            {
                return;
            }

            if (ОтветСервера[0][0] == "ЗаданияЗавершеныУспешно")
            {
                аботаСоСканером.Звук.Ок();
                ОкноПодтоваркиТоваров_Load(null, new EventArgs()); // получаем задания по этому адресу
            }
        }