예제 #1
0
파일: ChoiseWork.cs 프로젝트: sanekkop/WPM
 public ChoiseWork(Model ReadySS, ABaseMode CallObj, string IDD)
     : base(ReadySS, CallObj)
 {
     Inicialize();
     NewEmployer = new RefEmployer(SS);
     NewEmployer.FoundIDD(IDD);
 } // ChoiseWork (constructor)
예제 #2
0
파일: ChoiseWork.cs 프로젝트: sanekkop/WPM
        } // ChoiseWork (constructor)

        public ChoiseWork(Model ReadySS, ABaseMode CallObj)
            : base(ReadySS, CallObj)
        {
            Inicialize();
            CurrentMode = Mode.ChoiseWork;
            NewEmployer = Employer;
        } // ChoiseWork (constructor 2)
예제 #3
0
 private void OnReactionSCEmployers(RefEmployer e)
 {
     ThereHandlerDo = true;  //Если функцию ниже никто не наследует, то это значение поменяется на false
     ReactionSCEmployersDo(e);
     ThereHandler = ThereHandler ? ThereHandler : ThereHandlerDo;    //если уже взведен, то не трогаем, иначе берет значение предыдущего флага
     if (ReactionSCEmployers != null)
     {
         ReactionSCEmployers(this, e);
         ThereHandler = true;
     }
 }
예제 #4
0
        private bool ThereHandlerDo; //Вспомогательная хуйня, чтобы контролировать подписку по функциям (суффикс Do)

        public ABaseMode(Model ReadySS, ABaseMode CallObj)
        {
            FVoiceOn = false;
            CurrentMode = Mode.None;
            SS = ReadySS;
            if (CallObj != null)
            {
                JumpCounter = CallObj.JumpCounter;
                Const = CallObj.Const;
                FEmployer = CallObj.Employer;
            }
            else
            {
                JumpCounter = 0;
            }
        }
예제 #5
0
        public RefSection CompleteAdress; //Адрес комплектации

        private void Constructor()
        {
            Proposal       = new Doc(SS);
            TransferWindow = new RefSection(SS);
            SectorCC       = new RefSection(SS);
            Setter         = new RefEmployer(SS);
            DocCB          = new Doc(SS);
            CompleteAdress = new RefSection(SS);
            DocCB.FoundID(DocCC.GetAttributeHeader("ДокументОснование").ToString());
            Proposal.FoundID(DocCB.GetAttributeHeader("ДокументОснование").ToString());
            SectorCC.FoundID(DocCC.GetAttributeHeader("Сектор").ToString());
            TransferWindow.FoundID(DocCB.GetAttributeHeader("АдресОбразцов").ToString());
            CompleteAdress.FoundID(DocCB.GetAttributeHeader("АдресКомплектации").ToString());
            Setter.FoundID(DocCC.GetAttributeHeader("Наборщик").ToString());
            CurrentMode = Mode.SetTransfer;
            FVoiceOn    = true;
        }
예제 #6
0
        } // ABaseStandart (constructor)

        protected override void ReactionSCEmployersDo(RefEmployer employer)
        {
            JumpTo(new Waiting(SS, this));
        } // ReactionSCEmployersDo
예제 #7
0
파일: ChoiseWork.cs 프로젝트: sanekkop/WPM
        } // CheckOrder

        internal override ABaseMode Init()
        {
            if (!NewEmployer.Selected)
            {
                return(Negative("Чудовищная ошибка программы! СРОЧНО ЗВОНИТЕ ПУТИНУ!"));
            }
            if (NewEmployer.IsMark)
            {
                return(Negative("Вы, вероятно, уволены!"));
            }
            Mode ToMode = CheckOrder(Mode.ChoiseWork, NewEmployer);

            //Пишем команду login!
            if (Employer == null || NewEmployer.ID != Employer.ID)
            {
                //Это перелогин или первый логин
                if (Employer != null && NewEmployer.ID != Employer.ID)
                {
                    //Перелогин, нужно сделать логаут предыдущему челу
                    if (!Logout())
                    {
                        return(Negative(SS.ExcStr));
                    }
                }
                RefEmployer OldEmployer = FEmployer;
                FEmployer = NewEmployer;
                if (!Login())
                {
                    FEmployer = OldEmployer;
                    if (OldEmployer != null)
                    {
                        FEmployer.Refresh();
                    }
                    return(Negative(SS.ExcStr));
                }
            }

            SS.Employer = FEmployer;    //ВРЕМЕННО, Чтобы работала обратная совместимость

            Const.Refresh();

            if (ToMode == Mode.Down)
            {
                if (!SS.ToModeDown())
                {
                    return(Negative(SS.ExcStr));
                }
                return(Positive());
            }
            else if (ToMode == Mode.FreeDownComplete)
            {
                if (!SS.ToModeFreeDownComplete())
                {
                    return(Negative(SS.ExcStr));
                }
                return(Positive());
            }
            else if (ToMode == Mode.NewComplectation)
            {
                if (!SS.ToModeNewComplectation())
                {
                    return(Negative(SS.ExcStr));
                }
                return(Positive());
            }
            else
            {
                return(Positive());
            }
        } // Init
