public ChoiseWork(Model ReadySS, ABaseMode CallObj, string IDD) : base(ReadySS, CallObj) { Inicialize(); NewEmployer = new RefEmployer(SS); NewEmployer.FoundIDD(IDD); } // ChoiseWork (constructor)
} // ChoiseWork (constructor) public ChoiseWork(Model ReadySS, ABaseMode CallObj) : base(ReadySS, CallObj) { Inicialize(); CurrentMode = Mode.ChoiseWork; NewEmployer = Employer; } // ChoiseWork (constructor 2)
private void OnReactionSCEmployers(RefEmployer e) { ThereHandlerDo = true; //Если функцию ниже никто не наследует, то это значение поменяется на false ReactionSCEmployersDo(e); ThereHandler = ThereHandler ? ThereHandler : ThereHandlerDo; //если уже взведен, то не трогаем, иначе берет значение предыдущего флага if (ReactionSCEmployers != null) { ReactionSCEmployers(this, e); ThereHandler = true; } }
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; } }
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; }
} // ABaseStandart (constructor) protected override void ReactionSCEmployersDo(RefEmployer employer) { JumpTo(new Waiting(SS, this)); } // ReactionSCEmployersDo
} // 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
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
protected virtual void ReactionSCEmployersDo(RefEmployer employer) { ThereHandlerDo = false; }
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; }
} // Waiting (constructor) void Waiting_ReactionSCEmployers(object sender, RefEmployer employer) { JumpTo(new ChoiseWork(SS, this, employer.IDD)); } // Waiting_ReactionSCEmployers