示例#1
0
        } // ReactionKeyDo

        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void ReactionSCSectionDo(RefSection e)
        {
            //Проверки зон!!!
            if (!e.AdressZone.Selected)
            {
                Negative("Нельзя! Адбрес без зоны!");
                return;
            }
            DataTable DT;

            string TextQuery = "SELECT VALUE as val FROM _1sconst (nolock) WHERE ID = $Константа.ЗонаВременногоТовара ";

            if (!SS.ExecuteWithRead(TextQuery, out DT))
            {
                return;
            }
            string IDTempZone = DT.Rows[0]["val"].ToString();

            //Проверка
            if (e.AdressZone.ID.ToString() != IDTempZone)
            {
                //НЕ та зона
                Negative("Нельзя! Адрес другой зоны!");
            }

            Adress = e;
            Positive("Адрес принят! Продолжайте ...");
        } // ReactionSCSectionDo
示例#2
0
        } // ReactionKeyDo

        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void ReactionSCDo(ReactionSCEventArgs e)
        {
            if (CurrentAction == ActionSet.ScanAdress)
            {
                if (e.Ref.GetType() != new RefSection(SS).GetType())
                {
                    Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                    return;
                }
                RefSection Section = e.Ref as RefSection;
                AdressUnLoad.FoundID(Section.ID);
                string TextQuery =
                    "UPDATE $Спр.МестаПогрузки " +
                    "SET " +
                    "$Спр.МестаПогрузки.Адрес9 = :AdressID ," +
                    "$Спр.МестаПогрузки.Сотрудник8 = :EmployerID ," +
                    "$Спр.МестаПогрузки.Дата9 = :Date ," +
                    "$Спр.МестаПогрузки.Время9 = :Time " +
                    "WHERE  ";
                if (DocUnload.Selected)
                {
                    TextQuery += " $Спр.МестаПогрузки .КонтрольНабора = :DocUnload ";
                    SQL1S.QuerySetParam(ref TextQuery, "DocUnload", DocUnload.ID);
                }
                else
                {
                    TextQuery += " $Спр.МестаПогрузки .ID = :ID ";
                    SQL1S.QuerySetParam(ref TextQuery, "ID", BoxUnLoad.ID);
                }
                SQL1S.QuerySetParam(ref TextQuery, "AdressID", AdressUnLoad.ID);
                SQL1S.QuerySetParam(ref TextQuery, "EmployerID", Employer.ID);
                SQL1S.QuerySetParam(ref TextQuery, "Date", DateTime.Now);
                SQL1S.QuerySetParam(ref TextQuery, "Time", APIManager.NowSecond());
                if (!SS.ExecuteWithoutRead(TextQuery))
                {
                    Negative("Не удалось зафиксировать! " + SS.WhatUNeed(CurrentAction));
                    return;
                }
                CurrentAction = ActionSet.ScanBox;
                Refresh();
                return;
            }
            else if (CurrentAction != ActionSet.ScanBox)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            if (e.Ref.GetType() != new RefBox(SS).GetType())
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            RefBox Box = e.Ref as RefBox;

            BoxUnLoad.FoundID(Box.ID);
            DocUnload     = new Doc(SS);
            CurrentAction = ActionSet.ScanAdress;
            AdressUnLoad  = new RefSection(SS);
            Refresh();
        }
