예제 #1
0
        } // ToModeSetInicialization

        private bool RSCSetInicialization(string IDD)
        {
            if (IsSC(IDD, "Сотрудники"))
            {
                return(ReactionCancel());
            }
            else if (!IsSC(IDD, "Секции") || !Const.BoxSetOn)
            {
                FExcStr = "Нет действий с данным штрихкодом!";
                return(false);
            }
            BoxForSet = new RefSection(this);
            BoxForSet.FoundIDD(IDD);
            if (BoxForSet.Type != 12)
            {
                FExcStr = "Неверный тип адреса! Отсканируйте коробку!";
                return(false);
            }
            OnChangeMode(new ChangeModeEventArgs(Mode.SetInicialization));  //Чтобы вызвать обновление экранной формы
            return(true);
        }
예제 #2
0
        } // ToModeSetCompleteAfterBox

        private bool RSCSetComplete(string IDD)
        {
            if (IsSC(IDD, "Сотрудники"))
            {
                return(ReactionCancel());
            }
            else if (IsSC(IDD, "Принтеры"))
            {
                if (!Printer.FoundIDD(IDD))
                {
                    return(false);
                }
                return(true);
            }
            else if (!IsSC(IDD, "Секции"))
            {
                FExcStr = "Нужна коробка и адрес предкомплектации, а не это!";
                return(false);
            }
            if (Printer.Path == null)
            {
                FExcStr = "Не выбран принтер!";
                return(false);
            }
            RefSection Adress = new RefSection(this);

            if (!Adress.FoundIDD(IDD))
            {
                return(false);
            }
            if (DocSet.ID == null)
            {
                //Документа еще нет - значит ждем коробку
                if (Adress.Type != 12)
                {
                    FExcStr = "Для начала нужна коробка!";
                    return(false);
                }
                //Это таки коробка
                return(ToModeSetCompleteAfrerBox(Adress));
            }
            else if (!BoxOk && Adress.Type == 12)
            {
                //Документ уже есть, но может меняем его?
                return(ToModeSetCompleteAfrerBox(Adress));
            }

            //Эти действия уже с адресом предкомплектации должны быть
            if (Adress.Type == 12)
            {
                FExcStr = "Отсканируйте адрес предкопмплектации!";
                return(false);
            }
            if (!BoxOk)
            {
                FExcStr = "Подтвердите места по 'зеленой'!";
                return(false);
            }
            Dictionary <string, object> DataMapWrite = new Dictionary <string, object>();

            DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = ExtendID(DocSet.ID, "КонтрольНабора");
            DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = ExtendID(Employer.ID, "Спр.Сотрудники");
            DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход2"] = ExtendID(Adress.ID, "Спр.Секции");
            DataMapWrite["Спр.СинхронизацияДанных.ДатаВход1"]    = DocSet.Boxes.ToString();
            DataMapWrite["Спр.СинхронизацияДанных.ДатаВход2"]    = Printer.Path;

            Dictionary <string, object> DataMapRead;
            List <string> FieldList = new List <string>();

            FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1");
            if (!ExecCommand("PicingComplete", DataMapWrite, FieldList, out DataMapRead))
            {
                return(false);
            }
            if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3)
            {
                FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString();
                return(false);
            }
            if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3)
            {
                FExcStr = "Не известный ответ робота... я озадачен...";
                return(false);
            }
            FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString();
            QuitModesSet();
            return(ToModeSetInicialization());
            //MM = new SetInicialization(this, tmpMM);
            //return MM.Init();
        } // RSCSetComplete
