예제 #1
0
파일: Model_RSC.cs 프로젝트: sanekkop/WPM
 private bool RSCSamplePut(string IDD)
 {
     if (IsSC(IDD, "Сотрудники"))
     {
         return(ToModeChoiseWork(IDD));
     }
     else if (IsSC(IDD, "Принтеры"))
     {
         if (!Printer.FoundIDD(IDD))
         {
             return(false);
         }
         if (FPrinter.PrinterType == 1)
         {
             FPrinter = new RefPrinter(this);
             FExcStr  = "Не допустим принтер этикеток!";
             return(false);
         }
         return(true);
     }
     else
     {
         FExcStr = "Не верный тип справочника!";
         return(false);
     }
 }
예제 #2
0
 private void OnReactionSCPrinter(RefPrinter e)
 {
     if (ReactionSCPrinter != null)
     {
         ReactionSCPrinter(this, e);
         ThereHandler = true;
     }
 }
예제 #3
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;
        }
예제 #4
0
파일: Model_RSC.cs 프로젝트: sanekkop/WPM
        } // SCAcceptance

        private bool RSCAcceptanceCross(string IDD)
        {
            if (IsSC(IDD, "Сотрудники"))
            {
                if (!ToModeChoiseWork(IDD))
                {
                    return(false);
                }
                QuitModeAcceptance();
                return(true);
            }
            else if (IsSC(IDD, "Принтеры"))
            {
                if (Printer.GetAttribute("IDD").ToString() == IDD)
                {
                    FPrinter = new RefPrinter(this);
                    FExcStr  = "Обнулили принтер!";
                    return(true);
                }
                if (!Printer.FoundIDD(IDD))
                {
                    return(false);
                }
                return(true);
            }
            else if (IsSC(IDD, "Секции"))
            {
                if (FPalletID == "")
                {
                    FExcStr = "Не выбрана паллета!";
                    return(false);
                }
                string SectionsID;
                GetSC(IDD, "Секции", out SectionsID);

                string TextQuery = "BEGIN TRAN; " +
                                   "UPDATE $Спр.ПеремещенияПаллет WITH (rowlock)" +
                                   "SET " +
                                   "$Спр.ПеремещенияПаллет.Адрес0 = :ID, " +
                                   "$Спр.ПеремещенияПаллет.ФлагОперации = 2 " +
                                   "WHERE " +
                                   "$Спр.ПеремещенияПаллет .id  = :Pallet; " +
                                   "UPDATE DH$ЗаказНаКлиента WITH (rowlock) " +
                                   "SET " +
                                   "$ЗаказНаКлиента.Адрес = :ID " +
                                   "WHERE " +
                                   "$ЗаказНаКлиента.Паллета = :Pallet; " +
                                   "COMMIT TRAN; ";
                QuerySetParam(ref TextQuery, "Pallet", FPalletID);
                QuerySetParam(ref TextQuery, "ID", SectionsID);
                if (!ExecuteWithoutRead(TextQuery))
                {
                    return(false);
                }
                //почистим паллеты от греха и почистим паллеты
                FExcStr = "Укажите количество мест!";
                return(true);
            }
            else
            {
                FExcStr = "Не верный тип справочника!";
                return(false);
            }
        } // SCAcceptance
예제 #5
0
파일: Model_RSC.cs 프로젝트: sanekkop/WPM
        //Reaction
        private bool RSCAcceptance(string IDD)
        {
            if (IsSC(IDD, "Сотрудники"))
            {
                if (!ToModeChoiseWork(IDD))
                {
                    return(false);
                }
                QuitModeAcceptance();
                return(true);
            }
            else if (IsSC(IDD, "Принтеры"))
            {
                if (Printer.GetAttribute("IDD").ToString() == IDD)
                {
                    FPrinter = new RefPrinter(this);
                    FExcStr  = "Обнулили принтер!";
                    return(true);
                }
                if (!Printer.FoundIDD(IDD))
                {
                    return(false);
                }
                return(true);
            }
            else if (IsSC(IDD, "Секции"))
            {
                if (FPalletID == "")
                {
                    FExcStr = "Не выбрана паллета!";
                    return(false);
                }
                string SectionsID;
                GetSC(IDD, "Секции", out SectionsID);

                string StrPallets = "";
                foreach (DataRow dr in FPallets.Rows)
                {
                    StrPallets += ", '" + dr["ID"].ToString() + "'";
                }
                StrPallets = StrPallets.Substring(2);   //Убираем спедери запятые

                string TextQuery =
                    "UPDATE $Спр.ПеремещенияПаллет " +
                    "SET " +
                    "$Спр.ПеремещенияПаллет.Адрес0 = :ID, " +
                    "$Спр.ПеремещенияПаллет.ФлагОперации = 2 " +
                    "WHERE $Спр.ПеремещенияПаллет .id in (:Pallet) ";
                TextQuery = TextQuery.Replace(":Pallet", StrPallets);
                QuerySetParam(ref TextQuery, "ID", SectionsID);
                QuerySetParam(ref TextQuery, "EmptyDate", GetVoidDate());
                QuerySetParam(ref TextQuery, "EmployerID", Employer.ID);
                QuerySetParam(ref TextQuery, "Date", DateTime.Now);
                QuerySetParam(ref TextQuery, "Time", APIManager.NowSecond());
                if (!ExecuteWithoutRead(TextQuery))
                {
                    return(false);
                }
                //почистим табличку паллет от греха и почистим паллеты

                FPallets.Rows.Clear();
                FPalletID      = "";
                FBarcodePallet = "";

                return(true);
            }
            else
            {
                FExcStr = "Не верный тип справочника!";
                return(false);
            }
        } // SCAcceptance