示例#3
0
        protected override void ReactionSCSectionDo(RefSection Section)
        {
            //подтянем данные адреса
            string TextQuery =
                "DECLARE @curdate DateTime; " +
                "SELECT @curdate = DATEADD(DAY, 1 - DAY(curdate), curdate) FROM _1ssystem (nolock); " +
                "SELECT " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Товар as ID, " +
                "min(Goods.descr) as ItemName, " +
                "min(Goods.$Спр.Товары.ИнвКод ) as InvCode, " +
                "min(Goods.$Спр.Товары.Артикул ) as Article, " +
                "cast(sum(RegAOT.$Рег.АдресОстаткиТоваров.Количество ) as int) as Count, " +
                "min(RegAOT.$Рег.АдресОстаткиТоваров.Адрес ) as Adress, " +
                "CASE " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -10 THEN '-10 Автокорректировка' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -2 THEN '-2 В излишке' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = -1 THEN '-1 В излишке (пересчет)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 0 THEN '00 Не существует' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 1 THEN '01 Приемка' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 2 THEN '02 Хороший на месте' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 3 THEN '03 Хороший (пересчет)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 4 THEN '04 Хороший (движение)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 7 THEN '07 Бракованный на месте' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 8 THEN '08 Бракованный (пересчет)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 9 THEN '09 Бракованный (движение)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 12 THEN '12 Недостача' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 13 THEN '13 Недостача (пересчет)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 14 THEN '14 Недостача (движение)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 17 THEN '17 Недостача подтвержденная' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 18 THEN '18 Недостача подт.(пересчет)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 19 THEN '19 Недостача подт.(движение)' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 22 THEN '22 Пересорт излишек' " +
                "WHEN RegAOT.$Рег.АдресОстаткиТоваров.Состояние = 23 THEN '23 Пересорт недостача' " +
                "ELSE rtrim(cast(RegAOT.$Рег.АдресОстаткиТоваров.Состояние as char)) + ' <неизвестное состояние>' END as Condition, " +
                "min(Sections.descr) as AdressName " +
                "FROM " +
                "RG$Рег.АдресОстаткиТоваров as RegAOT (nolock) " +
                "LEFT JOIN $Спр.Товары as Goods (nolock) " +
                "ON Goods.ID = RegAOT.$Рег.АдресОстаткиТоваров.Товар " +
                "LEFT JOIN $Спр.Секции as Sections (nolock) " +
                "ON Sections.ID = RegAOT.$Рег.АдресОстаткиТоваров.Адрес " +
                "WHERE " +
                "RegAOT.period = @curdate " +
                "and RegAOT.$Рег.АдресОстаткиТоваров.Адрес = :Address " +
                "GROUP BY RegAOT.$Рег.АдресОстаткиТоваров.Товар , " +
                "RegAOT.$Рег.АдресОстаткиТоваров.Состояние " +
                "ORDER BY min(Goods.$Спр.Товары.ИнвКод )";

            SQL1S.QuerySetParam(ref TextQuery, "Address", Section.ID);
            if (SS.ExecuteWithRead(TextQuery, out SS.AddressCardItems))
            {
                //покажем содержание адреса
                SS.OnReport(new ReportEventArgs("Задача выбрана..."));
                JumpTo(new ChoiseWorkAddressCard(SS, this));
            }
            base.ReactionSCSectionDo(Section);
        }
示例#4
0
文件: Loader.cs 项目: sanekkop/WPM
        } // Cancel

        /// <summary>
        /// LoaderLift, LoaderDownAntrisole
        /// </summary>
        /// <param name="e"></param>
        protected override void ReactionSCSectionDo(RefSection e)
        {
            if (CurrentAction != ActionSet.ScanAdress)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            Adress1 = e;
            TaskEnd();
        } // ReactionSCSectionDo
示例#5
0
 private void OnReactionSCSection(RefSection e)
 {
     ThereHandlerDo = true;  //Если функцию ниже никто не наследует, то это значение поменяется на false
     ReactionSCSectionDo(e);
     ThereHandler = ThereHandler ? ThereHandler : ThereHandlerDo;    //если уже взведен, то не трогаем, иначе берет значение предыдущего флага
     if (ReactionSCSection != null)
     {
         ReactionSCSection(this, e);
         ThereHandler = true;
     }
 }
示例#6
0
        } // Init

        /// <summary>
        ///
        /// </summary>
        /// <param name="section"></param>
        protected override void ReactionSCSectionDo(RefSection section)
        {
            if (CurrentAction != ActionSet.ScanAdress)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            Adress0 = section;
            CompletePallete();
            JumpTo(new RefillChoise(SS, this));
        } // ReactionSCSection