예제 #8
0
파일: ChoiseWork.cs 프로젝트: sanekkop/WPM
        private Mode CheckOrder(Mode NowMode, RefEmployer Who)
        {
            Mode result = NowMode;

            //ЗАДАНИЕ СПУСКА
            if (Who.CanDown)
            {
                string TextQuery =
                    "select top 1 " +
                    "Ref.id " +
                    "from $Спр.МестаПогрузки as Ref (nolock) " +
                    "where " +
                    "Ref.$Спр.МестаПогрузки.Сотрудник4 = :Employer " +
                    "and Ref.ismark = 0 " +
                    "and not Ref.$Спр.МестаПогрузки.Дата40 = :EmptyDate " +
                    "and not Ref.$Спр.МестаПогрузки.Адрес3 = :EmptyID " +
                    "and Ref.$Спр.МестаПогрузки.Дата5 = :EmptyDate ";
                SQL1S.QuerySetParam(ref TextQuery, "Employer", Who.ID);
                DataTable DT;
                if (SS.ExecuteWithRead(TextQuery, out DT))
                {
                    if (DT.Rows.Count > 0)
                    {
                        return(Mode.Down);
                    }
                }
            }
            //ЗАДАНИЕ СВОБОДНОГО СПУСКА/КОМПЛЕКТАЦИИ
            if (Who.CanComplectation)
            {
                string TextQuery =
                    "select top 1 " +
                    "Ref.id " +
                    "from $Спр.МестаПогрузки as Ref (nolock) " +
                    "where " +
                    "Ref.ismark = 0 " +
                    "and (" +
                    "Ref.$Спр.МестаПогрузки.Сотрудник4 = :Employer " +
                    "and Ref.$Спр.МестаПогрузки.Дата5 = :EmptyDate " +
                    "and Ref.$Спр.МестаПогрузки.Адрес3 = :EmptyID " +
                    "and not Ref.$Спр.МестаПогрузки.Дата40 = :EmptyDate" +
                    " or " +
                    "Ref.$Спр.МестаПогрузки.Сотрудник8 = :Employer " +
                    "and Ref.$Спр.МестаПогрузки.Дата9 = :EmptyDate " +
                    "and Ref.$Спр.МестаПогрузки.Адрес7 = :EmptyID " +
                    "and not Ref.$Спр.МестаПогрузки.Дата80 = :EmptyDate)";
                SQL1S.QuerySetParam(ref TextQuery, "Employer", Who.ID);
                DataTable DT;
                if (SS.ExecuteWithRead(TextQuery, out DT))
                {
                    if (DT.Rows.Count > 0)
                    {
                        return(Mode.FreeDownComplete);
                    }
                }
            }
            //ЗАДАНИЕ ОТБОРА КОМПЛЕКТАЦИИ
            if (Who.CanComplectation)
            {
                string TextQuery =
                    "select top 1 " +
                    "Ref.id " +
                    "from $Спр.МестаПогрузки as Ref (nolock) " +
                    "where " +
                    "Ref.ismark = 0 " +
                    "and Ref.$Спр.МестаПогрузки.Сотрудник8 = :Employer " +
                    "and Ref.$Спр.МестаПогрузки.Дата9 = :EmptyDate " +
                    "and not Ref.$Спр.МестаПогрузки.Адрес7 = :EmptyID " +
                    "and not Ref.$Спр.МестаПогрузки.Дата80 = :EmptyDate";
                SQL1S.QuerySetParam(ref TextQuery, "Employer", Who.ID);
                DataTable DT;
                if (SS.ExecuteWithRead(TextQuery, out DT))
                {
                    if (DT.Rows.Count > 0)
                    {
                        return(Mode.NewComplectation);
                    }
                }
            }

            return(result);
        } // CheckOrder
예제 #9
0
 protected virtual void ReactionSCEmployersDo(RefEmployer employer)
 {
     ThereHandlerDo = false;
 }
예제 #10
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;
        }
예제 #11
0
파일: Waiting.cs 프로젝트: sanekkop/WPM
        } // Waiting (constructor)

        void Waiting_ReactionSCEmployers(object sender, RefEmployer employer)
        {
            JumpTo(new ChoiseWork(SS, this, employer.IDD));
        } // Waiting_ReactionSCEmployers