예제 #3
0
        private bool RSCSampleSet(string IDDorID, bool thisID)
        {
            if (!thisID)
            {
                if (IsSC(IDDorID, "Сотрудники"))
                {
                    return(ReactionCancel());
                }
                else if (IsSC(IDDorID, "Секции"))
                {
                    RefSection Adress = new RefSection(this);
                    if (!Adress.FoundIDD(IDDorID))
                    {
                        return(false);
                    }

                    if (CurrentAction == ActionSet.ScanAdress)
                    {
                        //СКАНИРОВАНИЕ АДРЕСА
                        if (Adress.Type == 12)
                        {
                            FExcStr = "Неверно! " + WhatUNeed();
                            return(false);
                        }
                        if (Adress.ID != CCItem.AdressID)
                        {
                            return(RDSampleSet(DocSet.ID, Adress.ID));
                        }
                        if (CCItem.Details > 0 && Const.ImageOn)
                        {
                            CurrentAction = ActionSet.ScanPart;
                        }
                        else
                        {
                            CurrentAction = ActionSet.ScanItem;
                        }
                        FExcStr = WhatUNeed();
                        return(true);
                    }
                    else
                    {
                        //Какой-то другой режим вероятно?
                        FExcStr = "Неверно! " + WhatUNeed();
                    }
                }
                else if (IsSC(IDDorID, "Принтеры"))
                {
                    if (!Printer.FoundIDD(IDDorID))
                    {
                        return(false);
                    }
                    //завершаем набор образцов и посылаем задание 1с

                    Dictionary <string, object> DataMapWrite = new Dictionary <string, object>();
                    DataMapWrite["Спр.СинхронизацияДанных.ДокументВход"] = ExtendID(ATDoc.ID, "АдресПеремещение");
                    DataMapWrite["Спр.СинхронизацияДанных.ДатаСпрВход1"] = ExtendID(Printer.ID, "Спр.Принтеры");


                    Dictionary <string, object> DataMapRead;
                    List <string> FieldList = new List <string>();
                    FieldList.Add("Спр.СинхронизацияДанных.ДатаРез1");
                    if (!ExecCommand("PicingSampleComplete", DataMapWrite, FieldList, out DataMapRead))
                    {
                        return(false);
                    }
                    if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] == -3)
                    {
                        FExcStr = DataMapRead["Спр.СинхронизацияДанных.ДатаРез1"].ToString();
                        return(false);
                    }
                    if ((int)(decimal)DataMapRead["Спр.СинхронизацияДанных.ФлагРезультата"] != 3)
                    {
                        FExcStr = "Не известный ответ робота... я озадачен...";
                        return(false);
                    }
                    //отбор образцов окончен, выйдем в меню Выбора работы (образцы)
                    CurrentMode = Mode.ChoiseWorkSample;
                    OnChangeMode(new ChangeModeEventArgs(MM));
                }
                else
                {
                    FExcStr = "Неверно! " + WhatUNeed();
                    return(false);
                }
                return(true);
            }
            else
            {
                FExcStr = "Нет действий с данным штрихкодом!";
                return(false);
            }
        }