示例#7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ReadySS"></param>
        /// <param name="CallObj"></param>
        public UnLoading(Model ReadySS, ABaseMode CallObj)
            : base(ReadySS, CallObj)
        {
            //Стандартные включалки
            CurrentMode = Mode.UnLoading;

            //Просто
            AdressUnLoad   = new RefSection(SS);
            BoxUnLoad      = new RefBox(SS);
            DocUnload      = new Doc(SS);
            DocCC          = new StructBox();
            PreviousAction = "";
        } // RefillSet (constructor)
示例#8
0
 public RefillLayout(Model ReadySS, ABaseMode CallObj)
     : base(ReadySS, CallObj)
 {
     CurrentMode    = Mode.RefillLayout;
     DocAP          = (CallObj as RefillChoise).DocAP;
     lineno_        = 0;
     Adress0        = new RefSection(SS);
     Adress1        = new RefSection(SS);
     LastMove       = new RefPalleteMove(SS);
     Item           = new RefItem(SS);
     PreviousAction = "";
     RemainItems    = new DataTable();
 }
示例#9
0
文件: RefillSet.cs 项目: sanekkop/WPM
        } // CollectedLines
        /// <summary>
        ///
        /// </summary>
        /// <param name="ReadySS"></param>
        /// <param name="CallObj"></param>
        public RefillSet(Model ReadySS, ABaseMode CallObj)
            : base(ReadySS, CallObj)
        {
            //Стандартные включалки
            CurrentMode     = Mode.RefillSet;
            ReactionSCItem += new ReactionSCItemHandler(RefillSet_ReactionSCItem);
            DocAP           = (CallObj as RefillChoise).DocAP;

            //Просто
            Adress0        = new RefSection(SS);
            Adress1        = new RefSection(SS);
            Item           = new RefItem(SS);
            PreviousAction = "";
        } // RefillSet (constructor)
示例#10
0
文件: ARef.cs 项目: sanekkop/WPM
        //---------------
        //Две процедуры ниже нужно переработать как-то в одну, я хз как пока

        /// <summary>
        /// write in you property: %Prop% get { return GetSectionProperty(%name%, ref %FProp%); }
        /// </summary>
        /// <param name="name">1C name of prop</param>
        /// <param name="val">field stored object</param>
        /// <returns>value of property</returns>
        protected RefSection GetSectionProperty(string name, ref RefSection val)
        {
            if (val == null)
            {
                val = new RefSection(SS);
            }
            string currId = GetAttribute(name).ToString();

            if (val.ID != currId)
            {
                val.FoundID(currId);
            }
            return(val);
        } // GetGatesProperty
示例#11
0
        public bool ToModeSetInicialization()
        {
            FEmployer.Refresh();    //Обновим данные сотрудника
            Const.Refresh();        //Обновим константы

            PreviousAction = "";
            DocsSet        = new List <string>();

            if (!MBGoToSetSelfControl())
            {
                return(false);
            }

            string TextQuery =
                "SELECT " +
                "journ.iddoc as IDDOC " +
                "FROM " +
                "_1sjourn as journ (nolock) " +
                "INNER JOIN DH$КонтрольНабора as DocCC (nolock) " +
                "ON DocCC.iddoc = journ.iddoc " +
                "WHERE " +
                "DocCC.$КонтрольНабора.Наборщик = :Employer " +
                "and journ.iddocdef = $КонтрольНабора " +
                "and DocCC.$КонтрольНабора.Дата2 = :EmptyDate " +
                "and not DocCC.$КонтрольНабора.Дата1 = :EmptyDate " +
                "and journ.ismark = 0 ";

            QuerySetParam(ref TextQuery, "Employer", Employer.ID);
            QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate());
            DataTable DT;

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }

            if (DT.Rows.Count > 0)
            {
                DataRow[] DR = DT.Select();
                foreach (DataRow dr in DR)
                {
                    DocsSet.Add(dr["IDDOC"].ToString());
                }
                return(ToModeSet(null, null));
            }

            BoxForSet    = null;
            FCurrentMode = Mode.SetInicialization;
            return(true);
        } // ToModeSetInicialization
示例#12
0
文件: RefillSet.cs 项目: sanekkop/WPM
        } // ReactionKeyDo

        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void ReactionSCSectionDo(RefSection e)
        {
            if (CurrentAction != ActionSet.ScanAdress)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            else if (e.ID != Adress0.ID)
            {
                Negative("Неверный адрес! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            CurrentAction = ActionSet.ScanItem;
            Positive(SS.WhatUNeed(CurrentAction));
        }
示例#13
0
        } // ReactionKeyDo

        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        protected override void ReactionSCSectionDo(RefSection e)
        {
            if (CurrentAction != ActionSet.ScanAdress)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            //Проверки зон!!!
            RefGates ItemZone;

            if (e.Type == 2)
            {
                ItemZone = Item.ZonaTech;
            }
            else
            {
                //Для всех остальных видов адреса будем считать ручную зону
                ItemZone = Item.ZonaHand;
            }
            //Проверка
            if (ItemZone.Selected && e.AdressZone.Selected)
            {
                //У обоих задана зона
                if (ItemZone.ID != e.AdressZone.ID)
                {
                    Negative("Нельзя! Товар: " + ItemZone.Name + ", адрес: " + e.AdressZone.Name);
                    return;
                }
            }
            else if (ItemZone.Selected)
            {
                //только товар задан
                Negative("Нельзя! Товар: " + ItemZone.Name);
                return;
            }
            else if (e.AdressZone.Selected)
            {
                //Только у адреса задана зона
                Negative("Нельзя! Адрес: " + e.AdressZone.Name);
                return;
            }
            //else в остальных случая - нам похуй

            Adress1       = e;
            CurrentAction = ActionSet.EnterCount;
            Positive(SS.WhatUNeed(CurrentAction));
        } // ReactionSCSectionDo
示例#14
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;
        }
示例#15
0
        protected override void ReactionDocDo(Doc doc)
        {
            if (CurrentAction != ActionSet.ScanBox)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            if (doc.TypeDoc == "КонтрольНабора")
            {
                //нам нужны все места этого документа, запомним документ и найдем первое место
                DocUnload.FoundID(doc.ID);
                string TextQuery =
                    "SELECT TOP 1 Ref.ID as ID " +
                    "FROM " +
                    "$Спр.МестаПогрузки as Ref (nolock) " +
                    "WHERE " +
                    "$Спр.МестаПогрузки.КонтрольНабора = :DocUnload ";
                SQL1S.QuerySetParam(ref TextQuery, "DocUnload", DocUnload.ID);
                DataTable DT;
                if (!SS.ExecuteWithRead(TextQuery, out DT))
                {
                    Negative("Ошибка запроса! " + SS.WhatUNeed(CurrentAction));
                    return;
                }

                if (DT.Rows.Count == 0)
                {
                    Negative("Не найдено место! " + SS.WhatUNeed(CurrentAction));
                    return;
                }
                BoxUnLoad.FoundID(DT.Rows[0]["ID"].ToString());
                CurrentAction = ActionSet.ScanAdress;
                AdressUnLoad  = new RefSection(SS);
                Refresh();
            }
            else
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }

            base.ReactionDocDo(doc);
        }
示例#16
0
文件: LoaderUp.cs 项目: sanekkop/WPM
        } // Init()

        protected override void ReactionSCSectionDo(RefSection e)
        {
            if (CurrentAction != ActionSet.ScanAdress)
            {
                Negative("Неверно! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            if (e.ID != Task.Adress0.ID)
            {
                Negative("Не верный адрес!");
                return;
            }
            if (Task.PalleteBarcode.Trim().Length == 0 && countScan < 1)
            {
                countScan++;
                Positive("Ok! " + SS.WhatUNeed(CurrentAction));
                return;
            }
            Adress1 = e;
            TaskEnd();
        } // ReactionSCSectionDo
示例#17
0
        protected override void ReactionSCSectionDo(RefSection e)
        {
            if (TransferWindow.Selected)
            {
                Negative("Отдайте товар клиенту! Просканировав заявку!");
                return;
            }

            if (!CompleteAdress.Selected)
            {
                //Это первая комплектация!
                if (e.Type != 10)
                {
                    Negative("В такой тип адреса нельзя комплектовать самовывоз!");
                    return;
                }
                DocCB.SetAttributeHeader("АдресКомплектации", e.ID);
                DocCB.Save();
            }
            TransferComplete();
        }
示例#18
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);
        }