예제 #4
0
        internal virtual ABaseMode ReactionBarcodeBase(string Barcode)
        {
            JumpCounter  = 0;
            FResult      = MMResult.None;
            ResultObject = this;
            ThereHandler = false;
            Dictionary<string, string> dicBarcode = Helper.DisassembleBarcode(Barcode);
            bool IsRef = false;
            bool IsObject = false;  //Это реально существующий объект

            //Это может быть справочник!
            ARef Ref = null;
            if (Barcode.Substring(0, 2) == "25" && dicBarcode["Type"] == "113")
            {
                Ref = new RefEmployer(SS);
                if (Ref.FoundIDD(dicBarcode["IDD"]))
                {
                    IsRef = true;
                    OnReactionSCEmployers(Ref as RefEmployer);
                }
                if (!IsRef)
                {
                    Ref = new RefSection(SS);
                    if (Ref.FoundIDD(dicBarcode["IDD"]))
                    {
                        IsRef = true;
                        OnReactionSCSection(Ref as RefSection);
                    }
                }
                if (!IsRef)
                {
                    Ref = new RefPrinter(SS);
                    if (Ref.FoundIDD(dicBarcode["IDD"]))
                    {
                        IsRef = true;
                        OnReactionSCPrinter(Ref as RefPrinter);
                    }
                }
            }
            else if (dicBarcode["Type"] == "6")
            {
                Ref = new RefBox(SS);
                if (Ref.FoundID(dicBarcode["ID"]))
                {
                    IsRef = true;
                    OnReactionSCBox(Ref as RefBox);
                }
            }
            else if (Barcode.Substring(0, 2) == "26" && dicBarcode["Type"] == "113")
            {
                Doc Doc = new Doc(SS);
                if (Doc.FoundIDD(dicBarcode["IDD"]))
                {
                    IsObject = true;
                    OnReactionDoc(Doc);
                }
            }
            else if (dicBarcode["Type"] == "pallete")
            {
                //ВОТ ЭТА ХУЕТА НИ КАК НЕ УЧИТЫВАЕТСЯ (КАК ОБЪЕКТ, ВСМЫСЛЕ)
                //  ТАК ЧТО ПОТЕНЦИАЛЬНО МОГУТ БЫТЬ ПРОБЛЕМЫ НА ВСЯКИЙ СЛУЧАЙ ВЗВОДИМ ФЛАГ
                IsObject = true;
                //OnReactionPallete(Convert.ToInt32(dicBarcode["pallete"]));
                OnReactionPallete(Barcode);
            }

            IsObject = IsRef ? true : IsObject; //Если это справочник, то полюбому объект
            if (!IsObject)
            {
                //Товаром он может быть при любом раскладе, так что если не определился как объект, то будем искать товар
                Ref = new RefItem(SS);
                if ((Ref as RefItem).FoundBarcode(Barcode))
                {
                    {
                        IsRef = true;
                        OnReactionSCItem(new ReactionSCEventArgs(Barcode, Ref));
                    }
                }
            }
            if (IsRef)
            {
                //Вверху обрабатывали только справочники и в какой-то из них попали
                OnReactionSC(new ReactionSCEventArgs(Barcode, Ref));
            }
            OnReactionBarcode(Barcode); // просто реакция на штрихкод

            if (!ThereHandler)
            {
                //никакой обработчик не сработал! Отобъем исходя из настроек по умолчанию
                FExcStr = "Нет действий с этим ШК в данном режиме!";
                FResult = MMResult.Negative;
            }
            return ResultObject;
        }
예제 #5
0
        } // QuitModesSet

        private bool RSCSet(string IDDorID, bool thisID)
        {
            if (!thisID)
            {
                if (IsSC(IDDorID, "Сотрудники"))
                {
                    return(ReactionCancel());
                }
                else if (IsSC(IDDorID, "Секции"))
                {
                    RefSection Adress = new RefSection(this);
                    if (!Adress.FoundIDD(IDDorID))
                    {
                        return(false);
                    }

                    if (CurrentAction == ActionSet.ScanAdress)
                    {
                        //СКАНИРОВАНИЕ АДРЕСА
                        if (Adress.Type == 12)
                        {
                            FExcStr = "Неверно! " + WhatUNeed();
                            return(false);
                        }
                        if (Adress.ID != CCItem.AdressID)
                        {
                            //Переход на другую строку
                            return(ToModeSet(Adress.ID, null));
                        }
                        if (CCItem.Details > 0 && Const.ImageOn)
                        {
                            CurrentAction = ActionSet.ScanPart;
                        }
                        else
                        {
                            CurrentAction = ActionSet.ScanItem;
                        }
                        FExcStr = WhatUNeed();
                        return(true);
                    }
                    else if (CurrentAction == ActionSet.ScanBox)
                    {
                        //СКАНИРОВАНИЕ КОРОБКИ
                        if (Adress.Type != 12)
                        {
                            FExcStr = "Неверно! " + WhatUNeed();
                            return(false);
                        }
                        if (Adress.ID != DocSet.BoxID)
                        {
                            FExcStr = "Неверная коробка! " + WhatUNeed();
                            return(false);
                        }
                        return(CompleteLineSet());   //ВСЕ ЗАВЕРШАЕМ СТРОКУ ТУТ
                    }
                    else
                    {
                        //Какой-то другой режим вероятно?
                        FExcStr = "Неверно! " + WhatUNeed();
                        return(false);
                    }
                }
                else if (IsSC(IDDorID, "Принтеры"))
                {
                    if (!Printer.FoundIDD(IDDorID))
                    {
                        return(false);
                    }
                }
                else
                {
                    FExcStr = "Неверно! " + WhatUNeed();
                    return(false);
                }
                return(true);
            }
            else
            {
                FExcStr = "Нет действий с данным штрихкодом!";
                return(false);
            }
        } // RSCSet