示例#19
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
示例#20
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
示例#21
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);
            }
        }
示例#22
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;
        }
示例#23
0
 public AcceptanceCross(Model ReadySS, ABaseMode CallObj)
     : base(ReadySS, CallObj)
 {
     CurrentMode = Mode.AcceptanceCross;
     Adress      = new RefSection(SS);
 }
示例#24
0
 protected virtual void ReactionSCSectionDo(RefSection e)
 {
     ThereHandlerDo = false;
 }
示例#25
0
        private bool ToModeSetCompleteAfrerBox(RefSection Adress)
        {
            EmpbtyBox = false;
            string TextQuery = "select iddoc from DH$КонтрольНабора where iddoc in (:Docs) and $КонтрольНабора.Коробка = :box";

            TextQuery = TextQuery.Replace(":Docs", Helper.ListToStringWithQuotes(DocsSet));
            if (Adress == null)
            {
                EmpbtyBox = true;
                QuerySetParam(ref TextQuery, "box", GetVoidID());
            }
            else
            {
                QuerySetParam(ref TextQuery, "box", Adress.ID);
            }
            DataTable DT;

            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            if (DT.Rows.Count == 0)
            {
                FExcStr = "Сборочный с такой коробкой не найдет!";
                return(false);
            }
            if (!LoadDocSet(DT.Rows[0]["iddoc"].ToString()))
            {
                return(false);
            }

            RepeatCountBox = false;
            BoxOk          = false;
            DocSet.Boxes   = 0;
            TextQuery      =
                "Select " +
                "count(*) as boxes " +
                "from $Спр.МестаПогрузки (nolock) " +
                "where $Спр.МестаПогрузки.КонтрольНабора = :iddoc";
            QuerySetParam(ref TextQuery, "iddoc", DocSet.ID);
            DT.Clear();
            if (ExecuteWithRead(TextQuery, out DT))
            {
                if (DT.Rows.Count > 0)
                {
                    DocSet.Boxes = (int)DT.Rows[0]["boxes"];
                }
            }

            TextQuery =
                "Select " +
                "ISNULL(RefSection.$Спр.Секции.МаксКорешков , 0) as MaxStub " +
                "from DH$КонтрольНабора as DocCC (nolock) " +
                "left join $Спр.Секции as RefSection (nolock) " +
                " on DocCC.$КонтрольНабора.Сектор = RefSection.id " +
                "where DocCC.iddoc = :iddoc";
            QuerySetParam(ref TextQuery, "iddoc", DocSet.ID);
            DT.Clear();
            if (!ExecuteWithRead(TextQuery, out DT))
            {
                return(false);
            }
            DocSet.MaxStub = (int)(decimal)DT.Rows[0]["MaxStub"];

            BoxForSet = Adress;
            if (Employer.SelfControl)
            {
                TextQuery =
                    "select top 1 iddoc " +
                    "from DT$КонтрольНабора as DocT (nolock) " +
                    "where " +
                    "iddoc = :iddoc " +
                    "and DocT.$КонтрольНабора.Состояние0 = 2 " +
                    "and DocT.$КонтрольНабора.Контроль <= 0 " +
                    "and DocT.$КонтрольНабора.СостояниеКорр = 0 " +
                    "and DocT.$КонтрольНабора.Количество > 0 ";
                QuerySetParam(ref TextQuery, "iddoc", DocSet.ID);
                DT.Clear();
                if (!ExecuteWithRead(TextQuery, out DT))
                {
                    return(false);
                }
                if (DT.Rows.Count > 0)
                {
                    //Включен самоконтроль и осталось что-то "поконтролить"
                    return(ToModeSetSelfControl());
                }
            }
            return(true);
        } // ToModeSetCompleteAfterBox
示例#26
0
 private bool ToModeSetInicializationRequest()
 {
     BoxForSet    = null;
     FCurrentMode = Mode.SetInicialization;
     return(true);
 }